Class DataViewPanel

All Implemented Interfaces:
DataViewListener, ImageObserver, MenuContainer, Serializable, Accessible

public class DataViewPanel extends 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:
  • Constructor Details

    • 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 Details

    • 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(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(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 String toString()
      Overrides:
      toString in class Component