v Einzelklick-Unterstützung

Einzelklick-Unterstützung

In der Workbench Benutzervorgaben kann der Benutzer angeben, ob Objekte in Sichten durch Einzel- oder Doppelklicken geöffnet werden sollen.

Workbench-Benutzervorgaben 'Öffnungsmodus' mit dem Hinweis, dass die Benutzervorgabe möglicherweise nicht in allen Sichten wirksam ist

Warum wird darauf hingewiesen, dass die Benutzervorgabe nicht für alle Sichten wirksam ist? Dies liegt daran, dass von Plug-ins angebotene Sichten diese Benutzervorgabe in ihrer Implementierung explizit unterstützen müssen.

Denken Sie daran, dass eine Sicht durch das Erstellen von SWT-Steuerelementen und durch das Schreiben von SWT-Standard-Code oder durch die Verwendung von JFace-Anzeigefunktionen zur Verarbeitung der Details auf niedriger Ebene implementiert werden kann. Die Benutzervorgabe für einmaliges Klicken kann auf beiden Ebenen beachtet werden. Die meisten Sichten, die andere Objekte öffnen, zeigen diese in einer strukturierten, listenartigen Sicht an. Der Schwerpunkt wird hier auf dieser Art von Sicht liegen. Wenn Ihre Sicht Objekte auf andere Weise anzeigt, verwenden Sie wahrscheinlich die Konzepte auf SWT-Ebene, um einfaches Klicken zu unterstützen.

Einfaches Klicken in JFace-Anzeigefunktionen

Wenn Sie zum Anzeigen Ihrer Objekte eine listenorientierte JFace-Anzeigefunktion verwenden, ist die Unterstützung von einfachem Klicken sehr unkompliziert. Anstatt addDoubleClickListener zu verwenden, um das Öffnen von Elementen in Ihrer Sicht auszulösen, verwenden Sie addOpenListener. Die geöffnete Listener-Funktion berücksichtigt die aktuelle Workbench-Benutzervorgabe und löst den Öffnungsvorgang aus, wenn das angegebene Mausereignis eintritt.

Sie können addDoubleClickListener nach Wunsch nach wie vor für Nicht-Öffnungs-Aktionen (wie z. B. das Erweitern eines Elements in einer Baumstruktur durch Doppelklicken) verwenden.

Einfaches Klicken in SWT-Steuerelementen

JFace stellt eine Dienstprogrammklasse (OpenStrategy) zur Verfügung, um die Logistik für einfaches und doppeltes Klicken auf der SWT-Steuerungsebene zu verwalten. Die Klasse OpenStrategy wird über den Workbench-Dialog Benutzervorgaben so konfiguriert, dass die aktuellen Benutzervorgaben der Workbench für das Öffnen berücksichtigt werden. Die JFace-Anzeigefunktionen verwenden diese Klasse zum Implementieren der Listener-Funktion für das Öffnen. 

Sie müssen eine Klasse OpenStrategy erstellen und sie Ihrer SWT-Steuerung zuordnen. Die Klasse OpenStrategy bindet die entsprechenden Ereignisse an und interpretiert sie auf der Basis der Benutzervorgaben. Sie sind dafür verantwortlich, eine Listener-Funktion für das Öffnen zu der Strategie hinzuzufügen, die den Code für das Öffnen implementiert. Auf diese Weise bleibt Ihnen verborgen, welches Widget-Ereignis das Öffnungsereignis ausgelöst hat.

OpenStrategy openHandler = new OpenStrategy(control);
openHandler.addOpenListener(new IOpenEventListener() {
	public void handleOpen(SelectionEvent e) {
	// Code zur Verwaltung des Öffnungsereignisses.
	...
	}
}

Die anderen Workbench-Benutzervorgaben für das Öffnen (bei Kurzhilfe auswählen, Öffnen mit den Pfeiltasten) werden ebenfalls durch die Klasse OpenStrategy verwaltet. Dies bedeutet, dass der "korrekte Vorgang" ausgeführt wird, wenn Sie JFace-Anzeigefunktionen oder die Klasse OpenStrategy zum Implementieren von Öffnungsverhalten verwenden.

Editoren beim Öffnen aktivieren

Beim Verwalten eines Öffnungsereignisses sollten Sie OpenStrategy.activateOnOpen() verwenden, um zu ermitteln, ob ein geöffneter Editor standardmäßig aktiviert werden sollte. Beim Aktivieren eines Editors wird der Fokus von der Sicht auf den Editor versetzt, was besonders im Einzelklickmodus zu unerwünschter Verwirrung führen kann.

Copyright IBM Corporation und Andere 2000, 2003.