📄 resultspanel.java
字号:
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(Experiment 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 InstancesResultListener)
|| (m_Exp.getResultListener() instanceof DatabaseResultListener)) {
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 InstanceQuery();
}
String dbaseURL = m_InstanceQuery.getDatabaseURL();
String username = m_InstanceQuery.getUsername();
String passwd = m_InstanceQuery.getPassword();
/*dbaseURL = (String) JOptionPane.showInputDialog(this,
"Enter the database URL",
"Query Database",
JOptionPane.PLAIN_MESSAGE,
null,
null,
dbaseURL);*/
DatabaseConnectionDialog dbd= new DatabaseConnectionDialog(null,dbaseURL,username);
dbd.setVisible(true);
//if (dbaseURL == null) {
if (dbd.getReturnValue()==JOptionPane.CLOSED_OPTION) {
m_FromLab.setText("Cancelled");
return;
}
dbaseURL=dbd.getURL();
username=dbd.getUsername();
passwd=dbd.getPassword();
m_InstanceQuery.setDatabaseURL(dbaseURL);
m_InstanceQuery.setUsername(username);
m_InstanceQuery.setPassword(passwd);
m_InstanceQuery.connectToDatabase();
if (!m_InstanceQuery.experimentIndexExists()) {
System.err.println("not found");
m_FromLab.setText("No experiment index");
return;
}
System.err.println("found");
m_FromLab.setText("Getting experiment index");
Instances index = m_InstanceQuery.retrieveInstances("SELECT * FROM "
+ InstanceQuery.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(InstanceQuery.EXP_RESULT_COL);
String table = InstanceQuery.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(Experiment exp) {
if (exp.getResultListener() instanceof InstancesResultListener) {
File resultFile = ((InstancesResultListener) exp.getResultListener())
.getOutputFile();
if ((resultFile == null) || (resultFile.getName().equals("-"))) {
m_FromLab.setText("No result file");
} else {
setInstancesFromFile(resultFile);
}
} else if (exp.getResultListener() instanceof DatabaseResultListener) {
String dbaseURL = ((DatabaseResultListener) exp.getResultListener())
.getDatabaseURL();
try {
if (m_InstanceQuery == null) {
m_InstanceQuery = new InstanceQuery();
}
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");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -