📄 setuppanel.java
字号:
ButtonGroup bg = new ButtonGroup(); bg.add(m_advanceDataSetFirst); bg.add(m_advanceIteratorFirst); m_advanceDataSetFirst.addActionListener(m_RadioListener); m_advanceIteratorFirst.addActionListener(m_RadioListener); JPanel radioButs = new JPanel(); radioButs.setBorder(BorderFactory. createTitledBorder("Iteration control")); radioButs.setLayout(new GridLayout(1, 2)); radioButs.add(m_advanceDataSetFirst); radioButs.add(m_advanceIteratorFirst); JPanel simpleIterators = new JPanel(); simpleIterators.setLayout(new BorderLayout()); JPanel tmp = new JPanel(); tmp.setLayout(new GridBagLayout()); // tmp.setLayout(new GridLayout(1, 2)); constraints.gridx=0;constraints.gridy=0;constraints.weightx=5; constraints.fill = GridBagConstraints.HORIZONTAL; constraints.gridwidth=1;constraints.gridheight=1; constraints.insets = new Insets(0,2,0,2); tmp.add(m_RunNumberPanel,constraints); constraints.gridx=1;constraints.gridy=0;constraints.weightx=5; constraints.fill = GridBagConstraints.HORIZONTAL; constraints.gridwidth=1;constraints.gridheight=2; tmp.add(m_DistributeExperimentPanel, constraints); JPanel tmp2 = new JPanel(); // tmp2.setLayout(new GridLayout(2, 1)); tmp2.setLayout(new GridBagLayout()); constraints.gridx=0;constraints.gridy=0;constraints.weightx=5; constraints.fill = GridBagConstraints.HORIZONTAL; constraints.gridwidth=1;constraints.gridheight=1; constraints.insets = new Insets(0,2,0,2); tmp2.add(tmp,constraints); constraints.gridx=0;constraints.gridy=1;constraints.weightx=5; constraints.fill = GridBagConstraints.HORIZONTAL; constraints.gridwidth=1;constraints.gridheight=1; tmp2.add(radioButs,constraints); simpleIterators.add(tmp2, BorderLayout.NORTH); simpleIterators.add(m_DatasetListPanel, BorderLayout.CENTER); JPanel iterators = new JPanel(); iterators.setLayout(new GridLayout(1, 2)); iterators.add(simpleIterators); iterators.add(m_GeneratorPropertyPanel); JPanel top = new JPanel(); top.setLayout(new GridLayout(2, 1)); top.add(dest); top.add(src); JPanel notes = new JPanel(); notes.setLayout(new BorderLayout()); notes.add(m_NotesButton, BorderLayout.CENTER); JPanel p2 = new JPanel(); // p2.setLayout(new GridLayout(2, 1)); p2.setLayout(new BorderLayout()); p2.add(iterators, BorderLayout.CENTER); p2.add(notes, BorderLayout.SOUTH); JPanel p3 = new JPanel(); p3.setLayout(new BorderLayout()); p3.add(buttons, BorderLayout.NORTH); p3.add(top, BorderLayout.SOUTH); setLayout(new BorderLayout()); add(p3, BorderLayout.NORTH); add(p2, BorderLayout.CENTER); } /** * Deletes the notes frame. */ protected void removeNotesFrame() { m_NotesFrame.setVisible(false); } /** * Sets the experiment to configure. * * @param exp a value of type 'Experiment' */ public void setExperiment(Experiment exp) { boolean iteratorOn = exp.getUsePropertyIterator(); Object propArray = exp.getPropertyArray(); PropertyNode [] propPath = exp.getPropertyPath(); m_Exp = exp; m_SaveBut.setEnabled(true); m_RPEditor.setValue(m_Exp.getResultProducer()); m_RPEditor.setEnabled(true); m_RPEditorPanel.repaint(); m_RLEditor.setValue(m_Exp.getResultListener()); m_RLEditor.setEnabled(true); m_RLEditorPanel.repaint(); m_NotesText.setText(exp.getNotes()); m_NotesButton.setEnabled(true); m_advanceDataSetFirst.setSelected(m_Exp.getAdvanceDataSetFirst()); m_advanceIteratorFirst.setSelected(!m_Exp.getAdvanceDataSetFirst()); m_advanceDataSetFirst.setEnabled(true); m_advanceIteratorFirst.setEnabled(true); exp.setPropertyPath(propPath); exp.setPropertyArray(propArray); exp.setUsePropertyIterator(iteratorOn); m_GeneratorPropertyPanel.setExperiment(m_Exp); m_RunNumberPanel.setExperiment(m_Exp); m_DatasetListPanel.setExperiment(m_Exp); m_DistributeExperimentPanel.setExperiment(m_Exp); m_Support.firePropertyChange("", null, null); } /** * Gets the currently configured experiment. * * @return the currently configured experiment. */ public Experiment getExperiment() { return m_Exp; } /** * Prompts the user to select an experiment file and loads it. */ private void openExperiment() { int returnVal = m_FileChooser.showOpenDialog(this); if (returnVal != JFileChooser.APPROVE_OPTION) { return; } File expFile = m_FileChooser.getSelectedFile(); // add extension if necessary if (m_FileChooser.getFileFilter() == m_ExpFilter) { if (!expFile.getName().toLowerCase().endsWith(Experiment.FILE_EXTENSION)) expFile = new File(expFile.getParent(), expFile.getName() + Experiment.FILE_EXTENSION); } else if (m_FileChooser.getFileFilter() == m_KOMLFilter) { if (!expFile.getName().toLowerCase().endsWith(KOML.FILE_EXTENSION)) expFile = new File(expFile.getParent(), expFile.getName() + KOML.FILE_EXTENSION); } else if (m_FileChooser.getFileFilter() == m_XMLFilter) { if (!expFile.getName().toLowerCase().endsWith(".xml")) expFile = new File(expFile.getParent(), expFile.getName() + ".xml"); } try { Experiment exp; // KOML? if ( (KOML.isPresent()) && (expFile.getAbsolutePath().toLowerCase().endsWith(KOML.FILE_EXTENSION)) ) { exp = (Experiment) KOML.read(expFile.getAbsolutePath()); } else // XML? if (expFile.getAbsolutePath().toLowerCase().endsWith(".xml")) { XMLExperiment xml = new XMLExperiment(); exp = (Experiment) xml.read(expFile); } // binary else { FileInputStream fi = new FileInputStream(expFile); ObjectInputStream oi = new ObjectInputStream( new BufferedInputStream(fi)); exp = (Experiment)oi.readObject(); oi.close(); } setExperiment(exp); System.err.println("Opened experiment:\n" + m_Exp); } catch (Exception ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(this, "Couldn't open experiment file:\n" + expFile + "\nReason:\n" + ex.getMessage(), "Open Experiment", JOptionPane.ERROR_MESSAGE); // Pop up error dialog } } /** * Prompts the user for a filename to save the experiment to, then saves * the experiment. */ private void saveExperiment() { int returnVal = m_FileChooser.showSaveDialog(this); if (returnVal != JFileChooser.APPROVE_OPTION) { return; } File expFile = m_FileChooser.getSelectedFile(); // add extension if necessary if (m_FileChooser.getFileFilter() == m_ExpFilter) { if (!expFile.getName().toLowerCase().endsWith(Experiment.FILE_EXTENSION)) expFile = new File(expFile.getParent(), expFile.getName() + Experiment.FILE_EXTENSION); } else if (m_FileChooser.getFileFilter() == m_KOMLFilter) { if (!expFile.getName().toLowerCase().endsWith(KOML.FILE_EXTENSION)) expFile = new File(expFile.getParent(), expFile.getName() + KOML.FILE_EXTENSION); } else if (m_FileChooser.getFileFilter() == m_XMLFilter) { if (!expFile.getName().toLowerCase().endsWith(".xml")) expFile = new File(expFile.getParent(), expFile.getName() + ".xml"); } try { // KOML? if ( (KOML.isPresent()) && (expFile.getAbsolutePath().toLowerCase().endsWith(KOML.FILE_EXTENSION)) ) { KOML.write(expFile.getAbsolutePath(), m_Exp); } else // XML? if (expFile.getAbsolutePath().toLowerCase().endsWith(".xml")) { XMLExperiment xml = new XMLExperiment(); xml.write(expFile, m_Exp); } // binary else { FileOutputStream fo = new FileOutputStream(expFile); ObjectOutputStream oo = new ObjectOutputStream( new BufferedOutputStream(fo)); oo.writeObject(m_Exp); oo.close(); } System.err.println("Saved experiment:\n" + m_Exp); } catch (Exception ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(this, "Couldn't save experiment file:\n" + expFile + "\nReason:\n" + ex.getMessage(), "Save Experiment", JOptionPane.ERROR_MESSAGE); } } /** * Adds a PropertyChangeListener who will be notified of value changes. * * @param l a value of type 'PropertyChangeListener' */ public void addPropertyChangeListener(PropertyChangeListener l) { m_Support.addPropertyChangeListener(l); } /** * Removes a PropertyChangeListener. * * @param l a value of type 'PropertyChangeListener' */ public void removePropertyChangeListener(PropertyChangeListener l) { m_Support.removePropertyChangeListener(l); } /** * Updates the primary loop iteration control of the experiment */ private void updateRadioLinks() { m_advanceDataSetFirst. setEnabled(m_GeneratorPropertyPanel.getEditorActive()); m_advanceIteratorFirst. setEnabled(m_GeneratorPropertyPanel.getEditorActive()); if (m_Exp != null) { if (!m_GeneratorPropertyPanel.getEditorActive()) { m_Exp.setAdvanceDataSetFirst(true); } else { m_Exp.setAdvanceDataSetFirst(m_advanceDataSetFirst.isSelected()); } } } /** * Tests out the experiment setup from the command line. * * @param args arguments to the program. */ public static void main(String [] args) { try { boolean readExp = Utils.getFlag('l', args); final boolean writeExp = Utils.getFlag('s', args); final String expFile = Utils.getOption('f', args); if ((readExp || writeExp) && (expFile.length() == 0)) { throw new Exception("A filename must be given with the -f option"); } Experiment exp = null; if (readExp) { FileInputStream fi = new FileInputStream(expFile); ObjectInputStream oi = new ObjectInputStream( new BufferedInputStream(fi)); exp = (Experiment)oi.readObject(); oi.close(); } else { exp = new Experiment(); } System.err.println("Initial Experiment:\n" + exp.toString()); final JFrame jf = new JFrame("Weka Experiment Setup"); jf.getContentPane().setLayout(new BorderLayout()); final SetupPanel sp = new SetupPanel(); //sp.setBorder(BorderFactory.createTitledBorder("Setup")); jf.getContentPane().add(sp, BorderLayout.CENTER); jf.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.err.println("\nFinal Experiment:\n" + sp.m_Exp.toString()); // Save the experiment to a file if (writeExp) { try { FileOutputStream fo = new FileOutputStream(expFile); ObjectOutputStream oo = new ObjectOutputStream( new BufferedOutputStream(fo)); oo.writeObject(sp.m_Exp); oo.close(); } catch (Exception ex) { ex.printStackTrace(); System.err.println("Couldn't write experiment to: " + expFile + '\n' + ex.getMessage()); } } jf.dispose(); System.exit(0); } }); jf.pack(); jf.setVisible(true); System.err.println("Short nap"); Thread.currentThread().sleep(3000); System.err.println("Done"); sp.setExperiment(exp); } catch (Exception ex) { ex.printStackTrace(); System.err.println(ex.getMessage()); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -