Class AbstractTablePart

  • All Implemented Interfaces:
    Part
    Direct Known Subclasses:
    TablePart, TreePart

    public abstract class AbstractTablePart
    extends java.lang.Object
    implements Part
    Abstrakte Basis-Klasse von Tabellen-aehnlichen Parts.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      class  AbstractTablePart.AbstractTableItem
      Hilfsklasse zum Kapseln eines einzelnen Elements in der Tabelle.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void addColumn​(Column col)
      Fuegt der Tabelle eine neue Spalte hinzu.
      void addColumn​(java.lang.String title, java.lang.String field)
      Fuegt der Tabelle eine neue Spalte hinzu.
      void addColumn​(java.lang.String title, java.lang.String field, Formatter f)
      Fuegt der Tabelle eine neue Spalte hinzu und dazu noch einen Formatierer.
      void addColumn​(java.lang.String title, java.lang.String field, Formatter f, boolean changeable)
      Fuegt der Tabelle eine neue Spalte hinzu und dazu noch einen Formatierer.
      void addColumn​(java.lang.String title, java.lang.String field, Formatter f, boolean changeable, int align)
      Fuegt der Tabelle eine neue Spalte hinzu und dazu noch einen Formatierer.
      void addFeature​(Feature feature)
      Fuegt ein Feature hinzu.
      void addFeature​(java.lang.String featureName)
      Fuegt ein Feature anhand des Klassennamens hinzu.
      void addSelectionListener​(org.eclipse.swt.widgets.Listener l)
      Fuegt der Tabelle einen Listener hinzu, der ausgeloest wird, wenn ein oder mehrere Elemente markiert wurden.
      protected static java.util.List asList​(de.willuhn.datasource.GenericIterator iterator)
      Hilfsmethode, um die RemoteException im Konstruktor zu vermeiden.
      protected Feature.Context createFeatureEventContext​(Feature.Event e, java.lang.Object data)
      Erzeugt den Context fuer das Feature-Event.
      void featureEvent​(Feature.Event e, java.lang.Object data)
      Loest ein Feature-Event aus.
      <T> T getFeature​(java.lang.Class<? extends Feature> type)
      Liefert die Instanz des Features, insofern es hinzugefuegt wurde.
      abstract java.util.List getItems()
      Liefert die Fach-Objekte der Tabelle.
      abstract java.lang.Object getSelection()
      Liefert die markierten Objekte.
      boolean hasEvent​(java.lang.Class<? extends Feature> type, Feature.Event e)
      Prueft, ob das angegebene Feature das Event behandelt.
      boolean isMulti()
      Liefert true, wenn mehrere Elemente gleichzeitig markiert werden koennen.
      abstract void removeAll()
      Entfernt alle Elemente aus der Tabelle.
      void removeFeature​(java.lang.Class<? extends Feature> type)
      Entfernt das Feature.
      void restoreState()
      Stellt den Zustand wieder her (markierte Objekte und Scroll-Position).
      void select​(java.lang.Object o)
      Markiert das uebergebene Element.
      abstract void select​(java.lang.Object[] objects)
      Markiert die Liste der uebergebenen Objekte.
      void setCheckable​(boolean checkable)
      Legt fest, ob jede Zeile der Tabelle mit einer Checkbox versehen werden soll.
      void setChecked​(java.lang.Object[] objects, boolean checked)
      Wenn die Tabelle mit Checkboxen versehen ist, kann man damit bei einem Element das Haeckchen setzen oder entfernen.
      void setChecked​(java.lang.Object o, boolean checked)
      Wenn die Tabelle mit Checkboxen versehen ist, kann man damit bei einem Element das Haeckchen setzen oder entfernen.
      void setContextMenu​(ContextMenu menu)
      Fuegt ein KontextMenu hinzu.
      void setMulti​(boolean multi)
      Legt fest, ob mehrere Elemente gleichzeitig markiert werden koennen.
      void setRememberColWidths​(boolean remember)
      Legt fest, ob sich die Tabelle die Spaltenbreiten merken soll.
      void setRememberOrder​(boolean remember)
      Legt fest, ob sich die Tabelle die Sortierreihenfolge merken soll.
      void setRememberState​(boolean remember)
      Legt fest, ob sich die Tabelle die zuletzt markierten Objekte samt der Scrollposition merken soll.
      abstract int size()
      Liefert die Anzahl der Elemente in dieser Tabelle.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface de.willuhn.jameica.gui.Part

        paint
    • Field Detail

      • changeable

        protected boolean changeable
      • rememberColWidth

        protected boolean rememberColWidth
      • rememberOrder

        protected boolean rememberOrder
      • rememberState

        protected boolean rememberState
      • columns

        protected java.util.List<Column> columns
      • settings

        protected static final Settings settings
      • multi

        protected boolean multi
      • checkable

        protected boolean checkable
      • selectionListeners

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

        protected Action action
    • Constructor Detail

      • AbstractTablePart

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

      • addFeature

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

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

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

        public <T> T getFeature​(java.lang.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​(java.lang.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,
                                 java.lang.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,
                                                            java.lang.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​(java.lang.String title,
                              java.lang.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​(java.lang.String title,
                              java.lang.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​(java.lang.String title,
                              java.lang.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​(java.lang.String title,
                              java.lang.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:
        Column.ALIGN_AUTO, Column.ALIGN_CENTER, Column.ALIGN_LEFT, Column.ALIGN_RIGHT
      • 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 java.util.List getItems()
                                         throws java.rmi.RemoteException
        Liefert die Fach-Objekte der Tabelle.
        Returns:
        Liste der Fachobjekte.
        Throws:
        java.rmi.RemoteException
      • getSelection

        public abstract java.lang.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​(java.lang.Object[] objects)
        Markiert die Liste der uebergebenen Objekte.
        Parameters:
        objects - Liste der zu markierenden Objekte.
      • select

        public void select​(java.lang.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​(java.lang.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​(java.lang.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 java.util.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.