From 0963f278a80bf6d8357921999850302af8ef0a6e Mon Sep 17 00:00:00 2001 From: Jens Bendisposto <jens@bendisposto.de> Date: Mon, 3 Sep 2012 13:24:53 +0200 Subject: [PATCH] work on newcore, most likely trash --- .../gef/editor/AbstractInstallActions.java | 6 +- .../bmotionstudio/gef/editor/Animation.java | 19 +- .../gef/editor/IInstallActions.java | 8 +- .../gef/editor/IInstallMenu.java | 6 +- .../editor/command/AbstractLayoutCommand.java | 4 +- .../editor/internal/ProgressBarDialog.java | 16 +- .../property/CheckboxCellEditorHelper.java | 8 +- .../editor/property/FileDialogCellEditor.java | 10 +- .../property/FilePropertyDescriptor.java | 6 +- .../property/ImagePropertyDescriptor.java | 6 +- .../editor/property/IntegerCellEditor.java | 13 +- .../gef/editor/property/SliderCellEditor.java | 28 +- .../property/SliderPropertyDescriptor.java | 6 +- .../gef/editor/util/BMSUtil.java | 3 - de.prob.core/META-INF/MANIFEST.MF | 5 - de.prob.core/plugin.xml | 19 +- de.prob.core/src/de/prob/cli/CliStarter.java | 372 ------------------ .../src/de/prob/core/internal/Activator.java | 1 + de.prob.ui/plugin.xml | 12 - .../de/prob/ui/StaticListenerRegistry.java | 3 +- .../prob/ui/eventb/StartAnimationHandler.java | 1 - .../prob/ui/stateview/AddFormulaHandler.java | 57 ++- .../de/prob/ui/stateview/StateViewPart.java | 11 +- .../statetree/StateTreeExpression.java | 6 - .../statetree/StateTreeExpressionSection.java | 6 - 25 files changed, 113 insertions(+), 519 deletions(-) delete mode 100644 de.prob.core/src/de/prob/cli/CliStarter.java diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/AbstractInstallActions.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/AbstractInstallActions.java index e7e9ef17..0767ddde 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/AbstractInstallActions.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/AbstractInstallActions.java @@ -6,9 +6,9 @@ package de.bmotionstudio.gef.editor; -import java.util.HashMap; - -import org.eclipse.jface.action.Action; +import java.util.HashMap; + +import org.eclipse.jface.action.Action; public class AbstractInstallActions { diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/Animation.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/Animation.java index 736d82ce..65c59d68 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/Animation.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/Animation.java @@ -16,12 +16,9 @@ import org.eclipse.swt.widgets.Display; import de.bmotionstudio.gef.editor.animation.StaticListenerRegistry; import de.bmotionstudio.gef.editor.model.BControl; import de.bmotionstudio.gef.editor.model.Visualization; +import de.prob.animator.domainobjects.ClassicalBEvalElement; import de.prob.core.Animator; import de.prob.core.IAnimationListener; -import de.prob.core.command.EvaluationGetValuesCommand; -import de.prob.core.command.EvaluationInsertFormulaCommand; -import de.prob.core.command.EvaluationInsertFormulaCommand.FormulaType; -import de.prob.core.domainobjects.EvaluationElement; import de.prob.core.domainobjects.Operation; import de.prob.core.domainobjects.State; import de.prob.exceptions.ProBException; @@ -33,7 +30,7 @@ public class Animation implements IAnimationListener { private final Map<String, Operation> currentStateOperations; - private final Map<String, EvaluationElement> cachedEvalElements = new HashMap<String, EvaluationElement>(); + private final Map<String, ClassicalBEvalElement> cachedEvalElements = new HashMap<String, ClassicalBEvalElement>(); private State currentState; @@ -82,12 +79,12 @@ public class Animation implements IAnimationListener { * @param currentState */ private void updateCachedExpressions(State currentState) { - try { - EvaluationGetValuesCommand.getValuesForExpressionsCached( - currentState, cachedEvalElements.values()); - } catch (ProBException e) { - // TODO Log this - } +// try { +//// EvaluationGetValuesCommand.getValuesForExpressionsCached( +//// currentState, cachedEvalElements.values()); +// } catch (ProBException e) { +// // TODO Log this +// } } private void collectAllBControls(List<BControl> allBControls, diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/IInstallActions.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/IInstallActions.java index e05735f5..6a48223d 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/IInstallActions.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/IInstallActions.java @@ -6,10 +6,10 @@ package de.bmotionstudio.gef.editor; -import java.util.HashMap; - -import org.eclipse.jface.action.Action; -import org.eclipse.ui.part.WorkbenchPart; +import java.util.HashMap; + +import org.eclipse.jface.action.Action; +import org.eclipse.ui.part.WorkbenchPart; public interface IInstallActions { diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/IInstallMenu.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/IInstallMenu.java index 65739460..3a5db8f1 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/IInstallMenu.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/IInstallMenu.java @@ -6,9 +6,9 @@ package de.bmotionstudio.gef.editor; -import org.eclipse.gef.ui.actions.ActionRegistry; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.ui.IActionBars; +import org.eclipse.gef.ui.actions.ActionRegistry; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.ui.IActionBars; public interface IInstallMenu { diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/command/AbstractLayoutCommand.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/command/AbstractLayoutCommand.java index 231e1866..91b830e1 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/command/AbstractLayoutCommand.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/command/AbstractLayoutCommand.java @@ -6,8 +6,8 @@ package de.bmotionstudio.gef.editor.command; -import org.eclipse.draw2d.geometry.Rectangle; -import org.eclipse.gef.commands.Command; +import org.eclipse.draw2d.geometry.Rectangle; +import org.eclipse.gef.commands.Command; public abstract class AbstractLayoutCommand extends Command { diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/internal/ProgressBarDialog.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/internal/ProgressBarDialog.java index 693325bf..382ebd3f 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/internal/ProgressBarDialog.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/internal/ProgressBarDialog.java @@ -12,8 +12,20 @@ import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.FormAttachment; +import org.eclipse.swt.layout.FormData; +import org.eclipse.swt.layout.FormLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Dialog; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Monitor; +import org.eclipse.swt.widgets.ProgressBar; +import org.eclipse.swt.widgets.Shell; import de.bmotionstudio.gef.editor.BMotionStudioImage; import de.bmotionstudio.gef.editor.EditorImageRegistry; diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/CheckboxCellEditorHelper.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/CheckboxCellEditorHelper.java index f8bc69e4..f3c6226f 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/CheckboxCellEditorHelper.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/CheckboxCellEditorHelper.java @@ -6,11 +6,11 @@ package de.bmotionstudio.gef.editor.property; -import org.eclipse.jface.viewers.ICellModifier; -import org.eclipse.swt.graphics.Image; - +import org.eclipse.jface.viewers.ICellModifier; +import org.eclipse.swt.graphics.Image; + import de.bmotionstudio.gef.editor.BMotionStudioImage; -import de.bmotionstudio.gef.editor.EditorImageRegistry; +import de.bmotionstudio.gef.editor.EditorImageRegistry; public class CheckboxCellEditorHelper { diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/FileDialogCellEditor.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/FileDialogCellEditor.java index 5af32e60..cb2f5716 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/FileDialogCellEditor.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/FileDialogCellEditor.java @@ -6,11 +6,11 @@ package de.bmotionstudio.gef.editor.property; -import org.eclipse.jface.viewers.DialogCellEditor; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.FileDialog; -import org.eclipse.ui.PlatformUI; +import org.eclipse.jface.viewers.DialogCellEditor; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.ui.PlatformUI; public class FileDialogCellEditor extends DialogCellEditor { diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/FilePropertyDescriptor.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/FilePropertyDescriptor.java index 9203cd81..774b2a84 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/FilePropertyDescriptor.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/FilePropertyDescriptor.java @@ -6,9 +6,9 @@ package de.bmotionstudio.gef.editor.property; -import org.eclipse.jface.viewers.CellEditor; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.views.properties.PropertyDescriptor; +import org.eclipse.jface.viewers.CellEditor; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.views.properties.PropertyDescriptor; public class FilePropertyDescriptor extends PropertyDescriptor { diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/ImagePropertyDescriptor.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/ImagePropertyDescriptor.java index da6325a2..d7943bfc 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/ImagePropertyDescriptor.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/ImagePropertyDescriptor.java @@ -6,9 +6,9 @@ package de.bmotionstudio.gef.editor.property; -import org.eclipse.jface.viewers.CellEditor; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.views.properties.PropertyDescriptor; +import org.eclipse.jface.viewers.CellEditor; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.views.properties.PropertyDescriptor; public class ImagePropertyDescriptor extends PropertyDescriptor { diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/IntegerCellEditor.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/IntegerCellEditor.java index ece60211..6ff8affa 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/IntegerCellEditor.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/IntegerCellEditor.java @@ -12,7 +12,18 @@ import org.eclipse.core.runtime.Assert; import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.ICellEditorValidator; import org.eclipse.swt.SWT; -import org.eclipse.swt.events.*; +import org.eclipse.swt.events.FocusAdapter; +import org.eclipse.swt.events.FocusEvent; +import org.eclipse.swt.events.KeyAdapter; +import org.eclipse.swt.events.KeyEvent; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.events.MouseAdapter; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.TraverseEvent; +import org.eclipse.swt.events.TraverseListener; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Text; diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/SliderCellEditor.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/SliderCellEditor.java index 58bb2aff..0afcdae6 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/SliderCellEditor.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/SliderCellEditor.java @@ -6,17 +6,23 @@ package de.bmotionstudio.gef.editor.property; -import java.text.MessageFormat; - -import org.eclipse.jface.viewers.CellEditor; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.FocusEvent; -import org.eclipse.swt.events.FocusListener; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.graphics.Font; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.widgets.*; +import java.text.MessageFormat; + +import org.eclipse.jface.viewers.CellEditor; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.FocusEvent; +import org.eclipse.swt.events.FocusListener; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Layout; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Slider; public class SliderCellEditor extends CellEditor { diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/SliderPropertyDescriptor.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/SliderPropertyDescriptor.java index 5be87c1a..000ba95a 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/SliderPropertyDescriptor.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/SliderPropertyDescriptor.java @@ -6,9 +6,9 @@ package de.bmotionstudio.gef.editor.property; -import org.eclipse.jface.viewers.CellEditor; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.views.properties.PropertyDescriptor; +import org.eclipse.jface.viewers.CellEditor; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.views.properties.PropertyDescriptor; public class SliderPropertyDescriptor extends PropertyDescriptor { diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/util/BMSUtil.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/util/BMSUtil.java index ed487db0..235faffa 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/util/BMSUtil.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/util/BMSUtil.java @@ -13,10 +13,7 @@ import de.be4.classicalb.core.parser.exceptions.BException; import de.bmotionstudio.gef.editor.Animation; import de.bmotionstudio.gef.editor.AttributeConstants; import de.bmotionstudio.gef.editor.model.BControl; -import de.prob.core.command.EvaluationGetValuesCommand; import de.prob.core.command.GetOperationByPredicateCommand; -import de.prob.core.domainobjects.EvaluationElement; -import de.prob.core.domainobjects.EvaluationStateElement; import de.prob.core.domainobjects.Operation; import de.prob.core.domainobjects.State; import de.prob.exceptions.ProBException; diff --git a/de.prob.core/META-INF/MANIFEST.MF b/de.prob.core/META-INF/MANIFEST.MF index a576762a..11d74174 100644 --- a/de.prob.core/META-INF/MANIFEST.MF +++ b/de.prob.core/META-INF/MANIFEST.MF @@ -3,11 +3,6 @@ Bundle-ManifestVersion: 2 Bundle-Name: ProB Animator Core Bundle-SymbolicName: de.prob.core;singleton:=true Bundle-Version: 9.2.2.qualifier -Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", - org.rodinp.core;bundle-version="[1.3.1,1.7.0)", - org.eventb.core;bundle-version="[2.1.0,2.6.0)", - org.eventb.emf.core;bundle-version="2.2.4", - org.eventb.emf.persistence;bundle-version="2.4.0" Bundle-ActivationPolicy: lazy Eclipse-BundleShape: dir Bundle-Vendor: HHU Düsseldorf STUPS Group diff --git a/de.prob.core/plugin.xml b/de.prob.core/plugin.xml index 2d7b472c..d700da6f 100644 --- a/de.prob.core/plugin.xml +++ b/de.prob.core/plugin.xml @@ -4,22 +4,5 @@ <extension-point id="de.prob.core.lifecycle" name="Lifecycle Events" schema="schema/de.prob.core.lifecycle.exsd"/> <extension-point id="de.prob.core.computation" name="Computation Events" schema="schema/de.prob.core.computation.exsd"/> <extension-point id="de.prob.core.animation" name="Animation Events" schema="schema/de.prob.core.animation.exsd"/> - <extension - point="de.prob.core.animation"> - <listener - class="de.prob.core.StaticListenerRegistry"> - </listener> - </extension> - <extension - point="de.prob.core.computation"> - <listener - class="de.prob.core.StaticListenerRegistry"> - </listener> - </extension> - <extension - point="de.prob.core.lifecycle"> - <listener - class="de.prob.core.StaticListenerRegistry"> - </listener> - </extension> + </plugin> diff --git a/de.prob.core/src/de/prob/cli/CliStarter.java b/de.prob.core/src/de/prob/cli/CliStarter.java deleted file mode 100644 index f71cf9aa..00000000 --- a/de.prob.core/src/de/prob/cli/CliStarter.java +++ /dev/null @@ -1,372 +0,0 @@ -/** - * (c) 2009 Lehrstuhl fuer Softwaretechnik und Programmiersprachen, - * Heinrich Heine Universitaet Duesseldorf - * This software is licenced under EPL 1.0 (http://www.eclipse.org/org/documents/epl-v10.html) - * */ - -package de.prob.cli; - -import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -import org.eclipse.core.runtime.Assert; -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; - -import de.prob.cli.clipatterns.CliPattern; -import de.prob.cli.clipatterns.InterruptRefPattern; -import de.prob.cli.clipatterns.PortPattern; -import de.prob.core.internal.Activator; -import de.prob.logging.Logger; - -public final class CliStarter { - private static final String[] JARS = new String[] { "BParser.jar", - "ParserAspects.jar", "aspectjrt.jar", "prolog.jar" }; - - private Process prologProcess; - private String debuggingKey; - - private int port = -1; - private Long userInterruptReference = null; - - private OutputLoggerThread stdLogger; - private OutputLoggerThread errLogger; - - public CliStarter() throws CliException { - this(null); - } - - public CliStarter(final File file) throws CliException { - startProlog(file); - } - - public int getPort() { - return port; - } - - public void shutdown() { - try { - prologProcess.destroy(); - } catch (RuntimeException e) { - final String message = "XXXXX Error while stopping cli process: " - + e.getLocalizedMessage(); - Logger.notifyUser(message, e); - } finally { - stdLogger.shutdown(); - errLogger.shutdown(); - } - } - - public String getDebuggingKey() { - return debuggingKey; - } - - private void startProlog(final File file) throws CliException { - prologProcess = null; - debuggingKey = null; - - final String os = Platform.getOS(); - final String arch = Platform.getOSArch(); - final File applicationPath = getCliPath(); - - final String fullcp = createFullClasspath(os, applicationPath); - - final OsSpecificInfo osInfo = getOsInfo(os,arch); - - - final String osPath = applicationPath + File.separator + osInfo.subdir; - final String executable = osPath + File.separator + osInfo.cliName; - Logger.info("Starting ProB CLI for " + os + " ... Path is " - + executable); - - List<String> command = new ArrayList<String>(); - if (osInfo.helperCmd != null) { - command.add(osInfo.helperCmd); - } - command.add(executable); - // command.add("-ll"); - command.add("-sf"); - command.add("-parsercp"); - command.add(fullcp); - - if (file != null) { - command.add(file.getAbsolutePath()); - } - - createDebuggingKey(); - - final ProcessBuilder pb = new ProcessBuilder(); - pb.command(command); - pb.environment().put("PROB_DEBUGGING_KEY", debuggingKey); - pb.environment().put("TRAILSTKSIZE", "1M"); - pb.environment().put("PROLOGINCSIZE", "50M"); - pb.environment().put("PROB_HOME", osPath); - try { - prologProcess = pb.start(); - } catch (IOException e) { - final String message = "Problem while starting up ProB CLI. Tried to execute:" - + executable; - Logger.notifyUser(message, e); - throw new CliException(message, e, true); - } - - Assert.isNotNull(prologProcess); - - final BufferedReader input = new BufferedReader(new InputStreamReader( - prologProcess.getInputStream())); - final BufferedReader output = new BufferedReader(new InputStreamReader( - prologProcess.getErrorStream())); - - startErrorLogger(output); - - extractCliInformation(input); - // log output from Prolog - startOutputLogger(input); - - final Process p = prologProcess; - - Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { - public void run() { - p.destroy(); - } - })); - - } - - private OsSpecificInfo getOsInfo(final String os, String architecture) throws CliException { - if (os.equals(Platform.OS_MACOSX)) { - return new OsSpecificInfo("macos", "probcli.sh", - "sh", "send_user_interrupt"); - } - if (os.equals(Platform.OS_WIN32)) { - return new OsSpecificInfo("windows", - "probcli.exe", null, "send_user_interrupt.exe"); - } - - if (os.equals(Platform.OS_LINUX)) { - String linux = "linux"; - if (architecture.equals(Platform.ARCH_X86_64)) { - linux = "linux64"; - } - return new OsSpecificInfo(linux, "probcli.sh", - "sh", "send_user_interrupt"); - } - final CliException cliException = new CliException( - "ProB does not support the plattform: " + os); - cliException.notifyUserOnce(); - throw cliException; - } - - @SuppressWarnings("unchecked") - private void extractCliInformation(final BufferedReader input) - throws CliException { - final PortPattern portPattern = new PortPattern(); - final InterruptRefPattern intPattern = new InterruptRefPattern(); - analyseStdout(input, Arrays.asList(portPattern, intPattern)); - port = portPattern.getValue(); - userInterruptReference = intPattern.getValue(); - } - - private static String createFullClasspath(final String os, final File path) - throws CliException { - final File base = new File(path.getParentFile().getParentFile(), - "de.prob.common"); - final File common = new File(base, "common"); - final File lib = new File(common, "lib"); - final StringBuilder sb = new StringBuilder(); - boolean isFirst = true; - for (final String jar : JARS) { - final File entry = new File(lib, jar); - if (!isFirst) { - sb.append(File.pathSeparator); - } - sb.append(entry.getPath()); - isFirst = false; - } - return sb.toString(); - } - - private void startOutputLogger(final BufferedReader input) { - stdLogger = new OutputLoggerThread("(Output " + port + ")", input); - stdLogger.start(); - } - - private void startErrorLogger(final BufferedReader output) { - errLogger = new OutputLoggerThread("(Error " + port + ")", output); - errLogger.start(); - } - - private void createDebuggingKey() { - Random random; - try { - random = SecureRandom.getInstance("SHA1PRNG"); - } catch (NoSuchAlgorithmException e) { - random = new Random(); - } - debuggingKey = Long.toHexString(random.nextLong()); - } - - private void analyseStdout(final BufferedReader input, - Collection<? extends CliPattern<?>> patterns) throws CliException { - patterns = new ArrayList<CliPattern<?>>(patterns); - try { - String line; - boolean endReached = false; - while (!endReached && (line = input.readLine()) != null) { // NOPMD - applyPatterns(patterns, line); - endReached = patterns.isEmpty() - || line.contains("starting command loop"); - } - } catch (IOException e) { - final String message = "Problem while starting ProB. Cannot read from input stream."; - Logger.notifyUser(message, e); - throw new CliException(message, e, true); - } - for (CliPattern<?> p : patterns) { - p.notFound(); - } - } - - private void applyPatterns( - final Collection<? extends CliPattern<?>> patterns, - final String line) { - for (Iterator<? extends CliPattern<?>> it = patterns.iterator(); it - .hasNext();) { - final CliPattern<?> p = it.next(); - if (p.matchesLine(line)) { - it.remove(); - } - } - } - - private File getCliPath() throws CliException { - final Path path = new Path("prob"); - final URL fileURL = FileLocator.find( - Activator.getDefault().getBundle(), path, null); - if (fileURL==null) { - throw new CliException("Unable to find directory with prob executables."); - } - URL resolved; - try { - resolved = FileLocator.resolve(fileURL); - } catch (IOException e2) { - throw new CliException("Input/output error when trying t find '" - + fileURL + "'"); - } - URI uri; - try { - uri = resolved.toURI(); - } catch (URISyntaxException e) { - try { - uri = new URI("file", null, resolved.getPath(), null); - } catch (URISyntaxException e1) { - throw new CliException("Unable to construct file '" - + resolved.getPath() + "'"); - } - } - return new File(uri); - } - - private static class OutputLoggerThread extends Thread { - - private final BufferedReader in; - - private final String prefix; - - private volatile boolean shutingDown = false; - - public OutputLoggerThread(final String name, final BufferedReader in) { - super(); - prefix = "[" + name + "] "; - this.in = in; - } - - @Override - public void run() { - try { - while (!shutingDown) { - final String line = in.readLine(); - - if (line == null) { - break; - } - // Logger.log(IStatus.INFO, IStatus.OK, prefix + line, - // null); - System.err.println(prefix + line); - } - } catch (IOException e) { - if (!"Stream closed".equals(e.getMessage())) { - final String message = "OutputLogger died with error"; - Logger.log(IStatus.INFO, Logger.DEBUG, message, e); - } - } finally { - if (in != null) { - try { - in.close(); - } catch (IOException e) { - } - } - } - } - - public void shutdown() { - shutingDown = true; - - if (isAlive()) { - interrupt(); - } - } - } - - public void sendUserInterruptReference() { - if (userInterruptReference != null) { - try { - final OsSpecificInfo osInfo = getOsInfo(Platform.getOS(), - Platform.getOSArch()); - final String command = getCliPath() + File.separator - + osInfo.subdir + File.separator - + osInfo.userInterruptCmd; - Runtime.getRuntime().exec( - new String[] { command, - userInterruptReference.toString() }); - } catch (CliException e) { - Logger.info("getting the os specific info failed with exception: " - + e.getLocalizedMessage()); - } catch (IOException e) { - Logger.info("calling the send_user_interrupt command failed: " - + e.getLocalizedMessage()); - } - } - } - - private static class OsSpecificInfo { - final String subdir; - final String cliName; - final String helperCmd; - final String userInterruptCmd; - - public OsSpecificInfo(final String subdir, final String cliName, - final String helperCmd, final String userInterruptCmd) { - this.subdir = subdir; - this.cliName = cliName; - this.helperCmd = helperCmd; - this.userInterruptCmd = userInterruptCmd; - } - - } -} diff --git a/de.prob.core/src/de/prob/core/internal/Activator.java b/de.prob.core/src/de/prob/core/internal/Activator.java index 7b21a95c..c7bef67a 100644 --- a/de.prob.core/src/de/prob/core/internal/Activator.java +++ b/de.prob.core/src/de/prob/core/internal/Activator.java @@ -33,6 +33,7 @@ import de.prob.core.IAnimationListener; import de.prob.core.IComputationListener; import de.prob.core.ILifecycleListener; import de.prob.core.LimitedLogger; +import de.prob.core.StaticListenerRegistry; import de.prob.core.domainobjects.Operation; import de.prob.core.domainobjects.State; import de.prob.logging.Logger; diff --git a/de.prob.ui/plugin.xml b/de.prob.ui/plugin.xml index 26bc7c3a..50f08471 100644 --- a/de.prob.ui/plugin.xml +++ b/de.prob.ui/plugin.xml @@ -86,18 +86,6 @@ restorable="true"> </view> </extension> - <extension - point="de.prob.core.animation"> - <listener - class="de.prob.ui.StaticListenerRegistry"> - </listener> - </extension> - <extension - point="de.prob.core.lifecycle"> - <listener - class="de.prob.ui.StaticListenerRegistry"> - </listener> - </extension> <extension diff --git a/de.prob.ui/src/de/prob/ui/StaticListenerRegistry.java b/de.prob.ui/src/de/prob/ui/StaticListenerRegistry.java index 393d814a..a20fb859 100644 --- a/de.prob.ui/src/de/prob/ui/StaticListenerRegistry.java +++ b/de.prob.ui/src/de/prob/ui/StaticListenerRegistry.java @@ -15,14 +15,13 @@ import de.prob.core.ILifecycleListener; import de.prob.core.ListenerRegistry; import de.prob.core.domainobjects.Operation; import de.prob.core.domainobjects.State; +import de.prob.core.internal.Activator; public class StaticListenerRegistry implements ILifecycleListener, IComputationListener, IAnimationListener{ public StaticListenerRegistry() { - History h = new History(null); - h.registerAnimationListener(this); } private static final ListenerRegistry registry = new ListenerRegistry(); diff --git a/de.prob.ui/src/de/prob/ui/eventb/StartAnimationHandler.java b/de.prob.ui/src/de/prob/ui/eventb/StartAnimationHandler.java index 9fcab69c..320a894a 100644 --- a/de.prob.ui/src/de/prob/ui/eventb/StartAnimationHandler.java +++ b/de.prob.ui/src/de/prob/ui/eventb/StartAnimationHandler.java @@ -111,7 +111,6 @@ public class StartAnimationHandler extends AbstractHandler implements IHandler { try { model = instance.load(serialized, rootElement.getComponentName()); } catch (IOException e) { - // TODO Auto-generated catch block e.printStackTrace(); } diff --git a/de.prob.ui/src/de/prob/ui/stateview/AddFormulaHandler.java b/de.prob.ui/src/de/prob/ui/stateview/AddFormulaHandler.java index 61bc8120..bab96d37 100644 --- a/de.prob.ui/src/de/prob/ui/stateview/AddFormulaHandler.java +++ b/de.prob.ui/src/de/prob/ui/stateview/AddFormulaHandler.java @@ -13,13 +13,17 @@ import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.handlers.HandlerUtil; +import de.be4.classicalb.core.parser.exceptions.BException; import de.prob.core.Animator; import de.prob.core.LanguageDependendAnimationPart; +import de.prob.core.internal.Activator; //import de.prob.core.command.EvaluationInsertFormulaCommand; import de.prob.exceptions.ProBException; import de.prob.parserbase.ProBParseException; import de.prob.parserbase.ProBParserBaseAdapter; import de.prob.prolog.term.PrologTerm; +import de.prob.statespace.StateSpace; +import de.prob.ui.ProbUiPlugin; public class AddFormulaHandler extends AbstractHandler implements IHandler { @@ -39,39 +43,26 @@ public class AddFormulaHandler extends AbstractHandler implements IHandler { validator); int button = dialog.open(); if (button == InputDialog.OK) { - //TODO: Refactor to replace EvaluationInsertFormulaCommand with new core -// final String entered = dialog.getValue(); -// PrologTerm parsed = null; -// try { -// parsed = parser.parsePredicate(entered, false); -// } catch (ProBParseException pe) { -// try { -// parsed = parser.parseExpression(entered, false); -// } catch (ProBParseException ee) { -// MessageDialog.openError(shell, title, -// StateViewStrings.dialogSyntaxError); -// } -// } -// if (parsed != null) { -// try { -// final EvaluationElement staticElement = EvaluationInsertFormulaCommand -// .insertFormula(parsed); -// -// final IWorkbenchPage activePage = PlatformUI -// .getWorkbench().getActiveWorkbenchWindow() -// .getActivePage(); -// final StateViewPart view = (StateViewPart) activePage -// .findView(StateViewPart.STATE_VIEW_ID); -// if (view != null) { -// view.addUserDefinedExpression(staticElement); -// } else { -// MessageDialog.openError(shell, "Error", -// "Unable to access state view"); -// } -// } catch (ProBException e) { -// e.notifyUserOnce(); -// } -// } + final String entered = dialog.getValue(); + try { + StateSpace statespace = Activator.getHistory().getStatespace(); + statespace.addUserFormula(entered); + final IWorkbenchPage activePage = PlatformUI + .getWorkbench().getActiveWorkbenchWindow() + .getActivePage(); + final StateViewPart view = (StateViewPart) activePage + .findView(StateViewPart.STATE_VIEW_ID); + if (view != null) { + //view.addUserDefinedExpression(staticElement); + } else { + MessageDialog.openError(shell, "Error", + "Unable to access state view"); + } + } catch (BException pe) { + MessageDialog.openError(shell, title, + StateViewStrings.dialogSyntaxError); + } + } } }; diff --git a/de.prob.ui/src/de/prob/ui/stateview/StateViewPart.java b/de.prob.ui/src/de/prob/ui/stateview/StateViewPart.java index ab267fe8..62253310 100644 --- a/de.prob.ui/src/de/prob/ui/stateview/StateViewPart.java +++ b/de.prob.ui/src/de/prob/ui/stateview/StateViewPart.java @@ -485,11 +485,10 @@ public class StateViewPart extends StateBasedViewPart { } } - //TODO: Refactor to replace EvaluationElement -// public void addUserDefinedExpression( -// final EvaluationElement userDefinedElement) { + public void addUserDefinedExpression( + final String userDefinedElement) { // this.expressionSection.addChild(userDefinedElement); -// this.topEvaluationElements.add(userDefinedElement); -// refreshTreeView(); -// } + // this.topEvaluationElements.add(userDefinedElement); + refreshTreeView(); + } } diff --git a/de.prob.ui/src/de/prob/ui/stateview/statetree/StateTreeExpression.java b/de.prob.ui/src/de/prob/ui/stateview/statetree/StateTreeExpression.java index 87d54f32..cb58d333 100644 --- a/de.prob.ui/src/de/prob/ui/stateview/statetree/StateTreeExpression.java +++ b/de.prob.ui/src/de/prob/ui/stateview/statetree/StateTreeExpression.java @@ -20,7 +20,6 @@ public class StateTreeExpression extends AbstractStateTreeElement { public StateTreeExpression(StaticStateElement parent) { super(parent); - // TODO Auto-generated constructor stub } //TODO: Refactor to replace EvaluationElement // private final EvaluationElement staticElement; @@ -130,31 +129,26 @@ public class StateTreeExpression extends AbstractStateTreeElement { @Override public boolean hasChildren() { - // TODO Auto-generated method stub return false; } @Override public StaticStateElement[] getChildren() { - // TODO Auto-generated method stub return null; } @Override public String getLabel() { - // TODO Auto-generated method stub return null; } @Override public StateDependendElement getValue(State state) { - // TODO Auto-generated method stub return null; } @Override public boolean hasChanged(State current, State last) { - // TODO Auto-generated method stub return false; } diff --git a/de.prob.ui/src/de/prob/ui/stateview/statetree/StateTreeExpressionSection.java b/de.prob.ui/src/de/prob/ui/stateview/statetree/StateTreeExpressionSection.java index f7fd9d00..922709b6 100644 --- a/de.prob.ui/src/de/prob/ui/stateview/statetree/StateTreeExpressionSection.java +++ b/de.prob.ui/src/de/prob/ui/stateview/statetree/StateTreeExpressionSection.java @@ -17,7 +17,6 @@ public class StateTreeExpressionSection extends AbstractStateTreeElement { public StateTreeExpressionSection(StaticStateElement parent) { super(parent); - // TODO Auto-generated constructor stub } //TODO: Refactor to replace EvaluationElement // private final String label; @@ -68,31 +67,26 @@ public class StateTreeExpressionSection extends AbstractStateTreeElement { @Override public boolean hasChildren() { - // TODO Auto-generated method stub return false; } @Override public StaticStateElement[] getChildren() { - // TODO Auto-generated method stub return null; } @Override public String getLabel() { - // TODO Auto-generated method stub return null; } @Override public StateDependendElement getValue(State state) { - // TODO Auto-generated method stub return null; } @Override public boolean hasChanged(State current, State last) { - // TODO Auto-generated method stub return false; } -- GitLab