-/*******************************************************************************
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management
- * in Industry THTH ry.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * VTT Technical Research Centre of Finland - initial API and implementation
- *******************************************************************************/
-package org.simantics.simulation.ui;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.State;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.simantics.simulation.experiment.ExperimentState;
-import org.simantics.simulation.experiment.IExperimentListener;
-
-public class ExperimentListener implements IExperimentListener {
-
- IContextActivation contextActivation;
-
- @Override
- public void stateChanged(final ExperimentState state) {
-
- if(!PlatformUI.isWorkbenchRunning()) return;
-
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
-
- @Override
- public void run() {
- ICommandService service =
- (ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class);
- Command command = service.getCommand("org.simantics.simulation.ui.run");
- State buttonState = command.getState("org.simantics.simulation.ui.run.state");
- buttonState.setValue(!(Boolean) buttonState.getValue());
-
- switch(state) {
- case RUNNING:
- //System.out.println("RUNNING");
- buttonState.setValue(true);
- break;
- case STOPPED:
- default:
- //System.out.println("STOPPED");
- buttonState.setValue(false);
- break;
- }
- service.refreshElements(command.getId(), null);
-
- /*IContextService contextService =
- (IContextService)PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getService(IContextService.class);
- if(contextActivation != null)
- contextService.deactivateContext(contextActivation);
- switch(state) {
- case RUNNING:
- contextActivation = contextService.activateContext("org.simantics.simulation.ui.experimentRunning");
- break;
- case STOPPED:
- contextActivation = contextService.activateContext("org.simantics.simulation.ui.experimentStopped");
- break;
- default:
- contextActivation = null;
- break;
-
- } */
- }
-
- });
- }
-
-}