Package org.insa.graphs.gui
Class AlgorithmPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.insa.graphs.gui.AlgorithmPanel
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,DrawingChangeListener
public class AlgorithmPanel extends javax.swing.JPanel implements DrawingChangeListener
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
AlgorithmPanel.StartActionEvent
-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.ArrayList<javax.swing.JComponent>
components
private javax.swing.JCheckBox
graphicObserverCheckbox
protected NodesInputPanel
nodesInputPanel
private static long
serialVersionUID
protected SolutionPanel
solutionPanel
(package private) java.util.List<java.awt.event.ActionListener>
startActionListeners
private javax.swing.JButton
startAlgoButton
private javax.swing.JCheckBox
textualObserverCheckbox
-
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
-
-
Constructor Summary
Constructors Constructor Description AlgorithmPanel(java.awt.Component parent, java.lang.Class<? extends AbstractAlgorithm<?>> baseAlgorithm, java.lang.String title, java.lang.String[] nodeNames, boolean enableArcFilterSelection)
Create a new AlgorithmPanel with the given parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addStartActionListener(java.awt.event.ActionListener listener)
Add a new start action listener to this class.protected boolean
allNotNull(java.util.List<Node> nodes)
Check if the given list of nodes does not contain anynull
value.protected javax.swing.JComboBox<java.lang.String>
createAlgoritmSelectComboBox(java.lang.Class<? extends AbstractAlgorithm<?>> baseAlgorithm)
Create the combo box for the algorithm selection.protected NodesInputPanel
createNodesInputPanel(java.lang.String[] nodeNames)
Create a node input panel with the given node input names.protected javax.swing.JLabel
createTitleLabel(java.lang.String title)
Create the title JLabel for this panel.void
onDrawingLoaded(Drawing oldDrawing, Drawing newDrawing)
Event fired when a new drawing is loaded.void
onRedrawRequest()
Event fired when a redraw request is emitted - This is typically emitted after a onDrawingLoaded event, but not always, and request that elements are drawn again on the new drawing.void
setEnabled(boolean enabled)
-
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, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, 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
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
nodesInputPanel
protected NodesInputPanel nodesInputPanel
-
solutionPanel
protected SolutionPanel solutionPanel
-
components
private java.util.ArrayList<javax.swing.JComponent> components
-
graphicObserverCheckbox
private final javax.swing.JCheckBox graphicObserverCheckbox
-
textualObserverCheckbox
private final javax.swing.JCheckBox textualObserverCheckbox
-
startAlgoButton
private javax.swing.JButton startAlgoButton
-
startActionListeners
java.util.List<java.awt.event.ActionListener> startActionListeners
-
-
Constructor Detail
-
AlgorithmPanel
public AlgorithmPanel(java.awt.Component parent, java.lang.Class<? extends AbstractAlgorithm<?>> baseAlgorithm, java.lang.String title, java.lang.String[] nodeNames, boolean enableArcFilterSelection)
Create a new AlgorithmPanel with the given parameters.- Parameters:
parent
- Parent component for this panel. Only use for centering dialogs.baseAlgorithm
- Base algorithm for this algorithm panel.title
- Title of the panel.nodeNames
- Names of the input nodes.enableArcFilterSelection
-true
to enableArcInspector
selection.- See Also:
ArcInspectorFactory
-
-
Method Detail
-
createTitleLabel
protected javax.swing.JLabel createTitleLabel(java.lang.String title)
Create the title JLabel for this panel.- Parameters:
title
- Title for the label.- Returns:
- A new JLabel containing the given title with proper font.
-
createAlgoritmSelectComboBox
protected javax.swing.JComboBox<java.lang.String> createAlgoritmSelectComboBox(java.lang.Class<? extends AbstractAlgorithm<?>> baseAlgorithm)
Create the combo box for the algorithm selection.- Parameters:
baseAlgorithm
- Base algorithm for which the select box should be created.- Returns:
- A new JComboBox containing algorithms for the given base algorithm.
- See Also:
AlgorithmFactory
-
createNodesInputPanel
protected NodesInputPanel createNodesInputPanel(java.lang.String[] nodeNames)
Create a node input panel with the given node input names.- Parameters:
nodeNames
- Field names for the inputs to create.- Returns:
- A new NodesInputPanel containing inputs for the given names.
-
allNotNull
protected boolean allNotNull(java.util.List<Node> nodes)
Check if the given list of nodes does not contain anynull
value.- Parameters:
nodes
- List ofNode
to check.- Returns:
true
if the list does not contain anynull
value,false
otherwise.
-
setEnabled
public void setEnabled(boolean enabled)
- Overrides:
setEnabled
in classjavax.swing.JComponent
-
addStartActionListener
public void addStartActionListener(java.awt.event.ActionListener listener)
Add a new start action listener to this class.- Parameters:
listener
- Listener to add.
-
onDrawingLoaded
public void onDrawingLoaded(Drawing oldDrawing, Drawing newDrawing)
Description copied from interface:DrawingChangeListener
Event fired when a new drawing is loaded.- Specified by:
onDrawingLoaded
in interfaceDrawingChangeListener
- Parameters:
oldDrawing
- Old drawing, may be null if no drawing exits prior to this one.newDrawing
- New drawing.
-
onRedrawRequest
public void onRedrawRequest()
Description copied from interface:DrawingChangeListener
Event fired when a redraw request is emitted - This is typically emitted after a onDrawingLoaded event, but not always, and request that elements are drawn again on the new drawing.- Specified by:
onRedrawRequest
in interfaceDrawingChangeListener
-
-