- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Dialog
-
- ij.gui.GenericDialog
-
- All Implemented Interfaces:
java.awt.event.ActionListener
,java.awt.event.AdjustmentListener
,java.awt.event.FocusListener
,java.awt.event.ItemListener
,java.awt.event.KeyListener
,java.awt.event.TextListener
,java.awt.event.WindowListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
- Direct Known Subclasses:
NonBlockingGenericDialog
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, java.awt.event.WindowListener
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/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
-
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Vector
checkbox
protected java.util.Vector
choice
protected java.util.Vector
defaultChoiceIndexes
protected java.util.Vector
defaultStrings
protected java.util.Vector
defaultText
protected java.util.Vector
defaultValues
protected static GenericDialog
instance
protected java.util.Vector
numberField
protected java.util.Vector
radioButtonGroups
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
-
Constructor Summary
Constructors Constructor Description 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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
actionPerformed(java.awt.event.ActionEvent e)
void
addButton(java.lang.String label, java.awt.event.ActionListener listener)
Add button to the dialogvoid
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
addCheckboxGroup(int rows, int columns, java.lang.String[] labels, boolean[] defaultValues, java.lang.String[] headings)
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
addDirectoryField(java.lang.String label, java.lang.String defaultPath)
Adds a directory text field and "Browse" button, where the field width is determined by the length of 'defaultPath', with a minimum of 25 columns.void
addDirectoryField(java.lang.String label, java.lang.String defaultPath, int columns)
<E extends java.lang.Enum<E>>
voidaddEnumChoice(java.lang.String label, E defaultItem)
Adds a group of choices to the dialog with menu items taken from theenum
class of the specified default item (enum constant).<E extends java.lang.Enum<E>>
voidaddEnumChoice(java.lang.String label, E[] enumArray, E defaultItem)
Adds a group of choices to the dialog with menu items taken from the supplied array ofenum
elements.void
addFileField(java.lang.String label, java.lang.String defaultPath)
Adds a file text field and "Browse" button, where the field width is determined by the length of 'defaultPath', with a minimum of 25 columns.void
addFileField(java.lang.String label, java.lang.String defaultPath, int columns)
void
addHelp(java.lang.String url)
Adds a "Help" button that opens the specified URL in the default browser.void
addImage(ImagePlus image)
Adds an image to the dialog.void
addImageChoice(java.lang.String label, java.lang.String defaultImage)
Adds a popup menu that lists the currently open images.void
addMessage(java.lang.String text)
Adds a message consisting of one or more lines of text.void
addMessage(java.lang.String text, java.awt.Font font)
Adds a message consisting of one or more lines of text, which will be displayed using the specified font.void
addMessage(java.lang.String text, java.awt.Font font, java.awt.Color color)
Adds a message consisting of one or more lines of text, which will be displayed using the specified font and color.void
addNumericField(java.lang.String label, double defaultValue)
Adds a numeric field.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 constraints, 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.void
addRadioButtonGroup(java.lang.String label, java.lang.String[] items, int rows, int columns, java.lang.String defaultItem)
Adds a radio button group.void
addSlider(java.lang.String label, double minValue, double maxValue, double defaultValue)
Adds a slider (scroll bar) to the dialog box.void
addSlider(java.lang.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.txtvoid
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
addToSameRow()
Makes the next item appear in the same row as the previous.void
adjustmentValueChanged(java.awt.event.AdjustmentEvent e)
void
centerDialog(boolean b)
Display dialog centered on the primary screen.void
dispose()
Closes the dialog; records the optionsvoid
enableYesNoCancel()
Make this a "Yes No Cancel" dialog.void
enableYesNoCancel(java.lang.String yesLabel, java.lang.String noLabel)
Make this a "Yes No Cancel" dialog with custom labels.void
focusGained(java.awt.event.FocusEvent e)
void
focusLost(java.awt.event.FocusEvent e)
java.awt.Button[]
getButtons()
Returns references to the "OK" ("Yes"), "Cancel", "No", and "Help" buttons as an array of length 4.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()
static GenericDialog
getInstance()
java.awt.Label
getLabel()
Returns a reference to the label of the most recently added numeric field, string field, choice or slider.java.awt.Component
getMessage()
Returns a reference to the Label or MultiLineLabel created by the last addMessage() call.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.<E extends java.lang.Enum<E>>
EgetNextEnumChoice(java.lang.Class<E> enumClass)
Returns the selected item in the next enum choice menu.ImagePlus
getNextImage()
double
getNextNumber()
Returns the contents of the next numeric field, or NaN if the field does not contain a number.java.lang.String
getNextRadioButton()
Returns the selected item in the next radio button group.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
getRadioButtonGroups()
Returns the Vector that contains the RadioButtonGroups.java.util.Vector
getSliders()
Returns the Vector containing 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 text)
void
hideCancelButton()
Do not display "Cancel" button.boolean
invalidNumber()
Returns true if one or more of the numeric fields contained an invalid number.protected boolean
isMacro()
boolean
isPreviewActive()
Returns 'true' if this dialog has a "Preview" checkbox and it is enabled.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)
double
parseDouble(java.lang.String s)
void
previewRunning(boolean isRunning)
Used by PlugInFilterRunner to provide visable feedback whether preview is running or not by switching from "Preview" to "wait..."void
repaint()
void
resetCounters()
Reset the counters before reading the dialog parametersvoid
setCancelLabel(java.lang.String label)
Sets a replacement label for the "Cancel" button.void
setDefaultString(int index, java.lang.String str)
void
setEchoChar(char echoChar)
Sets the echo character for the next string field.void
setFont(java.awt.Font font)
void
setHelpLabel(java.lang.String label)
Sets a replacement label for the "Help" button.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)void
setLocation(int x, int y)
void
setOKLabel(java.lang.String label)
Sets a replacement label for the "OK" button.void
setSmartRecording(boolean smartRecording)
Unchanged parameters are not recorder in 'smart recording' mode.protected void
setup()
void
showDialog()
Displays this dialog box.void
textValueChanged(java.awt.event.TextEvent e)
boolean
wasCanceled()
Returns true if the user clicked on "Cancel".boolean
wasOKed()
Returns true if the user has clicked on "OK" or a macro is running.void
windowActivated(java.awt.event.WindowEvent e)
void
windowClosed(java.awt.event.WindowEvent e)
void
windowClosing(java.awt.event.WindowEvent e)
void
windowDeactivated(java.awt.event.WindowEvent e)
void
windowDeiconified(java.awt.event.WindowEvent e)
void
windowIconified(java.awt.event.WindowEvent e)
void
windowOpened(java.awt.event.WindowEvent e)
-
Methods inherited from class java.awt.Dialog
addNotify, getAccessibleContext, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, paramString, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, setVisible, show, toBack
-
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, postEvent, processEvent, processWindowEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, 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, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
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
-
radioButtonGroups
protected java.util.Vector radioButtonGroups
-
textArea1
protected java.awt.TextArea textArea1
-
textArea2
protected java.awt.TextArea textArea2
-
defaultValues
protected java.util.Vector defaultValues
-
defaultText
protected java.util.Vector defaultText
-
defaultStrings
protected java.util.Vector defaultStrings
-
defaultChoiceIndexes
protected java.util.Vector defaultChoiceIndexes
-
theLabel
protected java.awt.Component theLabel
-
instance
protected static GenericDialog instance
-
-
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)
Adds a numeric field. The first word of the label must be unique or command recording will not work.- Parameters:
label
- the labeldefaultValue
- value to be initially displayed
-
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 labeldefaultValue
- value to be initially displayeddigits
- 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 labeldefaultValue
- value to be initially displayeddigits
- number of digits to right of decimal pointcolumns
- width of field in charactersunits
- 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 labeldefaultText
- 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 labeldefaultText
- text initially displayedcolumns
- 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.
-
addDirectoryField
public void addDirectoryField(java.lang.String label, java.lang.String defaultPath)
Adds a directory text field and "Browse" button, where the field width is determined by the length of 'defaultPath', with a minimum of 25 columns. Use getNextString to retrieve the directory path. Call OpenDialog.setDefaultDirectory() to set the default directory used when the user clicks on "Browse". Based on the addDirectoryField() method in Fiji's GenericDialogPlus class.- See Also:
OpenDialog.setDefaultDirectory(String)
-
addDirectoryField
public void addDirectoryField(java.lang.String label, java.lang.String defaultPath, int columns)
-
addFileField
public void addFileField(java.lang.String label, java.lang.String defaultPath)
Adds a file text field and "Browse" button, where the field width is determined by the length of 'defaultPath', with a minimum of 25 columns. Use getNextString to retrieve the file path. Based on the addFileField() method in Fiji's GenericDialogPlus class.
-
addFileField
public void addFileField(java.lang.String label, java.lang.String defaultPath, int columns)
-
addButton
public void addButton(java.lang.String label, java.awt.event.ActionListener listener)
Add button to the dialog- Parameters:
label
- button labellistener
- listener to handle the action when pressing the button
-
addImageChoice
public void addImageChoice(java.lang.String label, java.lang.String defaultImage)
Adds a popup menu that lists the currently open images. Call getNextImage() to retrieve the selected image. Based on the addImageChoice() method in Fiji's GenericDialogPlus class.- Parameters:
label
- the labeldefaultImage
- the image title initially selected in the menu or the first image if null
-
getNextImage
public ImagePlus getNextImage()
-
addEnumChoice
public <E extends java.lang.Enum<E>> void addEnumChoice(java.lang.String label, E defaultItem)
Adds a group of choices to the dialog with menu items taken from theenum
class of the specified default item (enum constant). Calls the original (string-based)addChoice(String, String[], String)
method. Usage example:import ij.process.AutoThresholder.Method; ... Method method = Method.Otsu; GenericDialog gd = new GenericDialog("Select AutoThresholder Method"); gd.addEnumChoice("All threshold methods", method); ... gd.showDialog(); ... method = gd.getNextEnumChoice(Method.class);
- Type Parameters:
E
- the generic enum type containing the items to chose from- Parameters:
label
- the label displayed for this choice groupdefaultItem
- the menu item initially selected- See Also:
addEnumChoice(String, Enum[], Enum)
,getNextEnumChoice(Class)
-
addEnumChoice
public <E extends java.lang.Enum<E>> void addEnumChoice(java.lang.String label, E[] enumArray, E defaultItem)
Adds a group of choices to the dialog with menu items taken from the supplied array ofenum
elements. This allows to present only a subset of enum choices in a specified order. A default item (enum constant) must be specified which, ifnull
of not contained in the enum array, is replaced by the first element of the enum array. Calls the original (string-based)addChoice(String, String[], String)
method. Usage example:import ij.process.AutoThresholder.Method; ... Method[] selectMethods = {Method.Triangle, Method.Otsu, Method.Huang}; Method method = Method.Otsu; GenericDialog gd = new GenericDialog("Select AutoThresholder Method"); gd.addEnumChoice("Select threshold methods", selectMethods, method); ... gd.showDialog(); ... method = gd.getNextEnumChoice(Method.class);
- Type Parameters:
E
- the generic enum type containing the items to choose from- Parameters:
label
- the label displayed for this choice groupenumArray
- an array of enum items (of type E)defaultItem
- the menu item initially selected (of type E, may benull
)- See Also:
addEnumChoice(String, Enum)
,getNextEnumChoice(Class)
-
getNextEnumChoice
public <E extends java.lang.Enum<E>> E getNextEnumChoice(java.lang.Class<E> enumClass)
Returns the selected item in the next enum choice menu. Note that 'enumClass' is required to infer the proper enum type. ThrowsIllegalArgumentException
if the selected item is not a defined constant in the specified enum class.- Type Parameters:
E
- the generic enum type- Parameters:
enumClass
- the enum type- Returns:
- the selected item
-
addCheckbox
public void addCheckbox(java.lang.String label, boolean defaultValue)
Adds a checkbox.- Parameters:
label
- the labeldefaultValue
- 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. 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, java.lang.String[] labels, boolean[] defaultValues)
Adds a group of checkboxs using a grid layout.- Parameters:
rows
- the number of rowscolumns
- the number of columnslabels
- the labelsdefaultValues
- the initial states
-
addCheckboxGroup
public void addCheckboxGroup(int rows, int columns, java.lang.String[] labels, boolean[] defaultValues, java.lang.String[] headings)
Adds a group of checkboxs using a grid layout.- Parameters:
rows
- the number of rowscolumns
- the number of columnslabels
- the labelsdefaultValues
- the initial statesheadings
- the column headings Example: http://imagej.nih.gov/ij/plugins/multi-column-dialog/index.html
-
addRadioButtonGroup
public void addRadioButtonGroup(java.lang.String label, java.lang.String[] items, int rows, int columns, java.lang.String defaultItem)
Adds a radio button group.- Parameters:
label
- group label (or null)items
- radio button labelsrows
- number of rowscolumns
- number of columnsdefaultItem
- button initially selected
-
addChoice
public void addChoice(java.lang.String label, java.lang.String[] items, java.lang.String defaultItem)
Adds a popup menu.- Parameters:
label
- the labelitems
- the menu itemsdefaultItem
- the menu item initially selected
-
addMessage
public void addMessage(java.lang.String text)
Adds a message consisting of one or more lines of text.
-
addMessage
public void addMessage(java.lang.String text, java.awt.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(java.lang.String text, java.awt.Font font, java.awt.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(java.lang.String text1, java.lang.String text2, int rows, int columns)
Adds one or two (side by side) text areas. Append "SCROLLBARS_VERTICAL_ONLY" to the text of the first text area to get vertical scrollbars and "SCROLLBARS_BOTH" to get both vertical and horizontal scrollbars.- Parameters:
text1
- initial contents of the first text areatext2
- initial contents of the second text area or nullrows
- the number of rowscolumns
- the number of columns
-
addSlider
public void addSlider(java.lang.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 labelminValue
- the minimum value of the slidermaxValue
- the maximum value of the sliderdefaultValue
- the initial value of the slider
-
addSlider
public void addSlider(java.lang.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(java.awt.Panel panel)
Adds a Panel to the dialog.
-
addPanel
public void addPanel(java.awt.Panel panel, int constraints, 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).
-
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(java.lang.String label)
Sets a replacement label for the "OK" button.
-
setCancelLabel
public void setCancelLabel(java.lang.String label)
Sets a replacement label for the "Cancel" button.
-
setHelpLabel
public void setHelpLabel(java.lang.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(java.lang.String yesLabel, java.lang.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()
Do 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.
-
getValue
protected java.lang.Double getValue(java.lang.String text)
-
parseDouble
public double parseDouble(java.lang.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 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.
-
getNextRadioButton
public java.lang.String getNextRadioButton()
Returns the selected item in the next radio button group.
-
getNextText
public java.lang.String getNextText()
Returns the contents of the next text area.
-
showDialog
public void showDialog()
Displays this dialog box.
-
setFont
public void setFont(java.awt.Font font)
- Overrides:
setFont
in classjava.awt.Container
-
resetCounters
public void resetCounters()
Reset the counters before reading the dialog parameters
-
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 Vector containing the sliders (Scrollbars).
-
getRadioButtonGroups
public java.util.Vector getRadioButtonGroups()
Returns the Vector that contains the RadioButtonGroups.
-
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 the last addMessage() call. Otherwise returns null.
-
getPreviewCheckbox
public java.awt.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 java.awt.Button[] getButtons()
Returns references to the "OK" ("Yes"), "Cancel", "No", and "Help" buttons as an array of length 4. If a button is not present, the corresponding array element is null.
-
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 classjava.awt.Window
-
setDefaultString
public void setDefaultString(int index, java.lang.String str)
-
setup
protected void setup()
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent e)
- Specified by:
actionPerformed
in interfacejava.awt.event.ActionListener
-
textValueChanged
public void textValueChanged(java.awt.event.TextEvent e)
- Specified by:
textValueChanged
in interfacejava.awt.event.TextListener
-
itemStateChanged
public void itemStateChanged(java.awt.event.ItemEvent e)
- Specified by:
itemStateChanged
in interfacejava.awt.event.ItemListener
-
focusGained
public void focusGained(java.awt.event.FocusEvent e)
- Specified by:
focusGained
in interfacejava.awt.event.FocusListener
-
focusLost
public void focusLost(java.awt.event.FocusEvent e)
- Specified by:
focusLost
in interfacejava.awt.event.FocusListener
-
keyPressed
public void keyPressed(java.awt.event.KeyEvent e)
- Specified by:
keyPressed
in interfacejava.awt.event.KeyListener
-
keyReleased
public void keyReleased(java.awt.event.KeyEvent e)
- Specified by:
keyReleased
in interfacejava.awt.event.KeyListener
-
keyTyped
public void keyTyped(java.awt.event.KeyEvent e)
- Specified by:
keyTyped
in interfacejava.awt.event.KeyListener
-
getInsets
public java.awt.Insets getInsets()
- Overrides:
getInsets
in classjava.awt.Container
-
adjustmentValueChanged
public void adjustmentValueChanged(java.awt.event.AdjustmentEvent e)
- Specified by:
adjustmentValueChanged
in interfacejava.awt.event.AdjustmentListener
-
repaint
public void repaint()
- Overrides:
repaint
in classjava.awt.Component
-
paint
public void paint(java.awt.Graphics g)
- Overrides:
paint
in classjava.awt.Window
-
windowClosing
public void windowClosing(java.awt.event.WindowEvent e)
- Specified by:
windowClosing
in interfacejava.awt.event.WindowListener
-
addHelp
public void addHelp(java.lang.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 If url is an empty String, pressing the "Help" button does nothing except calling the DialogListeners (if any). See also: setHelpLabel.
-
isMacro
protected boolean isMacro()
-
getInstance
public static GenericDialog getInstance()
-
dispose
public void dispose()
Closes the dialog; records the options- Overrides:
dispose
in classjava.awt.Window
-
getLabel
public java.awt.Label getLabel()
Returns a reference to the label of the most recently added numeric field, string field, choice or slider.
-
windowActivated
public void windowActivated(java.awt.event.WindowEvent e)
- Specified by:
windowActivated
in interfacejava.awt.event.WindowListener
-
windowOpened
public void windowOpened(java.awt.event.WindowEvent e)
- Specified by:
windowOpened
in interfacejava.awt.event.WindowListener
-
windowClosed
public void windowClosed(java.awt.event.WindowEvent e)
- Specified by:
windowClosed
in interfacejava.awt.event.WindowListener
-
windowIconified
public void windowIconified(java.awt.event.WindowEvent e)
- Specified by:
windowIconified
in interfacejava.awt.event.WindowListener
-
windowDeiconified
public void windowDeiconified(java.awt.event.WindowEvent e)
- Specified by:
windowDeiconified
in interfacejava.awt.event.WindowListener
-
windowDeactivated
public void windowDeactivated(java.awt.event.WindowEvent e)
- Specified by:
windowDeactivated
in interfacejava.awt.event.WindowListener
-
-