From d1e1417edc8a6ccf195b6da3270f22234dda61e4 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Wed, 01 May 2019 16:02:52 -0400 Subject: [PATCH] Fix random/switch node. --- 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