From 858c5c5ffbdcc85a4b41e021d48dd3c3249c41df Mon Sep 17 00:00:00 2001 From: Fabien Tessier <fabien.tessier@telecom-paristech.fr> Date: Thu, 21 Dec 2017 10:31:29 +0100 Subject: [PATCH] Separate open project and open xml --- src/main/java/ui/ActionPerformer.java | 4 +- src/main/java/ui/JMenuBarTurtle.java | 2 + src/main/java/ui/JToolBarMainTurtle.java | 2 + src/main/java/ui/MainGUI.java | 99 ++++++++++++++++++- src/main/java/ui/ModeManager.java | 1 + src/main/java/ui/TGUIAction.java | 4 +- .../project_config.xml | 0 7 files changed, 108 insertions(+), 4 deletions(-) rename ttool/{launch_configurations => }/project_config.xml (100%) diff --git a/src/main/java/ui/ActionPerformer.java b/src/main/java/ui/ActionPerformer.java index b3d139eb66..a5d29192ae 100755 --- a/src/main/java/ui/ActionPerformer.java +++ b/src/main/java/ui/ActionPerformer.java @@ -72,7 +72,9 @@ public class ActionPerformer { } else if (command.equals(mgui.actions[TGUIAction.ACT_OPEN_FROM_NETWORK].getActionCommand())) { mgui.openNetworkProject(); } else if (command.equals(mgui.actions[TGUIAction.ACT_OPEN].getActionCommand())) { - mgui.openProject(); + mgui.openProject(false); + } else if (command.equals(mgui.actions[TGUIAction.ACT_OPEN_PROJECT].getActionCommand())) { + mgui.openProject(true); } else if (command.equals(mgui.actions[TGUIAction.ACT_MERGE].getActionCommand())) { mgui.mergeProject(); } else if (command.equals(mgui.actions[TGUIAction.ACT_OPEN_LAST].getActionCommand())) { diff --git a/src/main/java/ui/JMenuBarTurtle.java b/src/main/java/ui/JMenuBarTurtle.java index 31b411d19c..448c131c8a 100755 --- a/src/main/java/ui/JMenuBarTurtle.java +++ b/src/main/java/ui/JMenuBarTurtle.java @@ -101,6 +101,8 @@ public class JMenuBarTurtle extends JMenuBar { menuItem.addMouseListener(mgui.mouseHandler); menuItem = file.add(mgui.actions[TGUIAction.ACT_OPEN]); menuItem.addMouseListener(mgui.mouseHandler); + menuItem = file.add(mgui.actions[TGUIAction.ACT_OPEN_PROJECT]); + menuItem.addMouseListener(mgui.mouseHandler); menuItem = file.add(mgui.actions[TGUIAction.ACT_OPEN_FROM_NETWORK]); menuItem.addMouseListener(mgui.mouseHandler); menuItem = file.add(mgui.actions[TGUIAction.ACT_SAVE]); diff --git a/src/main/java/ui/JToolBarMainTurtle.java b/src/main/java/ui/JToolBarMainTurtle.java index 28663d536e..676e230093 100755 --- a/src/main/java/ui/JToolBarMainTurtle.java +++ b/src/main/java/ui/JToolBarMainTurtle.java @@ -88,6 +88,8 @@ public class JToolBarMainTurtle extends JToolBar implements ActionListener button.addMouseListener(mgui.mouseHandler); button = add(mgui.actions[TGUIAction.ACT_OPEN]); button.addMouseListener(mgui.mouseHandler); + button = add(mgui.actions[TGUIAction.ACT_OPEN_PROJECT]); + button.addMouseListener(mgui.mouseHandler); button = add(mgui.actions[TGUIAction.ACT_SAVE]); button.addMouseListener(mgui.mouseHandler); //button = add(mgui.actions[TGUIAction.ACT_SAVE_AS]); diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java index 875f49a37a..795218399a 100644 --- a/src/main/java/ui/MainGUI.java +++ b/src/main/java/ui/MainGUI.java @@ -100,6 +100,8 @@ import javax.imageio.ImageIO; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import javax.swing.filechooser.FileNameExtensionFilter; + import java.awt.*; import java.awt.event.*; import java.awt.image.BufferedImage; @@ -450,7 +452,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe TFileFilter filter = new TFileFilter(); jfc.setFileFilter(filter); - jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); + jfc.setFileSelectionMode(JFileChooser.FILES_ONLY); TTIFFilter filtertif = new TTIFFilter(); jfctif.setFileFilter(filtertif); @@ -2376,7 +2378,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe } - public void openProject() { + public void openProject(boolean isProject) { if (config != null && activetdp != null) saveConfig(); // check if a current modeling is opened @@ -2393,6 +2395,99 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe } //jfc.setApproveButtonText("Open"); + if (isProject) { + jfc.resetChoosableFileFilters(); + jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + jfc.setAcceptAllFileFilterUsed(false); + FileNameExtensionFilter filter = new FileNameExtensionFilter("TTool project", "ttool"); + jfc.setFileFilter(filter); + /*jfc.addMouseListener(new MouseListener() { + + @Override + public void mouseClicked(MouseEvent arg0) { + + if(arg0.getClickCount() == 2) { + File file = jfc.getSelectedFile(); + if(!FileUtils.getExtension(file).equals("ttool")) { + jfc.setCurrentDirectory(file); + jfc.rescanCurrentDirectory(); + } + else { + jfc.approveSelection(); + } + } + } + + @Override + public void mouseEntered(MouseEvent e) { + // TODO Auto-generated method stub + return; + } + + @Override + public void mouseExited(MouseEvent e) { + // TODO Auto-generated method stub + return; + } + + @Override + public void mousePressed(MouseEvent e) { + // TODO Auto-generated method stub + return; + } + + @Override + public void mouseReleased(MouseEvent e) { + // TODO Auto-generated method stub + return; + } + });*/ + } + else { + jfc.resetChoosableFileFilters(); + jfc.setFileSelectionMode(JFileChooser.FILES_ONLY); + jfc.setAcceptAllFileFilterUsed(false); + FileNameExtensionFilter filter = new FileNameExtensionFilter("XML files", "xml"); + jfc.setFileFilter(filter); + /*jfc.addMouseListener(new MouseListener() { + + @Override + public void mouseClicked(MouseEvent arg0) { + + if(arg0.getClickCount() == 2) { + File file = jfc.getSelectedFile(); + if(!FileUtils.getExtension(file).equals("ttool")) { + jfc.setCurrentDirectory(file); + jfc.rescanCurrentDirectory(); + } + } + } + + @Override + public void mouseEntered(MouseEvent e) { + // TODO Auto-generated method stub + return; + } + + @Override + public void mouseExited(MouseEvent e) { + // TODO Auto-generated method stub + return; + } + + @Override + public void mousePressed(MouseEvent e) { + // TODO Auto-generated method stub + return; + } + + @Override + public void mouseReleased(MouseEvent e) { + // TODO Auto-generated method stub + return; + } + });*/ + } int returnVal = jfc.showOpenDialog(frame); if (returnVal == JFileChooser.CANCEL_OPTION) { diff --git a/src/main/java/ui/ModeManager.java b/src/main/java/ui/ModeManager.java index 2a9b2c0221..4a9b4fcafe 100755 --- a/src/main/java/ui/ModeManager.java +++ b/src/main/java/ui/ModeManager.java @@ -63,6 +63,7 @@ public class ModeManager { actions[TGUIAction.ACT_NEW].setEnabled(true); actions[TGUIAction.ACT_NEW_PROJECT].setEnabled(true); actions[TGUIAction.ACT_OPEN].setEnabled(true); + actions[TGUIAction.ACT_OPEN_PROJECT].setEnabled(true); actions[TGUIAction.ACT_OPEN_FROM_NETWORK].setEnabled(true); actions[TGUIAction.ACT_OPEN_TIF].setEnabled(true); actions[TGUIAction.ACT_OPEN_SD].setEnabled(true); diff --git a/src/main/java/ui/TGUIAction.java b/src/main/java/ui/TGUIAction.java index 1d0fbefde1..512b14c493 100755 --- a/src/main/java/ui/TGUIAction.java +++ b/src/main/java/ui/TGUIAction.java @@ -71,6 +71,7 @@ public class TGUIAction extends AbstractAction { public static final int ACT_NEW_DESIGN = 100; public static final int ACT_NEW_ANALYSIS = 101; public static final int ACT_OPEN = 1; + public static final int ACT_OPEN_PROJECT = 466; public static final int ACT_OPEN_FROM_NETWORK = 455; public static final int ACT_OPEN_LAST = 154; public static final int ACT_MERGE = 228; @@ -620,7 +621,7 @@ public class TGUIAction extends AbstractAction { public static final int MOVE_ENABLED = 463; public static final int FIRST_DIAGRAM = 464; - public static final int NB_ACTION = 466; + public static final int NB_ACTION = 467; private static final TAction [] actions = new TAction[NB_ACTION]; @@ -678,6 +679,7 @@ public class TGUIAction extends AbstractAction { actions[ACT_NEW_DESIGN] = new TAction("new-command-design", "New design", IconManager.imgic14, IconManager.imgic14, "New design", "New TURTLE design", 0); actions[ACT_NEW_ANALYSIS] = new TAction("new-command-analysis", "New analysis", IconManager.imgic17, IconManager.imgic17, "New analysis", "New TURTLE analysis", 0); actions[ACT_OPEN] = new TAction("open-command","Open", IconManager.imgic22, IconManager.imgic23, "Open", "Open an existing TTool model",'O', true); + actions[ACT_OPEN_PROJECT] = new TAction("open-project-command","Open project", IconManager.imgic22, IconManager.imgic23, "Open project", "Open an existing TTool project",'O', true); actions[ACT_OPEN_FROM_NETWORK] = new TAction("open-command-from-network","Open from TTool repository", IconManager.imgic22, IconManager.imgic23, "Open from TTool repository", "Open an existing TTool model from the TTool repository (TTool website)",'0', true); actions[ACT_OPEN_LAST] = new TAction("openlast-command","Open file: " + ConfigurationTTool.LastOpenFile, IconManager.imgic22, IconManager.imgic23, "Open: " + ConfigurationTTool.LastOpenFile, "Open the lastly saved TTool model", 0); actions[ACT_MERGE] = new TAction("merge-command","Merge", IconManager.imgic22, IconManager.imgic23, "Merge", "Merge the current TTool modeling with another one saved in a file ", 0); diff --git a/ttool/launch_configurations/project_config.xml b/ttool/project_config.xml similarity index 100% rename from ttool/launch_configurations/project_config.xml rename to ttool/project_config.xml -- GitLab