package pikater.gui.java; import java.awt.Dimension; import java.awt.GridBagLayout; import java.util.Vector; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JSplitPane; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeModel; import pikater.Agent_GUI; import pikater.ontology.messages.Task; public class MainWindow extends JFrame { public static final int GET_FILES_INFO = 0; public static final int UPDATE_METADATA = 1; public static final int ON_LOAD = 2; public static final int START_EXPERIMENT = 3; public static final int IMPORT_FILE = 4; private class TreePanel { String name; JPanel panel; public TreePanel(String name, JPanel panel) { this.name = name; this.panel = panel; } @Override public String toString() { return name; } public JPanel getPanel() { return panel; } } private static final long serialVersionUID = 1L; private JSplitPane jSplitPane = null; private JPanel jPanel1 = null; private JTree jTree = null; private TreeModel menuModel = null; // @jve:decl-index=0: private Agent_GUI myAgent = null; private FileManagerPanel fileManager = null; private NewExperimentPanel experimentPanel = null; private ResultsPanel resultsPanel = null; public MainWindow(Agent_GUI myAgent) { super(); this.myAgent = myAgent; fileManager = new FileManagerPanel(myAgent); experimentPanel = new NewExperimentPanel(myAgent); resultsPanel = new ResultsPanel(); initialize(); } public void displayError(String error) { JOptionPane.showMessageDialog(this, error, "Error", JOptionPane.ERROR_MESSAGE); } public void addResult(Task t) { if (t.getResult().getMean_absolute_error() < 0) { JOptionPane.showMessageDialog(this, "There was a problem with the computing agent", "Error", JOptionPane.ERROR_MESSAGE); } else { resultsPanel.addResult(t); } } public void setAgents(Vector<String> agents) { }; /** * This is the default constructor */ public MainWindow() { super(); initialize(); } public void addFile(String name) { experimentPanel.addFile(name); } /** * This method initializes this * * @return void */ private void initialize() { this.setSize(800, 600); this.setContentPane(getJSplitPane()); this.setName("mainFrame"); this.setTitle("Pikater"); this.setVisible(true); } /** * This method initializes jSplitPane * * @return javax.swing.JSplitPane */ private JSplitPane getJSplitPane() { if (jSplitPane == null) { jSplitPane = new JSplitPane(); jSplitPane.setDividerLocation(120); jSplitPane.setLeftComponent(getJTree()); jSplitPane.setRightComponent(getJPanel1()); } return jSplitPane; } /** * This method initializes jPanel1 * * @return javax.swing.JPanel */ private JPanel getJPanel1() { if (jPanel1 == null) { jPanel1 = new JPanel(); jPanel1.setLayout(new GridBagLayout()); jPanel1.setPreferredSize(new Dimension(520, 480)); } return jPanel1; } /** * This method initializes jTree * * @return javax.swing.JTree */ private JTree getJTree() { if (jTree == null) { jTree = new JTree(); jTree.setRootVisible(false); DefaultMutableTreeNode root = new DefaultMutableTreeNode(""); DefaultMutableTreeNode files = new DefaultMutableTreeNode( new TreePanel("Files", fileManager)); DefaultMutableTreeNode experiments = new DefaultMutableTreeNode( new TreePanel("Experiments", experimentPanel)); experiments.add(new DefaultMutableTreeNode(new TreePanel("New", experimentPanel))); experiments.add(new DefaultMutableTreeNode(new TreePanel("Results", resultsPanel))); root.add(files); root.add(experiments); menuModel = new DefaultTreeModel(root); jTree.setModel(menuModel); jTree .addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() { public void valueChanged( javax.swing.event.TreeSelectionEvent e) { TreePanel selectedPanel = (TreePanel) ((DefaultMutableTreeNode) jTree .getLastSelectedPathComponent()) .getUserObject(); jSplitPane.setRightComponent(selectedPanel .getPanel()); } }); } return jTree; } } // @jve:decl-index=0:visual-constraint="220,5"