diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java index f9fd36a4998e385e824fd0204a5adc359d3430cd..bb5b0d8d799ea139a1b883cbee60be40bffa739f 100644 --- a/src/main/java/ui/MainGUI.java +++ b/src/main/java/ui/MainGUI.java @@ -240,6 +240,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per public final static byte ATTACKTREE_SYNTAXCHECKING_OK = 49; public final static byte FAULTTREE_SYNTAXCHECKING_OK = 51; public final static byte COMPONENT_SELECTED = 50; + public final static byte CREATE_NEW_PANEL = 52; public final static int INCREMENT = 10; @@ -630,6 +631,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per //-- public void activeActions(boolean b) { + //TraceManager.addDev("Action actions:" + b); for (int i = 0; i < TGUIAction.NB_ACTION; i++) { actions[i].setEnabled(b); } @@ -7364,10 +7366,13 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per int index; TURTLEPanel tp = getCurrentTURTLEPanel(); if (tp == null) { + TraceManager.addDev("null TP Panel"); return; } index = tp.tabbedPane.getSelectedIndex(); + TraceManager.addDev("TP Panel: " + tp + " index=" + index); + if (index < tp.panels.size() - 1) { setMode(FORWARD_DIAG); } else { @@ -7380,6 +7385,12 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per setMode(NO_BACKWARD_DIAG); } + // If no edition panel, we need to deactivate previous diagram and model checking + + if (index == -1) { + setMode(MainGUI.CREATE_NEW_PANEL); + } + setMode(METHO_CHANGED); } @@ -8996,48 +9007,70 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per } else if (ac.equals("Clone")) { mgui.cloneTab(mainTabbedPane.getSelectedIndex()); } else if (ac.equals("New TURTLE Analysis")) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newAnalysis(); } else if (ac.equals("New TURTLE Design")) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newDesign(); } else if (ac.equals("New TURTLE Deployment")) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newDeployment(); } else if (e.getSource() == newAttackTree) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newAttackTree(); } else if (e.getSource() == newFaultTree) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newFaultTree(); } else if (ac.equals("New TURTLE Requirement Diagram")) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newRequirement(); } else if (e.getSource() == newTMLMethodo) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newDiplodocusMethodology(); } else if (e.getSource() == newAvatarMethodo) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newAvatarMethodology(); } else if (e.getSource() == newSysmlsecMethodo) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newSysmlsecMethodology(); } else if (ac.equals("New DIPLODOCUS Design")) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newTMLDesign(); } else if (e.getSource() == newTMLComponentDesign) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newTMLComponentDesign(); } else if (e.getSource() == newTMLCP) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newTMLCP(); } else if (e.getSource() == newTMLArchi) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newTMLArchi(); } else if (ac.equals("New Proactive Design")) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newProactiveDesign(); } else if (ac.equals("New TURTLE-OS Design")) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newTURTLEOSDesign(); } else if (e.getSource() == newNCDesign) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newNCDesign(); } else if (e.getSource() == newAVATARBD) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newAvatarBD(); } else if (e.getSource() == newAVATARDD) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newADD(); } else if (e.getSource() == newAVATARRequirement) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newAvatarRequirement(); } else if (e.getSource() == newMAD) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newAvatarMADs(); } else if (e.getSource() == newAVATARAnalysis) { + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newAvatarAnalysis(); } else if (e.getSource() == newSystemCAMS) { //ajout CD + ModeManager.setMode(CREATE_NEW_PANEL, actions, mainBar, mgui); mgui.newSystemCAMS(); } } diff --git a/src/main/java/ui/ModeManager.java b/src/main/java/ui/ModeManager.java index 4ba4f02f42b40b3ca28162b5335ac1d7d05b7133..2653a34d44eca7d04f40e9ef08c627440300c25e 100755 --- a/src/main/java/ui/ModeManager.java +++ b/src/main/java/ui/ModeManager.java @@ -54,7 +54,12 @@ import myutil.TraceManager; public class ModeManager { public static void setMode(byte mode, TGUIAction[] actions, JToolBarMainTurtle mainBar, MainGUI mgui) { + //TraceManager.addDev("Setting mode=" + mode); switch (mode) { + case MainGUI.CREATE_NEW_PANEL: + actions[TGUIAction.ACT_MODEL_CHECKING].setEnabled(false); + TraceManager.addDev("Deactivating syntax checking"); + break; case MainGUI.NOT_OPENED: mgui.activeActions(false); actions[TGUIAction.ACT_NEW].setEnabled(true); diff --git a/src/main/java/ui/avatardd/ADDDiagramToolBar.java b/src/main/java/ui/avatardd/ADDDiagramToolBar.java index 557bbdbe67302747e8aa1fa715d5613e914956e6..30065ed08cf3caa352590a3ac4885cf856837247 100755 --- a/src/main/java/ui/avatardd/ADDDiagramToolBar.java +++ b/src/main/java/ui/avatardd/ADDDiagramToolBar.java @@ -43,6 +43,7 @@ package ui.avatardd; import ui.MainGUI; import ui.TGUIAction; import ui.TToolBar; +import myutil.TraceManager; import javax.swing.*; @@ -67,6 +68,9 @@ public class ADDDiagramToolBar extends TToolBar { } protected void setActive(boolean b) { + + TraceManager.addDev("Active ADDtoolbar b=" +b); + mgui.actions[TGUIAction.ADD_EDIT].setEnabled(b); mgui.actions[TGUIAction.UML_NOTE].setEnabled(b); mgui.actions[TGUIAction.CONNECTOR_COMMENT].setEnabled(b);