package org.geotoolkit.gui.javafx.parameter;
import java.nio.file.Path;
import java.util.Locale;
import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import org.apache.sis.measure.Units;
import org.apache.sis.parameter.ParameterBuilder;
import org.geotoolkit.coverage.postgresql.PGCoverageStoreFactory;
import org.opengis.parameter.ParameterDescriptorGroup;
import org.opengis.parameter.ParameterValueGroup;
/**
*
* @author Alexis Manin (Geomatys)
*/
public class ParameterTestApp extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Locale.setDefault(Locale.FRENCH);
final Stage stage = new Stage();
stage.setScene(new Scene(testParameterGroupPane()));
stage.setWidth(600);
stage.setHeight(600);
stage.setTitle("test stage");
stage.setOnCloseRequest((WindowEvent event) -> {
System.exit(0);
});
stage.show();
}
public static void main(final String[] args) throws Exception {
launch(args);
}
public static Parent testParameterGroupPane() {
ParameterBuilder groupBuilder = new ParameterBuilder();
ParameterBuilder builder = new ParameterBuilder();
ParameterDescriptorGroup innerGroup = groupBuilder.addName("inner group").setRemarks("I'm a magnificient group.").createGroup(0, 2,
builder.addName("first").setRemarks("Here are my remarks.").setRequired(true).create(String.class, null),
builder.addName("second").setRemarks("Here are my remarks.").setRequired(true).create(String.class, null),
builder.addName("third").setRemarks("Here are my remarks.").setRequired(true).create(String.class, null)
);
ParameterDescriptorGroup anotherGroup = groupBuilder.addName("another group").setRemarks("I'm a magnificient group.").createGroup(1, 10,
builder.addName("first").setRemarks("Here are my remarks.").setRequired(true).create(String.class, null),
builder.addName("third").setRemarks("A path to be set").setRequired(false).create(Path.class, null)
);
ParameterValueGroup editGroup = groupBuilder.addName("My parameter group").createGroup(
builder.addName("first").setRemarks("Here are my remarks.").setRequired(true).create(String.class, null),
builder.addName("second").setRequired(true).create(0.0, Units.METRE),
builder.addName("third").setRemarks("A path to be set").setRequired(false).create(Path.class, null),
innerGroup,
anotherGroup,
builder.addName("last").setRemarks("The last parameter.").setRequired(false).create(String.class, null)
).createValue();
final ScrollPane scrollPane = new ScrollPane(new FXParameterGroupPane(PGCoverageStoreFactory.PARAMETERS_DESCRIPTOR.createValue()));
scrollPane.setFitToWidth(true);
scrollPane.setFitToHeight(true);
return scrollPane;
}
}