📄 simplesetuppanel.java
字号:
expTypeChanged();
}
});
m_SaveBut.setEnabled(false);
m_SaveBut.setMnemonic('S');
m_SaveBut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveExperiment();
}
});
m_OpenBut.setMnemonic('O');
m_OpenBut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
openExperiment();
}
});
m_FileChooser.addChoosableFileFilter(m_ExpFilter);
if (KOML.isPresent())
m_FileChooser.addChoosableFileFilter(m_KOMLFilter);
m_FileChooser.addChoosableFileFilter(m_XMLFilter);
if (ExperimenterDefaults.getExtension().equals(".xml"))
m_FileChooser.setFileFilter(m_XMLFilter);
else if (KOML.isPresent() && ExperimenterDefaults.getExtension().equals(KOML.FILE_EXTENSION))
m_FileChooser.setFileFilter(m_KOMLFilter);
else
m_FileChooser.setFileFilter(m_ExpFilter);
m_FileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
m_DestFileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
m_BrowseDestinationButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//using this button for both browsing file & setting username/password
if (m_ResultsDestinationCBox.getSelectedItem() == DEST_DATABASE_TEXT){
chooseURLUsername();
} else {
chooseDestinationFile();
}
}
});
m_ExpClassificationRBut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
expTypeChanged();
}
});
m_ExpRegressionRBut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
expTypeChanged();
}
});
m_OrderDatasetsFirstRBut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (m_Exp != null) {
m_Exp.setAdvanceDataSetFirst(true);
m_Support.firePropertyChange("", null, null);
}
}
});
m_OrderAlgorithmsFirstRBut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (m_Exp != null) {
m_Exp.setAdvanceDataSetFirst(false);
m_Support.firePropertyChange("", null, null);
}
}
});
m_ResultsDestinationPathTField.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent e) {destinationAddressChanged();}
public void removeUpdate(DocumentEvent e) {destinationAddressChanged();}
public void changedUpdate(DocumentEvent e) {destinationAddressChanged();}
});
m_ExperimentParameterTField.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent e) {expParamChanged();}
public void removeUpdate(DocumentEvent e) {expParamChanged();}
public void changedUpdate(DocumentEvent e) {expParamChanged();}
});
m_NumberOfRepetitionsTField.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent e) {numRepetitionsChanged();}
public void removeUpdate(DocumentEvent e) {numRepetitionsChanged();}
public void changedUpdate(DocumentEvent e) {numRepetitionsChanged();}
});
m_NotesFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
m_NotesButton.setEnabled(true);
}
});
m_NotesFrame.getContentPane().add(new JScrollPane(m_NotesText));
m_NotesFrame.setSize(600, 400);
m_NotesButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
m_NotesButton.setEnabled(false);
m_NotesFrame.setVisible(true);
}
});
m_NotesButton.setEnabled(false);
m_NotesText.setEditable(true);
//m_NotesText.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
m_NotesText.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
m_Exp.setNotes(m_NotesText.getText());
}
});
m_NotesText.addFocusListener(new FocusAdapter() {
public void focusLost(FocusEvent e) {
m_Exp.setNotes(m_NotesText.getText());
}
});
// Set up the GUI layout
JPanel buttons = new JPanel();
GridBagLayout gb = new GridBagLayout();
GridBagConstraints constraints = new GridBagConstraints();
buttons.setBorder(BorderFactory.createEmptyBorder(10, 5, 10, 5));
buttons.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);
buttons.add(m_OpenBut,constraints);
constraints.gridx=1;constraints.gridy=0;constraints.weightx=5;
constraints.gridwidth=1;constraints.gridheight=1;
buttons.add(m_SaveBut,constraints);
constraints.gridx=2;constraints.gridy=0;constraints.weightx=5;
constraints.gridwidth=1;constraints.gridheight=1;
buttons.add(m_NewBut,constraints);
JPanel destName = new JPanel();
destName.setLayout(new BorderLayout(5, 5));
destName.add(m_ResultsDestinationPathLabel, BorderLayout.WEST);
destName.add(m_ResultsDestinationPathTField, BorderLayout.CENTER);
m_ResultsDestinationCBox.addItem(DEST_ARFF_TEXT);
m_ResultsDestinationCBox.addItem(DEST_CSV_TEXT);
m_ResultsDestinationCBox.addItem(DEST_DATABASE_TEXT);
m_ResultsDestinationCBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
destinationTypeChanged();
}
});
JPanel destInner = new JPanel();
destInner.setLayout(new BorderLayout(5, 5));
destInner.add(m_ResultsDestinationCBox, BorderLayout.WEST);
destInner.add(destName, BorderLayout.CENTER);
destInner.add(m_BrowseDestinationButton, BorderLayout.EAST);
JPanel dest = new JPanel();
dest.setLayout(new BorderLayout());
dest.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder("Results Destination"),
BorderFactory.createEmptyBorder(0, 5, 5, 5)
));
dest.add(destInner, BorderLayout.NORTH);
JPanel expParam = new JPanel();
expParam.setLayout(new BorderLayout(5, 5));
expParam.add(m_ExperimentParameterLabel, BorderLayout.WEST);
expParam.add(m_ExperimentParameterTField, BorderLayout.CENTER);
ButtonGroup typeBG = new ButtonGroup();
typeBG.add(m_ExpClassificationRBut);
typeBG.add(m_ExpRegressionRBut);
m_ExpClassificationRBut.setSelected(true);
JPanel typeRButtons = new JPanel();
typeRButtons.setLayout(new GridLayout(1,0));
typeRButtons.add(m_ExpClassificationRBut);
typeRButtons.add(m_ExpRegressionRBut);
m_ExperimentTypeCBox.addItem(TYPE_CROSSVALIDATION_TEXT);
m_ExperimentTypeCBox.addItem(TYPE_RANDOMSPLIT_TEXT);
m_ExperimentTypeCBox.addItem(TYPE_FIXEDSPLIT_TEXT);
m_ExperimentTypeCBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
expTypeChanged();
}
});
JPanel typeInner = new JPanel();
typeInner.setLayout(new GridLayout(0,1));
typeInner.add(m_ExperimentTypeCBox);
typeInner.add(expParam);
typeInner.add(typeRButtons);
JPanel type = new JPanel();
type.setLayout(new BorderLayout());
type.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder("Experiment Type"),
BorderFactory.createEmptyBorder(0, 5, 5, 5)
));
type.add(typeInner, BorderLayout.NORTH);
ButtonGroup iterBG = new ButtonGroup();
iterBG.add(m_OrderDatasetsFirstRBut);
iterBG.add(m_OrderAlgorithmsFirstRBut);
m_OrderDatasetsFirstRBut.setSelected(true);
JPanel numIter = new JPanel();
numIter.setLayout(new BorderLayout(5, 5));
numIter.add(new JLabel("Number of repetitions:"), BorderLayout.WEST);
numIter.add(m_NumberOfRepetitionsTField, BorderLayout.CENTER);
JPanel controlInner = new JPanel();
controlInner.setLayout(new GridLayout(0,1));
controlInner.add(numIter);
controlInner.add(m_OrderDatasetsFirstRBut);
controlInner.add(m_OrderAlgorithmsFirstRBut);
JPanel control = new JPanel();
control.setLayout(new BorderLayout());
control.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder("Iteration Control"),
BorderFactory.createEmptyBorder(0, 5, 5, 5)
));
control.add(controlInner, BorderLayout.NORTH);
JPanel type_control = new JPanel();
type_control.setLayout(new GridLayout(1,0));
type_control.add(type);
type_control.add(control);
JPanel notes = new JPanel();
notes.setLayout(new BorderLayout());
notes.add(m_NotesButton, BorderLayout.CENTER);
JPanel top1 = new JPanel();
top1.setLayout(new BorderLayout());
top1.add(dest, BorderLayout.NORTH);
top1.add(type_control, BorderLayout.CENTER);
JPanel top = new JPanel();
top.setLayout(new BorderLayout());
top.add(buttons, BorderLayout.NORTH);
top.add(top1, BorderLayout.CENTER);
JPanel datasets = new JPanel();
datasets.setLayout(new BorderLayout());
datasets.add(m_DatasetListPanel, BorderLayout.CENTER);
JPanel algorithms = new JPanel();
algorithms.setLayout(new BorderLayout());
algorithms.add(m_AlgorithmListPanel, BorderLayout.CENTER);
JPanel schemes = new JPanel();
schemes.setLayout(new GridLayout(1,0));
schemes.add(datasets);
schemes.add(algorithms);
setLayout(new BorderLayout());
add(top, BorderLayout.NORTH);
add(schemes, BorderLayout.CENTER);
add(notes, BorderLayout.SOUTH);
}
/**
* Sets the selected item of an combobox, since using setSelectedItem(...)
* doesn't work, if one checks object references!
*
* @param cb the combobox to set the item for
* @param item the item to set active
*/
protected void setSelectedItem(JComboBox cb, String item) {
int i;
for (i = 0; i < cb.getItemCount(); i++) {
if (cb.getItemAt(i).toString().equals(item)) {
cb.setSelectedIndex(i);
break;
}
}
}
/**
* Deletes the notes frame.
*/
protected void removeNotesFrame() {
m_NotesFrame.setVisible(false);
}
/**
* Gets te users consent for converting the experiment to a simpler form.
*
* @return true if the user has given consent, false otherwise
*/
private boolean userWantsToConvert() {
if (m_userHasBeenAskedAboutConversion) return true;
m_userHasBeenAskedAboutConversion = true;
return (JOptionPane.showConfirmDialog(this,
"This experiment has settings that are too advanced\n" +
"to be represented in the simple setup mode.\n" +
"Do you want the experiment to be converted,\n" +
"losing some of the advanced settings?\n",
"Confirm conversion",
JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION);
}
/**
* Sets the panel used to switch between simple and advanced modes.
*
* @param modePanel the panel
*/
public void setModePanel(SetupModePanel modePanel) {
m_modePanel = modePanel;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -