Class AbstractTablePart

java.lang.Object
de.willuhn.jameica.gui.parts.AbstractTablePart
All Implemented Interfaces:
Part
Direct Known Subclasses:
TablePart, TreePart

public abstract class AbstractTablePart extends Object implements Part
Abstrakte Basis-Klasse von Tabellen-aehnlichen Parts.
  • Field Details

    • changeable

      protected boolean changeable
    • rememberColWidth

      protected boolean rememberColWidth
    • rememberOrder

      protected boolean rememberOrder
    • rememberState

      protected boolean rememberState
    • columns

      protected List<Column> columns
    • settings

      protected static final Settings settings
    • multi

      protected boolean multi
    • checkable

      protected boolean checkable
    • selectionListeners

      protected List<org.eclipse.swt.widgets.Listener> selectionListeners
    • action

      protected Action action
  • Constructor Details

    • AbstractTablePart

      public AbstractTablePart(Action action)
      ct.
      Parameters:
      action - die Default-Action.
  • Method Details

    • addFeature

      public void addFeature(Feature feature)
      Fuegt ein Feature hinzu.
      Parameters:
      feature - das Feature.
    • addFeature

      public void addFeature(String featureName)
      Fuegt ein Feature anhand des Klassennamens hinzu.
      Parameters:
      featureName - der Klassen-Name des Features.
    • removeFeature

      public void removeFeature(Class<? extends Feature> type)
      Entfernt das Feature.
      Parameters:
      type - das zu entfernende Feature.
    • getFeature

      public <T> T getFeature(Class<? extends Feature> type)
      Liefert die Instanz des Features, insofern es hinzugefuegt wurde.
      Parameters:
      type - der Typ des Features.
      Returns:
      das Feature oder null, wenn es nicht existiert.
    • hasEvent

      public boolean hasEvent(Class<? extends Feature> type, Feature.Event e)
      Prueft, ob das angegebene Feature das Event behandelt.
      Parameters:
      type - das Feature.
      e - das Event.
      Returns:
      true, wenn das Feature dieses Event behandelt.
    • featureEvent

      public void featureEvent(Feature.Event e, Object data)
      Loest ein Feature-Event aus.
      Parameters:
      e - das Event.
      data - optionale Angabe des Datensatzes, auf den sich das Event bezieht.
    • size

      public abstract int size()
      Liefert die Anzahl der Elemente in dieser Tabelle.
      Returns:
      Anzahl der Elemente.
    • createFeatureEventContext

      protected Feature.Context createFeatureEventContext(Feature.Event e, Object data)
      Erzeugt den Context fuer das Feature-Event. Kann von abgeleiteten Klassen ueberschrieben werden, um weitere Informationen zum Context hinzuzufuegen.
      Parameters:
      e - das Event.
      data - optionale Angabe des Objektes, auf das sich das Event bezieht.
      Returns:
      der Feature-Context.
    • addColumn

      public void addColumn(String title, String field)
      Fuegt der Tabelle eine neue Spalte hinzu.
      Parameters:
      title - Name der Spaltenueberschrift.
      field - Name des Feldes aus dem dbObject, der angezeigt werden soll.
    • addColumn

      public void addColumn(String title, String field, Formatter f)
      Fuegt der Tabelle eine neue Spalte hinzu und dazu noch einen Formatierer.
      Parameters:
      title - Name der Spaltenueberschrift.
      field - Name des Feldes aus dem dbObject, der angezeigt werden soll.
      f - Formatter, der fuer die Anzeige des Wertes verwendet werden soll.
    • addColumn

      public void addColumn(String title, String field, Formatter f, boolean changeable)
      Fuegt der Tabelle eine neue Spalte hinzu und dazu noch einen Formatierer.
      Parameters:
      title - Name der Spaltenueberschrift.
      field - Name des Feldes aus dem dbObject, der angezeigt werden soll.
      f - Formatter, der fuer die Anzeige des Wertes verwendet werden soll.
      changeable - legt fest, ob die Werte in dieser Spalte direkt editierbar sein sollen. Wenn der Parameter true ist, dann sollte der Tabelle via TablePart.addChangeListener(TableChangeListener) ein Listener hinzugefuegt werden, der benachrichtigt wird, wenn der Benutzer einen Wert geaendert hat. Es ist anschliessend Aufgabe des Listeners, den geaenderten Wert im Fachobjekt zu uebernehmen.
    • addColumn

      public void addColumn(String title, String field, Formatter f, boolean changeable, int align)
      Fuegt der Tabelle eine neue Spalte hinzu und dazu noch einen Formatierer.
      Parameters:
      title - Name der Spaltenueberschrift.
      field - Name des Feldes aus dem dbObject, der angezeigt werden soll.
      f - Formatter, der fuer die Anzeige des Wertes verwendet werden soll.
      changeable - legt fest, ob die Werte in dieser Spalte direkt editierbar sein sollen. Wenn der Parameter true ist, dann sollte der Tabelle via TablePart.addChangeListener(TableChangeListener) ein Listener hinzugefuegt werden, der benachrichtigt wird, wenn der Benutzer einen Wert geaendert hat. Es ist anschliessend Aufgabe des Listeners, den geaenderten Wert im Fachobjekt zu uebernehmen.
      align - die Ausrichtung
      See Also:
    • addColumn

      public void addColumn(Column col)
      Fuegt der Tabelle eine neue Spalte hinzu.
      Parameters:
      col - das Spalten-Objekt.
    • setContextMenu

      public void setContextMenu(ContextMenu menu)
      Fuegt ein KontextMenu hinzu.
      Parameters:
      menu - das anzuzeigende Menu.
    • getItems

      public abstract List getItems() throws RemoteException
      Liefert die Fach-Objekte der Tabelle.
      Returns:
      Liste der Fachobjekte.
      Throws:
      RemoteException
    • getSelection

      public abstract Object getSelection()
      Liefert die markierten Objekte. Die Funktion liefert je nach Markierung Object oder Object[].
      Returns:
      das/die markierten Objekte.
    • select

      public abstract void select(Object[] objects)
      Markiert die Liste der uebergebenen Objekte.
      Parameters:
      objects - Liste der zu markierenden Objekte.
    • select

      public void select(Object o)
      Markiert das uebergebene Element.
      Parameters:
      o - das zu markierende Element.
    • setRememberColWidths

      public void setRememberColWidths(boolean remember)
      Legt fest, ob sich die Tabelle die Spaltenbreiten merken soll.
      Parameters:
      remember - true, wenn sie sich die Spaltenbreiten merken soll.
    • setRememberOrder

      public void setRememberOrder(boolean remember)
      Legt fest, ob sich die Tabelle die Sortierreihenfolge merken soll.
      Parameters:
      remember - true, wenn sie sich die Reihenfolge merken soll.
    • setRememberState

      public void setRememberState(boolean remember)
      Legt fest, ob sich die Tabelle die zuletzt markierten Objekte samt der Scrollposition merken soll.
      Parameters:
      remember - true, wenn sich die Tabelle Selektion und Position merken soll.
    • restoreState

      public void restoreState()
      Stellt den Zustand wieder her (markierte Objekte und Scroll-Position). Geschieht jedoch nur, wenn das Feature mit setRememberState(true) aktiviert wurde. Das ist eine Dummy-Implementierung, die in den abgeleiteten Klassen ueberschrieben werden kann.
    • setMulti

      public void setMulti(boolean multi)
      Legt fest, ob mehrere Elemente gleichzeitig markiert werden koennen. Default: False.
      Parameters:
      multi - true, wenn mehrere Elemente gleichzeitig markiert werden koennen.
    • isMulti

      public boolean isMulti()
      Liefert true, wenn mehrere Elemente gleichzeitig markiert werden koennen.
      Returns:
      true, wenn mehrere Elemente gleichzeitig markiert werden koennen.
    • setCheckable

      public void setCheckable(boolean checkable)
      Legt fest, ob jede Zeile der Tabelle mit einer Checkbox versehen werden soll. Ist dies der Fall, liefert getItems() nur noch die aktiven Elemente zurueck. Default: false
      Parameters:
      checkable -
    • setChecked

      public void setChecked(Object[] objects, boolean checked)
      Wenn die Tabelle mit Checkboxen versehen ist, kann man damit bei einem Element das Haeckchen setzen oder entfernen.

      Hinweis: Dies hier ist eine leere Dummy-Implementierung. Sie muss von abgeleiteten Klassen ueberschrieben werden.

      Parameters:
      objects - Liste der zu checkenden Objekte.
      checked - true, wenn das Haekchen gesetzt werden soll.
    • setChecked

      public void setChecked(Object o, boolean checked)
      Wenn die Tabelle mit Checkboxen versehen ist, kann man damit bei einem Element das Haeckchen setzen oder entfernen.
      Parameters:
      o - das zu checkende Element.
      checked - true, wenn das Haekchen gesetzt werden soll.
    • addSelectionListener

      public void addSelectionListener(org.eclipse.swt.widgets.Listener l)
      Fuegt der Tabelle einen Listener hinzu, der ausgeloest wird, wenn ein oder mehrere Elemente markiert wurden.
      Parameters:
      l - der Listener.
    • removeAll

      public abstract void removeAll()
      Entfernt alle Elemente aus der Tabelle.
    • asList

      protected static List asList(de.willuhn.datasource.GenericIterator iterator)
      Hilfsmethode, um die RemoteException im Konstruktor zu vermeiden.
      Parameters:
      iterator - zu konvertierender Iterator.
      Returns:
      Liste mit den Objekten.