de.guibuilder.framework
Class GuiTable

java.lang.Object
  |
  +--de.guibuilder.framework.GuiMember
        |
        +--de.guibuilder.framework.GuiElement
              |
              +--de.guibuilder.framework.GuiComponent
                    |
                    +--de.guibuilder.framework.GuiTable
All Implemented Interfaces:
MemberAble, java.io.Serializable

public class GuiTable
extends GuiComponent

Implementierung einer Tabellen-Komponente.

Der Inhalt der Tabelle kann mit Excel ausgetauscht werden:
Mit Ctrl-C wird der sellektierte Bereich der Tabelle kopiert; mit Shift-Ctrl-C die gesamte Tabelle einschließlich der Spaltenüberschriften.

See Also:
GuiTableRow, Serialized Form

Field Summary
 
Fields inherited from class de.guibuilder.framework.GuiComponent
BOOLEAN, DATA_TYPE_NAMES, DATE, ENUM, INTEGER, linkColumn, linkTable, MULTILINE, NUMBER, STRING, TABLE, TIME, TREE
 
Fields inherited from class de.guibuilder.framework.GuiElement
actionChange, actionDblClick
 
Fields inherited from class de.guibuilder.framework.GuiMember
GUI_ACTION, GUI_COMPONENT, GUI_CONTAINER, GUI_TABLE, GUI_TREE, GUI_TYPE_NAMES, hasMouseListener, OID
 
Constructor Summary
GuiTable()
          Erzeugt eine Tabelle mit dem Namen "table".
GuiTable(java.lang.String name)
          Erzeugt eine Tabelle mit einem definierten Namen.
 
Method Summary
 void addColumn(TableColumnAble comp, java.lang.String title, int width)
          Fügt der Tabelle eine neue Spalte hinzu.
 void addRow(GuiTableRow row)
          Fügt eine Zeile der Tabelle hinzu.
 void click(java.awt.event.MouseEvent e)
          Wenn die Tabelle angeklickt wird, wird CurrentTable bei Rootpane gesetzt
 void copyRow()
          Kopiert die selektierte Zeile in eine interne Variable.
 void d_click(java.awt.event.MouseEvent e)
          Tabelle wird doppelt geklickt.
 void deleteRow()
          Löscht die selektierte Zeile aus der Tabelle.
 void deleteRow(int row)
          Löscht die angegebene Zeile aus der Tabelle.
 java.util.Vector getAllValues(boolean modified)
           
 electric.xml.Document getAllValuesXml()
          Liefert den Inhalt der Tabelle als XML-Document.
 java.lang.String getCellValue(int col)
          Liefert den Inhalt der angegebenen Spalte aus der selektierten Zeile
 java.lang.String getCellValue(int row, int col)
          Liefert den Inhalt einer Zelle
 int getColCount()
          Liefert die Anzahl der mit addColumn(de.guibuilder.framework.TableColumnAble, java.lang.String, int) hinzugefügten Columns.
 java.util.Vector getColumnIdentifiers()
          Liefert einen Vector mit den Namen der Spalten.
 int getColumnIndex(java.lang.String colName)
          Liefert den Index der Spalte unter Angabe ihres Namens.
 java.lang.String[] getColValues(int col)
          Liefert den Inhalt einer Spalte als einen Array von Strings.
 int getDataType()
          Liefert den Datentyp der Componente.
 java.util.Vector getDeletedRows()
          Liefert die seit dem letzten reset geöschten Zeilen.
 de.guibuilder.framework.GuiTable.GuiTableModel getGuiModel()
          Liefert das TableModel.
 int getGuiType()
          Liefert GUI_TABLE
 javax.swing.JComponent getJComponent()
          Liefert JTable
 java.lang.String getMsgColHeaderClick()
           
 java.lang.String getMsgRowClick()
           
 GuiTableRow getRow(int index)
          Liefert die angegebene Zeile.
 int getRowCount()
          Liefert die Anzahl der Zeilen in der Tabelle.
 java.util.Vector getRowValues()
          Liefert den Inhalt der selektierten Zeile
 java.util.Vector getRowValues(int index)
          Liefert den Inhalt der angegebenen Tabellenzeile als Vector.
 java.util.Vector getSearchables(java.util.Vector ret)
          Liefert die Liste der ausgefüllten Suchfelder.
 int getSelectedColumn()
           
 int getSelectedRow()
           
 java.util.Vector getTableRows()
          Liefert der Inhalt der Tabelle als Vector von TableRows
 java.lang.String getTag()
          Liefert den XML-Element-Tag für den Member.
 java.lang.Object getValue()
          Liefert den Inhalt der Tabelle als einen Vector von Vectoren.
 void initRows(int rows)
          Initialisiert die Tabelle mit der angegeben Zahl von leeren Zeilen.
 GuiTableRow insertRow()
          Fügt zur Laufzeit eine leere Zeile der Tabelle am Ende hinzu.
 void insertRow(GuiTableRow row)
          Fügt zur Laufzeit eine Zeile der Tabelle am Ende hinzu.
 void insertRow(int row)
          Fügt zur Laufzeit eine leere Zeile an der angegebenen Zeile in die Tabelle ein.
 void insertRow(int row, GuiTableRow tableRow)
          Fügt zur Laufzeit eine Zeile in die Tabelle ein.
 void pasteRow()
          Fügt die gelöschte oder kopierte Zeile ein wenn sich nicht null ist.
 void reset()
          Leert die Tabelle
 void setAllValuesXml(electric.xml.Element node)
          Füllt die Tabelle mit Werten aus einem XML-Document.
 void setColumnValue(java.lang.Object obj, int colIndex)
          Setzt den Wert einer Spalte der selektierten Zeile neu.
 void setColumnValue(java.lang.Object obj, int colIndex, int rowIndex)
          Setzt den Wert einer Spalte der angegebenen Zeile neu.
 void setColumnValue(java.lang.Object obj, java.lang.String colName)
          Setzt den Wert einer Spalte der selektierten Zeile neu.
 void setColValues(int col, java.lang.String[] values)
          Setzt den Inhalt einer Tabellenspalte neu (StringArray).
 void setColValues(int col, java.util.Vector values)
          Setzt den Inhalt einer Tabellenspalte neu.
 void setFocus(int row, int col)
          Setzt den Focus auf die angegebene Zelle.
 void setItems(int colIndex, java.lang.String[] items)
          Füllt die Combobox der angegebenen Spalte mit neuen Werten.
 void setItems(int colIndex, java.util.Vector items)
          Füllt die Combobox der angegebenen Spalte mit neuen Werten.
 void setModelValues(GuiModel model)
          Setzt den Inhalt der Komponente auf den Inhalt des Models der über getElementPath erreichbar ist.
 void setMsgColHeaderClick(java.lang.String cmd)
          Teilt der Komponente mit, daß sie ein ColumnHeaderClick-Ereignis an den Controler weiterreichen soll.
 void setMsgRowClick(java.lang.String cmd)
           
 void setRowEditor(java.lang.String name)
          Es wird ein Spezifikations-Script gesetzt, welcher beim Doppelklick auf die Tabelle aufgerufen wird.
 void setRowValues(int row, java.util.Vector values)
          Setzt die Werte einer Tabellenzeile neu (Vector).
 void setSelectionListener()
          Setzt den SelectionListener der Tabelle (inner Class).
 void setValue(java.lang.Object val)
          Ersetzt den Inhalt der Tabelle durch einen neuen Vector von Vectoren.
 void setValueAt(java.lang.Object val, int row, int col)
          Setzt den Wert einer Zelle neu
 void stopCellEditing()
           
 void tableReady()
          Teilt der Tabelle mit, daß die Initialisierung der Tabelle mit Spalten und Zeilen beendet ist.
 
Methods inherited from class de.guibuilder.framework.GuiComponent
getDataTypeName, getMaxlen, getMinlen, getModelValues, isModified, isNotnull, setMaxlen, setMinlen, setModified, setNotnull, verify
 
Methods inherited from class de.guibuilder.framework.GuiElement
getFileName, getHint, getMsgChange, getMsgDblClick, getParentTable, getRootPane, isEnabled, requestFocus, setEnabled, setHint, setMsgChange, setMsgDblClick, setMsgLostFocus, setParentTable
 
Methods inherited from class de.guibuilder.framework.GuiMember
getBackground, getConstraints, getControler, getElementName, getFont, getForeground, getFullName, getGuiParent, getGuiTypeName, getLabel, getMaximumSize, getMinimumSize, getMsgMouseOver, getName, getOid, getParentNames, getParentTab, getPreferredSize, getRef, getToolTipText, getUserObject, getXValue, isVisible, setBackground, setConstraints, setControler, setFont, setForeground, setGuiParent, setLabel, setMaximumSize, setMinimumSize, setMsgMouseMoved, setMsgMouseOver, setName, setOid, setPopupMenu, setPreferredSize, setRef, setToolTipText, setUserObject, setVisible
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GuiTable

public GuiTable()
Erzeugt eine Tabelle mit dem Namen "table".


GuiTable

public GuiTable(java.lang.String name)
Erzeugt eine Tabelle mit einem definierten Namen.

Method Detail

getTag

public final java.lang.String getTag()
Description copied from class: GuiMember
Liefert den XML-Element-Tag für den Member.

Specified by:
getTag in interface MemberAble
Specified by:
getTag in class GuiMember

getJComponent

public final javax.swing.JComponent getJComponent()
Liefert JTable

Specified by:
getJComponent in class GuiMember

getGuiType

public final int getGuiType()
Liefert GUI_TABLE

Overrides:
getGuiType in class GuiComponent

getDataType

public final int getDataType()
Description copied from class: GuiComponent
Liefert den Datentyp der Componente.

Denkbare Werte sind:

Specified by:
getDataType in class GuiComponent

setMsgColHeaderClick

public final void setMsgColHeaderClick(java.lang.String cmd)
Teilt der Komponente mit, daß sie ein ColumnHeaderClick-Ereignis an den Controler weiterreichen soll. Bei Übergaben von null wird die Weiterleitung abgeschaltet. Diese Methode muß vor der Methode tableReady() aufgerufen werden.

Parameters:
cmd - ActionCommand dieser Message
See Also:
tableReady()

getMsgColHeaderClick

public final java.lang.String getMsgColHeaderClick()

setMsgRowClick

public final void setMsgRowClick(java.lang.String cmd)

getMsgRowClick

public final java.lang.String getMsgRowClick()

addColumn

public final void addColumn(TableColumnAble comp,
                            java.lang.String title,
                            int width)
Fügt der Tabelle eine neue Spalte hinzu. Die Spalten sind in der gewünschten Reihenfolge zuzuweisen. Erlaubte Komponenten sind GuiText (und davon abgeleitete Klassen wie Date, Time, Money, Number), GuiCombo, GuiCheck, GuiLabel, Hidden.

Es wird die minimale und die maximale Breite der Komponente übernommen.
Bei unsichtbaren Komponenten wird die Breite auf Null gesetzt.

Achtung!
Diese Methode darf nur für neu erstellte Tabellen verwendet werden, die anfangs mit Spalten initialisiert werden sollen. Am Ende die Initialisierung muß die Methode tableReady() aufgerufen werden!

Parameters:
comp - Eine Komponente
title - Spaltenüberschrift
width - Preferred Width in Pixeln.
Throws:
java.lang.IllegalArgumentException - wenn unzulässige Komponente übergeben wird.
See Also:
tableReady()

getColCount

public final int getColCount()
Liefert die Anzahl der mit addColumn(de.guibuilder.framework.TableColumnAble, java.lang.String, int) hinzugefügten Columns.


getRowCount

public final int getRowCount()
Liefert die Anzahl der Zeilen in der Tabelle.


addRow

public final void addRow(GuiTableRow row)
Fügt eine Zeile der Tabelle hinzu.

Achtung!
Diese Methode darf nur für neu erstellte Tabellen verwendet werden, die anfangs mit Zeilen initialisiert werden sollen. Am Ende die Initialisierung muß die Methode tableReady() aufgerufen werden!

Sollen zur Laufzeit später Zeilen hinzugefügt werden, ist insertRow() zu verwenden.

Parameters:
row - Eine GuiTableRow

getRow

public final GuiTableRow getRow(int index)
Liefert die angegebene Zeile.


getColumnIdentifiers

public final java.util.Vector getColumnIdentifiers()
Liefert einen Vector mit den Namen der Spalten.


getColumnIndex

public int getColumnIndex(java.lang.String colName)
Liefert den Index der Spalte unter Angabe ihres Namens.

Parameters:
colName - Name der Spalte; siehe Attribut name=
Returns:
Den Index der Spalte im ColumnModel oder -1, wenn der Name der Spalte ungültig ist.

setColumnValue

public final void setColumnValue(java.lang.Object obj,
                                 int colIndex)
Setzt den Wert einer Spalte der selektierten Zeile neu.


setColumnValue

public final void setColumnValue(java.lang.Object obj,
                                 java.lang.String colName)
Setzt den Wert einer Spalte der selektierten Zeile neu.

Parameters:
obj - Der zu setzende Wert

setColumnValue

public final void setColumnValue(java.lang.Object obj,
                                 int colIndex,
                                 int rowIndex)
Setzt den Wert einer Spalte der angegebenen Zeile neu.


setRowValues

public final void setRowValues(int row,
                               java.util.Vector values)
Setzt die Werte einer Tabellenzeile neu (Vector).
Die Spalten werden dabei von links nach rechts mit den Werten des übergebenen Vector aufgefüllt; dieser Vector darf auch kleiner oder länger als die Zahl der Spalten sein; überzählige Spalten werden abgeschnitten.

Throws:
java.lang.IllegalArgumentException - Wenn row negativ oder größer als die Zahl der Zeilen ist.

setColValues

public final void setColValues(int col,
                               java.util.Vector values)
Setzt den Inhalt einer Tabellenspalte neu.
Die Spalten werden von oben nach unten mit den Werten gefüllt. Der übergebene Vector darf auch kleiner oder größer als die Anzahl der Zeilen sein.

Hinweis:
Mit initRows kann eine Tabelle mit einer definierten Anzehl von leeren Zeilen initialisiert werden.

Throws:
java.lang.IllegalArgumentException - wenn col negativ oder größer als die Zahl der Spalten ist.

setColValues

public final void setColValues(int col,
                               java.lang.String[] values)
Setzt den Inhalt einer Tabellenspalte neu (StringArray).


getColValues

public final java.lang.String[] getColValues(int col)
Liefert den Inhalt einer Spalte als einen Array von Strings.


setFocus

public final void setFocus(int row,
                           int col)
Setzt den Focus auf die angegebene Zelle.

Parameters:
row - zu selektierende Zeile
col - zu selektierende Spalte; wenn -1 dann nur die Zeile selektieren.

tableReady

public final void tableReady()
Teilt der Tabelle mit, daß die Initialisierung der Tabelle mit Spalten und Zeilen beendet ist.

Erst hier wird das TableModel und das ColumnsModel eingerichtet.

Außerdem wird ein MouseListener eingerichtet, der das Anklicken der Spaltenköpfe weiterleitet wenn dieses gewünscht ist.

See Also:
addColumn(de.guibuilder.framework.TableColumnAble, java.lang.String, int), addRow(de.guibuilder.framework.GuiTableRow), setMsgColHeaderClick(java.lang.String), GuiRootPane#obj_TblHeaderClick

setSelectionListener

public final void setSelectionListener()
Setzt den SelectionListener der Tabelle (inner Class).


insertRow

public final GuiTableRow insertRow()
Fügt zur Laufzeit eine leere Zeile der Tabelle am Ende hinzu.

Returns:
Die neue Zeile
See Also:
addRow(de.guibuilder.framework.GuiTableRow)

insertRow

public final void insertRow(int row)
Fügt zur Laufzeit eine leere Zeile an der angegebenen Zeile in die Tabelle ein.

Parameters:
row - Zeilennummer 0-relativ.

insertRow

public final void insertRow(GuiTableRow row)
Fügt zur Laufzeit eine Zeile der Tabelle am Ende hinzu.

Parameters:
row - Eine GuiTableRow
See Also:
addRow(de.guibuilder.framework.GuiTableRow)

insertRow

public final void insertRow(int row,
                            GuiTableRow tableRow)
Fügt zur Laufzeit eine Zeile in die Tabelle ein.

Parameters:
row - Index der Tabelle, an der die Zeile eingefügt werden soll.
tableRow -

deleteRow

public final void deleteRow()
Löscht die selektierte Zeile aus der Tabelle. Tut nichts, wenn keine Zeile selektiert ist.

See Also:
pasteRow()

deleteRow

public final void deleteRow(int row)
Löscht die angegebene Zeile aus der Tabelle. Wirft eine Exception bei ungültiger Zeilennummer.

See Also:
pasteRow()

copyRow

public final void copyRow()
Kopiert die selektierte Zeile in eine interne Variable. Tut nichts, wenn keine Zeile selektiert ist.

See Also:
pasteRow()

pasteRow

public final void pasteRow()
Fügt die gelöschte oder kopierte Zeile ein wenn sich nicht null ist.
Wenn keine Zeile selektiert ist, wird sie am Ende der Tabelle angefügt.


setValue

public final void setValue(java.lang.Object val)
Ersetzt den Inhalt der Tabelle durch einen neuen Vector von Vectoren. Jeder innere Vector entspricht eine Zeile in der Tabelle.
Der Zeilen-Vector muß Strings enthalten bis auf die Checkboxen, die ein Boolean erwarten.
Wird hier null übergeben, wird der Inhalt der Tabelle gelöscht.

Overrides:
setValue in class GuiComponent
See Also:
GuiComponent.setModified(boolean), GuiComponent.isModified()

setValueAt

public final void setValueAt(java.lang.Object val,
                             int row,
                             int col)
Setzt den Wert einer Zelle neu

Parameters:
val - String, Boolean
row - Zeilennummer 0-relativ
col - Spaltennummer 0-relativ

setItems

public final void setItems(int colIndex,
                           java.util.Vector items)
Füllt die Combobox der angegebenen Spalte mit neuen Werten. Wirft eine IllefalArgumentException, wenn die Spalte keine ComboBox hält.

Parameters:
colIndex - Spalte der Tabelle (0-relativ)
items - Vector von String

setItems

public final void setItems(int colIndex,
                           java.lang.String[] items)
Füllt die Combobox der angegebenen Spalte mit neuen Werten. Wirft eine IllefalArgumentException, wenn die Spalte keine ComboBox hält.

Parameters:
colIndex - Spalte der Tabelle (0-relativ)
items - Array von Strings

reset

public final void reset()
Leert die Tabelle

Overrides:
reset in class GuiMember

initRows

public final void initRows(int rows)
Initialisiert die Tabelle mit der angegeben Zahl von leeren Zeilen.


getValue

public final java.lang.Object getValue()
Liefert den Inhalt der Tabelle als einen Vector von Vectoren.
Es wird ein Clone dieses Vectors zurückgegeben.

Specified by:
getValue in class GuiComponent

getGuiModel

public final de.guibuilder.framework.GuiTable.GuiTableModel getGuiModel()
Liefert das TableModel.

Im Unterschied zu getModel wird hier auf GuiTableModel ge-cast-ed.


getDeletedRows

public final java.util.Vector getDeletedRows()
Liefert die seit dem letzten reset geöschten Zeilen.
Seit dem letzten reset neu eingefügte und wieder gelöschte Zeilen werden hier nicht aufgeführt.


getAllValues

public final java.util.Vector getAllValues(boolean modified)

getAllValuesXml

public final electric.xml.Document getAllValuesXml()
Liefert den Inhalt der Tabelle als XML-Document.


setAllValuesXml

public final void setAllValuesXml(electric.xml.Element node)
Füllt die Tabelle mit Werten aus einem XML-Document. Der Knoten "Table" muß "Row" und "Row" muß "Component" enthalten.

Throws:
java.lang.IllegalArgumentException - wenn NodeName != "Table"

setModelValues

public void setModelValues(GuiModel model)
Setzt den Inhalt der Komponente auf den Inhalt des Models der über getElementPath erreichbar ist. Wird von GuiTable und GuiTree überschrieben. Voraussetzung ist, daß ein Attribut "element" spezifiziert ist.

Overrides:
setModelValues in class GuiComponent

getSearchables

public final java.util.Vector getSearchables(java.util.Vector ret)
Liefert die Liste der ausgefüllten Suchfelder. Funktioniert nur, wenn die Tabelle genau eine Zeile hat. XXX PENDING funktioniert leider garnicht!


getCellValue

public final java.lang.String getCellValue(int row,
                                           int col)
Liefert den Inhalt einer Zelle


getCellValue

public final java.lang.String getCellValue(int col)
Liefert den Inhalt der angegebenen Spalte aus der selektierten Zeile


getRowValues

public final java.util.Vector getRowValues()
Liefert den Inhalt der selektierten Zeile


getTableRows

public final java.util.Vector getTableRows()
Liefert der Inhalt der Tabelle als Vector von TableRows

See Also:
GuiTableRow

getRowValues

public final java.util.Vector getRowValues(int index)
Liefert den Inhalt der angegebenen Tabellenzeile als Vector. Wirft eine Exception, wenn rowNumber außerhalb des gültigen Bereichs ist.


setRowEditor

public final void setRowEditor(java.lang.String name)
Es wird ein Spezifikations-Script gesetzt, welcher beim Doppelklick auf die Tabelle aufgerufen wird.


click

public final void click(java.awt.event.MouseEvent e)
Wenn die Tabelle angeklickt wird, wird CurrentTable bei Rootpane gesetzt

Overrides:
click in class GuiMember
See Also:
GuiRootPane#setCurrentTable

d_click

public final void d_click(java.awt.event.MouseEvent e)
Tabelle wird doppelt geklickt. Ein ggf. registrierter Editor für die Tabellenzeile wird gestartet.

Overrides:
d_click in class GuiMember
See Also:
GuiMouseListener, GuiRootPane#obj_DblClick

getSelectedRow

public final int getSelectedRow()

getSelectedColumn

public final int getSelectedColumn()

stopCellEditing

public final void stopCellEditing()