Class DataViewPanel

  • All Implemented Interfaces:
    DataViewListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

    public class DataViewPanel
    extends javax.swing.JPanel
    implements DataViewListener
    Dieses Panel stellt die Datensätze, die das 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.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JPanel

        javax.swing.JPanel.AccessibleJPanel
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      • Fields inherited from class javax.swing.JComponent

        listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
      • Fields inherited from class java.awt.Component

        accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
    • Method Summary

      Modifier and Type Method Description
      void addDataTableObject​(int index, DataTableObject dataTableObject)
      Fügt einen Datensatz an eine bestimmte Position der bisherigen Datensätze ein.
      void addDataTableObjects​(java.util.List<DataTableObject> dataTableObjects)
      Fügt eine beliebige Anzahl neuer Datensätze an die bestehenden Datensätze hinten an.
      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​(java.util.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.
      void setHorizontalScrollBarPolicy​(int horizontalPolicy)
      Setzt den Modus des horizontalen Rollbalkens.
      void setVerticalScrollBarsMaximumValue​(int value)
      Setzt den maximalen Wert des vertikalen Rollbalkens.
      void setVerticalScrollBarValue​(int value)
      Setzt den Wert des vertikalen Rollbalkens.
      java.lang.String toString()  
      void update​(int index, DataTableObject dataTableObject)
      Aktualisiert an angegebener Position den Datensatz.
      • Methods inherited from class javax.swing.JPanel

        getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
      • Methods inherited from class javax.swing.JComponent

        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
      • Methods inherited from class java.awt.Container

        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
      • Methods inherited from class java.awt.Component

        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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • DataViewPanel

        public DataViewPanel​(DataViewModel model)
        Konstruktor. Benötigt eine Instanz des DataViewModel. Das Model gibt Benachrichtigungen, falls sich an den anzuzeigenden Daten etwas ändert.
        Parameters:
        model - das DataViewModel
    • Method Detail

      • getSelectionManager

        public SelectionManager getSelectionManager()
        Gibt den SelectionManager zurück.
        Returns:
        den SelectionManager
      • getHeaderGrid

        public HeaderGrid getHeaderGrid()
        Gibt den Spaltenheader zurück.
        Returns:
        den Spaltenheader
      • initHeaderSize

        public void initHeaderSize()
        Die Größe des Headers wird initial gesetzt. Dies ist notwendig, damit die Headergröße durch die Maus verändert werden kann. Diese Methode muss nach dem Anzeigen der Tabelle, allerdings bevor die ersten Daten kommen, aufgerufen werden.
        See Also:
        setHeaderSizes(HeaderGrid,int)
      • getFirstRun

        public boolean getFirstRun()
        Hoffentlich bald überflüssig. Spätestens, wenn die Methode initHeaderSize() von der Applikation aufgerufen wird.
        Returns:
        gibt true oder false zurück
      • setFirstRun

        public void setFirstRun​(boolean firstRun)
        Kann auf false gesetzt werden, falls die Größen des Spaltenheaders initialisiert worden sind.
        Parameters:
        firstRun - true ist Default-Einstellung
      • addDataTableObjects

        public void addDataTableObjects​(java.util.List<DataTableObject> dataTableObjects)
        Fügt eine beliebige Anzahl neuer Datensätze an die bestehenden Datensätze hinten an. Achtung: es ist nicht geklärt, ob diese Methode auch dafür sorgt, dass die Zeilen der Datensätze sichtbar werden, falls sie im sichtbaren Bereich sind, oder ob dazu noch der AdjustmentListener getriggert werden muss. S. addDataTableObject(..).
        Specified by:
        addDataTableObjects in interface DataViewListener
        Parameters:
        dataTableObjects - Liste neuer Datensätze
      • addDataTableObject

        public void addDataTableObject​(int index,
                                       DataTableObject dataTableObject)
        Fügt einen Datensatz an eine bestimmte Position der bisherigen Datensätze ein. Befindet sich die Position innerhalb der gerade dargestellten Datensätze, dann wird die Darstellung neu erzeugt und angezeigt. DIESER KOMMENTAR IST FALSCH: Tatsächlich wird nur die erste Zeile ins Panel eingefügt, alle anderen kommen erst durch den AdjustmentListener hinzu. Da ein AdjustmentEvent künstlich nur recht komisch auszulösen ist, hätte man das besser so wie beschrieben implementiert. TN, nach langer Fehlersuche.
        Specified by:
        addDataTableObject in interface DataViewListener
        Parameters:
        index - Position des neuen Datensatzes
        dataTableObject - der neue Datensatz
      • setDataTableObjects

        public void setDataTableObjects​(java.util.List<DataTableObject> dataTableObjects)
        Alle bisherigen Datensätze werden gelöscht und die neuen werden übernommen. Die ersten Datensätze, die angezeigt werden können, werden dargestellt. Für diese Methode ist nicht klar, ob sie von den Problemen der Methode addDataTableObject betroffen ist.
        Specified by:
        setDataTableObjects in interface DataViewListener
        Parameters:
        dataTableObjects - Liste neuer Datensätze
      • removeDataTableObject

        public void removeDataTableObject​(int index)
        Löscht einen Datensatz an angegebener Position.
        Specified by:
        removeDataTableObject in interface DataViewListener
        Parameters:
        index - Position des zu löschenden Datensatzes
      • update

        public void update​(int index,
                           DataTableObject dataTableObject)
        Aktualisiert an angegebener Position den Datensatz. Von dieser Methode ist nicht bekannt, ob sie von den Problemen der Methode addDataTableObject betroffen ist.
        Specified by:
        update in interface DataViewListener
        Parameters:
        index - Position des zu aktualisierenden Datensatzes
        dataTableObject - aktueller Datensatz
      • increaseLowerPanel

        public void increaseLowerPanel​(int height)
        Vergrößert den unteren Platzhalter um die angebene Höhe
        Parameters:
        height - die zu addierende Höhe für den Platzhalter
      • setVerticalScrollBarValue

        public void setVerticalScrollBarValue​(int value)
        Setzt den Wert des vertikalen Rollbalkens.
        Parameters:
        value - der neue Wert
      • getVerticalScrollBarsMaximumValue

        public int getVerticalScrollBarsMaximumValue()
        Gibt den Maximalwert des vertikalen Rollbalkens zurück.
        Returns:
        gibt den Maximalwert des vertikalen Rollbalkens zurück
      • setVerticalScrollBarsMaximumValue

        public void setVerticalScrollBarsMaximumValue​(int value)
        Setzt den maximalen Wert des vertikalen Rollbalkens.
        Parameters:
        value - der neue Wert
      • getVerticalScrollBarsVisibleAmount

        public int getVerticalScrollBarsVisibleAmount()
        Gibt den Ausdehung des Knopfes der vertikalen Rollbalkens zurück.
        Returns:
        gibt den Ausdehung des Knopfes der vertikalen Rollbalkens zurück
      • getVisibleViewPortHeight

        public int getVisibleViewPortHeight()
        Gibt die Höhe des sichtbaren Bereich des Viewports zurück.
        Returns:
        gibt die Höhe des sichtbaren Bereich des Viewports zurück
      • isHorizontalScrollBarVisible

        public boolean isHorizontalScrollBarVisible()
        Gibt true zurück, wenn der horizontale Rolbalken sichtbar ist.
        Returns:
        gibt true zurück, wenn der horizontale Rolbalken sichtbar ist
      • setHorizontalScrollBarPolicy

        public void setHorizontalScrollBarPolicy​(int horizontalPolicy)
        Setzt den Modus des horizontalen Rollbalkens.
        Parameters:
        horizontalPolicy - der neue Modus
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.awt.Component