public class HeaderGrid extends Object
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 List<ColumnWidthChangeListener> |
_columnWidthListeners
speichert alle angemeldeten Objekte, u.a.
|
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 List<HeaderGrid> |
_successors
Liste aller Nachfolger vom Vater-Element
|
Constructor and Description |
---|
HeaderGrid(HeaderGrid parent,
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.
|
JPanel |
createHeader()
Erstellt ein Panel aus den im Objekt gesammelten Daten.
|
private 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.
|
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 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(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
private final HeaderGrid.Splitter _splitter
private final HeaderGrid.HeaderElement _headerElement
private final List<HeaderGrid> _successors
private final List<ColumnWidthChangeListener> _columnWidthListeners
private final DataViewPanel _dataViewPanel
private boolean _fromParent
private boolean _notClosedByUser
private int _percent
private int _lastColumnWidth
private int _numberOfColumns
private HeaderGrid _parent
private boolean _noNewMouseListener
public HeaderGrid(HeaderGrid parent, Object node, DataViewPanel dataViewPanel)
HeaderGrid
erzeugt.parent
- Vater-Knoten, dieses Knotensnode
- eine Attributgruppe oder ein AttributdataViewPanel
- Komponente, in der die Datensätze dargestellt werdenpublic void addColumnWidthChangeListener(ColumnWidthChangeListener listener)
rowListener
- anzumeldendes Objektpublic void removeColumnWidthChangeListener(ColumnWidthChangeListener rowListener)
rowListener
- abzumeldendes Objektpublic void setRowWidth(int width)
width
- neue Spaltenbreitepublic int getOptimalColumnWidth()
public void addHeaderSuccessor(HeaderGrid headerGrid)
headerGrid
- ein Nachfolgerpublic List<HeaderGrid> getHeaderSuccessors()
public HeaderGrid.HeaderElement getHeaderElement()
public HeaderGrid.Splitter getSplitter()
public int getNumberOfColumns()
public void setNumberOfColumns(int numberOfColumns)
numberOfColumns
- Anzahl der Spaltenpublic JPanel createHeader()
private JPanel createHeaderElement()
private GridBagConstraints makeGBC(int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty)
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)
grid
- das Grid, welches den Cursor zugewiesen bekommtcursor
- den Wert für den CursorCursor
,
Component.setCursor(java.awt.Cursor)
public void makeSimilar(HeaderGrid otherHeaderGrid)
otherHeaderGrid
- das andere HeaderGridprivate void setColumnWidths(HeaderGrid otherHeaderGrid)
otherHeaderGrid
- das andere HeaderGridprivate void setClosingStates(HeaderGrid otherHeaderGrid)
otherHeaderGrid
- das andere HeaderGridprivate void setArrowIcons(HeaderGrid otherHeaderGrid)
otherHeaderGrid
- das andere HeaderGridprivate void setNumberOfColumns(HeaderGrid otherHeaderGrid)
otherHeaderGrid
- das andere HeaderGridprivate void setPositions(HeaderGrid otherHeaderGrid)
otherHeaderGrid
- das andere HeaderGridprivate void setFromParentValues(HeaderGrid otherHeaderGrid)
otherHeaderGrid
- das andere HeaderGridprivate void setPercentValues(HeaderGrid otherHeaderGrid)
otherHeaderGrid
- das andere HeaderGridprivate void setLastColumnWidths(HeaderGrid otherHeaderGrid)
otherHeaderGrid
- das andere HeaderGridpublic void removeAllMouseListeners()
private void removeAllMouseListeners(Component component)