Thema dieser Dokumentation / Das FirstSpirit 5 Modul- / Komponenten-Modell / Von Gadgets, Aspects, Brokern und Agents / Aspekte (SwingGadget) / Aspekt: Highlightable
Aspekt: Highlightable
Aspect: Highlightable
Package: de.espirit.firstspirit.ui.gadgets.aspects.highlight
Eine Eingabekomponente kann die Fähigkeit besitzen, ihre Inhalte zu markieren. Eine bekannte Markierungsart ist die Treffermarkierung für Suchergebnisse (Markierungsart MATCH). Das Hervorheben der Komponente, die die entsprechenden Suchergebnisse enthält, wird bereits automatisch vom FirstSpirit-Gadget-Framework bereitgestellt. Weitere Funktionen, beispielsweise eine Markierung der Treffer innerhalb der Komponente oder auch das Ändern des Sichtbarkeitsbereichs (Scrolling) zur Anzeige eines Treffers in der Komponente, können vom Komponentenentwickler über den Aspekt Highlightable hinzugefügt werden. Diese Funktionen können vom FirstSpirit-Gadget-Framework nicht allgemein realisiert werden, da dazu eine genaue Kenntnis des inneren Aufbaus der Komponente erforderlich ist. Mithilfe des Aspekts Highlightable kann die Eingabekomponente auf dieses Ereignis (Setzen einer Match-Markierung) reagieren und die Markierungen (Matches) dann beispielsweise an eine geeignete innere Komponente weiterreichen, die darauf entsprechend reagiert. Das gilt auch, für den Verlust von Markierungen.
Dieser Aspekt kann der SwingGadget-Implementierung über die Implements-Bedingung und den Aufruf von addAspect(…) im öffentlichen Konstruktor der SwingGadget-Implementierung hinzugefügt werden:
public class mySwingGadget implements Highlightable {
...
public mySwingGadget(final SwingGadgetContext<myGomForm> context) {
super(context);
addAspect(Highlightable.TYPE, this);
}
...
}
Des Weiteren muss die Methode public void highlight(List<? extends Match> matches) implementiert werden, die Infrastruktur zur Verfügung stellt, um den Treffer auch innerhalb der Komponente hervorzuheben und ggf. durch Scrolling sichtbar zu machen.
Beispiel zur Verwendung des Aspekts siehe Aspekt Highlightable - Treffermarkierung für die Suche.