📄 miresultspanel.java
字号:
m_History.setBorder(BorderFactory.createTitledBorder("Result list")); // Set up the GUI layout JPanel p1 = new JPanel(); p1.setBorder(BorderFactory.createTitledBorder("Source")); JPanel p2 = new JPanel(); GridBagLayout gb = new GridBagLayout(); GridBagConstraints constraints = new GridBagConstraints(); p2.setBorder(BorderFactory.createEmptyBorder(5, 5, 10, 5)); // p2.setLayout(new GridLayout(1, 3)); p2.setLayout(gb); 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); p2.add(m_FromFileBut,constraints); constraints.gridx=1;constraints.gridy=0;constraints.weightx=5; constraints.gridwidth=1;constraints.gridheight=1; p2.add(m_FromDBaseBut,constraints); constraints.gridx=2;constraints.gridy=0;constraints.weightx=5; constraints.gridwidth=1;constraints.gridheight=1; p2.add(m_FromExpBut,constraints); p1.setLayout(new BorderLayout()); p1.add(m_FromLab, BorderLayout.CENTER); p1.add(p2, BorderLayout.EAST); JPanel p3 = new JPanel(); p3.setBorder(BorderFactory.createTitledBorder("Configure test")); GridBagLayout gbL = new GridBagLayout(); p3.setLayout(gbL); GridBagConstraints gbC = new GridBagConstraints(); gbC.anchor = GridBagConstraints.EAST; gbC.gridy = 0; gbC.gridx = 0; gbC.insets = new Insets(2, 10, 2, 10); gbL.setConstraints(m_DatasetKeyLabel,gbC); p3.add(m_DatasetKeyLabel); gbC = new GridBagConstraints(); gbC.gridy = 0; gbC.gridx = 1; gbC.weightx = 100; gbC.insets = new Insets(5,0,5,0); gbL.setConstraints(m_DatasetKeyBut, gbC); p3.add(m_DatasetKeyBut); JLabel lab = new JLabel("Run field", SwingConstants.RIGHT); gbC = new GridBagConstraints(); gbC.anchor = GridBagConstraints.EAST; gbC.gridy = 1; gbC.gridx = 0; gbC.insets = new Insets(2, 10, 2, 10); gbL.setConstraints(lab, gbC); p3.add(lab); gbC = new GridBagConstraints(); gbC.gridy = 1; gbC.gridx = 1; gbC.weightx = 100; gbC.insets = new Insets(5,0,5,0); gbL.setConstraints(m_RunCombo, gbC); p3.add(m_RunCombo); gbC = new GridBagConstraints(); gbC.anchor = GridBagConstraints.EAST; gbC.gridy = 2; gbC.gridx = 0; gbC.insets = new Insets(2, 10, 2, 10); gbL.setConstraints(m_ResultKeyLabel, gbC); p3.add(m_ResultKeyLabel); gbC = new GridBagConstraints(); gbC.gridy = 2; gbC.gridx = 1; gbC.weightx = 100; gbC.insets = new Insets(5,0,5,0); gbL.setConstraints(m_ResultKeyBut, gbC); p3.add(m_ResultKeyBut); lab = new JLabel("Comparison field", SwingConstants.RIGHT); gbC = new GridBagConstraints(); gbC.anchor = GridBagConstraints.EAST; gbC.gridy = 3; gbC.gridx = 0; gbC.insets = new Insets(2, 10, 2, 10); gbL.setConstraints(lab, gbC); p3.add(lab); gbC = new GridBagConstraints(); gbC.gridy = 3; gbC.gridx = 1; gbC.weightx = 100; gbC.insets = new Insets(5,0,5,0); gbL.setConstraints(m_CompareCombo, gbC); p3.add(m_CompareCombo); lab = new JLabel("Significance", SwingConstants.RIGHT); gbC = new GridBagConstraints(); gbC.anchor = GridBagConstraints.EAST; gbC.gridy = 4; gbC.gridx = 0; gbC.insets = new Insets(2, 10, 2, 10); gbL.setConstraints(lab, gbC); p3.add(lab); gbC = new GridBagConstraints(); gbC.gridy = 4; gbC.gridx = 1; gbC.weightx = 100; gbL.setConstraints(m_SigTex, gbC); p3.add(m_SigTex); lab = new JLabel("Test base", SwingConstants.RIGHT); gbC = new GridBagConstraints(); gbC.anchor = GridBagConstraints.EAST; gbC.gridy = 5; gbC.gridx = 0; gbC.insets = new Insets(2, 10, 2, 10); gbL.setConstraints(lab, gbC); p3.add(lab); gbC = new GridBagConstraints(); gbC.fill = GridBagConstraints.HORIZONTAL; gbC.gridy = 5; gbC.gridx = 1; gbC.weightx = 100; gbC.insets = new Insets(5,0,5,0); gbL.setConstraints(m_TestsButton, gbC); p3.add(m_TestsButton); lab = new JLabel("Show std. deviations", SwingConstants.RIGHT); gbC = new GridBagConstraints(); gbC.anchor = GridBagConstraints.EAST; gbC.gridy = 6; gbC.gridx = 0; gbC.insets = new Insets(2, 10, 2, 10); gbL.setConstraints(lab, gbC); p3.add(lab); gbC = new GridBagConstraints(); gbC.anchor = GridBagConstraints.WEST; gbC.gridy = 6; gbC.gridx = 1; gbC.weightx = 100; gbC.insets = new Insets(5,0,5,0); gbL.setConstraints(m_ShowStdDevs, gbC); p3.add(m_ShowStdDevs); JPanel output = new JPanel(); output.setLayout(new BorderLayout()); output.setBorder(BorderFactory.createTitledBorder("Test output")); output.add(new JScrollPane(m_OutText), BorderLayout.CENTER); JPanel mondo = new JPanel(); gbL = new GridBagLayout(); mondo.setLayout(gbL); gbC = new GridBagConstraints(); // gbC.anchor = GridBagConstraints.WEST; // gbC.fill = GridBagConstraints.HORIZONTAL; gbC.gridy = 0; gbC.gridx = 0; gbL.setConstraints(p3, gbC); mondo.add(p3); JPanel bts = new JPanel(); bts.setLayout(new GridLayout(1,2,5,5)); bts.add(m_PerformBut); bts.add(m_SaveOutBut); gbC = new GridBagConstraints(); gbC.anchor = GridBagConstraints.NORTH; gbC.fill = GridBagConstraints.HORIZONTAL; gbC.gridy = 1; gbC.gridx = 0; gbC.insets = new Insets(5,5,5,5); gbL.setConstraints(bts, gbC); mondo.add(bts); gbC = new GridBagConstraints(); //gbC.anchor = GridBagConstraints.NORTH; gbC.fill = GridBagConstraints.BOTH; gbC.gridy = 2; gbC.gridx = 0; gbC.weightx = 0; gbC.weighty = 100; gbL.setConstraints(m_History, gbC); mondo.add(m_History); /*gbC = new GridBagConstraints(); gbC.fill = GridBagConstraints.BOTH; gbC.gridy = 0; gbC.gridx = 1; gbC.gridheight = 3; gbC.weightx = 100; gbC.weighty = 100; gbL.setConstraints(output, gbC);*/ //mondo.add(output); JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, mondo, output); splitPane.setOneTouchExpandable(true); //splitPane.setDividerLocation(100); setLayout(new BorderLayout()); add(p1, BorderLayout.NORTH); //add(mondo , BorderLayout.CENTER); add(splitPane , BorderLayout.CENTER); } /** * Sets the combo-boxes to a fixed size so they don't take up too much room * that would be better devoted to the test output box */ protected void setComboSizes() { m_DatasetKeyBut.setPreferredSize(COMBO_SIZE); m_RunCombo.setPreferredSize(COMBO_SIZE); m_ResultKeyBut.setPreferredSize(COMBO_SIZE); m_CompareCombo.setPreferredSize(COMBO_SIZE); m_SigTex.setPreferredSize(COMBO_SIZE); m_DatasetKeyBut.setMaximumSize(COMBO_SIZE); m_RunCombo.setMaximumSize(COMBO_SIZE); m_ResultKeyBut.setMaximumSize(COMBO_SIZE); m_CompareCombo.setMaximumSize(COMBO_SIZE); m_SigTex.setMaximumSize(COMBO_SIZE); m_DatasetKeyBut.setMinimumSize(COMBO_SIZE); m_RunCombo.setMinimumSize(COMBO_SIZE); m_ResultKeyBut.setMinimumSize(COMBO_SIZE); m_CompareCombo.setMinimumSize(COMBO_SIZE); m_SigTex.setMinimumSize(COMBO_SIZE); } /** * Tells the panel to use a new experiment. * * @param exp a value of type 'Experiment' */ public void setExperiment(MIExperiment exp) { m_Exp = exp; setFromExpEnabled(); } /** * Updates whether the current experiment is of a type that we can * determine the results destination. */ protected void setFromExpEnabled() { if ((m_Exp.getResultListener() instanceof MIInstancesResultListener) || (m_Exp.getResultListener() instanceof MIDatabaseResultListener)) { m_FromExpBut.setEnabled(true); } else { m_FromExpBut.setEnabled(false); } } /** * Queries the user enough to make a database query to retrieve experiment * results. */ protected void setInstancesFromDBaseQuery() { try { if (m_InstanceQuery == null) { m_InstanceQuery = new MIInstanceQuery(); } String dbaseURL = m_InstanceQuery.getDatabaseURL(); dbaseURL = (String) JOptionPane.showInputDialog(this, "Enter the database URL", "Query Database", JOptionPane.PLAIN_MESSAGE, null, null, dbaseURL); if (dbaseURL == null) { m_FromLab.setText("Cancelled"); return; } m_InstanceQuery.setDatabaseURL(dbaseURL); m_InstanceQuery.connectToDatabase(); if (!m_InstanceQuery.experimentIndexExists()) { m_FromLab.setText("No experiment index"); return; } m_FromLab.setText("Getting experiment index"); Instances index = m_InstanceQuery.retrieveInstances("SELECT * FROM " + MIInstanceQuery.EXP_INDEX_TABLE); if (index.numInstances() == 0) { m_FromLab.setText("No experiments available"); return; } m_FromLab.setText("Got experiment index"); DefaultListModel lm = new DefaultListModel(); for (int i = 0; i < index.numInstances(); i++) { lm.addElement(index.instance(i).toString()); } JList jl = new JList(lm); ListSelectorDialog jd = new ListSelectorDialog(null, jl); int result = jd.showDialog(); if (result != ListSelectorDialog.APPROVE_OPTION) { m_FromLab.setText("Cancelled"); return; } Instance selInst = index.instance(jl.getSelectedIndex()); Attribute tableAttr = index.attribute(MIInstanceQuery.EXP_RESULT_COL); String table = MIInstanceQuery.EXP_RESULT_PREFIX + selInst.toString(tableAttr); setInstancesFromDatabaseTable(table); } catch (Exception ex) { m_FromLab.setText("Problem reading database"); } } /** * Examines the supplied experiment to determine the results destination * and attempts to load the results. * * @param exp a value of type 'Experiment' */ protected void setInstancesFromExp(MIExperiment exp) { if (exp.getResultListener() instanceof MIInstancesResultListener) { File resultFile = ((MIInstancesResultListener) exp.getResultListener()) .getOutputFile(); if ((resultFile == null) || (resultFile.getName().equals("-"))) { m_FromLab.setText("No result file"); } else { setInstancesFromFile(resultFile); } } else if (exp.getResultListener() instanceof MIDatabaseResultListener) { String dbaseURL = ((MIDatabaseResultListener) exp.getResultListener()) .getDatabaseURL(); try { if (m_InstanceQuery == null) { m_InstanceQuery = new MIInstanceQuery(); } m_InstanceQuery.setDatabaseURL(dbaseURL); m_InstanceQuery.connectToDatabase(); String tableName = m_InstanceQuery .getResultsTableName(exp.getResultProducer()); setInstancesFromDatabaseTable(tableName); } catch (Exception ex) { m_FromLab.setText("Problem reading database"); } } else { m_FromLab.setText("Can't get results from experiment"); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -