Browse Source

Save with extensions

Teh-Hai Julian Zheng 8 years ago
parent
commit
b2fce6ad46
2 changed files with 23 additions and 11 deletions
  1. 5 1
      src/ui/controller/StoreController.java
  2. 18 10
      src/ui/view/GUI.java

+ 5 - 1
src/ui/controller/StoreController.java

@@ -7,6 +7,8 @@ import java.util.ListIterator;
 
 import org.json.simple.JSONArray;
 import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+
 import classes.Category;
 import classes.CpsEdge;
 import classes.CpsObject;
@@ -14,6 +16,7 @@ import classes.HolonElement;
 import classes.HolonObject;
 import classes.HolonSwitch;
 import classes.HolonTransformer;
+import jdk.nashorn.internal.ir.debug.JSONWriter;
 import ui.model.Model;
 import ui.model.idCounter;
 
@@ -44,7 +47,8 @@ public class StoreController {
 		writeElementGraph(json);
 
 		FileWriter writer = new FileWriter(path);
-		writer.write(json.toJSONString());
+		writer.write(json.toJSONString());getClass();
+		
 		writer.flush();
 		writer.close();
 	}

+ 18 - 10
src/ui/view/GUI.java

@@ -50,6 +50,7 @@ import javax.swing.SwingUtilities;
 import javax.swing.border.LineBorder;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
+import javax.swing.filechooser.FileNameExtensionFilter;
 import javax.swing.plaf.basic.BasicSplitPaneUI.KeyboardDownRightHandler;
 import javax.swing.table.DefaultTableModel;
 import javax.swing.tree.DefaultMutableTreeNode;
@@ -233,18 +234,18 @@ public class GUI<E> implements CategoryListener {
 			@Override
 			public void actionPerformed(ActionEvent e) {
 				JPanel myPanel = new JPanel();
-				JTextField field1 = new JTextField(""+canvas.getWidth()+"");
-				JTextField field2 = new JTextField(""+canvas.getHeight()+"");
+				JTextField field1 = new JTextField("" + canvas.getWidth() + "");
+				JTextField field2 = new JTextField("" + canvas.getHeight() + "");
 				myPanel.add(field1);
 				myPanel.add(field2);
 				JOptionPane.showMessageDialog(null, myPanel);
-		        canvas.setPreferredSize(new Dimension(Integer.parseInt(field1.getText()), Integer.parseInt(field2.getText())));
-		        canvas.repaint();
+				canvas.setPreferredSize(
+						new Dimension(Integer.parseInt(field1.getText()), Integer.parseInt(field2.getText())));
+				canvas.repaint();
 			}
 		});
-		
+
 		mnNewMenu_3.add(splitPane_3);
-		
 
 		sizeSlider.setMinimum(15);
 		sizeSlider.setMaximum(115);
@@ -738,7 +739,7 @@ public class GUI<E> implements CategoryListener {
 						deleteRows();
 						Object[] tempRatioPerc = { "Ratio Type", true };
 						tableModelProperties.addRow(tempRatioPerc);
-					}else{
+					} else {
 						deleteRows();
 					}
 					tableModelProperties.setCellEditable(0, 1, true);
@@ -856,6 +857,9 @@ public class GUI<E> implements CategoryListener {
 			private void menuFileExitActionPerformed(java.awt.event.ActionEvent evt) {
 				JFileChooser fileChooser = new JFileChooser();
 				JFrame test = new JFrame();
+				FileNameExtensionFilter jsonFilter = new FileNameExtensionFilter("*.json", "json");
+				fileChooser.setFileFilter(jsonFilter);
+				
 				if (fileChooser.showOpenDialog(test) == JFileChooser.APPROVE_OPTION) {
 					File file = fileChooser.getSelectedFile();
 
@@ -882,11 +886,15 @@ public class GUI<E> implements CategoryListener {
 			private void menuSaveActionPerformed(java.awt.event.ActionEvent evt) {
 				JFileChooser fileChooser = new JFileChooser();
 				JFrame test = new JFrame();
-				if (fileChooser.showSaveDialog(test) == JFileChooser.APPROVE_OPTION) {
-					File file = fileChooser.getSelectedFile();
+				FileNameExtensionFilter jsonFilter = new FileNameExtensionFilter("*.json", "json");
+				fileChooser.setFileFilter(jsonFilter);
 
+				if (fileChooser.showSaveDialog(test) == JFileChooser.APPROVE_OPTION) {
+					String file = fileChooser.getSelectedFile().getPath();
+					if (!file.endsWith(".json"))
+						file += ".json";
 					try {
-						controller.saveFile(file.getAbsolutePath());
+						controller.saveFile(new File(file).getAbsolutePath());
 					} catch (IOException e) {
 						// TODO Auto-generated catch block
 						e.printStackTrace();