Package adams.gui.tools
Class ImageProcessorPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- adams.gui.core.BasePanel
-
- adams.gui.tools.ImageProcessorPanel
-
- All Implemented Interfaces:
CleanUpHandler,MenuBarProvider,ImageObserver,MenuContainer,Serializable,Accessible
public class ImageProcessorPanel extends BasePanel implements MenuBarProvider, CleanUpHandler
Interface for processing images using a flow snippet.- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
Fields Modifier and Type Field Description protected BaseButtonm_ButtonCheckthe "check flow" button.protected BaseButtonm_ButtonLoadthe "load flow" button.protected BaseButtonm_ButtonNewthe "new flow" button.protected BaseButtonm_ButtonRunthe "run flow" button.protected BaseButtonm_ButtonSavethe "save flow" button.protected FlowFileChooserm_FileChooserFlowthe file chooser for the flows.protected ImageFileChooserm_FileChooserImagethe file chooser for the pictures.protected JLabelm_LabelProgressthe label for the progress.protected ImageOverlaym_LastImageOverlayOriginalthe last image overlay in use (original).protected ImageOverlaym_LastImageOverlayProcessedthe last image overlay in use (processed).protected AbstractObjectLocatorm_LastObjectLocatorOriginalthe last object locator in use (original).protected AbstractObjectLocatorm_LastObjectLocatorProcessedthe last object locator in use (processed).protected JMenuBarm_MenuBarthe menu bar, if used.protected JMenuItemm_MenuItemEditRedothe menu item "redo".protected JMenuItemm_MenuItemEditUndothe menu item "undo".protected JMenuItemm_MenuItemFileClosethe menu item "close".protected JMenuItemm_MenuItemFileCloseAllthe menu item "close all".protected JMenum_MenuItemFileLoadRecentthe "load recent" submenu.protected JMenuItemm_MenuItemFileOpenthe menu item "open".protected JMenuItemm_MenuItemViewHorizontalthe menu item "horizontal".protected JMenuItemm_MenuItemViewVerticalthe menu item "vertical".protected JMenuItemm_MenuViewLocateObjectsthe menu "locate objects".protected JMenuItemm_MenuViewRemoveOverlaysthe menu "remove overlays".protected ImageProcessorMultiPagePanem_MultiPagePanethe tabbed pane for the images.protected FlowPanelm_PanelFlowthe flow panel.protected RecentFilesHandlerWithCommandline<JMenu>m_RecentFilesHandlerthe recent files handler.protected BaseSplitPanem_SplitPanethe split pane.protected TitleGeneratorm_TitleGeneratorfor generating the title.static StringSESSION_FILEthe file to store the recent files in.-
Fields inherited from class adams.gui.core.BasePanel
m_FileChooser
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Fields inherited from class java.awt.Component
accessibleContext, 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
Constructors Constructor Description ImageProcessorPanel()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancheckFlow(boolean silent)Checks the flow.voidcleanUp()Cleans up data structures, frees up memory.protected voidclose()Closes the current image.protected voidcloseAll()Closes all images.protected voidexit()Exits the viewer.protected voidfinishInit()finishes the initialization.ImageProcessorSubPanel[]getAllPanels()Returns all the image panels.FilegetCurrentFile()Returns the current filename.ImageProcessorSubPanelgetCurrentPanel()Returns the image panel in the currently selected tab.FilegetFileAt(int index)Returns the current filename.FlowPanelgetFlow()Returns the panel for the flow.JMenuBargetMenuBar()Creates a menu bar (singleton per panel object).ImageProcessorSubPanelgetPanelAt(int index)Returns the image panel of the specified tab.intgetPanelCount()Returns the number of panels in the multi-page pane.TitleGeneratorgetTitleGenerator()Returns the title generator in use.UndogetUndo()Returns the current undo manager, can be null.protected voidinitGUI()Initializes the widgets.protected voidinitialize()Initializes the members.booleanisUndoSupported()Returns whether an Undo manager is currently available.voidload(File file)Loads the specified file in a new panel.voidload(File file, ImageReader reader)Loads the specified file in a new panel.protected voidloadFlow()Allows the user to load a flow snippet.protected voidnewFlow()Replaces the current flow snippet with an empty one.protected voidopen()Opens an image.voidredo()performs an redo if possible.protected voidrunFlow()Runs the flow.protected voidsaveFlow()Allows the user to save the current flow snippet.ImageOverlayselectImageOverlay(ImageOverlay last)Displays a dialog for the user to configure an image overlay and then returns it.AbstractObjectLocatorselectObjectLocator(AbstractObjectLocator last)Displays a dialog for the user to configure an object locator and then returns it.voidsetScale(double value, boolean original)Sets the scaling factor (0-16).voidundo()performs an undo if possible.protected voidupdate()Updates the title and menu.protected voidupdateMenu()updates the enabled state of the menu items.protected voidupdateTitle()Updats the title of the dialog/frame if applicable.-
Methods inherited from class adams.gui.core.BasePanel
afterHide, afterShow, beforeHide, beforeShow, closeParent, getParentChild, getParentDialog, getParentFrame, getParentInternalFrame, getParentTitle, initFileChooser, main, printErrorMessage, printException, saveComponent, setEnabledCascade, setEnabledCascade, setParentTitle, setVisible
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
SESSION_FILE
public static final String SESSION_FILE
the file to store the recent files in.- See Also:
- Constant Field Values
-
m_SplitPane
protected BaseSplitPane m_SplitPane
the split pane.
-
m_MultiPagePane
protected ImageProcessorMultiPagePane m_MultiPagePane
the tabbed pane for the images.
-
m_MenuBar
protected JMenuBar m_MenuBar
the menu bar, if used.
-
m_MenuItemFileOpen
protected JMenuItem m_MenuItemFileOpen
the menu item "open".
-
m_MenuItemFileLoadRecent
protected JMenu m_MenuItemFileLoadRecent
the "load recent" submenu.
-
m_MenuItemFileClose
protected JMenuItem m_MenuItemFileClose
the menu item "close".
-
m_MenuItemFileCloseAll
protected JMenuItem m_MenuItemFileCloseAll
the menu item "close all".
-
m_MenuItemViewHorizontal
protected JMenuItem m_MenuItemViewHorizontal
the menu item "horizontal".
-
m_MenuItemViewVertical
protected JMenuItem m_MenuItemViewVertical
the menu item "vertical".
-
m_MenuItemEditUndo
protected JMenuItem m_MenuItemEditUndo
the menu item "undo".
-
m_MenuItemEditRedo
protected JMenuItem m_MenuItemEditRedo
the menu item "redo".
-
m_MenuViewLocateObjects
protected JMenuItem m_MenuViewLocateObjects
the menu "locate objects".
-
m_MenuViewRemoveOverlays
protected JMenuItem m_MenuViewRemoveOverlays
the menu "remove overlays".
-
m_RecentFilesHandler
protected RecentFilesHandlerWithCommandline<JMenu> m_RecentFilesHandler
the recent files handler.
-
m_TitleGenerator
protected TitleGenerator m_TitleGenerator
for generating the title.
-
m_FileChooserImage
protected ImageFileChooser m_FileChooserImage
the file chooser for the pictures.
-
m_FileChooserFlow
protected FlowFileChooser m_FileChooserFlow
the file chooser for the flows.
-
m_PanelFlow
protected FlowPanel m_PanelFlow
the flow panel.
-
m_LabelProgress
protected JLabel m_LabelProgress
the label for the progress.
-
m_ButtonNew
protected BaseButton m_ButtonNew
the "new flow" button.
-
m_ButtonLoad
protected BaseButton m_ButtonLoad
the "load flow" button.
-
m_ButtonSave
protected BaseButton m_ButtonSave
the "save flow" button.
-
m_ButtonCheck
protected BaseButton m_ButtonCheck
the "check flow" button.
-
m_ButtonRun
protected BaseButton m_ButtonRun
the "run flow" button.
-
m_LastObjectLocatorOriginal
protected AbstractObjectLocator m_LastObjectLocatorOriginal
the last object locator in use (original).
-
m_LastObjectLocatorProcessed
protected AbstractObjectLocator m_LastObjectLocatorProcessed
the last object locator in use (processed).
-
m_LastImageOverlayOriginal
protected ImageOverlay m_LastImageOverlayOriginal
the last image overlay in use (original).
-
m_LastImageOverlayProcessed
protected ImageOverlay m_LastImageOverlayProcessed
the last image overlay in use (processed).
-
-
Method Detail
-
initialize
protected void initialize()
Initializes the members.- Overrides:
initializein classBasePanel
-
finishInit
protected void finishInit()
finishes the initialization.- Overrides:
finishInitin classBasePanel
-
update
protected void update()
Updates the title and menu.
-
getTitleGenerator
public TitleGenerator getTitleGenerator()
Returns the title generator in use.- Returns:
- the generator
-
updateTitle
protected void updateTitle()
Updats the title of the dialog/frame if applicable.
-
getCurrentFile
public File getCurrentFile()
Returns the current filename.- Returns:
- the current filename, can be null
-
getFileAt
public File getFileAt(int index)
Returns the current filename.- Parameters:
index- the tab index- Returns:
- the current filename, can be null
-
updateMenu
protected void updateMenu()
updates the enabled state of the menu items.
-
getMenuBar
public JMenuBar getMenuBar()
Creates a menu bar (singleton per panel object). Can be used in frames.- Specified by:
getMenuBarin interfaceMenuBarProvider- Returns:
- the menu bar
-
getCurrentPanel
public ImageProcessorSubPanel getCurrentPanel()
Returns the image panel in the currently selected tab.- Returns:
- the image panel, null if none available
-
getPanelAt
public ImageProcessorSubPanel getPanelAt(int index)
Returns the image panel of the specified tab.- Parameters:
index- the tab index- Returns:
- the image panel, null if none available
-
getAllPanels
public ImageProcessorSubPanel[] getAllPanels()
Returns all the image panels.- Returns:
- the image panels
-
getPanelCount
public int getPanelCount()
Returns the number of panels in the multi-page pane.- Returns:
- the number of panels
-
open
protected void open()
Opens an image.
-
load
public void load(File file)
Loads the specified file in a new panel. Uses default reader.- Parameters:
file- the file to load
-
load
public void load(File file, ImageReader reader)
Loads the specified file in a new panel.- Parameters:
file- the file to loadreader- the reader to use
-
close
protected void close()
Closes the current image.
-
closeAll
protected void closeAll()
Closes all images.
-
exit
protected void exit()
Exits the viewer.
-
getUndo
public Undo getUndo()
Returns the current undo manager, can be null.- Returns:
- the undo manager, if any
-
isUndoSupported
public boolean isUndoSupported()
Returns whether an Undo manager is currently available.- Returns:
- true if an undo manager is set
-
undo
public void undo()
performs an undo if possible.
-
redo
public void redo()
performs an redo if possible.
-
getFlow
public FlowPanel getFlow()
Returns the panel for the flow.- Returns:
- the panel
-
newFlow
protected void newFlow()
Replaces the current flow snippet with an empty one.
-
loadFlow
protected void loadFlow()
Allows the user to load a flow snippet.
-
saveFlow
protected void saveFlow()
Allows the user to save the current flow snippet.
-
checkFlow
protected boolean checkFlow(boolean silent)
Checks the flow.- Parameters:
silent- only pops up a dialog if invalid flow- Returns:
- true if flow ok
-
runFlow
protected void runFlow()
Runs the flow.
-
selectImageOverlay
public ImageOverlay selectImageOverlay(ImageOverlay last)
Displays a dialog for the user to configure an image overlay and then returns it.- Returns:
- the image overaly, null if cancelled
-
selectObjectLocator
public AbstractObjectLocator selectObjectLocator(AbstractObjectLocator last)
Displays a dialog for the user to configure an object locator and then returns it.- Returns:
- the object locator, null if cancelled
-
setScale
public void setScale(double value, boolean original)Sets the scaling factor (0-16). Use -1 to fit inside panel.- Parameters:
value- the scaling factororiginal- if true setting the scale for the original, otherwise for the processed image
-
cleanUp
public void cleanUp()
Cleans up data structures, frees up memory.- Specified by:
cleanUpin interfaceCleanUpHandler
-
-