/* * 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() + ""); } }