Ich habe eine Symbolleiste, die ich zum Umschalten zwischen Perspektiven verwenden. Jede Schaltfläche in meiner Symbolleiste öffnet eine andere Perspektive. Ich möchte betonen, dass der Benutzer fühlt, was zu der Zeit geöffnet ist, und ich möchte meine Knöpfe als Schalter mit den Zuständen "DOWN" und "UP" betätigen. Der Code, den ich neue BaseActions zur Symbolleiste hinzufügen verwenden:Benutzerdefinierte Toggle-Verwaltung in Eclipse RCP ToolBar
ToolBarManager toolBarManager = new ToolBarManager();
coolBar.add(toolBarManager);
toolBarManager.add(ordersDownload);
und Teil des Codes meiner BaseAction die Schaltfläche Verhalten ändert sich hin- und herzuschalten:
public class BaseAction implements IAction {
@Override
public int getStyle() {
return SWT.TOGGLE;
}
Innerhalb IAction gibt es ein Verfahren boolean isChecked
aber es funktioniert nicht wie immer, wenn ich auf die Schaltfläche in der Symbolleiste klicke, wird der Status invertiert (DOWN -> UP, UP -> DOWN). Ich möchte nicht mehr als einen Button (Toggle) gleichzeitig mit Status DOWN haben, also möchte ich irgendwie Status UP für alle Buttons aufrufen und nur einen mit Status DOWN lassen.
'getStyle' muss einen der' IAction.AS_xxxx' Werte zurückgeben - 'SWT.TOGGLE' ist nicht gültig. Es ist üblicher, 'org.eclipse.jface.action.Action' zu erweitern, anstatt zu versuchen, die gesamte' IAction' selbst zu implementieren. –