Package org.ka2ddo.yaac.gui
Class TopoLevelEditor
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.ka2ddo.yaac.gui.TopoLevelEditor
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,CellEditor
,TableCellEditor
,TableModel
This class edits the colors, step levels, and step intervals used for drawing topographic lines and
regions with the TopoLayer class. It shows a table of all the color change points in the table with
the altitude (in current height units), the color, and a ColorChooser for changing the color associated
with a specific selected level.
- Author:
- Andrew Pavlin, KA2DDO
- See Also:
-
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 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
ConstructorDescriptionTopoLevelEditor
(TopoLayer topoLayer) Create a TopoLevelEditor for the specified instance of TopoLayer. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a listener to the list that's notified when the editor stops, or cancels editing.void
Adds a listener to the list that is notified each time a change to the data model occurs.void
Tells the editor to cancel editing and not accept any partially edited value.Returns the value contained in the editor.Class<?>
getColumnClass
(int columnIndex) Returns the most specific superclass for all the cell values in the column.int
Returns the number of columns in the model.getColumnName
(int columnIndex) Returns the localized name of the column atcolumnIndex
.int
Returns the number of rows in the model.getTableCellEditorComponent
(JTable table, Object value, boolean isSelected, int row, int column) Sets an initialvalue
for the editor.getValueAt
(int rowIndex, int columnIndex) Returns the value for the cell atcolumnIndex
androwIndex
.boolean
isCellEditable
(int rowIndex, int columnIndex) Returns true if the cell atrowIndex
andcolumnIndex
is editable.boolean
isCellEditable
(EventObject anEvent) Asks the editor if it can start editing usinganEvent
.void
Removes a listener from the list that's notifiedvoid
Removes a listener from the list that is notified each time a change to the data model occurs.void
setValueAt
(Object aValue, int rowIndex, int columnIndex) Sets the value in the cell atcolumnIndex
androwIndex
toaValue
.boolean
shouldSelectCell
(EventObject anEvent) Returns true if the editing cell should be selected, false otherwise.boolean
Tells the editor to stop editing and accept any partially edited value as the value of the editor.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, 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
-
Constructor Details
-
TopoLevelEditor
Create a TopoLevelEditor for the specified instance of TopoLayer.- Parameters:
topoLayer
- TopoLayer whose parameters are to be edited
-
-
Method Details
-
getRowCount
public int getRowCount()Returns the number of rows in the model. AJTable
uses this method to determine how many rows it should display. This method should be quick, as it is called frequently during rendering.- Specified by:
getRowCount
in interfaceTableModel
- Returns:
- the number of rows in the model
- See Also:
-
getColumnCount
public int getColumnCount()Returns the number of columns in the model.- Specified by:
getColumnCount
in interfaceTableModel
- Returns:
- the number of columns in the model
- See Also:
-
getColumnName
Returns the localized name of the column atcolumnIndex
.- Specified by:
getColumnName
in interfaceTableModel
- Parameters:
columnIndex
- the index of the column- Returns:
- the name of the column
-
getColumnClass
Returns the most specific superclass for all the cell values in the column. This is used by theJTable
to set up a default renderer and editor for the column.- Specified by:
getColumnClass
in interfaceTableModel
- Parameters:
columnIndex
- the index of the column- Returns:
- the common ancestor class of the object values in the model.
-
isCellEditable
public boolean isCellEditable(int rowIndex, int columnIndex) Returns true if the cell atrowIndex
andcolumnIndex
is editable. Otherwise,setValueAt
on the cell will not change the value of that cell.- Specified by:
isCellEditable
in interfaceTableModel
- Parameters:
rowIndex
- the row whose value to be queriedcolumnIndex
- the column whose value to be queried- Returns:
- true if the cell is editable
- See Also:
-
getValueAt
Returns the value for the cell atcolumnIndex
androwIndex
.- Specified by:
getValueAt
in interfaceTableModel
- Parameters:
rowIndex
- the row whose value is to be queriedcolumnIndex
- the column whose value is to be queried- Returns:
- the value Object at the specified cell
-
setValueAt
Sets the value in the cell atcolumnIndex
androwIndex
toaValue
.- Specified by:
setValueAt
in interfaceTableModel
- Parameters:
aValue
- the new valuerowIndex
- the row whose value is to be changedcolumnIndex
- the column whose value is to be changed- See Also:
-
addTableModelListener
Adds a listener to the list that is notified each time a change to the data model occurs.- Specified by:
addTableModelListener
in interfaceTableModel
- Parameters:
l
- the TableModelListener
-
removeTableModelListener
Removes a listener from the list that is notified each time a change to the data model occurs.- Specified by:
removeTableModelListener
in interfaceTableModel
- Parameters:
l
- the TableModelListener
-
getTableCellEditorComponent
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) Sets an initialvalue
for the editor. This will cause the editor tostopEditing
and lose any partially edited value if the editor is editing when this method is called.Returns the component that should be added to the client's
Component
hierarchy. Once installed in the client's hierarchy this component will then be able to draw and receive user input.- Specified by:
getTableCellEditorComponent
in interfaceTableCellEditor
- Parameters:
table
- theJTable
that is asking the editor to edit; can benull
value
- the value of the cell to be edited; it is up to the specific editor to interpret and draw the value. For example, if value is the string "true", it could be rendered as a string or it could be rendered as a check box that is checked.null
is a valid valueisSelected
- true if the cell is to be rendered with highlightingrow
- the row of the cell being editedcolumn
- the column of the cell being edited- Returns:
- the component for editing
-
getCellEditorValue
Returns the value contained in the editor.- Specified by:
getCellEditorValue
in interfaceCellEditor
- Returns:
- the value contained in the editor
-
isCellEditable
Asks the editor if it can start editing usinganEvent
.anEvent
is in the invoking component coordinate system. The editor can not assume the Component returned bygetCellEditorComponent
is installed. This method is intended for the use of client to avoid the cost of setting up and installing the editor component if editing is not possible. If editing can be started this method returns true.- Specified by:
isCellEditable
in interfaceCellEditor
- Parameters:
anEvent
- the event the editor should use to consider whether to begin editing or not- Returns:
- true if editing can be started
- See Also:
-
shouldSelectCell
Returns true if the editing cell should be selected, false otherwise. Typically, the return value is true, because is most cases the editing cell should be selected. However, it is useful to return false to keep the selection from changing for some types of edits. eg. A table that contains a column of check boxes, the user might want to be able to change those checkboxes without altering the selection. (See Netscape Communicator for just such an example) Of course, it is up to the client of the editor to use the return value, but it doesn't need to if it doesn't want to.- Specified by:
shouldSelectCell
in interfaceCellEditor
- Parameters:
anEvent
- the event the editor should use to start editing- Returns:
- true if the editor would like the editing cell to be selected; otherwise returns false
- See Also:
-
stopCellEditing
public boolean stopCellEditing()Tells the editor to stop editing and accept any partially edited value as the value of the editor. The editor returns false if editing was not stopped; this is useful for editors that validate and can not accept invalid entries.- Specified by:
stopCellEditing
in interfaceCellEditor
- Returns:
- true if editing was stopped; false otherwise
-
cancelCellEditing
public void cancelCellEditing()Tells the editor to cancel editing and not accept any partially edited value.- Specified by:
cancelCellEditing
in interfaceCellEditor
-
addCellEditorListener
Adds a listener to the list that's notified when the editor stops, or cancels editing.- Specified by:
addCellEditorListener
in interfaceCellEditor
- Parameters:
l
- the CellEditorListener
-
removeCellEditorListener
Removes a listener from the list that's notified- Specified by:
removeCellEditorListener
in interfaceCellEditor
- Parameters:
l
- the CellEditorListener
-