schmitzm.geotools.feature
Class FeatureTypeBuilderTableModel

java.lang.Object
  extended by javax.swing.table.AbstractTableModel
      extended by schmitzm.swing.table.AbstractTableModel
          extended by schmitzm.swing.table.AbstractMutableTableModel
              extended by schmitzm.geotools.feature.FeatureTypeBuilderTableModel
All Implemented Interfaces:
Serializable, TableModel, MutableTableModel

public class FeatureTypeBuilderTableModel
extends AbstractMutableTableModel

Diese Klasse stellt ein TableModel auf einem "unfertigen" SimpleFeatureType dar. Dieses definiert vier Spalten:

  1. Attribut-Name als Text-Eingabe
  2. Attribut-Typ als Auswahl-Feld
  3. "Nillable"-Eigenschaft als Check-Box
  4. "AutoValue"-Eigenschaft als Check-Box
  5. Standard-Wert als Text-Eingabe
Da das TableModel auf einem FeatureTypeBuilder basiert, bietet es die Moeglichkeit, Attribute hinzuzufuegen oder zu loeschen.

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)
See Also:
Serialized Form

Nested Class Summary
protected  class FeatureTypeBuilderTableModel.AttributeDefinition
          Defines an Attribute displayed in the table.
 
Field Summary
static Class<?>[] ATTR_TYPES
          Zur Verfuegung stehende Attribut-Typen.
static String[] ATTR_TYPES_DESC
           
protected  Vector<FeatureTypeBuilderTableModel.AttributeDefinition> attrDefinitions
          Die in der Tabelle dargestellten Attribute.
protected  SimpleFeatureTypeBuilder featureTypeBuilder
          SimpleFeatureTypeBuilder der in der Tabelle dargestellt wird.
 
Fields inherited from class schmitzm.swing.table.AbstractTableModel
colNames
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
FeatureTypeBuilderTableModel()
          Erstellt ein leeres Tabellen-Modell.
FeatureTypeBuilderTableModel(SimpleFeatureType type, String typeName)
          Erstellt ein neues Tabellen-Modell.
 
Method Summary
 String[] createColumnNames()
          Liefert die Spaltennamen der Tabelle.
 SimpleFeatureType createFeatureType()
          Erzeugt einen neuen SimpleFeatureType, aus den in der Tabelle dargestellen Attributen.
 int getRowCount()
          Liefert die Anzahl an Attributen in der Tabelle.
 Object getValueAt(int rowIndex, int columnIndex)
          Liefert einen Wert der Tabelle.
 void initTable(JTable table)
          Setzt CellRenderer und CellEditor fuer die Tabelle, sowie eine adaequate Zeilen-Hoehe.
 boolean isCellEditable(int rowIndex, int columnIndex)
          Prueft, ob eine Tabellen-Zelle editierbar ist.
 void performAddRow()
          Fuegt der Tabelle ein neues Standard-Attribut hinzu.
 void performChangeData(int row, int col)
          Macht nichts.
 void performRemoveRow(int row)
          Entfernt ein Attribut aus der Tabelle.
 void setFeatureType(SimpleFeatureType ftype, String typeName)
          Setzt den FeatureTypeBuilder, der in der Tabelle dargestellt wird.
 void setValueAt(Object value, int rowIndex, int columnIndex)
          Setzt einen Wert der Tabelle.
 
Methods inherited from class schmitzm.swing.table.AbstractTableModel
getColumnCount, getColumnName, getColumnNames
 
Methods inherited from class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, removeTableModelListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface schmitzm.swing.table.MutableTableModel
fireTableDataChanged
 
Methods inherited from interface javax.swing.table.TableModel
addTableModelListener, getColumnClass, getColumnCount, getColumnName, removeTableModelListener
 

Field Detail

ATTR_TYPES

public static final Class<?>[] ATTR_TYPES
Zur Verfuegung stehende Attribut-Typen.


ATTR_TYPES_DESC

public static final String[] ATTR_TYPES_DESC

attrDefinitions

protected Vector<FeatureTypeBuilderTableModel.AttributeDefinition> attrDefinitions
Die in der Tabelle dargestellten Attribute.


featureTypeBuilder

protected SimpleFeatureTypeBuilder featureTypeBuilder
SimpleFeatureTypeBuilder der in der Tabelle dargestellt wird.

Constructor Detail

FeatureTypeBuilderTableModel

public FeatureTypeBuilderTableModel()
Erstellt ein leeres Tabellen-Modell.


FeatureTypeBuilderTableModel

public FeatureTypeBuilderTableModel(SimpleFeatureType type,
                                    String typeName)
Erstellt ein neues Tabellen-Modell.

Parameters:
type - ein SimpleFeatureType, der editiert wird
typeName - (neuer) Name fuer via createFeatureType() erzeugte SimpleFeatureType (wenn null, wird der Name von type verwendet oder ein Default!)
Method Detail

createColumnNames

public String[] createColumnNames()
Liefert die Spaltennamen der Tabelle.

Specified by:
createColumnNames in class AbstractTableModel

initTable

public void initTable(JTable table)
Setzt CellRenderer und CellEditor fuer die Tabelle, sowie eine adaequate Zeilen-Hoehe.

Specified by:
initTable in interface MutableTableModel
Overrides:
initTable in class AbstractMutableTableModel
Parameters:
table - Tabelle, in der das TableModel dargestellt wird

getRowCount

public int getRowCount()
Liefert die Anzahl an Attributen in der Tabelle.


setFeatureType

public void setFeatureType(SimpleFeatureType ftype,
                           String typeName)
Setzt den FeatureTypeBuilder, der in der Tabelle dargestellt wird. Dieser wird mit den Attributen des angegebenen SimpleFeatureType initialisiert

Parameters:
ftype - SimpleFeatureType
typeName - new name for the SimpleFeatureType (can be null)

createFeatureType

public SimpleFeatureType createFeatureType()
Erzeugt einen neuen SimpleFeatureType, aus den in der Tabelle dargestellen Attributen.


isCellEditable

public boolean isCellEditable(int rowIndex,
                              int columnIndex)
Prueft, ob eine Tabellen-Zelle editierbar ist.

Specified by:
isCellEditable in interface TableModel
Overrides:
isCellEditable in class AbstractTableModel
Returns:
true fuer jede Zelle

getValueAt

public Object getValueAt(int rowIndex,
                         int columnIndex)
Liefert einen Wert der Tabelle.

Parameters:
rowIndex - Zeilen-Index (beginnend bei 0)
columnIndex - Spalten-Index (beginnend bei 0)

setValueAt

public void setValueAt(Object value,
                       int rowIndex,
                       int columnIndex)
Setzt einen Wert der Tabelle.

Specified by:
setValueAt in interface TableModel
Overrides:
setValueAt in class AbstractTableModel
Parameters:
value - neuer Wert
rowIndex - Zeilen-Index (beginnend bei 0)
columnIndex - Spalten-Index (beginnend bei 0)

performAddRow

public void performAddRow()
Fuegt der Tabelle ein neues Standard-Attribut hinzu.


performChangeData

public void performChangeData(int row,
                              int col)
Macht nichts.

Parameters:
row - Zeilennummer
col - Spalzennummer

performRemoveRow

public void performRemoveRow(int row)
Entfernt ein Attribut aus der Tabelle.

Parameters:
row - Zeilennummer