From 97bd76eb9beb1695968431596736cad6970999ab Mon Sep 17 00:00:00 2001 From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr> Date: Mon, 3 Mar 2025 15:40:48 +0100 Subject: [PATCH] Adding drawing facility for SysMLv2 --- src/main/java/ui/MainGUI.java | 9 +++- .../java/ui/SysMLv2ProviderInterface.java | 6 +++ src/main/java/ui/util/IconManager.java | 3 +- src/main/java/ui/window/JFrameSysMLv2.java | 47 ++++++++++++++++++- 4 files changed, 62 insertions(+), 3 deletions(-) diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java index 1938921a8e..54b50d7bb8 100644 --- a/src/main/java/ui/MainGUI.java +++ b/src/main/java/ui/MainGUI.java @@ -3296,6 +3296,13 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per return gtm.openSysMLV2(file.getAbsolutePath()); } + + public void drawSysMLv2Specification(String sysmlv2spec) { + + } + + + public boolean saveTIF() { int returnVal = jfctif.showSaveDialog(frame); if (returnVal == JFileChooser.APPROVE_OPTION) { @@ -3659,7 +3666,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per if (data != null) { TraceManager.addDev("New Frame SysML"); JFrameSysMLv2 fbt = new JFrameSysMLv2("SysML v2 - " + getTabs().get(getCurrentSelectedIndex()).getNameOfTab(), data, this, gtm.getAvatarSpecification()); - fbt.setSize(800, 800); + fbt.setSize(1000, 800); //fbt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); GraphicLib.centerFrame(fbt, frame); fbt.setVisible(true); diff --git a/src/main/java/ui/SysMLv2ProviderInterface.java b/src/main/java/ui/SysMLv2ProviderInterface.java index 3833ba29e5..1e227938e2 100644 --- a/src/main/java/ui/SysMLv2ProviderInterface.java +++ b/src/main/java/ui/SysMLv2ProviderInterface.java @@ -43,6 +43,7 @@ package ui; +import avatartranslator.AvatarSignal; import avatartranslator.AvatarSpecification; import ui.tmlad.TMLActivityDiagramPanel; @@ -55,5 +56,10 @@ import ui.tmlad.TMLActivityDiagramPanel; */ public interface SysMLv2ProviderInterface { public String getSysMLV2(); + public void drawSysMLv2Specification(String sysmlv2spec); + public AvatarSpecification getAvatarSpecification(); + public void drawAvatarSpecification(AvatarSpecification avspec, boolean useOriginalValues); + + } \ No newline at end of file diff --git a/src/main/java/ui/util/IconManager.java b/src/main/java/ui/util/IconManager.java index f35f5964c7..2af98d5384 100755 --- a/src/main/java/ui/util/IconManager.java +++ b/src/main/java/ui/util/IconManager.java @@ -66,7 +66,7 @@ public class IconManager { //Added by Solange public static Image img0, img1; - public static ImageIcon imgic13, imgic14, imgic15, imgic16, imgic16_1, imgic17, imgic18, imgic19; + public static ImageIcon imgic12, imgic13, imgic14, imgic15, imgic16, imgic16_1, imgic17, imgic18, imgic19; public static ImageIcon imgic20, imgic21, imgic22, imgic23, imgic24, imgic25, imgic26, imgic27, imgic28, imgic29; public static ImageIcon imgic20_proj, imgic21_proj, imgic22_proj, imgic23_proj, imgic22_net, imgic23_net; @@ -824,6 +824,7 @@ public class IconManager { imgic2 = getIcon(icon2); + imgic12 = getIcon(icon12); imgic13 = getIcon(icon13); imgic14 = getIcon(icon14); imgic15 = getIcon(icon15); diff --git a/src/main/java/ui/window/JFrameSysMLv2.java b/src/main/java/ui/window/JFrameSysMLv2.java index 1c53d7e971..096463b3dc 100644 --- a/src/main/java/ui/window/JFrameSysMLv2.java +++ b/src/main/java/ui/window/JFrameSysMLv2.java @@ -72,11 +72,12 @@ public class JFrameSysMLv2 extends JFrame implements ActionListener { private JTextPane jta; private JScrollPane jsp; private ArrayList<String> avspecs; + private ArrayList<AvatarSpecification> originalSpecs; private JTextPane jtaAvspec; private JScrollPane jspAvspec; private JCheckBox differences; - private JButton prev, next; + private JButton prev, next, drawFromSysML, drawFromAvatarspec; private JLabel infoSpec; // Currently shown SysML V2 @@ -101,6 +102,8 @@ public class JFrameSysMLv2 extends JFrame implements ActionListener { avspecs = new ArrayList<>(); avspecs.add(_avspec.toString()); + originalSpecs = new ArrayList<>(); + originalSpecs.add(_avspec); setDefaultCloseOperation( DISPOSE_ON_CLOSE ); Container framePanel = getContentPane(); @@ -160,6 +163,17 @@ public class JFrameSysMLv2 extends JFrame implements ActionListener { buttonUpdate.addActionListener(this); jp.add(buttonUpdate); + drawFromSysML = new JButton("Draw SysML", IconManager.imgic12); + drawFromSysML.addActionListener(this); + jp.add(drawFromSysML); + + drawFromAvatarspec = new JButton("Draw Avatar spec.", IconManager.imgic12); + drawFromAvatarspec.addActionListener(this); + jp.add(drawFromAvatarspec); + + + + JButton button1 = new JButton("Close", IconManager.imgic27); button1.addActionListener(this); jp.add(button1); @@ -199,19 +213,48 @@ public class JFrameSysMLv2 extends JFrame implements ActionListener { if (evt.getSource() == differences) { diffChange(); + return; } if (evt.getSource() == next) { indexCurrentSpec --; diffChange(); updateMode(); + return; } if (evt.getSource() == prev) { indexCurrentSpec ++; diffChange(); updateMode(); + return; + } + + if (evt.getSource() == drawFromAvatarspec) { + drawFromAvatarspec(); + return; + } + + if (evt.getSource() == drawFromSysML) { + drawFromSysML(); + return; } + + + + } + + + public void drawFromAvatarspec() { + if (sysMLv2provider != null) { + AvatarSpecification as = originalSpecs.get(indexCurrentSpec); + sysMLv2provider.drawAvatarSpecification(as, true); + } + + } + + public void drawFromSysML() { + } public void update() { @@ -224,12 +267,14 @@ public class JFrameSysMLv2 extends JFrame implements ActionListener { theTexts.add(0, newText); newText = newAvspec.toString(); avspecs.add(0, newText); + originalSpecs.add(newAvspec); indexCurrentSpec = 0; specNumber ++; if (theTexts.size() > MAX_NB_SPEC) { theTexts.remove(MAX_NB_SPEC); avspecs.remove(MAX_NB_SPEC); + originalSpecs.remove(MAX_NB_SPEC); } } } -- GitLab