From 54adfcbf93eb477bedeec45409f36cf7e102b790 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Mon, 16 Sep 2019 21:54:55 -0400
Subject: [PATCH] Navigation with intersection.
---
timeflow/app/TimeflowApp.java | 152 +++++++++++++++++++++++++++-----------------------
1 files changed, 81 insertions(+), 71 deletions(-)
diff --git a/timeflow/app/TimeflowApp.java b/timeflow/app/TimeflowApp.java
index b7b8442..f70bc07 100755
--- a/timeflow/app/TimeflowApp.java
+++ b/timeflow/app/TimeflowApp.java
@@ -1,5 +1,6 @@
package timeflow.app;
+import java.net.URL;
import timeflow.app.ui.*;
import timeflow.app.actions.*;
import timeflow.app.ui.filter.*;
@@ -25,8 +26,7 @@
public class TimeflowApp extends JFrame
{
-
- public TFModel model = new TFModel();
+ public TimeflowModel model = new TimeflowModel();
public JFileChooser fileChooser;
AboutWindow splash;
String[][] examples;
@@ -36,10 +36,10 @@
public JMenu filterMenu;
JMenuItem save = new JMenuItem("Save");
FilterControlPanel filterControlPanel;
- LinkTabPane leftPanel;
+ //LinkTabPane
+ JTabbedPane leftPanel;
TFListener filterMenuMaker = new TFListener()
{
-
@Override
public void note(TFEvent e)
{
@@ -70,37 +70,10 @@
}
};
- void splash(boolean visible)
+ public JMenuBar TimeFlowWindow(Container container) throws HeadlessException
{
- splash.setVisible(visible);
- }
-
- public void init() throws Exception
- {
- Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
- setBounds(0, 0, Math.min(d.width, 1200), Math.min(d.height, 900));
- setTitle(Display.version());
- setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
- final QuitAction quitAction = new QuitAction(this, model);
- addWindowListener(new WindowAdapter()
- {
-
- @Override
- public void windowClosing(WindowEvent e)
- {
- quitAction.quit();
- }
-
- public void windowStateChanged(WindowEvent e)
- {
- repaint();
- }
- });
- Image icon = Toolkit.getDefaultToolkit().getImage("images/icon.gif");
- setIconImage(icon);
-
// read example directory
- String[] ex = getVisibleFiles("settings/examples");
+ String[] ex = getVisibleFiles("timeflow/settings/examples");
int n = ex.length;
examples = new String[n][2];
for (int i = 0; i < n; i++)
@@ -110,23 +83,25 @@
if (dot >= 0 && dot < s.length() - 1);
s = s.substring(0, dot);
examples[i][0] = s;
- examples[i][1] = "settings/examples/" + ex[i];
+ examples[i][1] = "timeflow/settings/examples/" + ex[i];
}
- templates = getVisibleFiles("settings/templates");
+
+ templates = getVisibleFiles("timeflow/settings/templates");
fileChooser = new JFileChooser(state.getCurrentFile());
- getContentPane().setLayout(new BorderLayout());
+ container.setLayout(new BorderLayout());
// left tab area, with vertical gray divider.
JPanel leftHolder = new JPanel();
- getContentPane().add(leftHolder, BorderLayout.WEST);
+ container.add(leftHolder, BorderLayout.EAST); // WEST);
leftHolder.setLayout(new BorderLayout());
JPanel pad = new Pad(3, 3);
pad.setBackground(Color.gray);
leftHolder.add(pad, BorderLayout.EAST);
- leftPanel = new LinkTabPane();//JTabbedPane();
+ leftPanel = new //LinkTabPane();
+ JTabbedPane();
leftHolder.add(leftPanel, BorderLayout.CENTER);
JPanel configPanel = new JPanel();
@@ -141,18 +116,17 @@
configPanel.add(legend, BorderLayout.CENTER);
legend.add(new SizeLegendPanel(model), BorderLayout.NORTH);
legend.add(new ColorLegendPanel(model), BorderLayout.CENTER);
- leftPanel.addTab(configPanel, "Display", true);
+ leftPanel.add(configPanel, "Display"); //, true);
- leftPanel.addTab(filterControlPanel, "Filter", true);
+ leftPanel.add(filterControlPanel, "Filter"); //, true);
// center tab area
final LinkTabPane center = new LinkTabPane();
- getContentPane().add(center, BorderLayout.CENTER);
+ container.add(center, BorderLayout.CENTER);
center.addPropertyChangeListener(new PropertyChangeListener()
{
-
@Override
public void propertyChange(PropertyChangeEvent evt)
{
@@ -165,18 +139,18 @@
AbstractView[] views =
{
timeline,
- new CalendarView(model),
+ //new CalendarView(model),
new ListView(model),
new TableView(model),
new BarGraphView(model),
- intro,
- new DescriptionView(model),
+ //intro,
new SummaryView(model),
+ new DescriptionView(model),
};
for (int i = 0; i < views.length; i++)
{
- center.addTab(views[i], views[i].getName(), i < 5);
+ center.addTab(views[i], views[i].getName(), true); // i < 5);
displayPanel.addLocalControl(views[i].getName(), views[i].getControls());
}
@@ -187,7 +161,6 @@
// but then, once data is loaded, switch directly to the timeline view.
model.addListener(new TFListener()
{
-
@Override
public void note(TFEvent e)
{
@@ -203,12 +176,15 @@
});
JMenuBar menubar = new JMenuBar();
- setJMenuBar(menubar);
+
+ // frame.setJMenuBar(menubar);
JMenu fileMenu = new JMenu("File");
menubar.add(fileMenu);
- fileMenu.add(new NewDataAction(this));
+ TimeflowAction tlAction = new NewDataAction(this);
+ fileMenu.add(tlAction);
+ tlAction.actionPerformed(null);
fileMenu.add(new CopySchemaAction(this));
JMenu templateMenu = new JMenu("New From Template");
@@ -231,12 +207,10 @@
fileMenu.addSeparator();
-
JMenuItem open = new JMenuItem("Open...");
fileMenu.add(open);
open.addActionListener(new ActionListener()
{
-
@Override
public void actionPerformed(ActionEvent e)
{
@@ -254,7 +228,6 @@
fileMenu.add(impDel);
impDel.addActionListener(new ActionListener()
{
-
@Override
public void actionPerformed(ActionEvent e)
{
@@ -273,7 +246,6 @@
save.setEnabled(false);
save.addActionListener(new ActionListener()
{
-
@Override
public void actionPerformed(ActionEvent e)
{
@@ -283,7 +255,6 @@
});
model.addListener(new TFListener()
{
-
@Override
public void note(TFEvent e)
{
@@ -295,7 +266,6 @@
fileMenu.add(saveAs);
saveAs.addActionListener(new ActionListener()
{
-
@Override
public void actionPerformed(ActionEvent e)
{
@@ -309,7 +279,6 @@
fileMenu.add(exportTSV);
exportTSV.addActionListener(new ActionListener()
{
-
@Override
public void actionPerformed(ActionEvent e)
{
@@ -320,7 +289,6 @@
fileMenu.add(exportCSV);
exportCSV.addActionListener(new ActionListener()
{
-
@Override
public void actionPerformed(ActionEvent e)
{
@@ -331,15 +299,14 @@
fileMenu.add(exportHTML);
exportHTML.addActionListener(new ActionListener()
{
-
@Override
public void actionPerformed(ActionEvent e)
{
exportHtml();
}
});
- fileMenu.addSeparator();
- fileMenu.add(quitAction);
+// fileMenu.addSeparator();
+// fileMenu.add(quitAction);
JMenu editMenu = new JMenu("Edit");
menubar.add(editMenu);
@@ -370,7 +337,6 @@
final String file = examples[i][1];
example.addActionListener(new ActionListener()
{
-
@Override
public void actionPerformed(ActionEvent e)
{
@@ -380,7 +346,7 @@
}
JMenu helpMenu = new JMenu("Help");
- menubar.add(helpMenu);
+ //menubar.add(helpMenu);
helpMenu.add(new WebDocAction(this));
@@ -388,7 +354,6 @@
helpMenu.add(about);
about.addActionListener(new ActionListener()
{
-
@Override
public void actionPerformed(ActionEvent e)
{
@@ -398,7 +363,6 @@
model.addListener(new TFListener()
{
-
@Override
public void note(TFEvent e)
{
@@ -414,6 +378,41 @@
}
}
});
+
+ return menubar;
+ }
+
+ void splash(boolean visible)
+ {
+ splash.setVisible(visible);
+ }
+
+ public void init() throws Exception
+ {
+ Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
+ setBounds(0, 0, Math.min(d.width, 1200), Math.min(d.height, 900));
+ setTitle(Display.version());
+ setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+// final QuitAction quitAction = new QuitAction(this, model);
+// addWindowListener(new WindowAdapter()
+// {
+// @Override
+// public void windowClosing(WindowEvent e)
+// {
+// quitAction.quit();
+// }
+//
+// public void windowStateChanged(WindowEvent e)
+// {
+// repaint();
+// }
+// });
+ Image icon = Toolkit.getDefaultToolkit().getImage("images/icon.gif");
+ setIconImage(icon);
+
+ Container container = getContentPane();
+
+ TimeFlowWindow(container);
}
void makeRecentFileMenu()
@@ -556,7 +555,7 @@
}
try
{
- final File f = new File(fileName);
+ final File f = new File(TimeflowApp.class.getClassLoader().getResource(fileName).toURI());
ActDB db = importer.importFile(f);
model.setDB(db, fileName, readOnly, TimeflowApp.this);
if (!readOnly)
@@ -695,15 +694,26 @@
static String[] getVisibleFiles(String dir)
{
- String[] s = new File(dir).list();
- ArrayList<String> real = new ArrayList<String>();
- for (int i = 0; i < s.length; i++)
+ System.out.println("getVisibleFiles = " + dir);
+ try
{
- if (!s[i].startsWith("."))
+ final URL resource = TimeflowApp.class.getClassLoader().getResource(dir);
+ System.out.println("resource = " + resource);
+ String[] s = new File(resource.toURI()).list();
+ ArrayList<String> real = new ArrayList<String>();
+ for (int i = 0; i < s.length; i++)
{
- real.add(s[i]);
+ if (!s[i].startsWith("."))
+ {
+ real.add(s[i]);
+ }
}
+ return (String[]) real.toArray(new String[0]);
}
- return (String[]) real.toArray(new String[0]);
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ return new String[0];
+ }
}
}
--
Gitblit v1.6.2