public class DataViewPanel extends JPanel implements DataViewListener
Model
übergibt, in einem
ScrollPane dar. Mit dem Konstruktor wird ein baumartiger Header erstellt, dessen Spaltenbreiten
durch Schieberegler verändert werden kann. Damit dies funktioniert, muss nachdem der Header
erzeugt und dieser angezeigt (z.B. durch validate() oder durch Frame.setVisible()) wird
mit der Methode initHeaderSize()
initialisiert werden.Modifier and Type | Class and Description |
---|---|
private class |
DataViewPanel.VerticalScrollBarAdjustmentListener
Wird benötigt, um das Scrollverhalten des vertikalen Scrollbalkens zu steuern.
|
JPanel.AccessibleJPanel
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
private AttributeGroup |
_attributeGroup
speichert die Attributgruppe
|
private DataViewModel |
_dataViewModel
speichert eine Instanz des DataViewModel
|
private Debug |
_debug
der Debug-Logger
|
private List<DataTableObjectRenderer> |
_dtoRenderers
speichert alle Datensätze, die von der Applikation gesendet wurden
|
private JPanel |
_emptyDummyLowerRowHeaderPanel
der untere Platzhalter des Zeilenheaders; wird nur für die Höhenarithmetik benötigt
|
private JPanel |
_emptyDummyUpperRowHeaderPanel
der obere Platzhalter für den Zeilenheader; wird nur für die Höhenarithmetik benötigt
|
private JPanel |
_emptyDummyUpperViewportPanel
der obere Platzhalter für den Viewport; wird nur für die Höhenarithmetik benötigt
|
private int |
_firstRow
der Index des ersten Datensatzes, der angezeigt wird
|
private boolean |
_firstRun
merkt sich, ob es sich um den ersten Aufruf handelt
|
private HeaderGrid |
_headerGrid
speichert die Sruktur des Headers
|
private int |
_lastRow
der Index des letzten Datensatzes, der angezeigt wird
|
private JPanel |
_lowerViewportPanel
der untere Platzhalter des Viewports; wird nur für die Höhenarithmetik benötigt
|
private JPanel |
_rowHeaderPanel
der sichtbare Teil des Zeilenheaders
|
private int |
_rowHeaderWidth
die Breite des Zeilenheaders
|
private int |
_screenHeight
die sichtbare Höhe des Viewports
|
private JScrollPane |
_scrollPane
speichert das dargestellte ScrollPane
|
private SelectionManager |
_selectionManager
der Selektion-Manager der Online-Tabelle
|
private JScrollBar |
_verticalScrollBar
speichert den vertikalen Scrollbalken
|
private JPanel |
_viewportPanel
der sichtbare Teil des Viewports
|
private String |
TIME_FORMAT
speichert das Zeitformat für die Spalte 'Zeit'
|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
DataViewPanel(DataViewModel model)
Konstruktor.
|
Modifier and Type | Method and Description |
---|---|
void |
addDataTableObject(int index,
DataTableObject dataTableObject)
TBD
Fügt einen Datensatz an eine bestimmte Position der bisherigen Datensätze ein.
|
void |
addDataTableObjects(List<DataTableObject> dataTableObjects)
Fügt eine beliebige Anzahl neuer Datensätze an die bestehenden Datensätze hinten an.
|
private void |
appendRowElements(RowData rowData,
Set<CellKey> keys,
Map<RowElement,CellKey> rowElementKeyMap) |
private boolean |
checkRowHeight()
Prüft, wieviel Platz die Komponente in der Höhe verbraucht und ob sie noch in der ScrollPane
angezeigt werden kann.
|
private void |
createAndShowGui()
Erstellt die Elemente für das Panel und ordnet diese an.
|
private JPanel |
createColumnHeader()
Erstellt den vollständigen Spaltenheader für das ScrollPane.
|
private JPanel |
createRowHeader()
Erstellt den initialen Zeilenheader für das ScrollPane.
|
private JComponent |
createUpperLeftCorner()
Erstellt die Komponente für die obere linke Ecke im ScrollPane.
|
private JPanel |
createViewport()
Erstellt den initialen Viewport für das Scrollpane
|
Map<RowElement,CellKey> |
findRowElements(Set<CellKey> keys)
Methode zur Ermittlung von RowElements
|
Map<JComponent,RowKey> |
findRowHeaderRows(Set<RowKey> keys)
Methode zur Ermittlung von Komponenten
|
Map<RowPanel,CellKey> |
findRowPanels(Set<CellKey> keys)
Methode zur Ermittlung von RowPanels
|
long |
getDataindex(String key)
Methode zur Ermittlung des Datensatzindex
|
boolean |
getFirstRun()
Hoffentlich bald überflüssig.
|
HeaderGrid |
getHeaderGrid()
Gibt den Spaltenheader zurück.
|
SelectionManager |
getSelectionManager()
Gibt den SelectionManager zurück.
|
int |
getVerticalScrollBarsMaximumValue()
Gibt den Maximalwert des vertikalen Rollbalkens zurück.
|
int |
getVerticalScrollBarsVisibleAmount()
Gibt den Ausdehung des Knopfes der vertikalen Rollbalkens zurück.
|
int |
getVisibleViewPortHeight()
Gibt die Höhe des sichtbaren Bereich des Viewports zurück.
|
void |
increaseLowerPanel(int height)
Vergrößert den unteren Platzhalter um die angebene Höhe
|
void |
initHeaderSize()
Die Größe des Headers wird initial gesetzt.
|
boolean |
isHorizontalScrollBarVisible()
Gibt
true zurück, wenn der horizontale Rolbalken sichtbar ist. |
void |
removeDataTableObject(int index)
Löscht einen Datensatz an angegebener Position.
|
void |
setDataTableObjects(List<DataTableObject> dataTableObjects)
Alle bisherigen Datensätze werden gelöscht und die neuen werden übernommen.
|
void |
setFirstRun(boolean firstRun)
Kann auf false gesetzt werden, falls die Größen des Spaltenheaders initialisiert worden sind.
|
private void |
setHeaderSizes(HeaderGrid headerGrid,
int percent)
Initialisiert die Größen aller Elemente des Headers rekursiv.
|
private void |
setHeaderSuccessors(HeaderGrid attributeList)
Bestimmt die Nachfolger einer Attributgruppe bzw.
|
void |
setHorizontalScrollBarPolicy(int horizontalPolicy)
Setzt den Modus des horizontalen Rollbalkens.
|
void |
setLowerPanel(int height)
Setzt für die unteren Platzhalter des Zeilenheaders und des Viewports die Höhe.
|
private void |
setScrollPane()
Das ScrollPane wird mit Spaltenheader, Zeilenheader und oberer linker Ecke ausgestattet
und initialisiert.
|
private void |
setUpperPanel(int height)
Setzt für die oberen Platzhalter des Zeilenheaders und des Viewports die Höhe.
|
void |
setVerticalScrollBarsMaximumValue(int value)
Setzt den maximalen Wert des vertikalen Rollbalkens.
|
void |
setVerticalScrollBarValue(int value)
Setzt den Wert des vertikalen Rollbalkens.
|
void |
update(int index,
DataTableObject dataTableObject)
Aktualisiert an angegebener Position den Datensatz.
|
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
private final Debug _debug
private final DataViewModel _dataViewModel
private final AttributeGroup _attributeGroup
private final List<DataTableObjectRenderer> _dtoRenderers
private final JScrollPane _scrollPane
private HeaderGrid _headerGrid
private boolean _firstRun
private final JScrollBar _verticalScrollBar
private final JPanel _emptyDummyUpperRowHeaderPanel
private final JPanel _emptyDummyLowerRowHeaderPanel
private final JPanel _emptyDummyUpperViewportPanel
private final JPanel _lowerViewportPanel
private final JPanel _rowHeaderPanel
private final JPanel _viewportPanel
private int _firstRow
private int _lastRow
private int _screenHeight
private final String TIME_FORMAT
private int _rowHeaderWidth
private SelectionManager _selectionManager
public DataViewPanel(DataViewModel model)
DataViewModel
. Das Model gibt Benachrichtigungen,
falls sich an den anzuzeigenden Daten etwas ändert.model
- das DataViewModelpublic long getDataindex(String key)
key
- Schlüssel, wessen Datensatzindex gesucht wirdpublic Map<JComponent,RowKey> findRowHeaderRows(Set<RowKey> keys)
keys
- die Schlüsselpublic Map<RowElement,CellKey> findRowElements(Set<CellKey> keys)
keys
- die Schlüsselpublic Map<RowPanel,CellKey> findRowPanels(Set<CellKey> keys)
keys
- die Schlüsselprivate void appendRowElements(RowData rowData, Set<CellKey> keys, Map<RowElement,CellKey> rowElementKeyMap)
private void createAndShowGui()
private void setScrollPane()
AdjustmentListener
wird angemeldet.private JPanel createColumnHeader()
private JPanel createRowHeader()
private JComponent createUpperLeftCorner()
private JPanel createViewport()
public SelectionManager getSelectionManager()
public HeaderGrid getHeaderGrid()
public void initHeaderSize()
setHeaderSizes(HeaderGrid,int)
private void setHeaderSizes(HeaderGrid headerGrid, int percent)
headerGrid
- Spaltenheaderpercent
- gibt die prozentuale Ausdehnung anprivate void setHeaderSuccessors(HeaderGrid attributeList)
attributeList
- Objekt vom Typ HeaderGrid
, von dem die Nachfolger bestimmt werden sollen.public boolean getFirstRun()
initHeaderSize()
von der Applikation aufgerufen wird.true
oder false
zurückpublic void setFirstRun(boolean firstRun)
firstRun
- true
ist Default-Einstellungpublic void addDataTableObjects(List<DataTableObject> dataTableObjects)
addDataTableObjects
in interface DataViewListener
dataTableObjects
- Liste neuer Datensätzepublic void addDataTableObject(int index, DataTableObject dataTableObject)
addDataTableObject
in interface DataViewListener
index
- Position des neuen DatensatzesdataTableObject
- der neue Datensatzpublic void setDataTableObjects(List<DataTableObject> dataTableObjects)
setDataTableObjects
in interface DataViewListener
dataTableObjects
- Liste neuer Datensätzepublic void removeDataTableObject(int index)
removeDataTableObject
in interface DataViewListener
index
- Position des zu löschenden Datensatzespublic void update(int index, DataTableObject dataTableObject)
update
in interface DataViewListener
index
- Position des zu aktualisierenden DatensatzesdataTableObject
- aktueller Datensatzprivate void setUpperPanel(int height)
height
- die neue Höhe der Platzhalterpublic void setLowerPanel(int height)
height
- die neue Höhe der Platzhalterpublic void increaseLowerPanel(int height)
height
- die zu addierende Höhe für den Platzhalterprivate boolean checkRowHeight()
public void setVerticalScrollBarValue(int value)
value
- der neue Wertpublic int getVerticalScrollBarsMaximumValue()
public void setVerticalScrollBarsMaximumValue(int value)
value
- der neue Wertpublic int getVerticalScrollBarsVisibleAmount()
public int getVisibleViewPortHeight()
public boolean isHorizontalScrollBarVisible()
true
zurück, wenn der horizontale Rolbalken sichtbar ist.true
zurück, wenn der horizontale Rolbalken sichtbar istpublic void setHorizontalScrollBarPolicy(int horizontalPolicy)
horizontalPolicy
- der neue Modus