ikayaki.gui
Class MeasurementSequencePanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by ikayaki.gui.ProjectComponent
                      extended by ikayaki.gui.MeasurementSequencePanel
All Implemented Interfaces:
MeasurementListener, ProjectListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible

public class MeasurementSequencePanel
extends ProjectComponent

Shows the measurements of a project and provides controls for modifying the sequence.

Author:
Esko Luontola
See Also:
Serialized Form

Nested Class Summary
private  class MeasurementSequencePanel.HeaderPopupMenu
          Popup menu for selecting which columns to show in the sequence table.
private  class MeasurementSequencePanel.MyFormatterFactory
          Sets the format for the JFormattedTextFields of this panel.
private  class MeasurementSequencePanel.SequencePopupMenu
          Popup menu for removing and adding steps from the sequence, and saving steps as a preset sequence.
 
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.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
private  JButton addSequenceButton
           
private  JPanel controlsPane
           
private  MeasurementDetailsPanel detailsPanel
           
private  JComboBox loadSequenceBox
           
private  JLabel loadSequenceLabel
           
private  JFormattedTextField sequenceStartField
           
private  ComponentFlasher sequenceStartFieldFlasher
           
private  JLabel sequenceStartLabel
           
private  JFormattedTextField sequenceStepField
           
private  ComponentFlasher sequenceStepFieldFlasher
           
private  JLabel sequenceStepLabel
           
private  JFormattedTextField sequenceStopField
           
private  ComponentFlasher sequenceStopFieldFlasher
           
private  JLabel sequenceStopLabel
           
private  JTable sequenceTable
           
private  MeasurementSequenceTableModel sequenceTableModel
           
private  JLabel stepValueTypeLabel
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
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
MeasurementSequencePanel()
          Creates default MeasurementSequencePanel.
 
Method Summary
private  void $$$setupUI$$$()
          Method generated by IntelliJ IDEA GUI Designer !!!
private  void addSequence()
          Adds sequence determined by textfields to end of table.
 MeasurementDetailsPanel getDetailsPanel()
          Returns the component that will show the details of the active measurement step.
private  double getLastPositiveStepValue()
          Returns the latest stepValue which is greater than 0.
private  double getLastStepValue()
          Returns the stepValue of the last step.
 JTable getSequenceTable()
          Returns the table containing all displayed measurement sequence data.
 void measurementUpdated(MeasurementEvent event)
          Does nothing; subclasses override this if they want to listen MeasurementEvents.
 void projectUpdated(ProjectEvent event)
          Updates the sequence table on project data change.
private  void resetAddSequence()
          Resets the values for the Start-Step-Stop fields.
private  void resetLoadSequenceBox()
          Rebuilds the contents of the loadSequenceBox combobox by getting the saved sequences from the settings.
private  void scrollToRow(int rowIndex)
          Scrolls the table to show the specified row.
 void setEnabled(boolean enabled)
          Sets whether or not this component is enabled.
 void setProject(Project project)
          Sets the project whose sequence is shown in the table.
private  void updateColumns()
          Resize the table's columns to fit the content.
 
Methods inherited from class ikayaki.gui.ProjectComponent
getParentFrame, getProject
 
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, 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, getWidth, getVisibleRect, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, 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, transferFocusBackward, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

sequenceTable

private JTable sequenceTable

sequenceTableModel

private MeasurementSequenceTableModel sequenceTableModel

sequenceStartField

private JFormattedTextField sequenceStartField

sequenceStepField

private JFormattedTextField sequenceStepField

sequenceStopField

private JFormattedTextField sequenceStopField

sequenceStartFieldFlasher

private ComponentFlasher sequenceStartFieldFlasher

sequenceStepFieldFlasher

private ComponentFlasher sequenceStepFieldFlasher

sequenceStopFieldFlasher

private ComponentFlasher sequenceStopFieldFlasher

addSequenceButton

private JButton addSequenceButton

loadSequenceBox

private JComboBox loadSequenceBox

stepValueTypeLabel

private JLabel stepValueTypeLabel

sequenceStartLabel

private JLabel sequenceStartLabel

sequenceStepLabel

private JLabel sequenceStepLabel

sequenceStopLabel

private JLabel sequenceStopLabel

loadSequenceLabel

private JLabel loadSequenceLabel

controlsPane

private JPanel controlsPane

detailsPanel

private MeasurementDetailsPanel detailsPanel
Constructor Detail

MeasurementSequencePanel

public MeasurementSequencePanel()
Creates default MeasurementSequencePanel.

Method Detail

getDetailsPanel

public MeasurementDetailsPanel getDetailsPanel()
Returns the component that will show the details of the active measurement step.


getSequenceTable

public JTable getSequenceTable()
Returns the table containing all displayed measurement sequence data.


resetLoadSequenceBox

private void resetLoadSequenceBox()
Rebuilds the contents of the loadSequenceBox combobox by getting the saved sequences from the settings.


updateColumns

private void updateColumns()
Resize the table's columns to fit the content.


getLastPositiveStepValue

private double getLastPositiveStepValue()
Returns the latest stepValue which is greater than 0. If none is found, returns 0.


getLastStepValue

private double getLastStepValue()
Returns the stepValue of the last step. The returned value is 0 or greater. If there are no steps, returns 0.


resetAddSequence

private void resetAddSequence()
Resets the values for the Start-Step-Stop fields.


addSequence

private void addSequence()
Adds sequence determined by textfields to end of table. If successful, resets the values for the Start-Step-Stop fields and moves the focus to the Start field. If unsuccessful, indicates the invalid text fields by blinking.


setEnabled

public void setEnabled(boolean enabled)
Sets whether or not this component is enabled. Affects all measurement sequence controls.

Overrides:
setEnabled in class JComponent
Parameters:
enabled - true if this component should be enabled, false otherwise

setProject

public void setProject(Project project)
Sets the project whose sequence is shown in the table. Sets project listeners, enables or disables the sequence edit controls and updates the table data.

Overrides:
setProject in class ProjectComponent
Parameters:
project - new active project, or null to make no project active.

scrollToRow

private void scrollToRow(int rowIndex)
Scrolls the table to show the specified row.


projectUpdated

public void projectUpdated(ProjectEvent event)
Updates the sequence table on project data change. The TableModel does not need to listen to ProjectEvents.

Specified by:
projectUpdated in interface ProjectListener
Overrides:
projectUpdated in class ProjectComponent
Parameters:
event - ProjectEvent received.

measurementUpdated

public void measurementUpdated(MeasurementEvent event)
Description copied from class: ProjectComponent
Does nothing; subclasses override this if they want to listen MeasurementEvents.

Specified by:
measurementUpdated in interface MeasurementListener
Overrides:
measurementUpdated in class ProjectComponent
Parameters:
event - MeasurementEvent received.

$$$setupUI$$$

private void $$$setupUI$$$()
Method generated by IntelliJ IDEA GUI Designer !!! IMPORTANT !!! DO NOT edit this method OR call it in your code!