public class HeaderGrid
extends java.lang.Object
Die Klasse HeaderGrid
dient zur Darstellung einer hierarchischen Struktur (z.B. Baum). Die Darstellung kann dazu verwendet werden, einen verschachtelten Tabellenkopf einer Tabelle zu erstellen. Ein Objekt dieser Klasse besteht aus einem Vater-Element und beliebig vielen Nachfolgern. Bei der Darstellung werden die Nachfolger mittels eines Schiebereglers
voneinander getrennt.
Modifier and Type | Class and Description |
---|---|
(package private) class |
HeaderGrid.Arrow
Erstellt einen Pfeil in einer angegebenen Richtung und Farbe der Größe 5 x 5 Pixel.
|
class |
HeaderGrid.HeaderElement
Diese Klasse repräsentiert eine Zelle des hierarchischen
Spaltenheaders . |
(package private) class |
HeaderGrid.Splitter
Die Klasse implementiert einen Schieberegler.
|
Modifier and Type | Field and Description |
---|---|
private java.util.List<ColumnWidthChangeListener> |
_columnWidthListeners
speichert alle angemeldeten Objekte, u.a. zwecks Größenanpassung
|
private DataViewPanel |
_dataViewPanel
speichert ein Exemplar des DataViewPanels
|
private Debug |
_debug
der Debug-Logger
|
private boolean |
_fromParent
Gibt an, ob die mouseDragged-Methode des Splitters von einem Vaterknoten aus aufgerufen wurde.
|
private HeaderGrid.HeaderElement |
_headerElement
speichert die Attributliste oder das Attribut, welches dargestellt werden soll
|
private int |
_lastColumnWidth
Speichert die Spaltenbreite, bevor die Spalte verkleinert wird.
|
private boolean |
_noNewMouseListener
Verhindert gegebenenfalls das Neuanlegen von MouseListenern.
|
private boolean |
_notClosedByUser
Gibt an, ob die Spalte vom Benutzer nicht geschlossen wurde.
|
private int |
_numberOfColumns
Speichert zu jedem Element die Anzahl der Spalten unter sich.
|
private HeaderGrid |
_parent
Speichert den Vaterknoten.
|
private int |
_percent
Gibt die prozentuale Veränderung des Vater-Elements beim Vergrößern bzw.
|
private HeaderGrid.Splitter |
_splitter
speichert das Objekt des Schiebereglers
|
private java.util.List<HeaderGrid> |
_successors
Liste aller Nachfolger vom Vater-Element
|
Constructor and Description |
---|
HeaderGrid(HeaderGrid parent,
java.lang.Object node,
DataViewPanel dataViewPanel)
Es wird ein Objekt der Klasse
HeaderGrid erzeugt. |
Modifier and Type | Method and Description |
---|---|
void |
addColumnWidthChangeListener(ColumnWidthChangeListener listener)
Objekte, die sich hier anmelden, werden benachrichtigt, sobald im Spaltenheader ein Schieberegler bewegt wird.
|
void |
addHeaderSuccessor(HeaderGrid headerGrid)
Fügt einen Nachfolger hinzu.
|
javax.swing.JPanel |
createHeader()
Erstellt ein Panel aus den im Objekt gesammelten Daten.
|
private javax.swing.JPanel |
createHeaderElement()
Erstellt ein Panel, welches ein Element mit zugehörigem Schieberegler auf der rechten Seite darstellt.
|
HeaderGrid.HeaderElement |
getHeaderElement()
Gibt das Vater-Element zurück.
|
java.util.List<HeaderGrid> |
getHeaderSuccessors()
Gibt die Nachfolger des Grids zurück.
|
int |
getNumberOfColumns()
Gibt die Anzahl der Spalten zurück, die sich unterhalb dieses Grids befinden.
|
int |
getOptimalColumnWidth()
Liefert die optimale Spaltenbreite, so dass alle Einträge zu sehen sind.
|
HeaderGrid.Splitter |
getSplitter()
Gibt den Schieberegler zurück.
|
private java.awt.GridBagConstraints |
makeGBC(int gridx,
int gridy,
int gridwidth,
int gridheight,
double weightx,
double weighty)
Hilfsfunktion zur Konstruktion des Panels.
|
void |
makeSimilar(HeaderGrid otherHeaderGrid)
Macht dieses HeaderGrid dem übergebenen ähnlich.
|
void |
removeAllMouseListeners()
Entfernt alle MouseListener, MouseMotianListener und MouseWheelListener der Komponenten.
|
private void |
removeAllMouseListeners(java.awt.Component component) |
void |
removeColumnWidthChangeListener(ColumnWidthChangeListener rowListener)
Objekt, welches beim Listener wieder abgemeldet werden soll.
|
private void |
setArrowIcons(HeaderGrid otherHeaderGrid)
Setzt Arrows wie im übergebenen HeaderGrid.
|
private void |
setClosingStates(HeaderGrid otherHeaderGrid)
Setzt die Offen/Geschlossen-Stati auf die Werte des übergebenen HeaderGrids.
|
private void |
setColumnWidths(HeaderGrid otherHeaderGrid)
Setzt die Breiten aller Spalten auf die Werte des übergebenen HeaderGrids.
|
private void |
setFromParentValues(HeaderGrid otherHeaderGrid)
Setzt die FromParent-Werte.
|
private void |
setHeaderCursors(HeaderGrid grid,
int cursor)
Setzt bei allen Komponenten den Cursor, sobald der Schieberegler betätigt wird.
|
private void |
setLastColumnWidths(HeaderGrid otherHeaderGrid)
Setzt die Last-Column-Width-Werte.
|
private void |
setNumberOfColumns(HeaderGrid otherHeaderGrid)
Setzt die Anzahl der Spalten im Splitter
|
void |
setNumberOfColumns(int numberOfColumns)
Setzt die Anzahl der Spalten, die sich unterhalb dieses Grids befinden.
|
private void |
setPercentValues(HeaderGrid otherHeaderGrid)
Setzt die Percent-Werte.
|
private void |
setPositions(HeaderGrid otherHeaderGrid)
Setzt die Position des Mauszeigers im Splitter
|
void |
setRowWidth(int width)
An alle angemeldeten Objekte wird die neue Breite der veränderten Spalte übergeben.
|
private Debug _debug
der Debug-Logger
private final HeaderGrid.Splitter _splitter
speichert das Objekt des Schiebereglers
private final HeaderGrid.HeaderElement _headerElement
speichert die Attributliste oder das Attribut, welches dargestellt werden soll
private final java.util.List<HeaderGrid> _successors
Liste aller Nachfolger vom Vater-Element
private final java.util.List<ColumnWidthChangeListener> _columnWidthListeners
speichert alle angemeldeten Objekte, u.a. zwecks Größenanpassung
private final DataViewPanel _dataViewPanel
speichert ein Exemplar des DataViewPanels
private boolean _fromParent
Gibt an, ob die mouseDragged-Methode des Splitters von einem Vaterknoten aus aufgerufen wurde.
private boolean _notClosedByUser
Gibt an, ob die Spalte vom Benutzer nicht geschlossen wurde.
private int _percent
Gibt die prozentuale Veränderung des Vater-Elements beim Vergrößern bzw. Verkleinern an.
private int _lastColumnWidth
Speichert die Spaltenbreite, bevor die Spalte verkleinert wird.
private int _numberOfColumns
Speichert zu jedem Element die Anzahl der Spalten unter sich.
private HeaderGrid _parent
Speichert den Vaterknoten.
private boolean _noNewMouseListener
Verhindert gegebenenfalls das Neuanlegen von MouseListenern.
public HeaderGrid(HeaderGrid parent, java.lang.Object node, DataViewPanel dataViewPanel)
Es wird ein Objekt der Klasse HeaderGrid
erzeugt.
parent
- Vater-Knoten, dieses Knotensnode
- eine Attributgruppe oder ein AttributdataViewPanel
- Komponente, in der die Datensätze dargestellt werdenpublic void addColumnWidthChangeListener(ColumnWidthChangeListener listener)
Objekte, die sich hier anmelden, werden benachrichtigt, sobald im Spaltenheader ein Schieberegler bewegt wird.
rowListener
- anzumeldendes Objektpublic void removeColumnWidthChangeListener(ColumnWidthChangeListener rowListener)
Objekt, welches beim Listener wieder abgemeldet werden soll.
rowListener
- abzumeldendes Objektpublic void setRowWidth(int width)
An alle angemeldeten Objekte wird die neue Breite der veränderten Spalte übergeben.
width
- neue Spaltenbreitepublic int getOptimalColumnWidth()
Liefert die optimale Spaltenbreite, so dass alle Einträge zu sehen sind.
public void addHeaderSuccessor(HeaderGrid headerGrid)
Fügt einen Nachfolger hinzu.
headerGrid
- ein Nachfolgerpublic java.util.List<HeaderGrid> getHeaderSuccessors()
Gibt die Nachfolger des Grids zurück.
public HeaderGrid.HeaderElement getHeaderElement()
Gibt das Vater-Element zurück.
public HeaderGrid.Splitter getSplitter()
Gibt den Schieberegler zurück.
public int getNumberOfColumns()
Gibt die Anzahl der Spalten zurück, die sich unterhalb dieses Grids befinden.
public void setNumberOfColumns(int numberOfColumns)
Setzt die Anzahl der Spalten, die sich unterhalb dieses Grids befinden.
numberOfColumns
- Anzahl der Spaltenpublic javax.swing.JPanel createHeader()
Erstellt ein Panel aus den im Objekt gesammelten Daten. Dieses Objekt besteht aus einem Element und seinen Nachfolgern. Wird für den Aufbau eines hierarchischen Tabellenkopfes genutzt.
private javax.swing.JPanel createHeaderElement()
Erstellt ein Panel, welches ein Element mit zugehörigem Schieberegler auf der rechten Seite darstellt.
private java.awt.GridBagConstraints makeGBC(int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty)
Hilfsfunktion zur Konstruktion des Panels. Hierüber werden die Bedingungen für die Anordnung der Elemente gesetzt.
gridx
- Spaltennummergridy
- Zeilennummergridwidth
- Anzahl der Spalten über die das Element reichtgridheight
- Anzahl der Zeilen über die das Element reichtweightx
- Verteilung von zur Verfügung stehendem Platz (horizontal)weighty
- Verteilung von zur Verfügung stehendem Platz (vertikal)private void setHeaderCursors(HeaderGrid grid, int cursor)
Setzt bei allen Komponenten den Cursor, sobald der Schieberegler betätigt wird.
grid
- das Grid, welches den Cursor zugewiesen bekommtcursor
- den Wert für den CursorCursor
,
Component.setCursor(java.awt.Cursor)
public void makeSimilar(HeaderGrid otherHeaderGrid)
Macht dieses HeaderGrid dem übergebenen ähnlich.
otherHeaderGrid
- das andere HeaderGridprivate void setColumnWidths(HeaderGrid otherHeaderGrid)
Setzt die Breiten aller Spalten auf die Werte des übergebenen HeaderGrids.
otherHeaderGrid
- das andere HeaderGridprivate void setClosingStates(HeaderGrid otherHeaderGrid)
Setzt die Offen/Geschlossen-Stati auf die Werte des übergebenen HeaderGrids.
otherHeaderGrid
- das andere HeaderGridprivate void setArrowIcons(HeaderGrid otherHeaderGrid)
Setzt Arrows wie im übergebenen HeaderGrid.
otherHeaderGrid
- das andere HeaderGridprivate void setNumberOfColumns(HeaderGrid otherHeaderGrid)
Setzt die Anzahl der Spalten im Splitter
otherHeaderGrid
- das andere HeaderGridprivate void setPositions(HeaderGrid otherHeaderGrid)
Setzt die Position des Mauszeigers im Splitter
otherHeaderGrid
- das andere HeaderGridprivate void setFromParentValues(HeaderGrid otherHeaderGrid)
Setzt die FromParent-Werte.
otherHeaderGrid
- das andere HeaderGridprivate void setPercentValues(HeaderGrid otherHeaderGrid)
Setzt die Percent-Werte.
otherHeaderGrid
- das andere HeaderGridprivate void setLastColumnWidths(HeaderGrid otherHeaderGrid)
Setzt die Last-Column-Width-Werte.
otherHeaderGrid
- das andere HeaderGridpublic void removeAllMouseListeners()
Entfernt alle MouseListener, MouseMotianListener und MouseWheelListener der Komponenten.
private void removeAllMouseListeners(java.awt.Component component)