Package ij.gui

Class GenericDialog

    • Field Detail

      • numberField

        protected Vector numberField
      • stringField

        protected Vector stringField
      • checkbox

        protected Vector checkbox
      • choice

        protected Vector choice
      • slider

        protected Vector slider
      • radioButtonGroups

        protected Vector radioButtonGroups
      • textArea1

        protected TextArea textArea1
      • textArea2

        protected TextArea textArea2
      • defaultValues

        protected Vector defaultValues
      • defaultText

        protected Vector defaultText
      • defaultStrings

        protected Vector defaultStrings
      • defaultChoiceIndexes

        protected Vector defaultChoiceIndexes
    • Constructor Detail

      • GenericDialog

        public GenericDialog​(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​(String title,
                             Frame parent)
        Creates a new GenericDialog using the specified title and parent frame.
    • Method Detail

      • addNumericField

        public void addNumericField​(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​(String label,
                                    double defaultValue,
                                    int digits,
                                    int columns,
                                    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​(String label,
                                   String defaultText)
        Adds an 8 column text field.
        Parameters:
        label - the label
        defaultText - the text initially displayed
      • addStringField

        public void addStringField​(String label,
                                   String defaultText,
                                   int columns)
        Adds a text field.
        Parameters:
        label - the label
        defaultText - text initially displayed
        columns - width of the text field. If columns is 8 or more, additional items may be added to this line with addToSameRow()
      • setEchoChar

        public void setEchoChar​(char echoChar)
        Sets the echo character for the next string field.
      • addCheckbox

        public void addCheckbox​(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,
                                       String label)
        Add the preview checkbox with user-defined label; for details see the addPreviewCheckbox method with standard "Preview" label. Adds the checkbox when the current image is a CompositeImage in "Composite" mode, unlike the one argument version. Note that a GenericDialog can have only one PreviewCheckbox.
      • addCheckboxGroup

        public void addCheckboxGroup​(int rows,
                                     int columns,
                                     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
      • addCheckboxGroup

        public void addCheckboxGroup​(int rows,
                                     int columns,
                                     String[] labels,
                                     boolean[] defaultValues,
                                     String[] headings)
        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
        headings - the column headings Example: http://imagej.nih.gov/ij/plugins/multi-column-dialog/index.html
      • addRadioButtonGroup

        public void addRadioButtonGroup​(String label,
                                        String[] items,
                                        int rows,
                                        int columns,
                                        String defaultItem)
        Adds a radio button group.
        Parameters:
        label - group label (or null)
        items - radio button labels
        rows - number of rows
        columns - number of columns
        defaultItem - button initially selected
      • addChoice

        public void addChoice​(String label,
                              String[] items,
                              String defaultItem)
        Adds a popup menu.
        Parameters:
        label - the label
        items - the menu items
        defaultItem - the menu item initially selected
      • addMessage

        public void addMessage​(String text)
        Adds a message consisting of one or more lines of text.
      • addMessage

        public void addMessage​(String text,
                               Font font)
        Adds a message consisting of one or more lines of text, which will be displayed using the specified font.
      • addMessage

        public void addMessage​(String text,
                               Font font,
                               Color color)
        Adds a message consisting of one or more lines of text, which will be displayed using the specified font and color.
      • addTextAreas

        public void addTextAreas​(String text1,
                                 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
        columns - the number of columns
      • addSlider

        public void addSlider​(String label,
                              double minValue,
                              double maxValue,
                              double defaultValue)
        Adds a slider (scroll bar) to the dialog box. Floating point values are used if (maxValue-minValue)<=5.0 and either defaultValue or minValue are non-integer.
        Parameters:
        label - the label
        minValue - the minimum value of the slider
        maxValue - the maximum value of the slider
        defaultValue - the initial value of the slider
      • addSlider

        public void addSlider​(String label,
                              double minValue,
                              double maxValue,
                              double defaultValue,
                              double stepSize)
        This vesion of addSlider() adds a 'stepSize' argument.
        Example: http://wsr.imagej.net/macros/SliderDemo.txt
      • addPanel

        public void addPanel​(Panel panel)
        Adds a Panel to the dialog.
      • addPanel

        public void addPanel​(Panel panel,
                             int constraints,
                             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).
      • addImage

        public void addImage​(ImagePlus image)
        Adds an image to the dialog.
      • 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 (except components added to the same row with addToSameRow)
            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
                addRadioButtonGroup: 5,10,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
             
      • addToSameRow

        public void addToSameRow()
        Makes the next item appear in the same row as the previous. May be used for addNumericField, addSlider, addChoice, addCheckbox, addStringField, addMessage, addPanel, and before the showDialog() method (in the latter case, the buttons appear to the right of the previous item). Note that addMessage (and addStringField, if its column width is more than 8) use the remaining width, so it must be the last item of a row.
      • setOKLabel

        public void setOKLabel​(String label)
        Sets a replacement label for the "OK" button.
      • setCancelLabel

        public void setCancelLabel​(String label)
        Sets a replacement label for the "Cancel" button.
      • setHelpLabel

        public void setHelpLabel​(String label)
        Sets a replacement label for the "Help" button.
      • setSmartRecording

        public void setSmartRecording​(boolean smartRecording)
        Unchanged parameters are not recorder in 'smart recording' mode.
      • enableYesNoCancel

        public void enableYesNoCancel()
        Make this a "Yes No Cancel" dialog.
      • enableYesNoCancel

        public void enableYesNoCancel​(String yesLabel,
                                      String noLabel)
        Make this a "Yes No Cancel" dialog with custom labels. Here is an example:
                GenericDialog gd = new GenericDialog("YesNoCancel Demo");
                gd.addMessage("This is a custom YesNoCancel dialog");
                gd.enableYesNoCancel("Do something", "Do something else");
                gd.showDialog();
                if (gd.wasCanceled())
                    IJ.log("User clicked 'Cancel'");
                else if (gd.wasOKed())
                    IJ. log("User clicked 'Yes'");
                else
                    IJ. log("User clicked 'No'");
                
      • hideCancelButton

        public void hideCancelButton()
        No not display "Cancel" button.
      • 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 clicked 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, or NaN if the field does not contain a number.
      • parseDouble

        public double parseDouble​(String s)
      • 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 String getErrorMessage()
        Returns an error message if getNextNumber was unable to convert a string into a number, otherwise, returns null.
      • getNextString

        public String getNextString()
        Returns the contents of the next text field.
      • getNextBoolean

        public boolean getNextBoolean()
        Returns the state of the next checkbox.
      • getNextChoice

        public 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.
      • getNextRadioButton

        public String getNextRadioButton()
        Returns the selected item in the next radio button group.
      • getNextText

        public String getNextText()
        Returns the contents of the next text area.
      • showDialog

        public void showDialog()
        Displays this dialog box.
      • getNumericFields

        public Vector getNumericFields()
        Returns the Vector containing the numeric TextFields.
      • getStringFields

        public Vector getStringFields()
        Returns the Vector containing the string TextFields.
      • getCheckboxes

        public Vector getCheckboxes()
        Returns the Vector containing the Checkboxes.
      • getChoices

        public Vector getChoices()
        Returns the Vector containing the Choices.
      • getSliders

        public Vector getSliders()
        Returns the Vector containing the sliders (Scrollbars).
      • getRadioButtonGroups

        public Vector getRadioButtonGroups()
        Returns the Vector that contains the RadioButtonGroups.
      • getTextArea1

        public TextArea getTextArea1()
        Returns a reference to textArea1.
      • getTextArea2

        public TextArea getTextArea2()
        Returns a reference to textArea2.
      • getMessage

        public Component getMessage()
        Returns a reference to the Label or MultiLineLabel created by the last addMessage() call, or null if addMessage() was not called.
      • getPreviewCheckbox

        public Checkbox getPreviewCheckbox()
        Returns a reference to the Preview checkbox.
      • isPreviewActive

        public boolean isPreviewActive()
        Returns 'true' if this dialog has a "Preview" checkbox and it is enabled.
      • getButtons

        public Button[] getButtons()
        Returns references to the "OK" ("Yes"), "Cancel", and if present, "No" buttons as an array.
      • previewRunning

        public void previewRunning​(boolean isRunning)
        Used by PlugInFilterRunner to provide visable feedback whether preview is running or not by switching from "Preview" to "wait..."
      • centerDialog

        public void centerDialog​(boolean b)
        Display dialog centered on the primary screen.
      • setLocation

        public void setLocation​(int x,
                                int y)
        Overrides:
        setLocation in class Window
      • setDefaultString

        public void setDefaultString​(int index,
                                     String str)
      • setup

        protected void setup()
      • addHelp

        public void addHelp​(String url)
        Adds a "Help" button that opens the specified URL in the default browser. With v1.46b or later, displays an HTML formatted message if 'url' starts with "". There is an example at http://imagej.nih.gov/ij/macros/js/DialogWithHelp.js
      • isMacro

        protected boolean isMacro()
      • dispose

        public void dispose()
        Overrides:
        dispose in class Window