public class DataTableObjectRenderer
extends java.lang.Object
Diese Klasse liefert zu einem Datensatz (DataTableObject
) alle für seine Darstellung notwendigen Komponenenten, d.h. Spalten- und Zeilen-Header und auch die Felder in Form der hierarchischen Struktur eines RowData
.
Alle abrufbaren Informationen werden erst beim ersten Abruf gebildet.
Modifier and Type | Field and Description |
---|---|
private DataTableObject |
_dataTableObject
speichert einen Datensatz vom Datenverteiler
|
private HeaderGrid |
_header
speichert die Struktur des Spaltenheaders, damit die Nutzdaten damit verknüpft werden können
|
private int |
_headerWidth
speichert die Breite des Headers
|
private int |
_height
speichert die Höhe der Komponente einer Zeile
|
private RowData |
_rowData
speichert die hierarchischen Struktur des Datensatzes
|
private javax.swing.JComponent |
_rowHeaderRow
speichert die zum Datensatz gehörende Zeilenkopf-Komponente
|
private RowKey |
_rowKey
speichert den RowKey
|
private SelectionManager |
_selectionManager
speichert den SelectionManager
|
private javax.swing.JComponent |
_viewportRow
speichert die zum Datensatz gehörende Datenzeilen-Komponente
|
Constructor and Description |
---|
DataTableObjectRenderer(HeaderGrid header,
DataTableObject dataTableObject,
SelectionManager selectionManager)
Der Konstruktor.
|
Modifier and Type | Method and Description |
---|---|
private void |
createRowData()
Erzeugt aus einem Datensatz eine hierarchische Struktur.
|
private javax.swing.JComponent |
createRowHeaderRow(DataTableObject dataTableObject,
java.lang.String format)
Erzeugt anhand der Daten eine neue Zeile im Zeilenheader, bestehend aus einem Zeitstempel und dem dazugehörenden Objekt.
|
private void |
createViewportRow()
Erzeugt aus einem Datensatz eine Swing-Komponente, damit die Daten angezeigt werden können.
|
static java.awt.Color |
getColorForState(DataState dataState)
Legt die Hintergrundfarbe für die “Keine-Daten-Fälle” in Abhängigkeit von dem Status fest.
|
static java.lang.String |
getDatakindText(ArchiveDataKind dataKind)
Ermittelt den 2-Zeichentext für die allererste Spalte der Onlinetabelle, die mit ‘Art’ überschrieben ist.
|
static java.lang.String |
getDatakindTooltipText(ArchiveDataKind dataKind)
Ermittelt den Tooltipp für die allererste Spalte der Onlinetabelle, die mit ‘Art’ überschrieben ist.
|
DataTableObject |
getDataTableObject()
Gibt den Datensatz zurück.
|
private void |
getHeaderWidth(HeaderGrid headerGrid,
RowData rowData) |
int |
getHeight()
Gibt die Höhe dieser Zeile in Pixel zurück.
|
RowData |
getRowData()
Gibt die hierarchische Struktur des Datensatzes zurück.
|
javax.swing.JComponent |
getRowHeaderRow(java.lang.String timeFormat)
Gibt die Komponente des Zeilenkopfes zurück.
|
RowKey |
getRowKey()
Gibt den RowKey zurück.
|
static java.lang.String |
getTextForState(DataState dataState)
Legt einen Text für jeden DataState fest; wird für die “Keine-Daten-Fälle” benötigt.
|
static java.lang.String |
getTimeText(TimingType timingType,
java.lang.String archiveTime,
java.lang.String dataIndexString,
java.lang.String dataTime)
Ermittelt den Text für die zweite Spalte der Onlinetabelle, die mit ‘Zeit’ überschrieben ist.
|
javax.swing.JComponent |
getViewportRow()
Gibt die Komponente der Datenzeile zurück.
|
private void |
linkData(RowData rowData,
HeaderGrid headerGrid)
Rekursive Hilfsmethode.
|
private void |
removeComponents()
Löscht alle nicht mehr benötigten Komponenten, außer des Datensatzes, des Spaltenheaders und der Höhe.
|
private void |
setHeight()
Ermittelt die Höhe der diesen Datensatz repräsentierenden Swing-Komponente.
|
void |
setLinks()
Erstellt die Verbindungen zwischen den Daten und dem Header.
|
private void |
unlinkData(RowData rowData,
HeaderGrid headerGrid)
Rekursive Hilfsmethode.
|
void |
unsetLinks()
Entfernt alle Einträge, außer den Datensatz und die Höhe einer Zeile.
|
private final DataTableObject _dataTableObject
speichert einen Datensatz vom Datenverteiler
private final HeaderGrid _header
speichert die Struktur des Spaltenheaders, damit die Nutzdaten damit verknüpft werden können
private RowData _rowData
speichert die hierarchischen Struktur des Datensatzes
private javax.swing.JComponent _rowHeaderRow
speichert die zum Datensatz gehörende Zeilenkopf-Komponente
private javax.swing.JComponent _viewportRow
speichert die zum Datensatz gehörende Datenzeilen-Komponente
private int _height
speichert die Höhe der Komponente einer Zeile
private int _headerWidth
speichert die Breite des Headers
private final SelectionManager _selectionManager
speichert den SelectionManager
private final RowKey _rowKey
speichert den RowKey
public DataTableObjectRenderer(HeaderGrid header, DataTableObject dataTableObject, SelectionManager selectionManager)
Der Konstruktor.
head
- Element, welches die hierarchische Struktur darstelltdataTableObject
- neuer DatensatzselectionManager
- Selektions-Managerpublic DataTableObject getDataTableObject()
Gibt den Datensatz zurück.
public RowData getRowData()
Gibt die hierarchische Struktur des Datensatzes zurück.
public RowKey getRowKey()
Gibt den RowKey zurück.
public javax.swing.JComponent getRowHeaderRow(java.lang.String timeFormat)
Gibt die Komponente des Zeilenkopfes zurück.
timeFormat
- das gewünschte Formatpublic javax.swing.JComponent getViewportRow()
Gibt die Komponente der Datenzeile zurück.
public int getHeight()
Gibt die Höhe dieser Zeile in Pixel zurück.
public void setLinks()
Erstellt die Verbindungen zwischen den Daten und dem Header. Jedes Blattelement meldet sich beim entsprechenden Blatt im Header an, damit etwaige Größenänderungen vom Header an die Datenstruktur übergeben werden kann.
public void unsetLinks()
Entfernt alle Einträge, außer den Datensatz und die Höhe einer Zeile.
public static java.lang.String getTextForState(DataState dataState)
Legt einen Text für jeden DataState fest; wird für die “Keine-Daten-Fälle” benötigt.
dataState
- der Zustand des Datensatzespublic static java.awt.Color getColorForState(DataState dataState)
Legt die Hintergrundfarbe für die “Keine-Daten-Fälle” in Abhängigkeit von dem Status fest.
dataState
- private void createRowData()
Erzeugt aus einem Datensatz eine hierarchische Struktur.
private void linkData(RowData rowData, HeaderGrid headerGrid)
Rekursive Hilfsmethode. Sie wird von setLinks()
aufgerufen. Die Verbindungen zum Spaltenheader werden hergestellt und die Breite der Komponenten, welche die Daten anzeigen wird initial festgelegt. Diese Methode wird nur ausgeführt, wenn im Datensatz auch Daten vorhanden sind.
rowData
- darzustellende DatenheaderGrid
- Spaltenheaderprivate void getHeaderWidth(HeaderGrid headerGrid, RowData rowData)
private void unlinkData(RowData rowData, HeaderGrid headerGrid)
Rekursive Hilfsmethode. Sie entfernt die Verbindungen zwischen den Daten und dem Spaltenheader. Diese Methode wird nur ausgeführt, wenn auch Daten vorhanden sind.
rowData
- Daten, die mit dem Spaltenheader verbunden sindheaderGrid
- Spaltenheaderpublic static java.lang.String getDatakindText(ArchiveDataKind dataKind)
Ermittelt den 2-Zeichentext für die allererste Spalte der Onlinetabelle, die mit ‘Art’ überschrieben ist.
dataKind
- die ArchiveDataKindpublic static java.lang.String getDatakindTooltipText(ArchiveDataKind dataKind)
Ermittelt den Tooltipp für die allererste Spalte der Onlinetabelle, die mit ‘Art’ überschrieben ist.
dataKind
- die ArchiveDataKindpublic static java.lang.String getTimeText(TimingType timingType, java.lang.String archiveTime, java.lang.String dataIndexString, java.lang.String dataTime)
Ermittelt den Text für die zweite Spalte der Onlinetabelle, die mit ‘Zeit’ überschrieben ist.
timingType
- archiveTime
- dataIndexString
- dataTime
- private javax.swing.JComponent createRowHeaderRow(DataTableObject dataTableObject, java.lang.String format)
Erzeugt anhand der Daten eine neue Zeile im Zeilenheader, bestehend aus einem Zeitstempel und dem dazugehörenden Objekt.
dataTableObject
- das Objekt der Online-Tabelleformat
- das Zeitformat, um Datum und Zeit darzustellenprivate void createViewportRow()
Erzeugt aus einem Datensatz eine Swing-Komponente, damit die Daten angezeigt werden können.
private void setHeight()
Ermittelt die Höhe der diesen Datensatz repräsentierenden Swing-Komponente. Falls die Komponenten extra für die Ermittlung der Höhe erzeugt werden, dann werden sie anschließend auch wieder gelöscht.
private void removeComponents()
Löscht alle nicht mehr benötigten Komponenten, außer des Datensatzes, des Spaltenheaders und der Höhe.