Thema dieser Dokumentation / Das FirstSpirit 5 Modul- / Komponenten-Modell / Von Gadgets, Aspects, Brokern und Agents / Aspekte (SwingGadget) / Aspekt: SwingFocusable
Aspekt: SwingFocusable
Aspect: SwingFocusable
Package: de.espirit.firstspirit.ui.gadgets.aspects.focus
Eine Eingabekomponente kann die Fähigkeit besitzen, ihre Inhalte zu markieren. Eine bekannte Markierungsart ist die Umrahmung der Komponente bzw. ihres Inhalts über das ContentHighlighting (Markierungsart FOCUS). Mithilfe des Aspekts SwingFocusable kann auf dieses Ereignis (Setzen einer Fokus-Markierung) reagiert werden. Die Eingabekomponente kann die Markierung (Focus) 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 SwingFocusable {
...
public mySwingGadget(final SwingGadgetContext<myGomForm> context) {
super(context);
addAspect(SwingFocusable.TYPE, this);
}
...
}
Des Weiteren muss die Methode void acceptFocus(@NotNull Handler handler) implementiert werden, die den Fokus auf einer Eingabekomponente setzt. Dazu sollte immer der übergebene Handler (und keine direkten Swing-Mechanismen) verwendet werden:
public void acceptFocus(@NotNull finalHandler handler) {
handler.focusOn(myComponent);
}