jigcell.compare.views
Class ProgrammableDataGeneratorEditor

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 jigcell.compare.ui.PanelTab
                      extended by jigcell.compare.ui.DataEditorPanelTab
                          extended by jigcell.compare.views.ProgrammableDataGeneratorEditor
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.event.ItemListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, ITab, IDataEditorTab
Direct Known Subclasses:
ObjectiveEditor, TransformEditor

public abstract class ProgrammableDataGeneratorEditor
extends DataEditorPanelTab
implements java.awt.event.ActionListener, IDataEditorTab, java.awt.event.ItemListener

Supports shared functionality between the transform and objective editors.

This code is licensed under the DARPA BioCOMP Open Source License. See LICENSE for more details.

Author:
Nicholas Allen
See Also:
Serialized Form

Nested Class Summary
protected  class ProgrammableDataGeneratorEditor.SetReadHelper
          Helper class for performing read operations on other threads.
 
Nested classes/interfaces inherited from class jigcell.compare.ui.DataEditorPanelTab
DataEditorPanelTab.ReadHelper
 
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
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected static java.lang.String BUTTON_ADD
          Label for add button
protected  javax.swing.JViewport customizer
          Customizer for object
protected  java.util.List localNames
          List of object names created in this editor
protected  IDataGeneratorList localObjects
          List of objects created in this editor
protected  java.lang.String NAME_CUSTOMIZERS
          Name for customizers requested by this component
protected  java.util.List names
          Selectable object names
protected  ListComboBoxModel objectModel
          Model for object list
protected  IDataGeneratorList objects
          List of known objects
protected  IDataGeneratorList primitives
          List of primitives to build objects out of
protected  java.lang.String propertyKey
          Edit property key to advertise in events
protected  java.lang.String resourceKey
          Resource key to advertise in events
protected static java.lang.String TITLE_NAMEPOPUP
          Title of popup dialog for inputting name
 
Fields inherited from class jigcell.compare.ui.DataEditorPanelTab
CONFIG_RECENTSOURCE, CONFIG_RECENTSOURCECOUNT, exception, manager, MENU_OPENRECENT, MENUBAR_DEFAULT, menuManager, menus, MESSAGE_LOADERROR, MESSAGE_LOADING, MESSAGE_SAVEERROR, OPTION_CHOOSEROPEN, OPTION_CHOOSERSAVE, PROPERTY_RECENTSOURCETARGET, READ_LOCK, recentReadablesMenu, TOOLBAR_DEFAULT
 
Fields inherited from class jigcell.compare.ui.PanelTab
compare, configMarkers, PATH_ABOUT, PATH_DESCRIPTION_ABOUT, tabName
 
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 jigcell.compare.ITab
CONFIG_TABNAME, STATE_ENDINITIALIZE, STATE_ENDUI, STATE_INITIALIZE, STATE_RUNNING, STATES
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ProgrammableDataGeneratorEditor(Compare compare, java.lang.String configMarker)
          Creates a new editor for working with transorm or objective functions.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
           
 void add()
          Adds a new object.
abstract  void add(java.lang.String name)
          Adds a new object.
protected  void add(java.lang.String name, IProgrammableDataGenerator object)
          Adds a new object.
protected  void cleanup(IProgrammableDataGenerator object)
          Performs any necessary cleanup operations on an object before it's removed from the view.
 void clear()
          Deletes all objects owned by this editor.
 void clearAndNew()
          Create a new data set for editing.
protected abstract  javax.swing.JFileChooser createFileChooserSet()
          A file chooser specialized for the view.
protected  IDataGeneratorList createObjects()
          A list of objects for the view.
protected  void createPrimitiveList(java.lang.String property)
          Constructs a list of primitives for this editor.
 void delete(IProgrammableDataGenerator object)
          Deletes an object owned by this editor.
 void duplicate()
          Duplicates the currently selected object.
abstract  void duplicate(java.lang.String name)
          Duplicates the currently selected object.
protected  void indexNames(IDataGeneratorList generators, java.util.List names)
          Creates a sorted index of names from a list of generators.
protected  void initialize()
          Performs any initialization work for the view.
 void loadSet(IReadableDataSource source)
          Loads the data for the view from some external source.
 void loadSetDirect(IReadableDataSource source)
          Loads the data for the view from some external source without user prompting.
protected  java.lang.String promptForName(java.lang.String initial, java.lang.String accept)
          Prompts for an object name.
 void propertyChange(java.beans.PropertyChangeEvent e)
           
protected  void readInternal(java.lang.Object readResult)
          Processes data that has been read from some external source.
protected  void readInternalSet(java.lang.Object readResult)
          Imports all of the entries from the range of a data generator map.
protected  void readNotify()
          Notifies listeners after a read operation has completed.
 void rename(IProgrammableDataGenerator object)
          Renames an object.
 void setCurrentSource(IWriteableDataSource source)
          Sets the current data source to work from.
protected  void setCustomizerView(IProgrammableDataGenerator object)
          Updates the customizer view for the edited object.
protected  void updateList()
          Updates the internal list of objects to match the master list.
protected  void updateNames()
          Updates the names of all known objects.
protected  void write(IWriteableDataSource source)
          Writes data to some external source.
 
Methods inherited from class jigcell.compare.ui.DataEditorPanelTab
addRecentSource, createFileChooser, createMenus, createReadableRecentSourceMenuItems, createTools, getCurrentSource, getRecentSource, getRecentSourceCount, load, loadDirect, loadRecentSource, readConfiguration, save, saveDirect
 
Methods inherited from class jigcell.compare.ui.PanelTab
createAboutDialog, createAboutDialogForTab, createConfigEditor, createUI, getCompare, getConfigForView, getConfigMarkers, getHostIdentifier, getName
 
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, getVisibleRect, getWidth, 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, setEnabled, 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, 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
 
Methods inherited from interface jigcell.compare.ui.IDataEditorTab
getCurrentSource, load, loadDirect, save, saveDirect
 
Methods inherited from interface jigcell.compare.ITab
createAboutDialog, createConfigEditor, getName, readConfiguration
 
Methods inherited from interface java.awt.event.ItemListener
itemStateChanged
 

Field Detail

BUTTON_ADD

protected static final java.lang.String BUTTON_ADD
Label for add button

See Also:
Constant Field Values

TITLE_NAMEPOPUP

protected static final java.lang.String TITLE_NAMEPOPUP
Title of popup dialog for inputting name

See Also:
Constant Field Values

localObjects

protected IDataGeneratorList localObjects
List of objects created in this editor


objects

protected IDataGeneratorList objects
List of known objects


primitives

protected IDataGeneratorList primitives
List of primitives to build objects out of


customizer

protected javax.swing.JViewport customizer
Customizer for object


localNames

protected java.util.List localNames
List of object names created in this editor


names

protected java.util.List names
Selectable object names


objectModel

protected ListComboBoxModel objectModel
Model for object list


NAME_CUSTOMIZERS

protected final java.lang.String NAME_CUSTOMIZERS
Name for customizers requested by this component


propertyKey

protected java.lang.String propertyKey
Edit property key to advertise in events


resourceKey

protected java.lang.String resourceKey
Resource key to advertise in events

Constructor Detail

ProgrammableDataGeneratorEditor

public ProgrammableDataGeneratorEditor(Compare compare,
                                       java.lang.String configMarker)
Creates a new editor for working with transorm or objective functions.

Parameters:
compare - Comparator backend to interface with
configMarker - Marker for retrieving configuration information from Comparator backend
Method Detail

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Specified by:
actionPerformed in interface java.awt.event.ActionListener

add

public void add()
Adds a new object.


add

public abstract void add(java.lang.String name)
Adds a new object.

Parameters:
name - Name of object

clear

public void clear()
Deletes all objects owned by this editor.

Specified by:
clear in interface IDataEditorTab

clearAndNew

public void clearAndNew()
Create a new data set for editing.

Specified by:
clearAndNew in interface IDataEditorTab

delete

public void delete(IProgrammableDataGenerator object)
Deletes an object owned by this editor.

Parameters:
object - Object to delete

duplicate

public void duplicate()
Duplicates the currently selected object.


duplicate

public abstract void duplicate(java.lang.String name)
Duplicates the currently selected object.

Parameters:
name - Name of new object

loadSet

public void loadSet(IReadableDataSource source)
Loads the data for the view from some external source.

Parameters:
source - Data source to read from

loadSetDirect

public void loadSetDirect(IReadableDataSource source)
Loads the data for the view from some external source without user prompting.

Parameters:
source - Data source to read from

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent e)
Specified by:
propertyChange in interface java.beans.PropertyChangeListener
Overrides:
propertyChange in class PanelTab

rename

public void rename(IProgrammableDataGenerator object)
Renames an object.

Parameters:
object - Object to rename

setCurrentSource

public void setCurrentSource(IWriteableDataSource source)
Sets the current data source to work from.

Specified by:
setCurrentSource in interface IDataEditorTab
Overrides:
setCurrentSource in class DataEditorPanelTab
Parameters:
source - Data source

add

protected void add(java.lang.String name,
                   IProgrammableDataGenerator object)
Adds a new object.

Parameters:
name - Name of object
object - Object

cleanup

protected void cleanup(IProgrammableDataGenerator object)
Performs any necessary cleanup operations on an object before it's removed from the view.

Parameters:
object - Object

createFileChooserSet

protected abstract javax.swing.JFileChooser createFileChooserSet()
A file chooser specialized for the view.


createObjects

protected IDataGeneratorList createObjects()
A list of objects for the view.


createPrimitiveList

protected void createPrimitiveList(java.lang.String property)
Constructs a list of primitives for this editor.

Parameters:
property - Configuration property that lists the primitive classes

indexNames

protected void indexNames(IDataGeneratorList generators,
                          java.util.List names)
Creates a sorted index of names from a list of generators.

Parameters:
generators - List of data generators
names - List to store names in

initialize

protected void initialize()
Performs any initialization work for the view.

Overrides:
initialize in class DataEditorPanelTab

promptForName

protected java.lang.String promptForName(java.lang.String initial,
                                         java.lang.String accept)
Prompts for an object name. Returns null if no valid selection was made.

Parameters:
initial - Initial value to provide for name
accept - Text for accept button

readInternal

protected void readInternal(java.lang.Object readResult)
                     throws java.lang.Exception
Processes data that has been read from some external source.

Overrides:
readInternal in class DataEditorPanelTab
Parameters:
readResult - Data
Throws:
java.lang.Exception

readInternalSet

protected void readInternalSet(java.lang.Object readResult)
                        throws java.lang.Exception
Imports all of the entries from the range of a data generator map.

Parameters:
readResult - Data
Throws:
java.lang.Exception

readNotify

protected void readNotify()
Notifies listeners after a read operation has completed.

Overrides:
readNotify in class DataEditorPanelTab

setCustomizerView

protected void setCustomizerView(IProgrammableDataGenerator object)
Updates the customizer view for the edited object.

Parameters:
object - Object

updateList

protected void updateList()
Updates the internal list of objects to match the master list.


updateNames

protected void updateNames()
Updates the names of all known objects.


write

protected void write(IWriteableDataSource source)
              throws java.lang.Exception
Writes data to some external source.

Overrides:
write in class DataEditorPanelTab
Parameters:
source - Data source to write to
Throws:
java.lang.Exception