diff --git a/src/main/java/tmltranslator/TMLChannel.java b/src/main/java/tmltranslator/TMLChannel.java index bea849ea9ec94e02dc1ec00733f5265b6fc9f640..6969fa4751588dc1b4a010a9e3a27f7b7af99779 100755 --- a/src/main/java/tmltranslator/TMLChannel.java +++ b/src/main/java/tmltranslator/TMLChannel.java @@ -181,6 +181,8 @@ public class TMLChannel extends TMLCommunicationElement { this.nbOfSamples = nbOfSamples; } + public int getNumberOfSamples() { return nbOfSamples;} + public TMLTask getDestinationTask(int index) { return destinationTasks.get(index); } diff --git a/src/main/java/tmltranslator/TMLModeling.java b/src/main/java/tmltranslator/TMLModeling.java index fb9f007a73682bf780c06696181f3c53166de89e..cc2357492d69b29ba8a2cab7f3018b9c893751bf 100755 --- a/src/main/java/tmltranslator/TMLModeling.java +++ b/src/main/java/tmltranslator/TMLModeling.java @@ -2205,14 +2205,14 @@ public class TMLModeling<E> { TMLReadChannel read = new TMLReadChannel("ReadOfFork", null); forkActivity.addElement(read); read.addChannel(_ch); - read.setNbOfSamples("1"); + read.setNbOfSamples("" + _ch.getNumberOfSamples()); TMLWriteChannel []writes = new TMLWriteChannel[nb]; for(i=0; i<nb; i++) { writes[i] = new TMLWriteChannel("WriteOfFork" + SEP1 + i, null); writes[i].addChannel(chans[i]); - writes[i].setNbOfSamples("1"); + writes[i].setNbOfSamples("" + _ch.getNumberOfSamples()); forkActivity.addElement(writes[i]); } diff --git a/src/main/java/ui/tmlcompd/TMLCFork.java b/src/main/java/ui/tmlcompd/TMLCFork.java index 16cb170bba44f1ab4a781c6d2536e51e9bf4911f..d1fc0ee9fcc7a7bcc287724f75d4f6e586d7786e 100755 --- a/src/main/java/ui/tmlcompd/TMLCFork.java +++ b/src/main/java/ui/tmlcompd/TMLCFork.java @@ -45,6 +45,7 @@ import myutil.GraphicLib; import ui.*; import ui.util.IconManager; +import javax.swing.*; import java.awt.*; /** @@ -57,7 +58,7 @@ import java.awt.*; public class TMLCFork extends TMLCChannelFacility implements WithAttributes { protected int radius = 11; - protected int numberOfSamples = 1; // Indicates the number of samples being read before they + // value Indicates the number of samples being read before they // are written to destination. The default is 1. @@ -83,8 +84,9 @@ public class TMLCFork extends TMLCChannelFacility implements WithAttributes { nbInternalTGComponent = 0; - value = "F"; + value = "1"; name = "Composite port"; + editable = true; //insides = new ArrayList<TMLCPrimitivePort>(); //outsides = new ArrayList<TMLCPrimitivePort>(); @@ -92,6 +94,9 @@ public class TMLCFork extends TMLCChannelFacility implements WithAttributes { myImageIcon = IconManager.imgic1204; } + + + public void internalDrawing(Graphics g) { radius = width / 2; @@ -128,13 +133,36 @@ public class TMLCFork extends TMLCChannelFacility implements WithAttributes { } + public boolean editOndoubleClick(JFrame frame) { + String oldValue = value; + + String s = (String) JOptionPane.showInputDialog(frame, "Number of samples per round", + "setting value", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, + getValue()); + if ((s != null) && (s.length() > 0) && (!s.equals(oldValue))) { + try { + int testI = Integer.decode(value).intValue(); + } catch (Exception e) { + JOptionPane.showMessageDialog(frame, + "Could not change the number of samples: invalid value", + "Error", + JOptionPane.INFORMATION_MESSAGE); + value = oldValue; + return false; + } + + } + return true; + + } + public int getType() { return TGComponentManager.TMLCTD_FORK; } public int getNumberOfSamples() { - return numberOfSamples; + return Integer.decode(value).intValue(); }