Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## ij.gui
Class GenericDialog

    java.lang.Object
      java.awt.Component
          java.awt.Container
              java.awt.Window
                  java.awt.Dialog
                      ij.gui.GenericDialog

All Implemented Interfaces:
  javax.accessibility.Accessible, java.awt.event.ActionListener, java.awt.event.AdjustmentListener, java.util.EventListener, java.awt.event.FocusListener, java.awt.image.ImageObserver, java.awt.event.ItemListener, java.awt.event.KeyListener, java.awt.MenuContainer, java.io.Serializable, java.awt.event.TextListener

public class GenericDialog
extends java.awt.Dialog
implements java.awt.event.ActionListener, java.awt.event.TextListener, java.awt.event.FocusListener, java.awt.event.ItemListener, java.awt.event.KeyListener, java.awt.event.AdjustmentListener

This class is a customizable modal dialog box. Here is an example GenericDialog with one string field and two numeric fields:

      public class Generic_Dialog_Example implements PlugIn {
        static String title="Example";
        static int width=512,height=512;
        public void run(String arg) {
          GenericDialog gd = new GenericDialog("New Image");
          gd.addStringField("Title: ", title);
          gd.addNumericField("Width: ", width, 0);
          gd.addNumericField("Height: ", height, 0);
          gd.showDialog();
          if (gd.wasCanceled()) return;
          title = gd.getNextString();
          width = (int)gd.getNextNumber();
          height = (int)gd.getNextNumber();
          IJ.newImage(title, "8-bit", width, height, 1);
       }
     }

To work with macros, the first word of each component label must be unique. If this is not the case, add underscores, which will be converted to spaces when the dialog is displayed. For example, change the checkbox labels "Show Quality" and "Show Residue" to "Show_Quality" and "Show_Residue".

See Also:
  Serialized Form

Nested Class Summary

Nested classes inherited from class java.awt.Dialog
`java.awt.Dialog.AccessibleAWTDialog`

Nested classes inherited from class java.awt.Window
`java.awt.Window.AccessibleAWTWindow`

Nested classes inherited from class java.awt.Container
`java.awt.Container.AccessibleAWTContainer`

Nested classes inherited from class java.awt.Component
`java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

Field Summary
`protected java.util.Vector` | `checkbox`
`protected java.util.Vector` | `choice`
`protected java.util.Vector` | `defaultText`
`protected java.util.Vector` | `defaultValues`
`static int` | `MAX_SLIDERS`
`protected java.util.Vector` | `numberField`
`protected java.util.Vector` | `slider`
`protected java.util.Vector` | `stringField`
`protected java.awt.TextArea` | `textArea1`
`protected java.awt.TextArea` | `textArea2`
`protected java.awt.Component` | `theLabel`

Fields inherited from class java.awt.Component
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Fields inherited from interface java.awt.image.ImageObserver
`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

Constructor Summary
`GenericDialog(java.lang.String title)` Creates a new GenericDialog with the specified title.
`GenericDialog(java.lang.String title, java.awt.Frame parent)` Creates a new GenericDialog using the specified title and parent frame.

Method Summary
`void` | `actionPerformed(java.awt.event.ActionEvent e)`
`void` | `addCheckbox(java.lang.String label, boolean defaultValue)` Adds a checkbox.
`void` | `addCheckboxGroup(int rows, int columns, java.lang.String[] labels, boolean[] defaultValues)` Adds a group of checkboxs using a grid layout.
`void` | `addChoice(java.lang.String label, java.lang.String[] items, java.lang.String defaultItem)` Adds a popup menu.
`void` | `addDialogListener(DialogListener dl)` Add an Object implementing the DialogListener interface.
`void` | `addMessage(java.lang.String text)` Adds a message consisting of one or more lines of text.
`void` | `addNumericField(java.lang.String label, double defaultValue, int digits)` Adds a numeric field.
`void` | `addNumericField(java.lang.String label, double defaultValue, int digits, int columns, java.lang.String units)` Adds a numeric field.
`void` | `addPanel(java.awt.Panel panel)` Adds a Panel to the dialog.
`void` | `addPanel(java.awt.Panel panel, int contraints, java.awt.Insets insets)` Adds a Panel to the dialog with custom contraint and insets.
`void` | `addPreviewCheckbox(PlugInFilterRunner pfr)` Adds a checkbox labelled "Preview" for "automatic" preview.
`void` | `addPreviewCheckbox(PlugInFilterRunner pfr, java.lang.String label)` Add the preview checkbox with user-defined label; for details see the addPreviewCheckbox method with standard "Preview" label Note that a GenericDialog can have only one PreviewCheckbox
`void` | `addSlider(java.lang.String label, double minValue, double maxValue, double defaultValue)`
`void` | `addStringField(java.lang.String label, java.lang.String defaultText)` Adds an 8 column text field.
`void` | `addStringField(java.lang.String label, java.lang.String defaultText, int columns)` Adds a text field.
`void` | `addTextAreas(java.lang.String text1, java.lang.String text2, int rows, int columns)` Adds one or two (side by side) text areas.
`void` | `adjustmentValueChanged(java.awt.event.AdjustmentEvent e)`
`void` | `focusGained(java.awt.event.FocusEvent e)`
`void` | `focusLost(java.awt.event.FocusEvent e)`
`java.util.Vector` | `getCheckboxes()` Returns the Vector containing the Checkboxes.
`java.util.Vector` | `getChoices()` Returns the Vector containing the Choices.
`java.lang.String` | `getErrorMessage()` Returns an error message if getNextNumber was unable to convert a string into a number, otherwise, returns null.
`java.awt.Insets` | `getInsets()`
`java.awt.Component` | `getMessage()` Returns a reference to the Label or MultiLineLabel created by addMessage(), or null if addMessage() was not called.
`boolean` | `getNextBoolean()` Returns the state of the next checkbox.
`java.lang.String` | `getNextChoice()` Returns the selected item in the next popup menu.
`int` | `getNextChoiceIndex()` Returns the index of the selected item in the next popup menu.
`double` | `getNextNumber()` Returns the contents of the next numeric field.
`java.lang.String` | `getNextString()` Returns the contents of the next text field.
`java.lang.String` | `getNextText()` Returns the contents of the next text area.
`java.util.Vector` | `getNumericFields()` Returns the Vector containing the numeric TextFields.
`java.awt.Checkbox` | `getPreviewCheckbox()` Returns a reference to the Preview Checkbox.
`java.util.Vector` | `getSliders()` Returns the sliders (Scrollbars).
`java.util.Vector` | `getStringFields()` Returns the Vector containing the string TextFields.
`java.awt.TextArea` | `getTextArea1()` Returns a reference to textArea1.
`java.awt.TextArea` | `getTextArea2()` Returns a reference to textArea2.
`protected java.lang.Double` | `getValue(java.lang.String theText)`
`boolean` | `invalidNumber()` Returns true if one or more of the numeric fields contained an invalid number.
`void` | `itemStateChanged(java.awt.event.ItemEvent e)`
`void` | `keyPressed(java.awt.event.KeyEvent e)`
`void` | `keyReleased(java.awt.event.KeyEvent e)`
`void` | `keyTyped(java.awt.event.KeyEvent e)`
`void` | `paint(java.awt.Graphics g)`
`void` | `previewRunning(boolean isRunning)` optical feedback whether preview is running by switching from "Preview" to "wait..."
`void` | `setInsets(int top, int left, int bottom)` Set the insets (margins), in pixels, that will be used for the next component added to the dialog.
`protected void` | `setup()`
`void` | `showDialog()` Displays this dialog box.
`void` | `textValueChanged(java.awt.event.TextEvent e)`
`boolean` | `wasCanceled()` Returns true if the user clicks on "Cancel".
`boolean` | `wasOKed()` Returns true if the user has clicked on "OK" or a macro is running.

Methods inherited from class java.awt.Dialog
`addNotify, dispose, getAccessibleContext, getTitle, hide, isModal, isResizable, isUndecorated, paramString, setModal, setResizable, setTitle, setUndecorated, show`

Methods inherited from class java.awt.Window
`addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, finalize, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, toBack, toFront`

Methods inherited from class java.awt.Container
`add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalPolicy, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, setLayout, transferFocusBackward, transferFocusDownCycle, update, validate, validateTree`

Methods inherited from class java.awt.Component
`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle`

Methods inherited from class java.lang.Object
`clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### MAX_SLIDERS

    public static final int MAX_SLIDERS

See Also:
  Constant Field Values

### numberField

    protected java.util.Vector numberField

### stringField

    protected java.util.Vector stringField

### checkbox

    protected java.util.Vector checkbox

### choice

    protected java.util.Vector choice

### slider

    protected java.util.Vector slider

### textArea1

    protected java.awt.TextArea textArea1

### textArea2

    protected java.awt.TextArea textArea2

### defaultValues

    protected java.util.Vector defaultValues

### defaultText

    protected java.util.Vector defaultText

### theLabel

    protected java.awt.Component theLabel

Constructor Detail

### GenericDialog

    public GenericDialog(java.lang.String title)

  Creates a new GenericDialog with the specified title. Uses the current image image window as the parent frame or the ImageJ frame if no image windows are open. Dialog parameters are recorded by ImageJ's command recorder but this requires that the first word of each label be unique.

### GenericDialog

    public GenericDialog(java.lang.String title,
                         java.awt.Frame parent)

  Creates a new GenericDialog using the specified title and parent frame.

Method Detail

### addNumericField

    public void addNumericField(java.lang.String label,
                                double defaultValue,
                                int digits)

  Adds a numeric field. The first word of the label must be unique or command recording will not work.

  Parameters:
    `label` - the label
    `defaultValue` - value to be initially displayed
    `digits` - number of digits to right of decimal point

### addNumericField

    public void addNumericField(java.lang.String label,
                                double defaultValue,
                                int digits,
                                int columns,
                                java.lang.String units)

  Adds a numeric field. The first word of the label must be unique or command recording will not work.

  Parameters:
    `label` - the label
    `defaultValue` - value to be initially displayed
    `digits` - number of digits to right of decimal point
    `columns` - width of field in characters
    `units` - a string displayed to the right of the field

### addStringField

    public void addStringField(java.lang.String label,
                               java.lang.String defaultText)

  Adds an 8 column text field.

  Parameters:
    `label` - the label
    `defaultText` - the text initially displayed

### addStringField

    public void addStringField(java.lang.String label,
                               java.lang.String defaultText,
                               int columns)

  Adds a text field.

  Parameters:
    `label` - the label
    `defaultText` - text initially displayed
    `columns` - width of the text field

### addCheckbox

    public void addCheckbox(java.lang.String label,
                            boolean defaultValue)

  Adds a checkbox.

  Parameters:
    `label` - the label
    `defaultValue` - the initial state

### addPreviewCheckbox

    public void addPreviewCheckbox(PlugInFilterRunner pfr)

  Adds a checkbox labelled "Preview" for "automatic" preview. The reference to this checkbox can be retrieved by getPreviewCheckbox() and it provides the additional method previewRunning for optical feedback while preview is prepared. PlugInFilters can have their "run" method automatically called for preview under the following conditions: - the PlugInFilter must pass a reference to itself (i.e., "this") as an argument to the AddPreviewCheckbox - it must implement the DialogListener interface and set the filter parameters in the dialogItemChanged method. - it must have DIALOG and PREVIEW set in its flags. A previewCheckbox is always off when the filter is started and does not get recorded by the Macro Recorder.

  Parameters:
    `pfr` - A reference to the PlugInFilterRunner calling the PlugInFilter if automatic preview is desired, null otherwise.

### addPreviewCheckbox

    public void addPreviewCheckbox(PlugInFilterRunner pfr,
                                   java.lang.String label)

  Add the preview checkbox with user-defined label; for details see the addPreviewCheckbox method with standard "Preview" label Note that a GenericDialog can have only one PreviewCheckbox

### addCheckboxGroup

    public void addCheckboxGroup(int rows,
                                 int columns,
                                 java.lang.String[] labels,
                                 boolean[] defaultValues)

  Adds a group of checkboxs using a grid layout.

  Parameters:
    `rows` - the number of rows
    `columns` - the number of columns
    `labels` - the labels
    `defaultValues` - the initial states

### addChoice

    public void addChoice(java.lang.String label,
                          java.lang.String[] items,
                          java.lang.String defaultItem)

  Adds a popup menu.

  Parameters:
    `label` - the label
    `items` - the menu items
    `defaultItem` - the menu item initially selected

### addMessage

    public void addMessage(java.lang.String text)

  Adds a message consisting of one or more lines of text.

### addTextAreas

    public void addTextAreas(java.lang.String text1,
                             java.lang.String text2,
                             int rows,
                             int columns)

  Adds one or two (side by side) text areas.

  Parameters:
    `text1` - initial contents of the first text area
    `text2` - initial contents of the second text area or null
    `rows` - the number of rows

### addSlider

    public void addSlider(java.lang.String label,
                          double minValue,
                          double maxValue,
                          double defaultValue)

### addPanel

    public void addPanel(java.awt.Panel panel)

  Adds a Panel to the dialog.

### addPanel

    public void addPanel(java.awt.Panel panel,
                         int contraints,
                         java.awt.Insets insets)

  Adds a Panel to the dialog with custom contraint and insets. The defaults are GridBagConstraints.WEST (left justified) and "new Insets(5, 0, 0, 0)" (5 pixels of padding at the top).

### setInsets

    public void setInsets(int top,
                          int left,
                          int bottom)

  Set the insets (margins), in pixels, that will be used for the next component added to the dialog.

          Default insets:
              addMessage: 0,20,0 (empty string) or 10,20,0
              addCheckbox: 15,20,0 (first checkbox) or 0,20,0
              addCheckboxGroup: 10,0,0
              addNumericField: 5,0,3 (first field) or 0,0,3
              addStringField: 5,0,5 (first field) or 0,0,5
              addChoice: 5,0,5 (first field) or 0,0,5

### addDialogListener

    public void addDialogListener(DialogListener dl)

  Add an Object implementing the DialogListener interface. This object will be notified by its dialogItemChanged method of input to the dialog. The first DialogListener will be also called after the user has typed 'OK' or if the dialog has been invoked by a macro; it should read all input fields of the dialog. For other listeners, the OK button will not cause a call to dialogItemChanged; the CANCEL button will never cause such a call.

  Parameters:
    `dl` - the Object that wants to listen.

### wasCanceled

    public boolean wasCanceled()

  Returns true if the user clicks on "Cancel".

### wasOKed

    public boolean wasOKed()

  Returns true if the user has clicked on "OK" or a macro is running.

### getNextNumber

    public double getNextNumber()

  Returns the contents of the next numeric field.

### getValue

    protected java.lang.Double getValue(java.lang.String theText)

### invalidNumber

    public boolean invalidNumber()

  Returns true if one or more of the numeric fields contained an invalid number. Must be called after one or more calls to getNextNumber().

### getErrorMessage

    public java.lang.String getErrorMessage()

  Returns an error message if getNextNumber was unable to convert a string into a number, otherwise, returns null.

### getNextString

    public java.lang.String getNextString()

  Returns the contents of the next text field.

### getNextBoolean

    public boolean getNextBoolean()

  Returns the state of the next checkbox.

### getNextChoice

    public java.lang.String getNextChoice()

  Returns the selected item in the next popup menu.

### getNextChoiceIndex

    public int getNextChoiceIndex()

  Returns the index of the selected item in the next popup menu.

### getNextText

    public java.lang.String getNextText()

  Returns the contents of the next text area.

### showDialog

    public void showDialog()

  Displays this dialog box.

### getNumericFields

    public java.util.Vector getNumericFields()

  Returns the Vector containing the numeric TextFields.

### getStringFields

    public java.util.Vector getStringFields()

  Returns the Vector containing the string TextFields.

### getCheckboxes

    public java.util.Vector getCheckboxes()

  Returns the Vector containing the Checkboxes.

### getChoices

    public java.util.Vector getChoices()

  Returns the Vector containing the Choices.

### getSliders

    public java.util.Vector getSliders()

  Returns the sliders (Scrollbars).

### getTextArea1

    public java.awt.TextArea getTextArea1()

  Returns a reference to textArea1.

### getTextArea2

    public java.awt.TextArea getTextArea2()

  Returns a reference to textArea2.

### getMessage

    public java.awt.Component getMessage()

  Returns a reference to the Label or MultiLineLabel created by addMessage(), or null if addMessage() was not called.

### getPreviewCheckbox

    public java.awt.Checkbox getPreviewCheckbox()

  Returns a reference to the Preview Checkbox.

### previewRunning

    public void previewRunning(boolean isRunning)

  optical feedback whether preview is running by switching from "Preview" to "wait..."

### setup

    protected void setup()

### actionPerformed

    public void actionPerformed(java.awt.event.ActionEvent e)

  Specified by:
    `actionPerformed` in interface `java.awt.event.ActionListener`

### textValueChanged

    public void textValueChanged(java.awt.event.TextEvent e)

  Specified by:
    `textValueChanged` in interface `java.awt.event.TextListener`

### itemStateChanged

    public void itemStateChanged(java.awt.event.ItemEvent e)

  Specified by:
    `itemStateChanged` in interface `java.awt.event.ItemListener`

### focusGained

    public void focusGained(java.awt.event.FocusEvent e)

  Specified by:
    `focusGained` in interface `java.awt.event.FocusListener`

### focusLost

    public void focusLost(java.awt.event.FocusEvent e)

  Specified by:
    `focusLost` in interface `java.awt.event.FocusListener`

### keyPressed

    public void keyPressed(java.awt.event.KeyEvent e)

  Specified by:
    `keyPressed` in interface `java.awt.event.KeyListener`

### keyReleased

    public void keyReleased(java.awt.event.KeyEvent e)

  Specified by:
    `keyReleased` in interface `java.awt.event.KeyListener`

### keyTyped

    public void keyTyped(java.awt.event.KeyEvent e)

  Specified by:
    `keyTyped` in interface `java.awt.event.KeyListener`

### getInsets

    public java.awt.Insets getInsets()

### adjustmentValueChanged

    public void adjustmentValueChanged(java.awt.event.AdjustmentEvent e)

  Specified by:
    `adjustmentValueChanged` in interface `java.awt.event.AdjustmentListener`

### paint

    public void paint(java.awt.Graphics g)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD