/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.workflow.editor;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.swt.widgets.Event;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.actions.RetargetAction;
import de.rcenvironment.core.gui.workflow.Activator;
/**
* Action that shows or hides all numbers of channels per connection in the workflow editor.
*
* @author Oliver Seebach
*
*/
public class ShowNumberOfConnectionsAction extends RetargetAction {
private static IPreferenceStore preferenceStore;
private IWorkbenchPart activePart;
public ShowNumberOfConnectionsAction(String actionID, String text) {
super(actionID, text);
preferenceStore = Activator.getInstance().getPreferenceStore();
}
@Override
public void partActivated(IWorkbenchPart part) {
super.partActivated(part);
activePart = part;
// set button state accordingly
setChecked(preferenceStore.getBoolean(WorkflowEditor.SHOW_LABELS_PREFERENCE_KEY));
if (activePart instanceof WorkflowEditor) {
if (preferenceStore.getBoolean(WorkflowEditor.SHOW_LABELS_PREFERENCE_KEY)){
((WorkflowEditor) activePart).showAllConnectionLabels();
} else {
((WorkflowEditor) activePart).hideUnselectedConnectionLabels();
}
}
isEnabled();
}
@Override
public boolean isEnabled() {
boolean enabled = (activePart instanceof WorkflowEditor);
super.setEnabled(enabled);
return enabled;
}
@Override
public int getStyle() {
return IAction.AS_CHECK_BOX;
}
@Override
public void runWithEvent(Event event) {
if (activePart instanceof WorkflowEditor) {
WorkflowEditor editor = (WorkflowEditor) activePart;
if (isChecked()){
editor.showAllConnectionLabels();
preferenceStore.setValue(WorkflowEditor.SHOW_LABELS_PREFERENCE_KEY, true);
} else {
editor.hideUnselectedConnectionLabels();
preferenceStore.setValue(WorkflowEditor.SHOW_LABELS_PREFERENCE_KEY, false);
}
}
super.runWithEvent(event);
}
}