List of usage examples for javafx.scene.control ChoiceBox ChoiceBox
public ChoiceBox(ObservableList<T> items)
From source file:Main.java
@Override public void start(Stage stage) { Scene scene = new Scene(new Group()); stage.setScene(scene);/*from w ww.j a v a 2s. c om*/ stage.show(); stage.setWidth(300); stage.setHeight(200); final String[] greetings = new String[] { "Hello", "Hola", "1", "2" }; final ChoiceBox cb = new ChoiceBox(FXCollections.observableArrayList("1", "2", "3", "4")); cb.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() { public void changed(ObservableValue ov, Number value, Number new_value) { System.out.println(new_value.intValue()); } }); cb.setValue("2"); HBox hb = new HBox(); hb.getChildren().addAll(cb); hb.setSpacing(30); hb.setAlignment(Pos.CENTER); hb.setPadding(new Insets(10, 0, 0, 10)); ((Group) scene.getRoot()).getChildren().add(hb); }
From source file:Main.java
@Override public void start(Stage stage) { Scene scene = new Scene(new Group()); scene.setFill(Color.ALICEBLUE); stage.setScene(scene);/*from www.j a va 2 s . c o m*/ stage.show(); stage.setWidth(300); stage.setHeight(200); label.setStyle("-fx-font: 25 arial;"); label.setLayoutX(40); rect.setStroke(Color.BLUE); rect.setStrokeWidth(3); rect.setFill(Color.WHITE); final String[] greetings = new String[] { "A", "B", "C", "D", "E" }; final ChoiceBox<String> cb = new ChoiceBox<String>( FXCollections.observableArrayList("a", "b", "c", "d", "e")); cb.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() { public void changed(ObservableValue ov, Number value, Number new_value) { label.setText(greetings[new_value.intValue()]); } }); cb.setTooltip(new Tooltip("Select the language")); cb.setValue("English"); HBox hb = new HBox(); hb.getChildren().addAll(cb, label); hb.setSpacing(30); hb.setAlignment(Pos.CENTER); hb.setPadding(new Insets(10, 0, 0, 10)); ((Group) scene.getRoot()).getChildren().add(hb); }
From source file:Main.java
@Override public void start(Stage stage) { Scene scene = new Scene(new Group()); scene.setFill(Color.ALICEBLUE); stage.setScene(scene);// ww w. j ava 2s .c om stage.show(); stage.setTitle("ChoiceBox Sample"); stage.setWidth(300); stage.setHeight(200); label.setStyle("-fx-font: 25 arial;"); label.setLayoutX(40); rect.setArcHeight(8); rect.setArcWidth(8); rect.setStroke(Color.BLUE); rect.setStrokeWidth(3); rect.setFill(Color.WHITE); final String[] greetings = new String[] { "Hello", "Hola", "??????", "?", "?????" }; final ChoiceBox cb = new ChoiceBox( FXCollections.observableArrayList("English", "Espaol", "???????", "????", "???")); cb.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() { public void changed(ObservableValue ov, Number value, Number new_value) { label.setText(greetings[new_value.intValue()]); } }); cb.setTooltip(new Tooltip("Select the language")); cb.setValue("English"); HBox hb = new HBox(); hb.getChildren().addAll(cb, label); hb.setSpacing(30); hb.setAlignment(Pos.CENTER); hb.setPadding(new Insets(10, 0, 0, 10)); ((Group) scene.getRoot()).getChildren().add(hb); }
From source file:de.pixida.logtest.designer.automaton.EditorAutomaton.java
private void createConfigFrame() { final int descriptionInputLines = 8; this.descriptionInput.setPrefRowCount(descriptionInputLines); this.descriptionInput.setWrapText(true); this.descriptionInput.textProperty() .addListener((ChangeListener<String>) (observable, oldValue, newValue) -> { this.setDescription(newValue); this.graph.handleChange(); });//from w w w. j a va 2 s . com this.configFrame.addOption("Description", this.descriptionInput); final ObservableList<String> options = FXCollections.observableArrayList("JavaScript", "python"); if (!options.contains(Automaton.DEFAULT_SCRIPTING_LANGUAGE)) { options.add(0, Automaton.DEFAULT_SCRIPTING_LANGUAGE); } final ChoiceBox<String> scriptLanguageInput = new ChoiceBox<>(options); scriptLanguageInput .setValue(StringUtils.isBlank(this.scriptLanguage) || !options.contains(this.scriptLanguage) ? Automaton.DEFAULT_SCRIPTING_LANGUAGE : this.scriptLanguage); scriptLanguageInput.getSelectionModel().selectedIndexProperty() .addListener((ChangeListener<Number>) (observable, oldValue, newValue) -> { EditorAutomaton.this.scriptLanguage = scriptLanguageInput.getItems().get((Integer) newValue); this.graph.handleChange(); }); this.configFrame.addOption("Script language", scriptLanguageInput); final int onLoadInputLines = 8; this.onLoadInput.setPrefRowCount(onLoadInputLines); this.onLoadInput.setWrapText(true); this.onLoadInput.setStyle("-fx-font-family: monospace"); this.onLoadInput.textProperty().addListener((ChangeListener<String>) (observable, oldValue, newValue) -> { this.graph.handleChange(); }); this.configFrame.addOption("On Load", this.onLoadInput); }
From source file:Main.java
private static Node createLoginPanel() { final ToggleGroup toggleGroup = new ToggleGroup(); final TextField textField = new TextField(); textField.setPrefColumnCount(10);// ww w . ja v a 2 s .c om textField.setPromptText("Your name"); final PasswordField passwordField = new PasswordField(); passwordField.setPrefColumnCount(10); passwordField.setPromptText("Your password"); final ChoiceBox<String> choiceBox = new ChoiceBox<String>(FXCollections.observableArrayList("English", "\u0420\u0443\u0441\u0441\u043a\u0438\u0439", "Fran\u00E7ais")); choiceBox.setTooltip(new Tooltip("Your language")); choiceBox.getSelectionModel().select(0); final HBox panel = createHBox(6, createVBox(2, createRadioButton("High", toggleGroup, true), createRadioButton("Medium", toggleGroup, false), createRadioButton("Low", toggleGroup, false)), createVBox(2, textField, passwordField), choiceBox); panel.setAlignment(Pos.BOTTOM_LEFT); configureBorder(panel); return panel; }
From source file:de.pixida.logtest.designer.logreader.LogReaderEditor.java
private List<Triple<String, Node, String>> createConfigurationForm() { final List<Triple<String, Node, String>> formItems = new ArrayList<>(); // Headline pattern final TextField textInput = new TextField(this.logReader.getHeadlinePattern()); textInput.textProperty().addListener((ChangeListener<String>) (observable, oldValue, newValue) -> { this.logReader.setHeadlinePattern(newValue); this.setChanged(true); });/*from w ww . j a v a2 s . co m*/ textInput.setStyle("-fx-font-family: monospace"); formItems.add(Triple.of("Headline Pattern", textInput, "The perl style regular expression is used to spot the beginning of" + " log entries in the log file. If a log entry consists of multiple lines, this pattern must only match the first" + " line, called \"head line\". Groups can intentionally be matched to spot values like timestamp or channel name." + " All matching groups are removed from the payload before they are processed by an automaton.")); // Index of timestamp Supplier<Integer> getter = () -> this.logReader.getHeadlinePatternIndexOfTimestamp(); Consumer<Integer> setter = value -> this.logReader.setHeadlinePatternIndexOfTimestamp(value); final TextField indexOfTimestampInput = this.createIntegerInputField(textInput, getter, setter); formItems.add(Triple.of("Timestamp Group", indexOfTimestampInput, "Denotes which matching group in the headline pattern contains" + " the timestamp. Index 0 references the whole pattern match, index 1 is the first matching group etc. The timestamp must" + " always be a valid integer. Currently, this integer is always interpreted as milliseconds. If no value is set, no" + " timestamp will be extracted and timing conditions cannot be used. If the referenced matching group is optional" + " and does not match for a specific head line, the last recent timestamp will be used for the extracted log entry.")); // Index of channel getter = () -> this.logReader.getHeadlinePatternIndexOfChannel(); setter = value -> this.logReader.setHeadlinePatternIndexOfChannel(value); final TextField indexOfChannelInput = this.createIntegerInputField(textInput, getter, setter); formItems.add(Triple.of("Channel Group", indexOfChannelInput, "Denotes which matching group in the headline pattern contains" + " the channel. If the value is empty or the matching group is optional and it did not match, the default channel is used" + " for the extracted log entry.")); // Trim payload CheckBox cb = new CheckBox(); cb.setSelected(this.logReader.getTrimPayload()); cb.selectedProperty().addListener((ChangeListener<Boolean>) (observable, oldValue, newValue) -> { this.logReader.setTrimPayload(BooleanUtils.toBoolean(newValue)); this.setChanged(true); }); formItems.add(Triple.of("Trim Payload", cb, "Only has effect on multiline payloads." + " If enabled, all leading and trailing whitespaces are removed from the payload" + " after the matching groups are removed. This allows for regular expressions in the automaton that match the beginning" + " and the end of the payload, without having to take care too much for whitespaces in the source log file.")); // Handling of non headline lines this.createInputForHandlingOfNonHeadlineLines(formItems); // Trim payload cb = new CheckBox(); cb.setSelected(this.logReader.getRemoveEmptyPayloadLinesFromMultilineEntry()); cb.selectedProperty().addListener((ChangeListener<Boolean>) (observable, oldValue, newValue) -> { this.logReader.setRemoveEmptyPayloadLinesFromMultilineEntry(BooleanUtils.toBoolean(newValue)); this.setChanged(true); }); formItems.add(Triple.of("Remove Empty Lines", cb, "If enabled, empty lines will be removed from multiline payload entries.")); // Charset final SortedMap<String, Charset> charsets = Charset.availableCharsets(); final ChoiceBox<String> encodingInput = new ChoiceBox<>( FXCollections.observableArrayList(charsets.keySet())); encodingInput.getSelectionModel().select(this.logReader.getLogFileCharset().name()); encodingInput.getSelectionModel().selectedItemProperty() .addListener((ChangeListener<String>) (observable, oldValue, newValue) -> { this.logReader.setLogFileCharset(charsets.get(newValue)); this.setChanged(true); }); formItems.add(Triple.of("Log File Encoding", encodingInput, "Encoding of the log file. Note that some of the encodings are" + " platform specific such that reading the log on a different platform might fail. Usually, log files are written" + " using UTF-8, UTF-16, ISO-8859-1 or ASCII.")); return formItems; }
From source file:de.pixida.logtest.designer.automaton.AutomatonEdge.java
private void createDurationInput(final GridPane gp, final boolean isMin, final TimeIntervalForEditing timeInterval) { final DurationForEditing duration = isMin ? timeInterval.getMinDuration() : timeInterval.getMaxDuration(); final int targetRow = isMin ? 0 : 1; int column = 0; final Text fromOrTo = new Text((isMin ? "Min" : "Max") + ": "); gp.add(fromOrTo, column++, targetRow); final String mathOperator = isMin ? ">" : "<"; final String inclusive = "Inclusive: " + mathOperator + "="; final String exclusive = "Exclusive: " + mathOperator; final ChoiceBox<String> intervalBorderInput = new ChoiceBox<>( FXCollections.observableArrayList(inclusive, exclusive)); intervalBorderInput.setValue(duration.isInclusive() ? inclusive : exclusive); intervalBorderInput.getSelectionModel().selectedIndexProperty() .addListener((ChangeListener<Number>) (observable, oldValue, newValue) -> { duration.setInclusive(0 == (Integer) newValue); this.timingConditionsUpdated(); this.getGraph().handleChange(); });// ww w . j av a 2 s. c om gp.add(intervalBorderInput, column++, targetRow); final TextField valueInput = new TextField(duration.getValue()); valueInput.textProperty().addListener((ChangeListener<String>) (observable, oldValue, newValue) -> { duration.setValue(newValue); this.timingConditionsUpdated(); this.getGraph().handleChange(); }); gp.add(valueInput, column++, targetRow); final String currentChoice = JsonTimeUnit.convertTimeUnitToString(duration.getUnit()); final ChoiceBox<String> timeUnitInput = new ChoiceBox<>( FXCollections.observableArrayList(JsonTimeUnit.getListOfPossibleNames())); timeUnitInput.setValue(currentChoice); timeUnitInput.getSelectionModel().selectedIndexProperty() .addListener((ChangeListener<Number>) (observable, oldValue, newValue) -> { duration.setUnit(JsonTimeUnit.indexToTimeUnit((Integer) newValue)); this.timingConditionsUpdated(); this.getGraph().handleChange(); }); gp.add(timeUnitInput, column++, targetRow); }
From source file:de.pixida.logtest.designer.logreader.LogReaderEditor.java
public void createInputForHandlingOfNonHeadlineLines(final List<Triple<String, Node, String>> formItems) { final Map<HandlingOfNonHeadlineLines, String> mapValueToChoice = new HashMap<>(); mapValueToChoice.put(HandlingOfNonHeadlineLines.FAIL, "Abort - Each line in the log file is assumed to be a log entry"); mapValueToChoice.put(HandlingOfNonHeadlineLines.CREATE_MULTILINE_ENTRY, "Append to payload - This will create multiline payloads"); mapValueToChoice.put(HandlingOfNonHeadlineLines.ASSUME_LAST_TIMESTAMP, "Create new log entry and use timestamp of recent log entry"); mapValueToChoice.put(HandlingOfNonHeadlineLines.ASSUME_LAST_TIMESTAMP_AND_CHANNEL, "Create new log entry and use timestamp and channel of recent log entry"); final ChoiceBox<HandlingOfNonHeadlineLines> handlingOfNonHeadlineLinesInput = new ChoiceBox<>( FXCollections.observableArrayList(HandlingOfNonHeadlineLines.values())); handlingOfNonHeadlineLinesInput.setConverter(new StringConverter<HandlingOfNonHeadlineLines>() { @Override/* w w w .j a v a 2 s.co m*/ public String toString(final HandlingOfNonHeadlineLines object) { return mapValueToChoice.get(object); } @Override public HandlingOfNonHeadlineLines fromString(final String string) { for (final Entry<HandlingOfNonHeadlineLines, String> entry : mapValueToChoice.entrySet()) { if (entry.getValue() == string) // Intentionally comparing references to obtain a bijection { return entry.getKey(); } } return null; // Should never happen } }); handlingOfNonHeadlineLinesInput.getSelectionModel().select(this.logReader.getHandlingOfNonHeadlineLines()); handlingOfNonHeadlineLinesInput.getSelectionModel().selectedIndexProperty() .addListener((ChangeListener<Number>) (observable, oldValue, newValue) -> { this.logReader.setHandlingOfNonHeadlineLines( handlingOfNonHeadlineLinesInput.getItems().get(newValue.intValue())); this.setChanged(true); }); formItems.add(Triple.of("Dangling Lines", handlingOfNonHeadlineLinesInput, "Define what to do if dangling lines are spotted. Dangling lines are lines which do not match the headline pattern, i.e." + " which do not introduce a new log entry.")); }