Jelajahi Sumber

Speichern und laden funktioniert

Kolja Strohm 7 tahun lalu
induk
melakukan
c028d02f38
1 mengubah file dengan 26 tambahan dan 3 penghapusan
  1. 26 3
      src/view/MainView.java

+ 26 - 3
src/view/MainView.java

@@ -17,6 +17,7 @@ import java.awt.event.KeyEvent;
 
 import javax.swing.JButton;
 import javax.swing.JDialog;
+import javax.swing.JFileChooser;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JLayeredPane;
@@ -27,6 +28,7 @@ import javax.swing.JTextField;
 import javax.swing.JTree;
 import javax.swing.event.DocumentEvent;
 import javax.swing.event.DocumentListener;
+import javax.swing.filechooser.FileNameExtensionFilter;
 import javax.swing.tree.DefaultTreeModel;
 
 import animation.Action;
@@ -37,6 +39,8 @@ import graph.InitializeNodePositions;
 import graph.LayeredGraphEdge;
 import graph.LayeredGraphNode;
 import graph.RandomGraphGenerator;
+import graph.io.Reader;
+import graph.io.Writer;
 import lib.SweepCrossingMinimizer;
 
 /**
@@ -611,22 +615,41 @@ public class MainView {
         });
         load = new NiceButton( "load" );
         load.setLocation( 230, 60 );
+        load.setMnemonic( KeyEvent.VK_L );
         load.addActionListener( new ActionListener() {
 
             @Override
             public void actionPerformed(ActionEvent e) {
-                
-                
+
+                JFileChooser chooser = new JFileChooser();
+                chooser.setFileFilter( new FileNameExtensionFilter("Json Graph", "json") );
+                chooser.showOpenDialog( frame );
+                if( chooser.getSelectedFile() != null )
+                {
+                    Reader r = new Reader( chooser.getSelectedFile().getAbsolutePath() );
+                    LayeredGraphNode graph = r.readInputGraph();
+                    InitializeNodePositions.placeNodes( graph );
+                    new MainView( graph );
+                }
             }
             
         });
         save = new NiceButton( "save" );
         save.setLocation( 285, 60 );
+        save.setMnemonic( KeyEvent.VK_S );
         save.addActionListener( new ActionListener() {
 
             @Override
             public void actionPerformed(ActionEvent e) {
-                
+
+                JFileChooser chooser = new JFileChooser();
+                chooser.setFileFilter( new FileNameExtensionFilter("Json Graph", "json") );
+                chooser.showSaveDialog( frame );
+                if( chooser.getSelectedFile() != null )
+                {
+                    Writer w = new Writer( chooser.getSelectedFile().getAbsolutePath() );
+                    w.writeOutputGraph( graph );
+                }
             }
             
         });