diff --git a/src/ui/GTURTLEModeling.java b/src/ui/GTURTLEModeling.java index 4685d65df9fc4db512a15e86bf07a4e4df2dfe03..a109582cca048487754d7229774798a0df4fec36 100755 --- a/src/ui/GTURTLEModeling.java +++ b/src/ui/GTURTLEModeling.java @@ -390,10 +390,15 @@ import ui.tmlsd.TMLSDPanel; import ui.tree.InvariantDataTree; import ui.tree.SearchTree; import ui.tree.SyntaxAnalysisTree; +import ui.tree.SyntaxAnalysisTree.*; import ui.ucd.UseCaseDiagramPanel; import ui.window.JFrameSimulationTrace; import uppaaldesc.UPPAALSpec; import java.util.*; +import ui.tree.*; + +import ui.graph.*; + //Communication Pattern javaCC parser //import compiler.tmlCPparser.*; @@ -449,6 +454,9 @@ public class GTURTLEModeling { private String tlsa; private String tlsadot; + private ArrayList<RG> graphs; + private GraphTree gt; + private int nbRTLOTOS; private int nbSuggestedDesign; // private int nbSuggestedAnalysis; @@ -507,12 +515,14 @@ public class GTURTLEModeling { savedPanels = new Vector(); pointerOperation = -1; + graphs = new ArrayList<RG>(); invariants = new LinkedList<Invariant>(); //vdt = new ValidationDataTree(mgui); mcvdt = new SyntaxAnalysisTree(mgui); idt = new InvariantDataTree(mgui); st = new SearchTree(mgui); + gt = new GraphTree(mgui); /*if (!Charset.isSupported("UTF-8")) { ErrorGUI.exit(ErrorGUI.ERROR_CHARSET); @@ -532,10 +542,21 @@ public class GTURTLEModeling { return tm.isARegularTIFSpec(); } + public ArrayList<RG> getRGs() { + return graphs; + } + + public void addRG(RG newGraph) { + graphs.add(newGraph); + } + + public LinkedList<Invariant> getInvariants() { return invariants; } + + public void addInvariant(Invariant _inv) { invariants.add(_inv); TraceManager.addDev("Adding invariant: " + _inv.toString()); @@ -2453,7 +2474,7 @@ public class GTURTLEModeling { } public int getChildCount() { - return panels.size() + 3; + return panels.size() + 4; } public Object getChild(int index) { @@ -2462,6 +2483,8 @@ public class GTURTLEModeling { } else if (index == panels.size()) { return mcvdt; } else if (index == (panels.size() + 1)) { + return gt; + } else if (index == (panels.size() + 2)) { return idt; } else { return st; @@ -2480,11 +2503,15 @@ public class GTURTLEModeling { return panels.size(); } - if (child == idt) { + if (child == gt) { return panels.size() + 1; } - return panels.size()+2; + if (child == idt) { + return panels.size() + 2; + } + + return panels.size()+3; } // Projection management diff --git a/src/ui/InvariantSynchro.java b/src/ui/InvariantSynchro.java index e7813b18727d0cb32150a4434c305c035406aafc..5a4ad263b972d9c8640776a423b407e9ca25b855 100755 --- a/src/ui/InvariantSynchro.java +++ b/src/ui/InvariantSynchro.java @@ -1,49 +1,49 @@ /**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 InvariantSynchro implements GenericTree - * InvariantSynchro is a synchro inside of a invanriant - * Creation: 29/03/2012 - * @version 1.0 29/03/2012 - * @author Ludovic APVRILLE - * @see TGComponent - */ - + 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 InvariantSynchro implements GenericTree + * InvariantSynchro is a synchro inside of a invanriant + * Creation: 29/03/2012 + * @version 1.0 29/03/2012 + * @author Ludovic APVRILLE + * @see TGComponent + */ + package ui; import myutil.*; @@ -53,61 +53,54 @@ import java.util.*; public class InvariantSynchro implements GenericTree { - private TGComponent from; - private TGComponent to; - private String name; - - public InvariantSynchro(String _name, TGComponent _from, TGComponent _to) { - from = _from; - to = _to; - name = _name; - } - - - - public String toString() { + private TGComponent from; + private TGComponent to; + private String name; + + public InvariantSynchro(String _name, TGComponent _from, TGComponent _to) { + from = _from; + to = _to; + name = _name; + } + + + + public String toString() { return name; } - + public String getName() { - return name; + return name; } - + public TGComponent getFrom() { - return from; + return from; } - + public TGComponent getTo() { - return to; + return to; } - + public int getChildCount() { return 2; } - + public Object getChild(int index) { - if (index == 0) { - return from; - } - - return to; + if (index == 0) { + return from; + } + + return to; } - + public int getIndexOfChild(Object child) { - if (child == from) { - return 0; - } - return 1; + if (child == from) { + return 0; + } + return 1; } - + public boolean containsComponent(TGComponent tgc) { - return (from == tgc) || (to == tgc); + return (from == tgc) || (to == tgc); } } - - - - - - - diff --git a/src/ui/JMenuBarTurtle.java b/src/ui/JMenuBarTurtle.java index aee6cbb07934d642ccfdd7d96ad3d1e9aa7da87d..a2903dd628b8d323d25af8c59a472a2322f36fd2 100755 --- a/src/ui/JMenuBarTurtle.java +++ b/src/ui/JMenuBarTurtle.java @@ -458,13 +458,13 @@ public class JMenuBarTurtle extends JMenuBar { menuItem = vAndV.add(mgui.actions[TGUIAction.ACT_VIEW_STAT_SAVED_AUT]); menuItem.addMouseListener(mgui.mouseHandler); - vAndV.addSeparator(); + /*vAndV.addSeparator(); menuItem = vAndV.add(mgui.actions[TGUIAction.ACT_VIEW_PM_AUT]); menuItem.addMouseListener(mgui.mouseHandler); menuItem = vAndV.add(mgui.actions[TGUIAction.ACT_VIEW_PM_AUTPROJ]); menuItem.addMouseListener(mgui.mouseHandler); menuItem = vAndV.add(mgui.actions[TGUIAction.ACT_VIEW_PM_SAVED_AUT]); - menuItem.addMouseListener(mgui.mouseHandler); + menuItem.addMouseListener(mgui.mouseHandler);*/ vAndV.addSeparator(); menuItem = vAndV.add(mgui.actions[TGUIAction.ACT_AVATAR_SIM]); diff --git a/src/ui/MainGUI.java b/src/ui/MainGUI.java index 481ae5ba5f139982fb271b35606740d93f68af66..d23b96d511b00ce1148321ac131d1e616547167a 100644 --- a/src/ui/MainGUI.java +++ b/src/ui/MainGUI.java @@ -141,6 +141,7 @@ import ui.file.TLSAFileFilter; import ui.file.TLibFilter; import ui.file.TSVGFilter; import ui.file.TTIFFilter; +import ui.graph.*; import ui.interactivesimulation.JFrameInteractiveSimulation; import ui.interactivesimulation.SimulationTransaction; import ui.iod.InteractionOverviewDiagramPanel; @@ -1104,6 +1105,14 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe return gtm.getInvariants(); } + public ArrayList<RG> getRGs() { + return gtm.getRGs(); + } + + public void addRG(RG _newGraph) { + gtm.addRG(_newGraph); + } + public void setCurrentInvariant(Invariant inv) { currentInvariant = inv; diff --git a/src/ui/graph/AUTGraph.java b/src/ui/graph/AUTGraph.java index d1f5dcf1c65be92ad19e4f4478ed56ab6a387456..df2984a5e17fcce796e52011b3535de9c3bcd8a2 100755 --- a/src/ui/graph/AUTGraph.java +++ b/src/ui/graph/AUTGraph.java @@ -50,7 +50,7 @@ import java.io.*; import myutil.*; -public class AUTGraph implements myutil.Graph { +public class AUTGraph implements myutil.Graph { protected ArrayList<AUTTransition> transitions; protected ArrayList<AUTState> states; diff --git a/src/ui/graph/RG.java b/src/ui/graph/RG.java new file mode 100755 index 0000000000000000000000000000000000000000..0a1e0c639baecf87b041adcb6e163acea3736168 --- /dev/null +++ b/src/ui/graph/RG.java @@ -0,0 +1,72 @@ +/**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 RG + * Creation : 07/12/2016 + ** @version 1.0 07/12/2016 + * @author Ludovic APVRILLE + * @see + */ + +package ui.graph; + +import java.util.*; +import java.io.*; + +import myutil.*; + +public class RG { + + public String name; + public AUTGraph graph; + public String data; + public String fileName; + + public RG(String _name) { + name = _name; + } + + public String getToolTip() { + return name; + } + + public String toString() { + return name; + } + +} diff --git a/src/ui/tree/DiagramTreeModel.java b/src/ui/tree/DiagramTreeModel.java index 2229e84e0c617c8c84d032ee6f5946f0685bfefe..aefc374382edf3a8d27fb358f59a1fa0fa361525 100755 --- a/src/ui/tree/DiagramTreeModel.java +++ b/src/ui/tree/DiagramTreeModel.java @@ -159,6 +159,10 @@ public class DiagramTreeModel implements TreeModel { if (node instanceof InvariantDataTree) { return false; } + + if (node instanceof GraphTree) { + return false; + } if (node instanceof Invariant) { return false; @@ -185,6 +189,7 @@ public class DiagramTreeModel implements TreeModel { if (node instanceof InvariantSynchro) { return false; } + return true; } } diff --git a/src/ui/tree/DiagramTreeRenderer.java b/src/ui/tree/DiagramTreeRenderer.java index 1a67a05ee766a9146a27d486e7bc55a9bdbd24f3..7c05cab39bf4254e93e352ec7eb0202e17baad77 100755 --- a/src/ui/tree/DiagramTreeRenderer.java +++ b/src/ui/tree/DiagramTreeRenderer.java @@ -70,6 +70,8 @@ import ui.tmlsd.*; import ui.ncdd.*; +import ui.graph.*; + import ui.oscd.*; import ui.osad.*; @@ -86,6 +88,9 @@ import ui.diplodocusmethodology.*; import ui.avatarmethodology.*; import ui.sysmlsecmethodology.*; +import ui.graph.*; + + public class DiagramTreeRenderer extends DefaultTreeCellRenderer { @@ -275,6 +280,10 @@ public class DiagramTreeRenderer extends DefaultTreeCellRenderer { } else if (value instanceof CheckingError) { setIcon(IconManager.imgic322); setToolTipText(value.toString()); + } else if (value instanceof RG) { + RG rg = (RG)value; + setIcon(IconManager.imgic310); + setToolTipText("Graph: " + rg.getToolTip()); } else if (value instanceof Invariant) { Invariant inv = (Invariant)value; setIcon(IconManager.imgic5110); @@ -286,6 +295,9 @@ public class DiagramTreeRenderer extends DefaultTreeCellRenderer { } else if (value instanceof InvariantDataTree) { setIcon(IconManager.imgic5112); setToolTipText("List of invariants"); + } else if (value instanceof GraphTree) { + setIcon(IconManager.imgic310); + setToolTipText("List of RG"); } else if (value instanceof TAttribute) { setIcon(IconManager.imgic5106); setToolTipText(value.toString()); diff --git a/src/ui/tree/GraphTree.java b/src/ui/tree/GraphTree.java new file mode 100755 index 0000000000000000000000000000000000000000..0977150bf0ca9d96322864eea5f0cbf851f05830 --- /dev/null +++ b/src/ui/tree/GraphTree.java @@ -0,0 +1,91 @@ +/**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 InvariantDataTree + * Creation: 15/02/2012 + * Version 2.0 15/02/2012 + * @author Ludovic APVRILLE + * @see + */ + +package ui.tree; + +import ui.*; +import myutil.*; +import ui.graph.*; + +import java.util.*; + +public class GraphTree implements GenericTree { + + private MainGUI mgui; + private String name = "R. Graphs"; + + + public GraphTree(MainGUI _mgui) { + mgui = _mgui; + } + + // TREE MANAGEMENT + public String toString() { + return name; + } + + public int getChildCount() { + int nb = mgui.getRGs().size(); + if (nb == 0) { + return 1; + } + return nb; + } + + public Object getChild(int index) { + ArrayList<RG> rgs = mgui.getRGs(); + if (rgs.size() == 0) { + return "No graph"; + } + return mgui.getRGs().get(index); + } + + public int getIndexOfChild(Object child) { + if (child instanceof String) { + return 0; + } + return mgui.getRGs().indexOf((RG)child); + } +} diff --git a/src/ui/tree/JDiagramTree.java b/src/ui/tree/JDiagramTree.java index 08def8883085bafac92e9c7a1bf6a6f3da37f608..401af00ac5e6240d014bee1af786c6450a42ed2a 100755 --- a/src/ui/tree/JDiagramTree.java +++ b/src/ui/tree/JDiagramTree.java @@ -1,48 +1,48 @@ /**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 JDiagramTree - * Dialog for managing attributes - * Creation: 14/12/2003 - * @version 1.0 14/12/2003 - * @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 JDiagramTree + * Dialog for managing attributes + * Creation: 14/12/2003 + * @version 1.0 14/12/2003 + * @author Ludovic APVRILLE + * @see + */ package ui.tree; @@ -55,6 +55,7 @@ import java.util.*; //import translator.*; import ui.*; +import ui.graph.*; import myutil.*; @@ -62,19 +63,19 @@ public class JDiagramTree extends javax.swing.JTree implements MouseListener, Tr private boolean toUpdate = false; private MainGUI mgui; private DiagramTreeModel dtm; - + //for update private Set m_expandedTreePaths = new HashSet(); private TreePath[] m_selectedTreePaths = new TreePath[0]; //private boolean m_nodeWasSelected = false; - - + + /** Creates new form */ public JDiagramTree(MainGUI _mgui) { super(new DiagramTreeModel(_mgui)); - + TraceManager.addDev("TREE CREATED"); - + mgui = _mgui; getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); setEditable(false); @@ -82,50 +83,50 @@ public class JDiagramTree extends javax.swing.JTree implements MouseListener, Tr addTreeExpansionListener(this); addTreeSelectionListener(this); } - + public void reinit() { m_expandedTreePaths.clear(); m_selectedTreePaths = new TreePath[0]; } - + public void toBeUpdated() { toUpdate = true; } - + public void updateNow() { if(toUpdate) { forceUpdate(); } } - + public void forceUpdate() { toUpdate = false; dtm = new DiagramTreeModel(mgui); setModel(dtm); update(); } - + public void mousePressed(MouseEvent e) { - + } - + public void mouseReleased(MouseEvent e) { - + } - + public void mouseEntered(MouseEvent e) { updateNow(); } - + public void mouseExited(MouseEvent e) { setSelectionPath(null); m_selectedTreePaths = new TreePath[0]; } - + public void mouseClicked(MouseEvent e) { - + } - + public synchronized void run(){ checkPaths(); Iterator l_keys = m_expandedTreePaths.iterator(); @@ -149,7 +150,7 @@ public class JDiagramTree extends javax.swing.JTree implements MouseListener, Tr } getSelectionModel().setSelectionPaths(m_selectedTreePaths); } - + private void checkPaths() { TreePath l_path = null; Iterator l_keys = m_expandedTreePaths.iterator(); @@ -159,41 +160,41 @@ public class JDiagramTree extends javax.swing.JTree implements MouseListener, Tr m_expandedTreePaths.remove(l_path); } } - + } - + private boolean isAPathOf(TreePath tp) { if ((dtm ==null) || (tp == null)) { return false; } - + Object [] objs = tp.getPath(); - + if (objs.length == 0) { return false; } - + if (objs[0] != dtm.getRoot()) { return false; } - + int index; - + for(int i=0; i<objs.length - 2; i++) { index = dtm.getIndexOfChild(objs[i], objs[i+1]); if (index == -1) { return false; } } - + return true; - + } - + public synchronized void update(){ SwingUtilities.invokeLater(this); } - + public void treeExpanded(TreeExpansionEvent treeExpansionEvent) { TreePath tp = treeExpansionEvent.getPath(); m_expandedTreePaths.add(tp); @@ -213,28 +214,28 @@ public class JDiagramTree extends javax.swing.JTree implements MouseListener, Tr } } } - + } - + public void treeCollapsed(TreeExpansionEvent treeExpansionEvent) { m_expandedTreePaths.remove(treeExpansionEvent.getPath()); } - + public void valueChanged(TreeSelectionEvent treeSelectionEvent) { - //TraceManager.addDev("Value changed"); - + //TraceManager.addDev("Value changed"); + if(getSelectionPaths() != null && getSelectionPaths().length >0 ){ m_selectedTreePaths = getSelectionModel().getSelectionPaths(); } - + TreePath tp = treeSelectionEvent.getNewLeadSelectionPath(); if (tp == null) { return; } - + Object nodeInfo = tp.getLastPathComponent(); Object o; - + if (nodeInfo instanceof TDiagramPanel) { mgui.selectTab((TDiagramPanel)nodeInfo); } else if (nodeInfo instanceof TURTLEPanel) { @@ -244,23 +245,23 @@ public class JDiagramTree extends javax.swing.JTree implements MouseListener, Tr mgui.selectTab(tgc.getTDiagramPanel()); tgc.getTDiagramPanel().highlightTGComponent(tgc); } else if (nodeInfo instanceof Invariant) { - //TraceManager.addDev("Click on invariant"); - Invariant inv = (Invariant)nodeInfo; - mgui.setCurrentInvariant(inv); - for(int i=2; i< inv.getChildCount(); i++) { - o = inv.getChild(i); - if (o instanceof TGComponent) { - TGComponent tgc1 = (TGComponent) (o); - tgc1.getTDiagramPanel().repaint(); - } - - if (o instanceof InvariantSynchro) { - InvariantSynchro is = (InvariantSynchro)o; - is.getFrom().getTDiagramPanel().repaint(); - is.getTo().getTDiagramPanel().repaint(); - } - - } + //TraceManager.addDev("Click on invariant"); + Invariant inv = (Invariant)nodeInfo; + mgui.setCurrentInvariant(inv); + for(int i=2; i< inv.getChildCount(); i++) { + o = inv.getChild(i); + if (o instanceof TGComponent) { + TGComponent tgc1 = (TGComponent) (o); + tgc1.getTDiagramPanel().repaint(); + } + + if (o instanceof InvariantSynchro) { + InvariantSynchro is = (InvariantSynchro)o; + is.getFrom().getTDiagramPanel().repaint(); + is.getTo().getTDiagramPanel().repaint(); + } + + } } else if (nodeInfo instanceof CheckingError) { CheckingError ce = (CheckingError)nodeInfo; TDiagramPanel tdp; TGComponent tgc; @@ -278,8 +279,14 @@ public class JDiagramTree extends javax.swing.JTree implements MouseListener, Tr mgui.selectTab("Class diagram"); } else if (ce.getTMLTask() != null) { mgui.selectTab(ce.getTMLTask().getName()); - } - } + } + } else if (nodeInfo instanceof RG) { + RG rg = (RG)nodeInfo; + if (rg.data != null) { + mgui.showAUT("Last RG", rg.data); + } + + } } - + } diff --git a/src/ui/tree/ValidationDataTree.java b/src/ui/tree/ValidationDataTree.java index 5c78641c782bebea286c9eb7c511150f086c8ff5..b33fc53d2fa703b9106f170aedb52acffd7ce66c 100755 --- a/src/ui/tree/ValidationDataTree.java +++ b/src/ui/tree/ValidationDataTree.java @@ -1,47 +1,47 @@ /**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 ValidationDataTree - * Creation: 22/12/2003 - * Version 1.0 22/12/2003 - * @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 ValidationDataTree + * Creation: 22/12/2003 + * Version 1.0 22/12/2003 + * @author Ludovic APVRILLE + * @see + */ package ui.tree; @@ -49,60 +49,66 @@ import ui.*; import myutil.*; public class ValidationDataTree implements GenericTree { - + private MainGUI mgui; private String name = "Validation"; private TClassesValidationDataTree tvdt; private SyntaxAnalysisTree mcvdt; private CorrespondanceValidationDataTree cvdt; private InvariantDataTree idt; - + private GraphTree gt; + public ValidationDataTree(MainGUI _mgui) { mgui = _mgui; tvdt = new TClassesValidationDataTree(mgui); mcvdt = new SyntaxAnalysisTree(mgui); cvdt = new CorrespondanceValidationDataTree(); idt = new InvariantDataTree(mgui); + gt = new GraphTree(mgui); } - + // TREE MANAGEMENT - + public String toString() { return name; } - + public int getChildCount() { - //System.out.println("Get child count validation"); - return 4; + //System.out.println("Get child count validation"); + return 5; } - + public Object getChild(int index) { - //System.out.println("Get child validation"); + //System.out.println("Get child validation"); switch (index) { - case 0: - return tvdt; - case 1: - return mcvdt; - case 2: - return cvdt; - case 3: - return idt; + case 0: + return tvdt; + case 1: + return mcvdt; + case 2: + return cvdt; + case 3: + return gt; + case 4: + return idt; } return null; } - + public int getIndexOfChild(Object child) { - //System.out.println("Get index of child validation"); + //System.out.println("Get index of child validation"); if (child instanceof TClassesValidationDataTree) { return 0; - } else if (child instanceof SyntaxAnalysisTree) { + } else if (child instanceof SyntaxAnalysisTree) { return 1; } else if (child instanceof CorrespondanceValidationDataTree) { return 2; - } else if (child instanceof InvariantDataTree) { + } else if (child instanceof GraphTree) { return 3; + } else if (child instanceof InvariantDataTree) { + return 4; } return -1; } - + } diff --git a/src/ui/window/JDialogAvatarModelChecker.java b/src/ui/window/JDialogAvatarModelChecker.java index 095a82be383abeef3a6176869804781bf59d3e05..a5872b9e9ea0a1ea85e5f632370a52b24f246c4f 100644 --- a/src/ui/window/JDialogAvatarModelChecker.java +++ b/src/ui/window/JDialogAvatarModelChecker.java @@ -61,6 +61,8 @@ import avatartranslator.modelchecker.*; import ui.*; import java.util.concurrent.TimeUnit; +import ui.graph.*; + public class JDialogAvatarModelChecker extends javax.swing.JFrame implements ActionListener, Runnable, MasterProcessInterface { @@ -419,9 +421,9 @@ public class JDialogAvatarModelChecker extends javax.swing.JFrame implements Act } public void showGraph() { - if (graphAUT != null) { - mgui.showAUT("Last RG", graphAUT); - } + if (graphAUT != null) { + mgui.showAUT("Last RG", graphAUT); + } } public synchronized void stopProcess() { @@ -555,6 +557,10 @@ public class JDialogAvatarModelChecker extends javax.swing.JFrame implements Act graphAUT = amc.toAUT(); graphMode = GRAPH_OK; //TraceManager.addDev("graph AUT=\n" + graph); + RG rg = new RG("from avatar"); + rg.data = graphAUT; + rg.fileName = graphPath.getText(); + mgui.addRG(rg); FileUtils.saveFile(graphPath.getText(), graphAUT); jta.append("Graph saved in " + graphPath.getText() + "\n"); } catch (Exception e) {