diff --git a/src/avatartranslator/directsimulation/AvatarSimulationBlock.java b/src/avatartranslator/directsimulation/AvatarSimulationBlock.java index d62d5c8a3488bdba5cfdb23aaa7beef7f1c7d760..5ebaa09d97f116041bc5e3e96bfd90401be4baa1 100644 --- a/src/avatartranslator/directsimulation/AvatarSimulationBlock.java +++ b/src/avatartranslator/directsimulation/AvatarSimulationBlock.java @@ -303,7 +303,7 @@ public class AvatarSimulationBlock { } else { ast.silent = true; } - TraceManager.addDev("Transaction " + ast.id + " silent=" + ast.silent); + //TraceManager.addDev("Transaction " + ast.id + " silent=" + ast.silent); if (_aspt != null) { _aspt.clockValueAtEnd = _clockValue; if (_aspt.hasClock) { diff --git a/src/avatartranslator/directsimulation/AvatarSpecificationSimulation.java b/src/avatartranslator/directsimulation/AvatarSpecificationSimulation.java index c2240962466efd700734f378eca69f9732d0c6f4..f54b53932eedaec46fa566e5ecd12a62ad5abbc1 100644 --- a/src/avatartranslator/directsimulation/AvatarSpecificationSimulation.java +++ b/src/avatartranslator/directsimulation/AvatarSpecificationSimulation.java @@ -558,11 +558,11 @@ public class AvatarSpecificationSimulation { if (aspt.hasDelay) { if (aspt.myMinDuration < minMin) { minMin = aspt.myMinDuration; - indexMin = ll.size(); //TraceManager.addDev("Setting min duration = " + minMin); } if (aspt.myMaxDuration < maxDuration) { maxDuration = aspt.myMaxDuration; + indexMin = ll.size(); //TraceManager.addDev("Setting max Duration = " + maxDuration); } } @@ -813,19 +813,19 @@ public class AvatarSpecificationSimulation { if ((tr.elementToExecute instanceof AvatarTransition) && (executeEmptyTransition)) { AvatarTransition atr = (AvatarTransition)(tr.elementToExecute); if (!(atr.hasDelay()) && !(atr.hasCompute()) && !(atr.hasActions())){ - TraceManager.addDev("Empty transition?"); + //TraceManager.addDev("Empty transition?"); if (nbOfTransactions(tr.asb, _pendingTransactions) < 2) { tr.isSilent = true; - TraceManager.addDev("Yes"); + //TraceManager.addDev("Yes"); return tr; } } // State entering? } else if (((tr.elementToExecute instanceof AvatarState) || (tr.elementToExecute instanceof AvatarStopState)) && (executeStateEntering)) { - TraceManager.addDev("Empty state enter?"); + //TraceManager.addDev("Empty state enter?"); if (nbOfTransactions(tr.asb, _pendingTransactions) < 2) { tr.isSilent = true; - TraceManager.addDev("Yes"); + //TraceManager.addDev("Yes"); return tr; } } diff --git a/src/ui/IconManager.java b/src/ui/IconManager.java index 2ef6ad0f63ec3c5e7f19c7e9992bb51eaa1179ce..4865a34687b5c4c39dfc81f15032760ac2431a04 100755 --- a/src/ui/IconManager.java +++ b/src/ui/IconManager.java @@ -144,9 +144,9 @@ public class IconManager { public static ImageIcon imgic5020, imgic5022, imgic5024, imgic5026, imgic5028; public static ImageIcon imgic5030, imgic5032, imgic5034, imgic5036, imgic5038; public static ImageIcon imgic5040, imgic5042, imgic5044, imgic5046, imgic5048; - public static ImageIcon imgic5050, imgic5052, imgic5054; + public static ImageIcon imgic5050, imgic5052, imgic5054, imgic5056; - public static ImageIcon imgic5100, imgic5102, imgic5104; + public static ImageIcon imgic5100, imgic5102, imgic5104, imgic5106, imgic5108; // Delegate ports image removed, by Solange //public static ImageIcon imgic2102; @@ -530,13 +530,18 @@ public class IconManager { private static String icon5048 = "images/avataractivity.gif"; private static String icon5050 = "images/avatarsendsignal.gif"; private static String icon5052 = "images/avatarpartition.gif"; - private static String icon5054 = "images/alignpartition.gif"; + private static String icon5054 = "images/alignpartition.gif"; + private static String icon5056 = "images/avatarreceivesignal.gif"; private static String icon5100 = "images/avatarhead16.gif"; private static String icon5102 = "images/avatarhead32.gif"; + private static String icon5104 = "images/savepng24.gif"; + private static String icon5106 = "images/attribute.gif"; + private static String icon5108 = "images/method.gif"; + public IconManager() { } @@ -893,10 +898,13 @@ public class IconManager { imgic5050 = getIcon(icon5050); imgic5052 = getIcon(icon5052); imgic5054 = getIcon(icon5054); + imgic5056 = getIcon(icon5056); imgic5100 = getIcon(icon5100); imgic5102 = getIcon(icon5102); imgic5104 = getIcon(icon5104); + imgic5106 = getIcon(icon5106); + imgic5108 = getIcon(icon5108); if (imgic5100 != null) { img5100 = imgic5100.getImage(); } diff --git a/src/ui/JToolBarMainTurtle.java b/src/ui/JToolBarMainTurtle.java index 3f98ce6a1edf99584e5f3da265d4a9eef342bc06..e08c9df1d4fd2ac4ce4f80b0da7bf46f8f5669a0 100755 --- a/src/ui/JToolBarMainTurtle.java +++ b/src/ui/JToolBarMainTurtle.java @@ -257,7 +257,7 @@ public class JToolBarMainTurtle extends JToolBar { public void showAvatarActions(boolean b) { - TraceManager.addDev("Show avatar options with b = " + b); + //TraceManager.addDev("Show avatar options with b = " + b); avatarSimu.setVisible(b); avatarFVUPPAAL.setVisible(b); diff --git a/src/ui/TGUIAction.java b/src/ui/TGUIAction.java index 3b2be95822138f1b6341d510774b58eb9edd9ea6..338a0cdecf70f46f8de7a84e684324a14b8ec793 100755 --- a/src/ui/TGUIAction.java +++ b/src/ui/TGUIAction.java @@ -955,7 +955,7 @@ public class TGUIAction extends AbstractAction { actions[AAD_ACTION] = new TAction("add-aad-action", "Action", IconManager.imgic204, IconManager.imgic204, "Action", "Add a new action to the currently opened AVATAR avatar activity diagram", 0); actions[AAD_STOP_FLOW] = new TAction("add-aad-stop-flow", "Stop flow", IconManager.imgic5046, IconManager.imgic5046, "Stop flow", "Add a stop flow state to the currently opened avatar activity diagram", 0); actions[AAD_SEND_SIGNAL_ACTION] = new TAction("add-add-send-signal-action", "Send signal", IconManager.imgic5050, IconManager.imgic5050, "Send signal", "Add a send signal operator to the currently opened avatar activity diagram", 0); - actions[AAD_ACCEPT_EVENT_ACTION] = new TAction("add-add-accept-event-action", "Accept event", IconManager.imgic908, IconManager.imgic908, "Accept event", "Add an accept event operator to the currently opened avatar activity diagram", 0); + actions[AAD_ACCEPT_EVENT_ACTION] = new TAction("add-add-accept-event-action", "Accept event", IconManager.imgic5056, IconManager.imgic5056, "Accept event", "Add an accept event operator to the currently opened avatar activity diagram", 0); actions[AAD_PARTITION] = new TAction("add-add-partition", "Partition", IconManager.imgic5052, IconManager.imgic5052, "Partition", "Add a partition to the currently opened avatar activity diagram", 0); actions[AAD_ALIGN_PARTITION] = new TAction("add-aad-align_partitions", "Align partitions", IconManager.imgic5054, IconManager.imgic5054, "Align partitions", "Align partitions of the currently opened avatar activity diagram", 0); diff --git a/src/ui/avatarbd/AvatarBDBlock.java b/src/ui/avatarbd/AvatarBDBlock.java index 845a9da5404a2e025ef4d2aa3d45868383dfeade..a0d4c9af77a38dd8a225db43a7feb5e5e2dec405 100644 --- a/src/ui/avatarbd/AvatarBDBlock.java +++ b/src/ui/avatarbd/AvatarBDBlock.java @@ -58,7 +58,7 @@ import ui.window.*; import ui.avatarsmd.*; -public class AvatarBDBlock extends TGCScalableWithInternalComponent implements SwallowTGComponent, SwallowedTGComponent { +public class AvatarBDBlock extends TGCScalableWithInternalComponent implements SwallowTGComponent, SwallowedTGComponent, GenericTree { private int textY1 = 3; private String stereotype = "block"; @@ -992,6 +992,69 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S } } + public boolean hasDefinitions() { + return ((myAttributes.size() + myMethods.size() + mySignals.size() + nbInternalTGComponent)>0); + } + + // Main Tree + + public int getChildCount() { + //TraceManager.addDev("Counting childs!"); + return myAttributes.size() + myMethods.size() + mySignals.size() + nbInternalTGComponent; + } + + public Object getChild(int index) { + + int sa = nbInternalTGComponent; + + if (sa > index) { + return tgcomponent[index]; + } + + index = index - nbInternalTGComponent; + sa = myAttributes.size(); + // TraceManager.addDev("index = " + index + " sa=" + sa); + if (sa <= index) { + index = index - sa; + sa = myMethods.size(); + if (sa <= index) { + return mySignals.get(index - sa); + } else { + return myMethods.get(index); + } + } + + return myAttributes.get(index); + } + + public int getIndexOfChild(Object child) { + if (child instanceof AvatarBDBlock) { + for(int i=0; i<nbInternalTGComponent; i++) { + if (tgcomponent[i] == child) { + return i; + } + } + } + + if (child instanceof TAttribute) { + return myAttributes.indexOf(child) + nbInternalTGComponent; + } + + if (child instanceof AvatarMethod) { + return myMethods.indexOf(child) + myAttributes.size() + nbInternalTGComponent; + } + + if (child instanceof AvatarSignal) { + return mySignals.indexOf(child) + myAttributes.size() + myMethods.size() + nbInternalTGComponent; + } + + return -1; + } + + public ImageIcon getImageIcon() { + return myImageIcon; + } + } diff --git a/src/ui/images/attribute.gif b/src/ui/images/attribute.gif new file mode 100644 index 0000000000000000000000000000000000000000..c6f3b57569b69550ecd77866cceb2a79c90459a1 Binary files /dev/null and b/src/ui/images/attribute.gif differ diff --git a/src/ui/images/method.gif b/src/ui/images/method.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad18da049374b1b2cc4f0253ea568f899309118f Binary files /dev/null and b/src/ui/images/method.gif differ diff --git a/src/ui/tree/DiagramTreeModel.java b/src/ui/tree/DiagramTreeModel.java index d24ee5cb1161137fdee552ba620fc03fce18c072..4498e64e9ecd6a0eec66c40c26aeb33b87624dac 100755 --- a/src/ui/tree/DiagramTreeModel.java +++ b/src/ui/tree/DiagramTreeModel.java @@ -54,6 +54,8 @@ import translator.*; import ui.*; import myutil.*; +import ui.avatarbd.*; + public class DiagramTreeModel implements TreeModel { private MainGUI mgui; private Vector treeModelListeners = new Vector(); @@ -155,6 +157,9 @@ public class DiagramTreeModel implements TreeModel { } if (node instanceof TGComponent) { + if (node instanceof AvatarBDBlock) { + return !((AvatarBDBlock)node).hasDefinitions(); + } if (((TGComponent)node).getNbInternalTGComponent() > 0) { return false; } diff --git a/src/ui/tree/DiagramTreeRenderer.java b/src/ui/tree/DiagramTreeRenderer.java index f6c8293140bf4207a0340668aeae2c0ec002b533..220922d14dc415583868502b2edec2ba70814708 100755 --- a/src/ui/tree/DiagramTreeRenderer.java +++ b/src/ui/tree/DiagramTreeRenderer.java @@ -223,6 +223,21 @@ public class DiagramTreeRenderer extends DefaultTreeCellRenderer { } else if (value instanceof CheckingError) { setIcon(IconManager.imgic322); setToolTipText(value.toString()); + } else if (value instanceof TAttribute) { + setIcon(IconManager.imgic5106); + setToolTipText(value.toString()); + } else if (value instanceof AvatarSignal) { + if (((AvatarSignal)value).getInOut() == AvatarSignal.OUT) { + setIcon(IconManager.imgic5050); + setToolTipText(value.toString()); + } else { + setIcon(IconManager.imgic5056); + setToolTipText(value.toString()); + } + } else if (value instanceof AvatarMethod) { + setIcon(IconManager.imgic5108); + setToolTipText(value.toString()); + } else { setToolTipText(null); }