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 BaseButton
m_ButtonCheck
the "check flow" button.protected BaseButton
m_ButtonLoad
the "load flow" button.protected BaseButton
m_ButtonNew
the "new flow" button.protected BaseButton
m_ButtonRun
the "run flow" button.protected BaseButton
m_ButtonSave
the "save flow" button.protected FlowFileChooser
m_FileChooserFlow
the file chooser for the flows.protected ImageFileChooser
m_FileChooserImage
the file chooser for the pictures.protected JLabel
m_LabelProgress
the label for the progress.protected ImageOverlay
m_LastImageOverlayOriginal
the last image overlay in use (original).protected ImageOverlay
m_LastImageOverlayProcessed
the last image overlay in use (processed).protected AbstractObjectLocator
m_LastObjectLocatorOriginal
the last object locator in use (original).protected AbstractObjectLocator
m_LastObjectLocatorProcessed
the last object locator in use (processed).protected JMenuBar
m_MenuBar
the menu bar, if used.protected JMenuItem
m_MenuItemEditRedo
the menu item "redo".protected JMenuItem
m_MenuItemEditUndo
the menu item "undo".protected JMenuItem
m_MenuItemFileClose
the menu item "close".protected JMenuItem
m_MenuItemFileCloseAll
the menu item "close all".protected JMenu
m_MenuItemFileLoadRecent
the "load recent" submenu.protected JMenuItem
m_MenuItemFileOpen
the menu item "open".protected JMenuItem
m_MenuItemViewHorizontal
the menu item "horizontal".protected JMenuItem
m_MenuItemViewVertical
the menu item "vertical".protected JMenuItem
m_MenuViewLocateObjects
the menu "locate objects".protected JMenuItem
m_MenuViewRemoveOverlays
the menu "remove overlays".protected ImageProcessorMultiPagePane
m_MultiPagePane
the tabbed pane for the images.protected FlowPanel
m_PanelFlow
the flow panel.protected RecentFilesHandlerWithCommandline<JMenu>
m_RecentFilesHandler
the recent files handler.protected BaseSplitPane
m_SplitPane
the split pane.protected TitleGenerator
m_TitleGenerator
for generating the title.static String
SESSION_FILE
the 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 boolean
checkFlow(boolean silent)
Checks the flow.void
cleanUp()
Cleans up data structures, frees up memory.protected void
close()
Closes the current image.protected void
closeAll()
Closes all images.protected void
exit()
Exits the viewer.protected void
finishInit()
finishes the initialization.ImageProcessorSubPanel[]
getAllPanels()
Returns all the image panels.File
getCurrentFile()
Returns the current filename.ImageProcessorSubPanel
getCurrentPanel()
Returns the image panel in the currently selected tab.File
getFileAt(int index)
Returns the current filename.FlowPanel
getFlow()
Returns the panel for the flow.JMenuBar
getMenuBar()
Creates a menu bar (singleton per panel object).ImageProcessorSubPanel
getPanelAt(int index)
Returns the image panel of the specified tab.int
getPanelCount()
Returns the number of panels in the multi-page pane.TitleGenerator
getTitleGenerator()
Returns the title generator in use.Undo
getUndo()
Returns the current undo manager, can be null.protected void
initGUI()
Initializes the widgets.protected void
initialize()
Initializes the members.boolean
isUndoSupported()
Returns whether an Undo manager is currently available.void
load(File file)
Loads the specified file in a new panel.void
load(File file, ImageReader reader)
Loads the specified file in a new panel.protected void
loadFlow()
Allows the user to load a flow snippet.protected void
newFlow()
Replaces the current flow snippet with an empty one.protected void
open()
Opens an image.void
redo()
performs an redo if possible.protected void
runFlow()
Runs the flow.protected void
saveFlow()
Allows the user to save the current flow snippet.ImageOverlay
selectImageOverlay(ImageOverlay last)
Displays a dialog for the user to configure an image overlay and then returns it.AbstractObjectLocator
selectObjectLocator(AbstractObjectLocator last)
Displays a dialog for the user to configure an object locator and then returns it.void
setScale(double value, boolean original)
Sets the scaling factor (0-16).void
undo()
performs an undo if possible.protected void
update()
Updates the title and menu.protected void
updateMenu()
updates the enabled state of the menu items.protected void
updateTitle()
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:
initialize
in classBasePanel
-
finishInit
protected void finishInit()
finishes the initialization.- Overrides:
finishInit
in 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:
getMenuBar
in 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:
cleanUp
in interfaceCleanUpHandler
-
-