Class TopoLevelEditor

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, CellEditor, TableCellEditor, TableModel

public class TopoLevelEditor extends JPanel implements TableModel, TableCellEditor
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:
  • Constructor Details

    • TopoLevelEditor

      public TopoLevelEditor(TopoLayer topoLayer)
      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. A JTable 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 interface TableModel
      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 interface TableModel
      Returns:
      the number of columns in the model
      See Also:
    • getColumnName

      public String getColumnName(int columnIndex)
      Returns the localized name of the column at columnIndex.
      Specified by:
      getColumnName in interface TableModel
      Parameters:
      columnIndex - the index of the column
      Returns:
      the name of the column
    • getColumnClass

      public Class<?> getColumnClass(int columnIndex)
      Returns the most specific superclass for all the cell values in the column. This is used by the JTable to set up a default renderer and editor for the column.
      Specified by:
      getColumnClass in interface TableModel
      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 at rowIndex and columnIndex is editable. Otherwise, setValueAt on the cell will not change the value of that cell.
      Specified by:
      isCellEditable in interface TableModel
      Parameters:
      rowIndex - the row whose value to be queried
      columnIndex - the column whose value to be queried
      Returns:
      true if the cell is editable
      See Also:
    • getValueAt

      public Object getValueAt(int rowIndex, int columnIndex)
      Returns the value for the cell at columnIndex and rowIndex.
      Specified by:
      getValueAt in interface TableModel
      Parameters:
      rowIndex - the row whose value is to be queried
      columnIndex - the column whose value is to be queried
      Returns:
      the value Object at the specified cell
    • setValueAt

      public void setValueAt(Object aValue, int rowIndex, int columnIndex)
      Sets the value in the cell at columnIndex and rowIndex to aValue.
      Specified by:
      setValueAt in interface TableModel
      Parameters:
      aValue - the new value
      rowIndex - the row whose value is to be changed
      columnIndex - the column whose value is to be changed
      See Also:
    • addTableModelListener

      public void addTableModelListener(TableModelListener l)
      Adds a listener to the list that is notified each time a change to the data model occurs.
      Specified by:
      addTableModelListener in interface TableModel
      Parameters:
      l - the TableModelListener
    • removeTableModelListener

      public void removeTableModelListener(TableModelListener l)
      Removes a listener from the list that is notified each time a change to the data model occurs.
      Specified by:
      removeTableModelListener in interface TableModel
      Parameters:
      l - the TableModelListener
    • getTableCellEditorComponent

      public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)
      Sets an initial value for the editor. This will cause the editor to stopEditing 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 interface TableCellEditor
      Parameters:
      table - the JTable that is asking the editor to edit; can be null
      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 value
      isSelected - true if the cell is to be rendered with highlighting
      row - the row of the cell being edited
      column - the column of the cell being edited
      Returns:
      the component for editing
    • getCellEditorValue

      public Object getCellEditorValue()
      Returns the value contained in the editor.
      Specified by:
      getCellEditorValue in interface CellEditor
      Returns:
      the value contained in the editor
    • isCellEditable

      public boolean isCellEditable(EventObject anEvent)
      Asks the editor if it can start editing using anEvent. anEvent is in the invoking component coordinate system. The editor can not assume the Component returned by getCellEditorComponent 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 interface CellEditor
      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

      public boolean shouldSelectCell(EventObject anEvent)
      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 interface CellEditor
      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 interface CellEditor
      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 interface CellEditor
    • addCellEditorListener

      public void addCellEditorListener(CellEditorListener l)
      Adds a listener to the list that's notified when the editor stops, or cancels editing.
      Specified by:
      addCellEditorListener in interface CellEditor
      Parameters:
      l - the CellEditorListener
    • removeCellEditorListener

      public void removeCellEditorListener(CellEditorListener l)
      Removes a listener from the list that's notified
      Specified by:
      removeCellEditorListener in interface CellEditor
      Parameters:
      l - the CellEditorListener