/*
* ConfigurationDialogPanel.java
*
* Created on 11. J�nner 2006, 14:16
*/
package at.lux.fotoretrieval.panels;
import at.lux.fotoretrieval.EmirConfiguration;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Properties;
/**
* Panel for the Configuration Dialog.
* @author mlux
*/
public class ConfigurationDialogPanel extends javax.swing.JPanel implements ActionListener {
public enum ConfigurationPanelType {MDS, CLUSTERING, MAIN};
private EmirConfiguration props;
private JDialog parent;
/** Creates new form ConfigurationDialogPanel */
public ConfigurationDialogPanel(JDialog parent) {
this.parent = parent;
initComponents();
configurationSelectionPanel1.clusteringConfigButton.addActionListener(this);
configurationSelectionPanel1.mainConfigButton.addActionListener(this);
configurationPanel.add(general, "main");
configurationPanel.add(mds, "clustering");
okButton.addActionListener(this);
cancelButton.addActionListener(this);
props = EmirConfiguration.getInstance();
loadAllProperties();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
private void initComponents() {
configRightSidePanel = new javax.swing.JPanel();
configurationPanel = new javax.swing.JPanel();
configurationSelectionPanel1 = new at.lux.fotoretrieval.panels.ConfigurationSelectionPanel();
buttonPanel = new javax.swing.JPanel();
cancelButton = new javax.swing.JButton();
okButton = new javax.swing.JButton();
setLayout(new java.awt.BorderLayout());
configRightSidePanel.setLayout(new java.awt.BorderLayout());
configRightSidePanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(4, 0, 4, 4));
configurationPanel.setLayout(new java.awt.CardLayout());
configurationPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 4, 1, 4));
configRightSidePanel.add(configurationPanel, java.awt.BorderLayout.CENTER);
add(configRightSidePanel, java.awt.BorderLayout.CENTER);
configurationSelectionPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(4, 4, 4, 4));
add(configurationSelectionPanel1, java.awt.BorderLayout.WEST);
cancelButton.setText("Cancel");
cancelButton.setActionCommand("CancelAndClose");
buttonPanel.add(cancelButton);
okButton.setText("OK");
okButton.setActionCommand("SaveAndClose");
buttonPanel.add(okButton);
add(buttonPanel, java.awt.BorderLayout.SOUTH);
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel buttonPanel;
private javax.swing.JButton cancelButton;
private javax.swing.JPanel configRightSidePanel;
public javax.swing.JPanel configurationPanel;
private at.lux.fotoretrieval.panels.ConfigurationSelectionPanel configurationSelectionPanel1;
private javax.swing.JButton okButton;
// End of variables declaration//GEN-END:variables
public MdsConfiguration mds = new MdsConfiguration();
public GeneralConfigurationPanel general = new GeneralConfigurationPanel();
public void setConfigurationPanel(ConfigurationPanelType panel) {
if (panel == ConfigurationPanelType.CLUSTERING) {
((CardLayout) configurationPanel.getLayout()).show(configurationPanel, "clustering");
} else if (panel == ConfigurationPanelType.MAIN) {
((CardLayout) configurationPanel.getLayout()).show(configurationPanel, "main");
}
}
public void actionPerformed(ActionEvent actionEvent) {
String command = actionEvent.getActionCommand();
if (command.equals("mdsConfig")) {
setConfigurationPanel(ConfigurationPanelType.MDS);
} else if (command.equals("CancelAndClose")) {
parent.setVisible(false);
} else if (command.equals("SaveAndClose")) {
saveAllProperties();
parent.setVisible(false);
} else if (command.equals("clusteringConfig")) {
setConfigurationPanel(ConfigurationPanelType.CLUSTERING);
} else if (command.equals("mainConfig")) {
setConfigurationPanel(ConfigurationPanelType.MAIN);
}
}
private void loadAllProperties() {
general.maxResults.setText(props.getProperty("Retrieval.Result.Maximum"));
general.useDerby.setSelected(Boolean.parseBoolean(props.getProperty("Retrieval.Cbir.useDerby")));
general.c1.setText(props.getProperty("SpringEmbedder.Parameters.c1"));
general.c2.setText(props.getProperty("SpringEmbedder.Parameters.c2"));
general.c3.setText(props.getProperty("SpringEmbedder.Parameters.c3"));
general.c4.setText(props.getProperty("SpringEmbedder.Parameters.c4"));
general.invisibleCentreNode.setSelected(Boolean.parseBoolean(props.getProperty("SpringEmbedder.Parameters.invisibleCenterNode")));
general.normalizeMovementVector.setSelected(Boolean.parseBoolean(props.getProperty("SpringEmbedder.Parameters.normalizeMovementVector")));
general.scaleDownnSpace.setSelected(Boolean.parseBoolean(props.getProperty("SpringEmbedder.Parameters.scaleDownSpace")));
general.browserWindows.setText(props.getProperty("browser.windows"));
general.browserLinux.setText(props.getProperty("browser.linux"));
mds.r.setText(props.getProperty("Algorithm.FDP.Parameters.r"));
mds.w.setText(props.getProperty("Algorithm.FDP.Parameters.w"));
mds.d.setText(props.getProperty("Algorithm.FDP.Parameters.d"));
mds.gravity.setText(props.getProperty("Algorithm.FDP.Parameters.gravity"));
mds.minDistance.setText(props.getProperty("Algorithm.FDP.Parameters.minimumDistance"));
mds.stepWait.setText(props.getProperty("MdsVisPanel.FDP.StepWait"));
mds.stopCondition.setText(props.getProperty("MdsVisPanel.FDP.StopCondition"));
mds.startWait.setText(props.getProperty("MdsVisPanel.FDP.StartWait"));
mds.clusteringMetric.setSelectedIndex(Integer.parseInt(props.getProperty("Metric.Clustering")));
mds.fdpMetric.setSelectedIndex(Integer.parseInt(props.getProperty("Metric.FDP")));
mds.clusteringAlgorithm.setSelectedIndex(Integer.parseInt(props.getProperty("Clustering.Algorithm")));
}
private void saveAllProperties() {
props.setProperty("Retrieval.Result.Maximum", general.maxResults.getText());
props.setProperty("Retrieval.Cbir.useDerby", general.useDerby.isSelected() + "");
props.setProperty("SpringEmbedder.Parameters.c1", general.c1.getText());
props.setProperty("SpringEmbedder.Parameters.c2", general.c2.getText());
props.setProperty("SpringEmbedder.Parameters.c3", general.c3.getText());
props.setProperty("SpringEmbedder.Parameters.c4", general.c4.getText());
props.setProperty("SpringEmbedder.Parameters.invisibleCenterNode", general.invisibleCentreNode.isSelected() + "");
props.setProperty("SpringEmbedder.Parameters.normalizeMovementVector", general.normalizeMovementVector.isSelected() + "");
props.setProperty("SpringEmbedder.Parameters.scaleDownSpace", general.scaleDownnSpace.isSelected() + "");
props.setProperty("browser.windows", general.browserWindows.getText());
props.setProperty("browser.linux", general.browserLinux.getText());
props.setProperty("Algorithm.FDP.Parameters.r", mds.r.getText());
props.setProperty("Algorithm.FDP.Parameters.w", mds.w.getText());
props.setProperty("Algorithm.FDP.Parameters.d", mds.d.getText());
props.setProperty("Algorithm.FDP.Parameters.gravity", mds.gravity.getText());
props.setProperty("Algorithm.FDP.Parameters.minimumDistance", mds.minDistance.getText());
props.setProperty("MdsVisPanel.FDP.StepWait", mds.stepWait.getText());
props.setProperty("MdsVisPanel.FDP.StopCondition", mds.stopCondition.getText());
props.setProperty("MdsVisPanel.FDP.StartWait", mds.startWait.getText());
props.setProperty("Metric.Clustering", mds.clusteringMetric.getSelectedIndex() + "");
props.setProperty("Metric.FDP", mds.fdpMetric.getSelectedIndex() + "");
props.setProperty("Clustering.Algorithm", mds.clusteringAlgorithm.getSelectedIndex() + "");
}
}