package org.geotoolkit.pending.demo.swing;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.*;
import org.geotoolkit.gui.swing.parameters.editor.JParameterValuesEditor;
import org.geotoolkit.gui.swing.propertyedit.JAttributeEditor;
import org.geotoolkit.utility.parameter.ParametersExt;
import org.opengis.parameter.GeneralParameterDescriptor;
import org.opengis.parameter.ParameterDescriptorGroup;
/**
* @author Quentin Boileau (Geomatys)
*/
public class ParameterEditionDemo {
public static void main(String[] args) {
List<GeneralParameterDescriptor> params = new ArrayList<>();
params.add(ParametersExt.createParameterDescriptor("strParam", null, String.class, null, "Test", null, null, null, true));
params.add(ParametersExt.createParameterDescriptor("boolParam", null, Boolean.class, null, true, null, null, null, true));
params.add(ParametersExt.createParameterDescriptor("doubleParam", null, Double.class, null, 10.5, null, null, null, false));
List<GeneralParameterDescriptor> subParams = new ArrayList<>();
subParams.add(ParametersExt.createParameterDescriptor("dateParam", null, Date.class, null, null, null, null, null, true));
params.add(ParametersExt.createParameterDescriptorGroup("subgroup", null, 2, 5, subParams));
final ParameterDescriptorGroup descGroup = ParametersExt.createParameterDescriptorGroup("group", null, 1, 1, params);
final JAttributeEditor editors = new JAttributeEditor();
System.out.println("########################## Input ParameterDescriptorGroup");
System.out.println(descGroup);
final JParameterValuesEditor editor = new JParameterValuesEditor(descGroup, editors.getEditors(), null);
final JDialog optionPaneDialog = new JDialog();
final JOptionPane optPane = new JOptionPane(editor, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
optPane.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent e) {
if (e.getPropertyName().equals("value")) {
switch ((Integer) e.getNewValue()) {
case JOptionPane.OK_OPTION:
System.out.println("########################## New ParameterValueGroup");
System.out.println(editor.getParameterValue());
optionPaneDialog.dispose();
break;
case JOptionPane.CANCEL_OPTION:
optionPaneDialog.dispose();
break;
}
}
}
});
optionPaneDialog.setTitle("");
optionPaneDialog.setContentPane(optPane);
optionPaneDialog.pack();
optionPaneDialog.setResizable(true);
optionPaneDialog.setLocationRelativeTo(null);
optionPaneDialog.setModal(true);
optionPaneDialog.setVisible(true);
}
}