Make the main window a singleton to permit to query it from other views and update...
[Persons_Comparator.git] / src / MainWindowsView.java
index 0ff9bbbe242bbcaaf3c2027d0204a910f929e94f..703792124cb31db55c285d7cd3ff79d65e9c00ec 100644 (file)
@@ -7,12 +7,18 @@ import java.awt.event.KeyEvent;
 import java.util.ArrayList;
 
 public class MainWindowsView extends JFrame {
+    private static MainWindowsView ourInstance = new MainWindowsView();
+    private PersonView currentPersonView;
 
-    MainWindowsView(String title, PersonView view) {
+    private MainWindowsView() {
+    }
+
+    public void setMainWindowsView(String title, PersonView personView) {
+        this.currentPersonView = personView;
         Container panel = getContentPane();
         //Create and set up the window.
         setTitle(title);
-        setSize(view.getDimension());
+        setSize(getCurrentPersonView().getDimension());
         setLocationRelativeTo(null);
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
@@ -29,11 +35,19 @@ public class MainWindowsView extends JFrame {
             panel.add(component);
         }
 
-        panel.add(view.getNorthPanel(), BorderLayout.NORTH);
-        panel.add(view.getSouthPanel(), BorderLayout.SOUTH);
-        panel.add(view.getEastPanel(), BorderLayout.EAST);
-        panel.add(view.getWestPanel(), BorderLayout.WEST);
-        panel.add(view.getPersonPanel(), BorderLayout.CENTER);
+        panel.add(getCurrentPersonView().getNorthPanel(), BorderLayout.NORTH);
+        panel.add(getCurrentPersonView().getSouthPanel(), BorderLayout.SOUTH);
+        panel.add(getCurrentPersonView().getEastPanel(), BorderLayout.EAST);
+        panel.add(getCurrentPersonView().getWestPanel(), BorderLayout.WEST);
+        panel.add(getCurrentPersonView().getPersonPanel(), BorderLayout.CENTER);
+    }
+
+    public static MainWindowsView getInstance() {
+        return ourInstance;
+    }
+
+    public PersonView getCurrentPersonView() {
+        return currentPersonView;
     }
 
     /**