Normand Briere
2019-06-26 89b25e7cc97f6fe221dfd41c4d463500f8a31bc1
timeflow/app/TimeflowApp.java
....@@ -1,5 +1,6 @@
11 package timeflow.app;
22
3
+import java.net.URL;
34 import timeflow.app.ui.*;
45 import timeflow.app.actions.*;
56 import timeflow.app.ui.filter.*;
....@@ -25,7 +26,7 @@
2526
2627 public class TimeflowApp extends JFrame
2728 {
28
- public TFModel model = new TFModel();
29
+ public TimeflowModel model = new TimeflowModel();
2930 public JFileChooser fileChooser;
3031 AboutWindow splash;
3132 String[][] examples;
....@@ -35,7 +36,8 @@
3536 public JMenu filterMenu;
3637 JMenuItem save = new JMenuItem("Save");
3738 FilterControlPanel filterControlPanel;
38
- LinkTabPane leftPanel;
39
+ //LinkTabPane
40
+ JTabbedPane leftPanel;
3941 TFListener filterMenuMaker = new TFListener()
4042 {
4143 @Override
....@@ -68,10 +70,10 @@
6870 }
6971 };
7072
71
- public void TimeFlowWindow(Container container, JFrame frame) throws HeadlessException
73
+ public JMenuBar TimeFlowWindow(Container container) throws HeadlessException
7274 {
7375 // read example directory
74
- String[] ex = getVisibleFiles("settings/examples");
76
+ String[] ex = getVisibleFiles("timeflow/settings/examples");
7577 int n = ex.length;
7678 examples = new String[n][2];
7779 for (int i = 0; i < n; i++)
....@@ -81,23 +83,25 @@
8183 if (dot >= 0 && dot < s.length() - 1);
8284 s = s.substring(0, dot);
8385 examples[i][0] = s;
84
- examples[i][1] = "settings/examples/" + ex[i];
86
+ examples[i][1] = "timeflow/settings/examples/" + ex[i];
8587 }
86
- templates = getVisibleFiles("settings/templates");
88
+
89
+ templates = getVisibleFiles("timeflow/settings/templates");
8790 fileChooser = new JFileChooser(state.getCurrentFile());
8891
8992 container.setLayout(new BorderLayout());
9093
9194 // left tab area, with vertical gray divider.
9295 JPanel leftHolder = new JPanel();
93
- container.add(leftHolder, BorderLayout.WEST);
96
+ container.add(leftHolder, BorderLayout.EAST); // WEST);
9497
9598 leftHolder.setLayout(new BorderLayout());
9699 JPanel pad = new Pad(3, 3);
97100 pad.setBackground(Color.gray);
98101 leftHolder.add(pad, BorderLayout.EAST);
99102
100
- leftPanel = new LinkTabPane();//JTabbedPane();
103
+ leftPanel = new //LinkTabPane();
104
+ JTabbedPane();
101105 leftHolder.add(leftPanel, BorderLayout.CENTER);
102106
103107 JPanel configPanel = new JPanel();
....@@ -112,9 +116,9 @@
112116 configPanel.add(legend, BorderLayout.CENTER);
113117 legend.add(new SizeLegendPanel(model), BorderLayout.NORTH);
114118 legend.add(new ColorLegendPanel(model), BorderLayout.CENTER);
115
- leftPanel.addTab(configPanel, "Display", true);
119
+ leftPanel.add(configPanel, "Display"); //, true);
116120
117
- leftPanel.addTab(filterControlPanel, "Filter", true);
121
+ leftPanel.add(filterControlPanel, "Filter"); //, true);
118122
119123 // center tab area
120124
....@@ -135,18 +139,18 @@
135139 AbstractView[] views =
136140 {
137141 timeline,
138
- new CalendarView(model),
142
+ //new CalendarView(model),
139143 new ListView(model),
140144 new TableView(model),
141145 new BarGraphView(model),
142
- intro,
143
- new DescriptionView(model),
146
+ //intro,
144147 new SummaryView(model),
148
+ new DescriptionView(model),
145149 };
146150
147151 for (int i = 0; i < views.length; i++)
148152 {
149
- center.addTab(views[i], views[i].getName(), i < 5);
153
+ center.addTab(views[i], views[i].getName(), true); // i < 5);
150154 displayPanel.addLocalControl(views[i].getName(), views[i].getControls());
151155 }
152156
....@@ -172,12 +176,15 @@
172176 });
173177
174178 JMenuBar menubar = new JMenuBar();
175
- frame.setJMenuBar(menubar);
179
+
180
+ // frame.setJMenuBar(menubar);
176181
177182 JMenu fileMenu = new JMenu("File");
178183 menubar.add(fileMenu);
179184
180
- fileMenu.add(new NewDataAction(this));
185
+ TimeflowAction tlAction = new NewDataAction(this);
186
+ fileMenu.add(tlAction);
187
+ tlAction.actionPerformed(null);
181188 fileMenu.add(new CopySchemaAction(this));
182189
183190 JMenu templateMenu = new JMenu("New From Template");
....@@ -199,7 +206,6 @@
199206 }
200207
201208 fileMenu.addSeparator();
202
-
203209
204210 JMenuItem open = new JMenuItem("Open...");
205211 fileMenu.add(open);
....@@ -340,7 +346,7 @@
340346 }
341347
342348 JMenu helpMenu = new JMenu("Help");
343
- menubar.add(helpMenu);
349
+ //menubar.add(helpMenu);
344350
345351 helpMenu.add(new WebDocAction(this));
346352
....@@ -372,6 +378,8 @@
372378 }
373379 }
374380 });
381
+
382
+ return menubar;
375383 }
376384
377385 void splash(boolean visible)
....@@ -404,7 +412,7 @@
404412
405413 Container container = getContentPane();
406414
407
- TimeFlowWindow(container, this);
415
+ TimeFlowWindow(container);
408416 }
409417
410418 void makeRecentFileMenu()
....@@ -547,7 +555,7 @@
547555 }
548556 try
549557 {
550
- final File f = new File(fileName);
558
+ final File f = new File(TimeflowApp.class.getClassLoader().getResource(fileName).toURI());
551559 ActDB db = importer.importFile(f);
552560 model.setDB(db, fileName, readOnly, TimeflowApp.this);
553561 if (!readOnly)
....@@ -686,15 +694,26 @@
686694
687695 static String[] getVisibleFiles(String dir)
688696 {
689
- String[] s = new File(dir).list();
690
- ArrayList<String> real = new ArrayList<String>();
691
- for (int i = 0; i < s.length; i++)
697
+ System.out.println("getVisibleFiles = " + dir);
698
+ try
692699 {
693
- if (!s[i].startsWith("."))
700
+ final URL resource = TimeflowApp.class.getClassLoader().getResource(dir);
701
+ System.out.println("resource = " + resource);
702
+ String[] s = new File(resource.toURI()).list();
703
+ ArrayList<String> real = new ArrayList<String>();
704
+ for (int i = 0; i < s.length; i++)
694705 {
695
- real.add(s[i]);
706
+ if (!s[i].startsWith("."))
707
+ {
708
+ real.add(s[i]);
709
+ }
696710 }
711
+ return (String[]) real.toArray(new String[0]);
697712 }
698
- return (String[]) real.toArray(new String[0]);
713
+ catch (Exception e)
714
+ {
715
+ e.printStackTrace();
716
+ return new String[0];
717
+ }
699718 }
700719 }