X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.simulation.ui%2Fsrc%2Forg%2Fsimantics%2Fsimulation%2Fui%2Fhandlers%2Fe4%2FRun.java;h=b297577d9d5bc985e449883e32a4381f00840645;hb=e88be95edf1f80781646cfdf717ec1b663264179;hp=f0b70942a647c5a5a62a9f9d8c8aeb5ab9b4c557;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.simulation.ui/src/org/simantics/simulation/ui/handlers/e4/Run.java b/bundles/org.simantics.simulation.ui/src/org/simantics/simulation/ui/handlers/e4/Run.java index f0b70942a..b297577d9 100644 --- a/bundles/org.simantics.simulation.ui/src/org/simantics/simulation/ui/handlers/e4/Run.java +++ b/bundles/org.simantics.simulation.ui/src/org/simantics/simulation/ui/handlers/e4/Run.java @@ -1,74 +1,74 @@ -/******************************************************************************* - * 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.handlers.e4; - -import java.util.List; - -import javax.inject.Inject; - -import org.eclipse.e4.core.di.annotations.CanExecute; -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.e4.core.di.annotations.Optional; -import org.eclipse.e4.ui.di.UIEventTopic; -import org.eclipse.e4.ui.model.application.MApplication; -import org.eclipse.e4.ui.model.application.ui.menu.MHandledItem; -import org.eclipse.e4.ui.workbench.modeling.EModelService; -import org.simantics.Simantics; -import org.simantics.simulation.SimulationEvents; -import org.simantics.simulation.experiment.ExperimentUtil; -import org.simantics.simulation.experiment.IExperiment; -import org.simantics.simulation.project.IExperimentManager; - -public class Run { - - public static final String RUN_STATE_EVENT = "runSimulationEvent"; - public static final String SIMULATION_RUN_STATE = "org.simantics.simulation.ui.run.state"; - private static final String HANDLED_ITEM_ID = "org.simantics.simulation.ui.handledtoolitem.Run"; - - @Inject - EModelService modelService; - - @CanExecute - public boolean canExecute() { - IExperimentManager manager = Simantics.getProject().getHint(IExperimentManager.KEY_EXPERIMENT_MANAGER); - if (manager == null) - return false; - IExperiment experiment = manager.getActiveExperiment(); - if (experiment == null) - return false; - return true; - } - - @Execute - public void execute(MHandledItem handledItem) { - ExperimentUtil.simulate(handledItem.isSelected()); - } - - @Inject - @Optional - public void handleEvent(@UIEventTopic(SimulationEvents.TOPIC_STATE_CHANGE) boolean state, MApplication application) { - List items = modelService.findElements(application, HANDLED_ITEM_ID, MHandledItem.class, null); - if (!items.isEmpty()) { - for (MHandledItem handledItem : items) { - handledItem.setSelected(state); - if (handledItem.isSelected()) { - handledItem.setIconURI("platform:/plugin/org.simantics.simulation.ui/icons/control_pause.png"); - handledItem.setTooltip("Pause"); - } else { - handledItem.setIconURI("platform:/plugin/org.simantics.simulation.ui/icons/control_play.png"); - handledItem.setTooltip("Run"); - } - } - } - } - -} +/******************************************************************************* + * 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.handlers.e4; + +import java.util.List; + +import javax.inject.Inject; + +import org.eclipse.e4.core.di.annotations.CanExecute; +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.core.di.annotations.Optional; +import org.eclipse.e4.ui.di.UIEventTopic; +import org.eclipse.e4.ui.model.application.MApplication; +import org.eclipse.e4.ui.model.application.ui.menu.MHandledItem; +import org.eclipse.e4.ui.workbench.modeling.EModelService; +import org.simantics.Simantics; +import org.simantics.simulation.SimulationEvents; +import org.simantics.simulation.experiment.ExperimentUtil; +import org.simantics.simulation.experiment.IExperiment; +import org.simantics.simulation.project.IExperimentManager; + +public class Run { + + public static final String RUN_STATE_EVENT = "runSimulationEvent"; + public static final String SIMULATION_RUN_STATE = "org.simantics.simulation.ui.run.state"; + private static final String HANDLED_ITEM_ID = "org.simantics.simulation.ui.handledtoolitem.Run"; + + @Inject + EModelService modelService; + + @CanExecute + public boolean canExecute() { + IExperimentManager manager = Simantics.getProject().getHint(IExperimentManager.KEY_EXPERIMENT_MANAGER); + if (manager == null) + return false; + IExperiment experiment = manager.getActiveExperiment(); + if (experiment == null) + return false; + return true; + } + + @Execute + public void execute(MHandledItem handledItem) { + ExperimentUtil.simulate(handledItem.isSelected()); + } + + @Inject + @Optional + public void handleEvent(@UIEventTopic(SimulationEvents.TOPIC_STATE_CHANGE) boolean state, MApplication application) { + List items = modelService.findElements(application, HANDLED_ITEM_ID, MHandledItem.class, null); + if (!items.isEmpty()) { + for (MHandledItem handledItem : items) { + handledItem.setSelected(state); + if (handledItem.isSelected()) { + handledItem.setIconURI("platform:/plugin/org.simantics.simulation.ui/icons/control_pause.png"); + handledItem.setTooltip("Pause"); + } else { + handledItem.setIconURI("platform:/plugin/org.simantics.simulation.ui/icons/control_play.png"); + handledItem.setTooltip("Run"); + } + } + } + } + +}