diff --git a/src/ui/tmlad/TMLADReadChannel.java b/src/ui/tmlad/TMLADReadChannel.java index 7dff19298ad2326f4d4939d12da4ded24340498b..63674bb12295b382c30dba849024ee56222e4c54 100755 --- a/src/ui/tmlad/TMLADReadChannel.java +++ b/src/ui/tmlad/TMLADReadChannel.java @@ -49,6 +49,7 @@ package ui.tmlad; import java.awt.*; import java.awt.geom.*; import javax.swing.*; +import java.util.*; import org.w3c.dom.*; diff --git a/src/ui/tmlad/TMLADWaitEvent.java b/src/ui/tmlad/TMLADWaitEvent.java index 2f26fe0a6356080e53992f0b9682d840ebf2f135..033ec4a7c292d7dbea35aa4b7f444fb31e5dc722 100755 --- a/src/ui/tmlad/TMLADWaitEvent.java +++ b/src/ui/tmlad/TMLADWaitEvent.java @@ -1,54 +1,55 @@ /**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille -ludovic.apvrille AT enst.fr - -This software is a computer program whose purpose is to allow the -edition of TURTLE analysis, design and deployment diagrams, to -allow the generation of RT-LOTOS or Java code from this diagram, -and at last to allow the analysis of formal validation traces -obtained from external tools, e.g. RTL from LAAS-CNRS and CADP -from INRIA Rhone-Alpes. - -This software is governed by the CeCILL license under French law and -abiding by the rules of distribution of free software. You can use, -modify and/ or redistribute the software under the terms of the CeCILL -license as circulated by CEA, CNRS and INRIA at the following URL -"http://www.cecill.info". - -As a counterpart to the access to the source code and rights to copy, -modify and redistribute granted by the license, users are provided only -with a limited warranty and the software's author, the holder of the -economic rights, and the successive licensors have only limited -liability. - -In this respect, the user's attention is drawn to the risks associated -with loading, using, modifying and/or developing or reproducing the -software by the user in light of its specific status of free software, -that may mean that it is complicated to manipulate, and that also -therefore means that it is reserved for developers and experienced -professionals having in-depth computer knowledge. Users are therefore -encouraged to load and test the software's suitability as regards their -requirements in conditions enabling the security of their systems and/or -data to be ensured and, more generally, to use and operate it in the -same conditions as regards security. - -The fact that you are presently reading this means that you have had -knowledge of the CeCILL license and that you accept its terms. - -/** - * Class TMLADWaitEvent - * Action of waiting for an event - * Creation: 21/11/2005 - * @version 1.0 21/11/2005 - * @author Ludovic APVRILLE - * @see - */ + ludovic.apvrille AT enst.fr + + This software is a computer program whose purpose is to allow the + edition of TURTLE analysis, design and deployment diagrams, to + allow the generation of RT-LOTOS or Java code from this diagram, + and at last to allow the analysis of formal validation traces + obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + from INRIA Rhone-Alpes. + + This software is governed by the CeCILL license under French law and + abiding by the rules of distribution of free software. You can use, + modify and/ or redistribute the software under the terms of the CeCILL + license as circulated by CEA, CNRS and INRIA at the following URL + "http://www.cecill.info". + + As a counterpart to the access to the source code and rights to copy, + modify and redistribute granted by the license, users are provided only + with a limited warranty and the software's author, the holder of the + economic rights, and the successive licensors have only limited + liability. + + In this respect, the user's attention is drawn to the risks associated + with loading, using, modifying and/or developing or reproducing the + software by the user in light of its specific status of free software, + that may mean that it is complicated to manipulate, and that also + therefore means that it is reserved for developers and experienced + professionals having in-depth computer knowledge. Users are therefore + encouraged to load and test the software's suitability as regards their + requirements in conditions enabling the security of their systems and/or + data to be ensured and, more generally, to use and operate it in the + same conditions as regards security. + + The fact that you are presently reading this means that you have had + knowledge of the CeCILL license and that you accept its terms. + + /** + * Class TMLADWaitEvent + * Action of waiting for an event + * Creation: 21/11/2005 + * @version 1.0 21/11/2005 + * @author Ludovic APVRILLE + * @see + */ package ui.tmlad; import java.awt.*; import java.awt.geom.*; import javax.swing.*; +import java.util.*; import org.w3c.dom.*; @@ -62,40 +63,40 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check protected int textY = 15; protected int linebreak = 10; protected int textX1 = 2; - + protected String eventName = "evt"; int nParam = 5; protected String [] params = new String[nParam]; - - protected int stateOfError = 0; // Not yet checked - + + protected int stateOfError = 0; // Not yet checked + public TMLADWaitEvent(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - + width = 30; height = 20; minWidth = 30; - + nbConnectingPoint = 2; connectingPoint = new TGConnectingPoint[2]; connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); - + for(int i=0; i<nParam; i++) { - params[i] = ""; + params[i] = ""; } //params[0] = "1"; - + moveable = true; editable = true; removable = true; - + name = "wait event"; makeValue(); - + myImageIcon = IconManager.imgic904; } - + public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); @@ -104,63 +105,63 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check width = w1; //updateConnectingPoints(); } - - if (stateOfError > 0) { - Color c = g.getColor(); - switch(stateOfError) { - case ErrorHighlight.OK: - g.setColor(ColorManager.TML_PORT_EVENT); - break; - default: - g.setColor(ColorManager.UNKNOWN_BOX_ACTION); - } - // Making the polygon - int [] px1 = {x, x+width, x+width, x, x+linebreak}; - int [] py1 = {y, y, y+height, y+height, y+(height/2)}; - g.fillPolygon(px1, py1, 5); - g.setColor(c); - } - + + if (stateOfError > 0) { + Color c = g.getColor(); + switch(stateOfError) { + case ErrorHighlight.OK: + g.setColor(ColorManager.TML_PORT_EVENT); + break; + default: + g.setColor(ColorManager.UNKNOWN_BOX_ACTION); + } + // Making the polygon + int [] px1 = {x, x+width, x+width, x, x+linebreak}; + int [] py1 = {y, y, y+height, y+height, y+(height/2)}; + g.fillPolygon(px1, py1, 5); + g.setColor(c); + } + //g.drawRoundRect(x, y, width, height, arc, arc); g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); - - Color c = g.getColor(); - int x1 = x + 1; - int y1 = y + 1; - int height1 = height; - int width1 = width; - g.setColor(ColorManager.TML_PORT_EVENT); - g.drawLine(x1, y1, x1+width1, y1); + + Color c = g.getColor(); + int x1 = x + 1; + int y1 = y + 1; + int height1 = height; + int width1 = width; + g.setColor(ColorManager.TML_PORT_EVENT); + g.drawLine(x1, y1, x1+width1, y1); g.drawLine(x1+width1, y1, x1+width1, y1+height1); g.drawLine(x1, y1+height1, x1+width1, y1+height1); g.drawLine(x1, y1, x1+linebreak, y1+height1/2); g.drawLine(x1, y1+height1, x1+linebreak, y1+height1/2); - g.setColor(c); - + g.setColor(c); + g.drawLine(x, y, x+width, y); g.drawLine(x+width, y, x+width, y+height); g.drawLine(x, y+height, x+width, y+height); g.drawLine(x, y, x+linebreak, y+height/2); g.drawLine(x, y+height, x+linebreak, y+height/2); - + g.drawString("evt", x+(width-w) / 2, y); g.drawString(value, x + linebreak + textX1, y + textY); - + } - + public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; } - + if ((int)(Line2D.ptSegDistSq(x+(width/2), y-lineLength, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) { - return this; - } - + return this; + } + return null; } - + public void makeValue() { boolean first = true; value = eventName + "("; @@ -172,52 +173,52 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check first = false; value += params[i]; } - + } } value += ") "; - + } - + public String getEventName() { return eventName; } - + public String getParamValue(int i) { return params[i]; } - + public int nbOfParams() { return nParam; } - - public String getRealParamValue(int index) { - int cpt = 0; - for(int i=0; i<nParam; i++) { - if (params[i].length() > 0) { - if (cpt == index) { - return params[i]; - } - cpt ++; + + public String getRealParamValue(int index) { + int cpt = 0; + for(int i=0; i<nParam; i++) { + if (params[i].length() > 0) { + if (cpt == index) { + return params[i]; + } + cpt ++; } - } + } return ""; } - - public int realNbOfParams() { + + public int realNbOfParams() { int cpt = 0; - for(int i=0; i<nParam; i++) { + for(int i=0; i<nParam; i++) { if (params[i].length() > 0) { - cpt ++; + cpt ++; } } - return cpt; + return cpt; } - + public String getAction() { return value; } - + public boolean editOndoubleClick(JFrame frame) { String [] labels = new String[nParam + 1]; String [] values = new String[nParam + 1]; @@ -227,26 +228,30 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check labels[i+1] = "Param #" + (i+1); values[i+1] = params[i]; } - - JDialogMultiString jdms = new JDialogMultiString(frame, "Setting event's properties", nParam+1, labels, values); + + ArrayList<String []> help = new ArrayList<String []>(); + String[] allOutEvents = tdp.getMGUI().getAllInEvents(); + help.add(allOutEvents); + + JDialogMultiString jdms = new JDialogMultiString(frame, "Setting event's properties", nParam+1, labels, values, help); jdms.setSize(350, 300); GraphicLib.centerOnParent(jdms); jdms.show(); // blocked until dialog has been closed - + if (jdms.hasBeenSet() && (jdms.hasValidString(0))) { - eventName = jdms.getString(0); - for(int i=0; i<nParam; i++) { + eventName = jdms.getString(0); + for(int i=0; i<nParam; i++) { params[i] = jdms.getString(i+1); - } - - makeValue(); - return true; + } + + makeValue(); + return true; } - + return false; - + } - + protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Data eventName=\""); @@ -266,20 +271,20 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check sb.append("</extraparam>\n"); return new String(sb); } - + public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{ //System.out.println("*** load extra synchro *** " + getId()); try { - + NodeList nli; Node n1, n2; Element elt; int k; String s; - + //System.out.println("Loading Synchronization gates"); //System.out.println(nl.toString()); - + for(int i=0; i<nl.getLength(); i++) { n1 = nl.item(i); //System.out.println(n1); @@ -293,34 +298,34 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check if (elt.getTagName().equals("Data")) { eventName = elt.getAttribute("eventName"); nParam = Math.max(nParam, Integer.decode(elt.getAttribute("nbOfParams")).intValue()); - } - if (elt.getTagName().equals("Param")) { + } + if (elt.getTagName().equals("Param")) { s = elt.getAttribute("value"); k = Integer.decode(elt.getAttribute("index")).intValue(); params[k] = s; - } + } } } } } - + } catch (Exception e) { throw new MalformedModelingException(); } makeValue(); } - + public int getType() { return TGComponentManager.TMLAD_WAIT_EVENT; } - + public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } - - public void setStateAction(int _stateAction) { - stateOfError = _stateAction; - } - + + public void setStateAction(int _stateAction) { + stateOfError = _stateAction; + } + }