Commit 50e8d4f9 authored by Florian Hölzl's avatar Florian Hölzl
Browse files

removed simple osci implementation

refs 907
parent e3a3ca07
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/org.swtchart_0.8.0.v20120301.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
......
......@@ -5,7 +5,6 @@
bin.includes = .,\
META-INF/,\
plugin.xml,\
lib/org.swtchart_0.8.0.v20120301.jar
plugin.xml
source.. = src/
output.. = build/
......@@ -53,12 +53,6 @@
modelElementClass="org.fortiss.af3.operatorpanel.model.OPITermInput">
</modelElementClass>
</modelElementHandler>
<modelElementHandler
handler="org.fortiss.af3.operatorpanel.ui.handler.OPOsciHandler">
<modelElementClass
modelElementClass="org.fortiss.af3.operatorpanel.model.OPOscilloscope">
</modelElementClass>
</modelElementHandler>
<modelElementHandler
handler="org.fortiss.af3.operatorpanel.ui.handler.OPAreaInputHandler">
<modelElementClass
......@@ -115,9 +109,6 @@
<modelElementClass
modelElementClass="org.fortiss.af3.operatorpanel.model.OperatorPanelSpecification">
</modelElementClass>
<modelElementClass
modelElementClass="org.fortiss.af3.operatorpanel.model.OPOscilloscope">
</modelElementClass>
<modelElementClass
modelElementClass="org.fortiss.af3.operatorpanel.model.OPAreaInput">
</modelElementClass>
......@@ -195,15 +186,6 @@
type="org.fortiss.af3.operatorpanel.model.OPToggleButton">
</input>
</propertySection>
<propertySection
class="org.fortiss.af3.operatorpanel.ui.properties.OPOsciReactionsPropertySection"
enablesFor="1"
id="org.fortiss.af3.operatorpanel.ui.property.OPOsciPropertySection"
tab="org.fortiss.af3.operatorpanel.ui.property.tab.reactions">
<input
type="org.fortiss.af3.operatorpanel.model.OPOscilloscope">
</input>
</propertySection>
<propertySection
afterSection="org.fortiss.af3.operatorpanel.ui.property.InputOPItemPropertySection"
class="org.fortiss.af3.operatorpanel.ui.properties.AreaInputPropertySection"
......
......@@ -23,7 +23,6 @@ import org.fortiss.af3.operatorpanel.model.OPButton;
import org.fortiss.af3.operatorpanel.model.OPColorDisplay;
import org.fortiss.af3.operatorpanel.model.OPITermInput;
import org.fortiss.af3.operatorpanel.model.OPLabel;
import org.fortiss.af3.operatorpanel.model.OPOscilloscope;
import org.fortiss.af3.operatorpanel.model.OPTextDisplay;
import org.fortiss.af3.operatorpanel.model.OperatorPanelSpecification;
import org.fortiss.tooling.kernel.ui.extension.IEditPartFactory;
......@@ -53,9 +52,6 @@ public class OperatorPanelEditPartFactory implements IEditPartFactory {
if(model instanceof OPColorDisplay) {
return new OPGenericItemEditPart((OPColorDisplay)model);
}
if(model instanceof OPOscilloscope) {
return new OPGenericItemEditPart((OPOscilloscope)model);
}
if(model instanceof OPButton) {
return new OPButtonEditPart((OPButton)model);
......
/*--------------------------------------------------------------------------+
$Id: OperatorPanelItemHandler.java 2646 2012-01-05 13:05:28Z hoelzl $
| |
| Copyright 2011 ForTISS GmbH |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
+--------------------------------------------------------------------------*/
package org.fortiss.af3.operatorpanel.ui.handler;
import static org.fortiss.af3.operatorpanel.ui.AF3OperatorpanelUIActivator.getImageDescriptor;
import org.eclipse.jface.resource.ImageDescriptor;
import org.fortiss.af3.operatorpanel.model.OPColorDisplay;
import org.fortiss.af3.operatorpanel.model.OPOscilloscope;
import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler;
import org.fortiss.tooling.kernel.ui.extension.base.NamedCommentedModelElementHandlerBase;
/**
* {@link IModelElementHandler} for {@link OPOscilloscope}s.
*
* @author doebber
* @author $Author: hoelzl $
* @version $Rev: 2646 $
* @ConQAT.Rating YELLOW Hash: A4632957E2C3E5384A279FC856CCD5F1
*/
public class OPOsciHandler extends NamedCommentedModelElementHandlerBase<OPColorDisplay> {
/** {@inheritDoc} */
@Override
public ImageDescriptor getIconImageDescriptor() {
return getImageDescriptor("icons/light.png");
}
/** {@inheritDoc} */
@Override
public boolean hiddenInNonExpertView() {
return true;
}
}
/*--------------------------------------------------------------------------+
$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
| |
| Copyright 2012 ForTISS GmbH |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
+--------------------------------------------------------------------------*/
package org.fortiss.af3.operatorpanel.ui.properties;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.swt.SWT;
import org.fortiss.af3.component.ui.behavior.GuardToStringConverter;
import org.fortiss.af3.component.ui.behavior.StringToGuardConverter;
import org.fortiss.af3.component.ui.behavior.StringToGuardValidator;
import org.fortiss.af3.expression.model.terms.impl.VarStaticImpl;
import org.fortiss.af3.expression.ui.databinding.convert.ITermToStringConverter;
import org.fortiss.af3.expression.ui.databinding.convert.StringToIExpressionTermConverter;
import org.fortiss.af3.expression.ui.databinding.validate.StringToIExpressionTermValidator;
import org.fortiss.af3.operatorpanel.model.AF3OperatorPanelFactory;
import org.fortiss.af3.operatorpanel.model.AF3OperatorPanelPackage;
import org.fortiss.af3.operatorpanel.model.OPOsciReaction;
import org.fortiss.af3.operatorpanel.model.OPOscilloscope;
/**
* Property section for oscilloscope reactions.
*
* @author doebber
* @author $Author: hoelzlf $
* @version $Rev: 5260 $
* @ConQAT.Rating YELLOW Hash: 261C956FBADC7387DF629123BC93E3FD
*/
public class OPOsciReactionsPropertySection extends ListPropertySectionBase<OPOsciReaction> {
/** {@inheritDoc} */
@Override
protected void addViewerColumns(EObject currentObject) {
createComplexTableColumn("Guards", 350, SWT.LEFT,
AF3OperatorPanelPackage.Literals.OP_REACTION__GUARD, new GuardToStringConverter(),
new StringToGuardConverter(), new StringToGuardValidator(currentObject));
createComplexTableColumn("Item input", 120, SWT.LEFT,
AF3OperatorPanelPackage.Literals.OP_OSCI_REACTION__ITEM_INPUT,
new ITermToStringConverter(), new StringToIExpressionTermConverter(),
new StringToIExpressionTermValidator(currentObject));
}
/** {@inheritDoc} */
@Override
protected OPOsciReaction createListItem() {
OPOsciReaction reaction = AF3OperatorPanelFactory.eINSTANCE.createOPOsciReaction();
reaction.setItemInput(VarStaticImpl.create("var"));
return reaction;
}
/** {@inheritDoc} */
@Override
protected EList<OPOsciReaction> getList(EObject eo) {
return ((OPOscilloscope)eo).getReactionsList();
}
}
......@@ -21,7 +21,6 @@ import static org.fortiss.af3.operatorpanel.utils.OperatorPanelModelElementFacto
import static org.fortiss.af3.operatorpanel.utils.OperatorPanelModelElementFactory.createOPColorDisplay;
import static org.fortiss.af3.operatorpanel.utils.OperatorPanelModelElementFactory.createOPITermInput;
import static org.fortiss.af3.operatorpanel.utils.OperatorPanelModelElementFactory.createOPLabel;
import static org.fortiss.af3.operatorpanel.utils.OperatorPanelModelElementFactory.createOPOscilloscope;
import static org.fortiss.af3.operatorpanel.utils.OperatorPanelModelElementFactory.createOPPushButton;
import static org.fortiss.af3.operatorpanel.utils.OperatorPanelModelElementFactory.createOPTextDisplay;
import static org.fortiss.af3.operatorpanel.utils.OperatorPanelModelElementFactory.createOPToggleButton;
......@@ -57,8 +56,6 @@ public final class PrototypeProvider extends PrototypeProviderBase {
CATEGORY_NAME);
registerPrimaryPrototype("Text Display", createOPTextDisplay("Text Display"), CATEGORY_NAME);
registerPrimaryPrototype("Term Input", createOPITermInput("Term Input"), CATEGORY_NAME);
registerPrimaryPrototype("Oscilloscope", createOPOscilloscope("Oscilloscope"),
CATEGORY_NAME);
registerPrimaryPrototype("Area Input", createOPAreaInput("Area Input"), CATEGORY_NAME);
}
}
/*--------------------------------------------------------------------------+
$Id: OPVCColorDisplay.java 3278 2012-02-02 10:36:57Z wandinger $
| |
| Copyright 2011 ForTISS GmbH |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
+--------------------------------------------------------------------------*/
package org.fortiss.af3.operatorpanel.ui.simulator.views;
import static org.fortiss.tooling.base.ui.utils.LayoutDataUtils.getNodeBounds;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.fortiss.af3.operatorpanel.model.OPOsciReaction;
import org.fortiss.af3.operatorpanel.model.OPOscilloscope;
import org.fortiss.af3.operatorpanel.simulator.ExecutableOperatorPanelSpecification;
import org.swtchart.Chart;
import org.swtchart.IAxis;
import org.swtchart.IAxisSet;
import org.swtchart.ILineSeries;
import org.swtchart.ILineSeries.PlotSymbolType;
import org.swtchart.ISeries.SeriesType;
import org.swtchart.LineStyle;
import org.swtchart.Range;
/**
* Control for colors.
*
* @author hummel
* @author hoelzl
* @author $Author: wandinger $
* @version $Rev: 3278 $
* @ConQAT.Rating YELLOW Hash: 2897C93A2010E19D5E935E4F15BA9242
*/
/* package */class OPVCOscilloscope extends
OPVCOutputControlBase<OPOscilloscope, Label, OPOsciReaction> {
/** The background color. */
private Color background;
/** Constructor. */
public OPVCOscilloscope(OPOscilloscope item, Composite parent) {
super(item, parent);
background = new Color(null, 0, 0, 0);
this.item = item;
}
// SWTChart
Chart chart;
IAxisSet axis;
IAxis xAxis;
IAxis yAxis;
// line for the values
ILineSeries line;
// array containing the values
double[] series;
double[] timeSeries;
OPOscilloscope item;
/** {@inheritDoc} */
@Override
protected Label createControl(Composite parent) {
// oscilloscope timeline-length = series.length
series = new double[100];
// time series
timeSeries = new double[series.length];
for(int i = 0; i < timeSeries.length; i++)
timeSeries[i] = i - 100;
chart = new Chart(parent, SWT.NONE);
// make it look like an onscilloscope
Color backgroundColor = new Color(Display.getDefault(), 0, 0, 0);
Color lineColor = new Color(Display.getDefault(), 0, 255, 0);
Color gridColor = new Color(Display.getDefault(), 125, 125, 125);
chart.setBounds(getNodeBounds(modelItem).x, getNodeBounds(modelItem).y,
getNodeBounds(modelItem).width, getNodeBounds(modelItem).height);
chart.setBackgroundInPlotArea(backgroundColor);
chart.getTitle().setText(modelItem.getName());
chart.getTitle().setForeground(backgroundColor);
chart.getLegend().setVisible(false);
axis = chart.getAxisSet();
// Properties for x axis
xAxis = axis.getXAxis(0);
xAxis.getGrid().setForeground(gridColor);
xAxis.getTitle().setText("time");
xAxis.getTitle().setForeground(backgroundColor);
xAxis.getTick().setForeground(backgroundColor);
// Properties for y axis
yAxis = axis.getYAxis(0);
yAxis.getGrid().setForeground(gridColor);
yAxis.getTitle().setText("value");
yAxis.getTitle().setForeground(backgroundColor);
yAxis.getTick().setForeground(backgroundColor);
line = (ILineSeries)chart.getSeriesSet().createSeries(SeriesType.LINE, "Line Series");
line.setLineColor(lineColor);
line.setLineWidth(2);
line.setLineStyle(LineStyle.SOLID);
line.setSymbolType(PlotSymbolType.NONE);
// set chart size matching the prototype size
chart.setSize(getNodeBounds(modelItem).width, getNodeBounds(modelItem).height);
// initialize graph
line.setYSeries(series);
axis.getXAxis(0).adjustRange();
axis.getYAxis(0).adjustRange();
return new Label(parent, SWT.NONE);
}
/** {@inheritDoc} */
@Override
public void dispose() {
background.dispose();
super.dispose();
}
// Maximum and Minimum value for the Osci-range. Range in y-Axis is oriented on the
// highest(=max)/lowest(=min) value
double max = 0;
double min = 0;
/** {@inheritDoc} */
@Override
public void updateDisplayInternal(ExecutableOperatorPanelSpecification simulation,
OPOsciReaction reaction) {
if(reaction == null) {
return;
}
// new value in every simulation step.
double value = simulation.computeOsciValue(item);
// determine new maximum/minimum
max = value > max ? value : max;
min = value < min ? value : min;
// update oscilloscope series. New value appears on the right end, others get moved one step
// to the left
for(int i = 0; i < series.length - 1; i++) {
series[i] = series[i + 1];
timeSeries[i]++;
}
series[series.length - 1] = value;
timeSeries[series.length - 1]++;
line.setYSeries(series);
line.setXSeries(timeSeries);
xAxis.adjustRange();
yAxis.setRange(new Range(min - 1, max + 1));
chart.redraw();
}
}
......@@ -34,7 +34,6 @@ import org.fortiss.af3.operatorpanel.model.OPAreaInput;
import org.fortiss.af3.operatorpanel.model.OPColorDisplay;
import org.fortiss.af3.operatorpanel.model.OPITermInput;
import org.fortiss.af3.operatorpanel.model.OPLabel;
import org.fortiss.af3.operatorpanel.model.OPOscilloscope;
import org.fortiss.af3.operatorpanel.model.OPPushButton;
import org.fortiss.af3.operatorpanel.model.OPTextDisplay;
import org.fortiss.af3.operatorpanel.model.OPToggleButton;
......@@ -93,9 +92,6 @@ public class OperationPanelSimulationComposite extends Composite {
if(item instanceof OPColorDisplay) {
return new OPVCColorDisplay((OPColorDisplay)item, this);
}
if(item instanceof OPOscilloscope) {
return new OPVCOscilloscope((OPOscilloscope)item, this);
}
if(item instanceof OPTextDisplay) {
return new OPVCTextDisplay((OPTextDisplay)item, this);
}
......
......@@ -78,14 +78,6 @@
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OPPushButton" eSuperTypes="#//OPButton"/>
<eClassifiers xsi:type="ecore:EClass" name="OPOscilloscope" eSuperTypes="#//OutputOperatorPanelItem">
<eStructuralFeatures xsi:type="ecore:EReference" name="reactions" upperBound="-1"
eType="#//OPOsciReaction" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OPOsciReaction" eSuperTypes="#//OPReaction">
<eStructuralFeatures xsi:type="ecore:EReference" name="itemInput" eType="ecore:EClass platform:/plugin/org.fortiss.af3.expression/model/expression.ecore#//terms/IExpressionTerm"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OPAreaInput" eSuperTypes="#//InputOperatorPanelItem platform:/plugin/org.fortiss.af3.project/model/project.ecore#//typesystem/IVariableScope">
<eOperations name="getDefinitionElement" eType="ecore:EClass platform:/plugin/org.fortiss.af3.project/model/project.ecore#//typesystem/IVariableDefinition">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
......
......@@ -55,12 +55,6 @@
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference operatorpanel.ecore#//OPToggleButton/onDeselect"/>
</genClasses>
<genClasses ecoreClass="operatorpanel.ecore#//OPPushButton"/>
<genClasses ecoreClass="operatorpanel.ecore#//OPOscilloscope">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference operatorpanel.ecore#//OPOscilloscope/reactions"/>
</genClasses>
<genClasses ecoreClass="operatorpanel.ecore#//OPOsciReaction">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference operatorpanel.ecore#//OPOsciReaction/itemInput"/>
</genClasses>
<genClasses ecoreClass="operatorpanel.ecore#//OPAreaInput">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference operatorpanel.ecore#//OPAreaInput/output"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference operatorpanel.ecore#//OPAreaInput/type"/>
......
......@@ -17,29 +17,23 @@ $Id$
+--------------------------------------------------------------------------*/
package org.fortiss.af3.operatorpanel.simulator;
import static org.fortiss.af3.component.utils.ComponentArchitectureUtils.getDefinitionElement;
import static org.fortiss.af3.expression.language.evaluation.BoolValue.FALSE;
import static org.fortiss.af3.expression.language.evaluation.BoolValue.TRUE;
import static org.fortiss.af3.expression.language.evaluation.NoVal.NOVAL;
import static org.fortiss.af3.operatorpanel.model.impl.OPAreaInputStaticImpl.THIS_X_VARIABLE;
import static org.fortiss.af3.operatorpanel.model.impl.OPAreaInputStaticImpl.THIS_Y_VARIABLE;
import static org.fortiss.tooling.kernel.utils.KernelModelElementUtils.getParentElement;
import java.util.List;
import org.conqat.lib.commons.collections.Pair;
import org.fortiss.af3.component.model.ComponentArchitecture;
import org.fortiss.af3.component.model.OutputPort;
import org.fortiss.af3.component.model.behavior.common.Action;
import org.fortiss.af3.component.simulator.ExecutableAtomicComponentBase;
import org.fortiss.af3.component.simulator.ExecutableComponent;
import org.fortiss.af3.expression.language.evaluation.BoolValue;
import org.fortiss.af3.expression.language.evaluation.DoubleValue;
import org.fortiss.af3.expression.language.evaluation.EnumerationValue;
import org.fortiss.af3.expression.language.evaluation.IntValue;
import org.fortiss.af3.expression.language.evaluation.NoVal;
import org.fortiss.af3.expression.model.definitions.EnumerationMember;
import org.fortiss.af3.expression.model.terms.FunctionCall;
import org.fortiss.af3.expression.model.terms.Var;
import org.fortiss.af3.expression.model.terms.impl.VarStaticImpl;
import org.fortiss.af3.expression.model.types.TBool;
......@@ -49,8 +43,6 @@ import org.fortiss.af3.operatorpanel.model.InputOperatorPanelItem;
import org.fortiss.af3.operatorpanel.model.OPAreaInput;
import org.fortiss.af3.operatorpanel.model.OPColorDisplay;
import org.fortiss.af3.operatorpanel.model.OPITermInput;
import org.fortiss.af3.operatorpanel.model.OPOsciReaction;
import org.fortiss.af3.operatorpanel.model.OPOscilloscope;
import org.fortiss.af3.operatorpanel.model.OPPushButton;
import org.fortiss.af3.operatorpanel.model.OPReaction;
import org.fortiss.af3.operatorpanel.model.OPTextDisplay;
......@@ -59,7 +51,6 @@ import org.fortiss.af3.operatorpanel.model.OPToggleButton;
import org.fortiss.af3.operatorpanel.model.OperatorPanelItem;
import org.fortiss.af3.operatorpanel.model.OperatorPanelSpecification;
import org.fortiss.af3.operatorpanel.model.OutputOperatorPanelItem;
import org.fortiss.af3.project.model.typesystem.IFunctionDefinition;
import org.fortiss.af3.project.model.typesystem.ITerm;
import org.fortiss.af3.project.typesystem.evaluation.Term;
......@@ -142,53 +133,6 @@ public class ExecutableOperatorPanelSpecification extends
return getTermValue(reaction.getItemInput()).toString();
}
/**
* Returns the display value for the given reaction using the current
* simulation values.
*/
public double computeOsciValue(OPOscilloscope item) {
double value = -1;
// There is a list of possible reactions, which must be checked
for(OPReaction reaction : item.getReactionsList()) {
Term<? extends ITerm> result;
if(item.getReactionsList().size() > 1) {
result = getTermValue(reaction.getGuard().getExpression());
} else {
result = new BoolValue(true);
}
// Showing them only makes sense if their guard is true and the reaction is an
// OPOsciReaction
if(result instanceof BoolValue && ((BoolValue)result).toJavaValue() &&
reaction instanceof OPOsciReaction) {
Term<?> input = getTermValue(((OPOsciReaction)reaction).getItemInput());
if(input instanceof IntValue) {
IntValue intVal = (IntValue)input;
return intVal.toJavaValue();
} else if(input instanceof DoubleValue) {
DoubleValue doubleVal = (DoubleValue)input;
return doubleVal.toJavaValue();
} else if(input instanceof BoolValue) {
BoolValue boolVal = (BoolValue)input;
boolean javaVal = boolVal.toJavaValue();
if(javaVal == true)
return 1;
else
return 0;
} else if(input instanceof NoVal) {
return 0;
} else if(input instanceof EnumerationValue) {
EnumerationValue enumerationVal = (EnumerationValue)input;
FunctionCall fc = enumerationVal.toITerm();
ComponentArchitecture ca = getParentElement(item, ComponentArchitecture.class);
IFunctionDefinition fd = getDefinitionElement(ca, fc);
EnumerationMember em = (EnumerationMember)fd;
return em.getEnumeration().getMembersList().indexOf(em);
}
}
}
return value;
}
/** Handles the output item during simulation step. */
private void handleOutputItem(OutputOperatorPanelItem item) {
OPReaction reaction = null;
......@@ -198,12 +142,6 @@ public class ExecutableOperatorPanelSpecification extends
} else if(item instanceof OPTextDisplay) {
OPTextDisplay td = (OPTextDisplay)item;
if(td.getReactionsLength() > 0) {
reaction = td.getReactions(0);
}
} else if(item instanceof OPOscilloscope) {
OPOscilloscope td = (OPOscilloscope)item;
if(td.getReactionsLength() > 0) {
reaction = td.getReactions(0);
}
}
......
......@@ -28,7 +28,6 @@ import org.fortiss.af3.operatorpanel.model.OPColorDisplay;
import org.fortiss.af3.operatorpanel.model.OPColorReaction;
import org.fortiss.af3.operatorpanel.model.OPITermInput;
import org.fortiss.af3.operatorpanel.model.OPLabel;
import org.fortiss.af3.operatorpanel.model.OPOscilloscope;