Zugriff auf Commands in Toolbar

Status
Nicht offen für weitere Antworten.

Saxony

Top Contributor
Hiho,

ich habe in einer View-Toolbar einen Command im Toggle-Style hinzugefügt. Ich sehe auch die dadurch entstandene Schaltfläche innerhalb meiner View-Toolbar. Soweit so gut. Tritt nun ein Ereignis auf - Nutzer klickt auf diese Schaltfläche - dann wird ja die execute Methode meines Handlers abgearbeitet. Wie komme ich aber nun an den Status (gedrückt / nicht gedrückt) dieser Schaltfläche heran?

bye Saxony
 

Saxony

Top Contributor
Hiho,

ich muss da mal wieder reaktivieren! Sitze gerade wieder daran den Status von Buttons eine View Toolbar zu erhalten.

Und zwar gehe ich wie folgt vor:

1. Ich lege in meiner Plug-In.xml einen Command als Extension an (org.eclipse.ui.command).
2. Für diesen Command schreibe ich ebenso einen Handler (extends AbstractHandler)
3. darin überschreibe ich die execute Methode und fülle diese mit den dingen, welche passieren sollen wenn der Command ausgeführt wird
4. Diesen Command füge ich nun in der Plugin.xml als Extension (org.eclipse.ui.menus) der Toolbar meines Views hinzu.
5. Als style für diesen Command verwende ich Toggle
6. Starte ich die Anwendung macht er für den Command eine Schaltfläche innerhalb der View-Toolbar

7. und das ist nun die Frage - Wie kann ich den ToggleStatus der so erzeugten Schaltfläche inner halb der execute Methode des zugehörigen Handlers abfragen?

Wäre nett wenn das einer (Wildcard?) weiß!

bye Saxony
 
Zuletzt bearbeitet:
V

Vayu

Gast
musst mal n bissl mit rumspielen, aber soooo ungefähr kommste an deine commands ran

Java:
((SlaveCommandService)PlatformUI.getWorkbench()
    .getActiveWorkbenchWindow().getService(ICommandService.class))
    .getCommand("command.id")
 
V

Vayu

Gast
achso und über [c]getHandler[/c] kommste an deine HandlerKlasse ran, sprich die dahinterliegende action
 

Saxony

Top Contributor
Hiho,

ja an den Command kommt man auch einfach mit ExecutionEvent.getCommand() ;)

Aber das ist ja nur ein Teil der Lösung - ich brauche im Endeffekt den Status des durch diesen Commands erzeugten ToggleButtons (pressed / unpressed).

Nunja ich war ja in der Zwischenzeit nicht untätig und habe etwas dazu gefunden.

Als erstes nehme man ein Eclipse 3.5 Galileo.
Dann kann man dort in der Plugin.xml bei den Command Extensions (org.eclipse.ui.commands) für ein Command noch ein State hinzufügen.

Als id nehme man: "org.eclipse.ui.commands.toggleState"
und als class: "org.eclipse.ui.handlers.RegistryToggleState"

Bei class kann man noch ein default mitgeben für den state

z.B. "org.eclipse.ui.handlers.RegistryToggleState:false"

So und nun *trommelwirbel*

In der execute Methode des Command Handler greift man so drauf zu:

Java:
public Object execute(ExecutionEvent event) throws ExecutionException {

	boolean state = HandlerUtil.toggleCommandState(event.getCommand());

	// do something with the state

	return null;

HandlerUtil#toggleCommandState(Command) gibts erst seit Eclipse 3.5.

Übrigens habe ich ja bis vor 6min noch mit 3.4 Ganymade gearbeitet, dann 3.5 Galileo gestartet als Workspace den alten von 3.4 genommen und es lief ohne zu murren. *freu*

bye Saxony
 
V

Vayu

Gast
arf du wolltest innerhalb der execute methode den status haben ... ok das hätte ich dir auch gleich sagen können :p dachte du wolltest von ausserhalb an den status kommen.
 

Saxony

Top Contributor
Zuletzt bearbeitet:

Saxony

Top Contributor
Hiho,

mal noch ne Anmerkung der Vollständigkeit halber:

Sollte aus irgendwelchen Gründen der Toggle Status des Commands geändert werden.

Java:
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {

	boolean allowToggleState = // check for toggling allowed
		
	if (!allowToggleState) {
			
		State state = event.getCommand().getState("org.eclipse.ui.commands.toggleState")
		state.setValue(Boolean.FALSE);
	}

	return null;
}

bye Saxony
 

Saxony

Top Contributor
Ich nochmal - wenn man nur über den State an den Status des ToggleCommands rangeht - also kein HandlerUtil#toggleCommandState(Command) nutzt - kann man auch bei Eclipse 3.4 bleiben! ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P OSGi Zugriff auf Entitäten & Transaktionen Plattformprogrammierung 2
K Zugriff auf Oracle aus Eclipse Plug-In Plattformprogrammierung 7
M Problem beim Zugriff auf Klasse aus Fragment in einem anderen Plugin Plattformprogrammierung 3
B RCP - Zugriff von View auf andere View Plattformprogrammierung 4
T [solved] Eclipse RCP: Zugriff auf Classpath-Inhalt Plattformprogrammierung 4
R RCP Commands nutzen / org.eclipse.ui.file.save Plattformprogrammierung 7
T RCP Statische Commands in dynamischem Sub-Menü? Plattformprogrammierung 2
C RCP Zwei Commands in einem Handler Plattformprogrammierung 2
F RCP EditorPart Commands hinzufügen Plattformprogrammierung 3
C objectContribution mit Commands Plattformprogrammierung 3
S Commands/Menüeinträge/Toolbars Plattformprogrammierung 3
G ActionSet,commands,IWorkbenchWindowActionDelegate Plattformprogrammierung 19
J Probleme mit Toolbar Konfiguartion in e4 Anwendung. Plattformprogrammierung 0
TheWhiteShadow RCP Zustand von Editor Toolbar ToggleButton aktualisieren Plattformprogrammierung 0
dzim RCP Sichtbarkeit von Toolbar-Elementen Plattformprogrammierung 19
dzim RCP Aktivieren/Deaktivieren von Toolbar-Items Plattformprogrammierung 12
H Toolbar durch Perspektivenwechseln ändern ? Plattformprogrammierung 2
M Eclipse RCP: überflüssige Icons in einer Toolbar Plattformprogrammierung 6
M Command in Toolbar aktiv wenn View nicht aktiv Plattformprogrammierung 2
N Toolbar Button gegenseitig verriegeln Plattformprogrammierung 7
K TextFeld in einer ToolBar Plattformprogrammierung 2
G Toolbar + combobox Plattformprogrammierung 4
G eclipse rcp, pulldown menü, toolbar Plattformprogrammierung 3

Ähnliche Java Themen


Oben