use of javafx.beans.value.ObservableValue in project JFoenix by jfoenixadmin.
the class GenericEditableTreeTableCell method createEditorNode.
private void createEditorNode() {
EventHandler<KeyEvent> keyEventsHandler = new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent t) {
if (t.getCode() == KeyCode.ENTER) {
commitHelper(false);
} else if (t.getCode() == KeyCode.ESCAPE) {
cancelEdit();
} else if (t.getCode() == KeyCode.TAB) {
commitHelper(false);
TreeTableColumn nextColumn = getNextColumn(!t.isShiftDown());
if (nextColumn != null) {
getTreeTableView().edit(getIndex(), nextColumn);
}
}
}
};
ChangeListener<Boolean> focusChangeListener = new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
//of stopping the double commit.
if (!newValue && editorNode != null) {
commitHelper(true);
}
}
};
DoubleBinding minWidthBinding = Bindings.createDoubleBinding(() -> {
return this.getWidth() - this.getGraphicTextGap() * 2 - this.getBaselineOffset();
}, this.widthProperty(), this.graphicTextGapProperty());
editorNode = builder.createNode(getValue(), minWidthBinding, keyEventsHandler, focusChangeListener);
}
use of javafx.beans.value.ObservableValue in project fxexperience2 by EricCanull.
the class StylerController method initialize.
@Override
public void initialize(URL url, ResourceBundle rb) {
try {
previewPanel = FXMLLoader.load(PreviewPanelController.class.getResource(AppPaths.FXML_PATH + "FXMLPreviewPanel.fxml"));
previewPane.setCenter(previewPanel);
} catch (IOException ex) {
Logger.getLogger(StylerController.class.getName()).log(Level.SEVERE, null, ex);
}
// populate fonts choicebox
fontChoiceBox.getItems().setAll(Font.getFamilies());
fontChoiceBox.getSelectionModel().select("System");
// create listener to call update css
ChangeListener<Object> updateCssListener = (ObservableValue<?> arg0, Object arg1, Object arg2) -> {
updateCss();
};
// add listeners to call update css
fontChoiceBox.valueProperty().addListener(updateCssListener);
fontSizeSlider.valueProperty().addListener(updateCssListener);
paddingSlider.valueProperty().addListener(updateCssListener);
borderRadiusSlider.valueProperty().addListener(updateCssListener);
borderWidthSlider.valueProperty().addListener(updateCssListener);
// create Integer Fields
createNumberFieldForSlider(fontSizeSlider, textGridPanel, 2, 1);
createNumberFieldForSlider(paddingSlider, sizeGridPanel, 2, 0);
createNumberFieldForSlider(borderWidthSlider, sizeGridPanel, 2, 1);
createNumberFieldForSlider(borderRadiusSlider, sizeGridPanel, 2, 2);
// Add color pickers Title Pane
simpleGridPane.getChildren().addAll(basePicker, backgroundColorPicker, focusColorPicker, textColorPicker, fieldBackgroundPicker, fieldTextColorPicker, bkgdTextColorPicker);
// Set color pickers grid constraints
GridPane.setConstraints(basePicker, 1, 0, 2, 1);
GridPane.setConstraints(textColorPicker, 1, 1);
GridPane.setConstraints(backgroundColorPicker, 1, 2);
GridPane.setConstraints(bkgdTextColorPicker, 1, 3);
GridPane.setConstraints(fieldBackgroundPicker, 1, 4);
GridPane.setConstraints(fieldTextColorPicker, 1, 5);
GridPane.setConstraints(focusColorPicker, 1, 6);
basePicker.colorProperty().addListener(updateCssListener);
backgroundColorPicker.colorProperty().addListener(updateCssListener);
focusColorPicker.colorProperty().addListener(updateCssListener);
textColorPicker.colorProperty().addListener(updateCssListener);
baseTextToggle.selectedProperty().addListener(updateCssListener);
textColorPicker.disableProperty().bind(baseTextToggle.selectedProperty().not());
fieldBackgroundPicker.colorProperty().addListener(updateCssListener);
fieldTextColorPicker.colorProperty().addListener(updateCssListener);
fieldTextToggle.selectedProperty().addListener(updateCssListener);
fieldTextColorPicker.disableProperty().bind(fieldTextToggle.selectedProperty().not());
bkgdTextColorPicker.colorProperty().addListener(updateCssListener);
backgroundTextToggle.selectedProperty().addListener(updateCssListener);
bkgdTextColorPicker.disableProperty().bind(backgroundTextToggle.selectedProperty().not());
// add listeners to sliders
topHighlightSlider.valueProperty().addListener(updateCssListener);
bottomHighlightSlider.valueProperty().addListener(updateCssListener);
// Populate gradient combo
gradientComboBox.getItems().addAll(Gradient.GRADIENTS);
gradientComboBox.setCellFactory((ListView<Gradient> gradientList) -> {
ListCell<Gradient> cell = new ListCell<Gradient>() {
@Override
protected void updateItem(Gradient gradient, boolean empty) {
super.updateItem(gradient, empty);
if (empty || gradient == null) {
setText(null);
setGraphic(null);
} else {
setText(gradient.getName());
Region preview = new Region();
preview.setPrefSize(30, 30);
preview.setStyle("-fx-border-color: #111; -fx-background-color: " + gradient.getCss());
setGraphic(preview);
}
}
};
cell.setStyle("-fx-cell-size: 40;");
return cell;
});
gradientComboBox.getSelectionModel().selectedItemProperty().addListener((ObservableValue<? extends Gradient> arg0, Gradient arg1, Gradient newGradient) -> {
bodyTopSlider.setValue(newGradient.getTopDerivation());
bodyBottomSlider.setValue(newGradient.getBottomDerivation());
if (newGradient.isShinny()) {
topMiddleToggle.setSelected(true);
bottomMiddleToggle.setSelected(true);
bodyTopMiddleSlider.setValue(newGradient.getTopMidDerivation());
bodyBottomMiddleSlider.setValue(newGradient.getBottomMidDerivation());
} else {
topMiddleToggle.setSelected(false);
bottomMiddleToggle.setSelected(false);
}
updateCss();
});
gradientComboBox.getSelectionModel().select(0);
// Advanced toggle buttons
topMiddleToggle.selectedProperty().addListener(updateCssListener);
bottomMiddleToggle.selectedProperty().addListener(updateCssListener);
borderToggle.selectedProperty().addListener(updateCssListener);
shadowToggle.selectedProperty().addListener(updateCssListener);
inputBorderToggle.selectedProperty().addListener(updateCssListener);
bodyTopSlider.valueProperty().addListener(updateCssListener);
bodyTopMiddleSlider.valueProperty().addListener(updateCssListener);
bodyBottomMiddleSlider.valueProperty().addListener(updateCssListener);
bodyBottomSlider.valueProperty().addListener(updateCssListener);
borderSlider.valueProperty().addListener(updateCssListener);
shadowSlider.valueProperty().addListener(updateCssListener);
inputBorderSlider.valueProperty().addListener(updateCssListener);
bodyTopMiddleSlider.disableProperty().bind(topMiddleToggle.selectedProperty().not());
bodyBottomMiddleSlider.disableProperty().bind(bottomMiddleToggle.selectedProperty().not());
borderSlider.disableProperty().bind(borderToggle.selectedProperty().not());
shadowSlider.disableProperty().bind(shadowToggle.selectedProperty().not());
inputBorderSlider.disableProperty().bind(inputBorderToggle.selectedProperty().not());
}
use of javafx.beans.value.ObservableValue in project SmartCity-Market by TechnionYP5777.
the class ManageCatalogProductDetailsTab method initialize.
@Override
public void initialize(URL location, ResourceBundle __) {
createManufacturerList();
createIngredientList();
filterManu.textProperty().addListener(obs -> {
String filter = filterManu.getText();
filteredDataManu.setPredicate(filter == null || filter.length() == 0 ? s -> true : s -> s.contains(filter));
});
manufacturerList.setCellFactory(CheckBoxListCell.forListView(new Callback<String, ObservableValue<Boolean>>() {
@Override
public ObservableValue<Boolean> call(String item) {
BooleanProperty observable = new SimpleBooleanProperty();
observable.set(selectedManu.contains(item));
observable.addListener((obs, wasSelected, isNowSelected) -> {
if (isNowSelected)
selectedManu.add(item);
else
selectedManu.remove(item);
enableButtons();
});
return observable;
}
}));
filterIngr.textProperty().addListener(obs -> {
String filter = filterIngr.getText();
filteredDataIngr.setPredicate(filter == null || filter.length() == 0 ? s -> true : s -> s.contains(filter));
});
ingredientsList.setCellFactory(CheckBoxListCell.forListView(new Callback<String, ObservableValue<Boolean>>() {
@Override
public ObservableValue<Boolean> call(String item) {
BooleanProperty observable = new SimpleBooleanProperty();
observable.set(selectedIngr.contains(item));
observable.addListener((obs, wasSelected, isNowSelected) -> {
if (isNowSelected)
selectedIngr.add(item);
else
selectedIngr.remove(item);
enableButtons();
});
return observable;
}
}));
Label lbl1 = new Label("Insert New Manufacturar");
newManu = new JFXTextField();
okNewManu = new JFXButton("Done!");
okNewManu.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent __) {
addManuPressed();
}
});
VBox manuContainer = new VBox();
manuContainer.getChildren().addAll(lbl1, newManu, okNewManu);
manuContainer.setPadding(new Insets(10, 50, 50, 50));
manuContainer.setSpacing(10);
JFXPopup popup1 = new JFXPopup(manuContainer);
addManuBtn.setOnMouseClicked(e -> popup1.show(addManuBtn, PopupVPosition.TOP, PopupHPosition.LEFT));
newManu.textProperty().addListener((observable, oldValue, newValue) -> enableAddButtons());
Label lbl2 = new Label("Insert New Ingredient");
newIngr = new JFXTextField();
okNewIngr = new JFXButton("Done!");
okNewIngr.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent __) {
addIngPressed();
}
});
VBox ingrContainer = new VBox();
ingrContainer.getChildren().addAll(lbl2, newIngr, okNewIngr);
ingrContainer.setPadding(new Insets(10, 50, 50, 50));
ingrContainer.setSpacing(10);
JFXPopup popup2 = new JFXPopup(ingrContainer);
addIngrBtn.setOnMouseClicked(e -> popup2.show(addIngrBtn, PopupVPosition.TOP, PopupHPosition.LEFT));
newIngr.textProperty().addListener((observable, oldValue, newValue) -> enableAddButtons());
Label lbl3 = new Label("Rename Selected Manufacturar");
renameManuLbl = new JFXTextField();
okRenameManu = new JFXButton("Done!");
okRenameManu.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent __) {
renameManuPressed();
}
});
VBox renameManuContainer = new VBox();
renameManuContainer.getChildren().addAll(lbl3, renameManuLbl, okRenameManu);
renameManuContainer.setPadding(new Insets(10, 50, 50, 50));
renameManuContainer.setSpacing(10);
JFXPopup popup3 = new JFXPopup(renameManuContainer);
renameManu.setOnMouseClicked(e -> popup3.show(renameManu, PopupVPosition.TOP, PopupHPosition.LEFT));
renameManuLbl.textProperty().addListener((observable, oldValue, newValue) -> enableAddButtons());
Label lbl4 = new Label("Rename Selected Ingredient");
renameIngrLbl = new JFXTextField();
okRenameIngr = new JFXButton("Done!");
okRenameIngr.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent __) {
renameIngrPressed();
}
});
VBox renameIngrContainer = new VBox();
renameIngrContainer.getChildren().addAll(lbl4, renameIngrLbl, okRenameIngr);
renameIngrContainer.setPadding(new Insets(10, 50, 50, 50));
renameIngrContainer.setSpacing(10);
JFXPopup popup4 = new JFXPopup(renameIngrContainer);
renameIngr.setOnMouseClicked(e -> popup4.show(renameIngr, PopupVPosition.TOP, PopupHPosition.LEFT));
renameIngrLbl.textProperty().addListener((observable, oldValue, newValue) -> enableAddButtons());
enableButtons();
enableAddButtons();
}
use of javafx.beans.value.ObservableValue in project SmartCity-Market by TechnionYP5777.
the class ManageCatalogProductTab method initialize.
@Override
public void initialize(URL location, ResourceBundle __) {
barcodeEventHandler.register(this);
barcodeTextField.textProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue.matches("\\d*"))
barcodeTextField.setText(newValue.replaceAll("[^\\d]", ""));
enableRunOperation();
});
productNameTextField.textProperty().addListener((observable, oldValue, newValue) -> enableRunOperation());
productDescriptionTextField.textProperty().addListener((observable, oldValue, newValue) -> enableRunOperation());
createManufacturerMap();
productManufacturerCombo.getItems().addAll(manufacturars.keySet());
productManufacturerCombo.valueProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(@SuppressWarnings("rawtypes") ObservableValue __, String s, String t1) {
enableRunOperation();
}
});
productPriceTextField.textProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue.matches("((\\d*)|(\\d+\\.\\d*))"))
productPriceTextField.setText(oldValue);
enableRunOperation();
});
createIngredientMap();
ingridientsCombo.getItems().addAll(ingredients.keySet());
// productLocationTextField.textProperty().addListener((observable,
// oldValue, newValue) -> {
// });
radioButtonContainerManageCatalogProduct.addRadioButtons(Arrays.asList(new RadioButton[] { addCatalogProductRadioButton, removeCatalogProductRadioButton }));
RequiredFieldValidator validator = new RequiredFieldValidator();
validator.setMessage("Input Required");
validator.setIcon(GlyphsBuilder.create(FontAwesomeIconView.class).glyph(FontAwesomeIcon.WARNING).size("1em").styleClass("error").build());
barcodeTextField.getValidators().add(validator);
barcodeTextField.focusedProperty().addListener((o, oldVal, newVal) -> {
if (!newVal)
barcodeTextField.validate();
});
RequiredFieldValidator validator2 = new RequiredFieldValidator();
validator2.setMessage("Input Required");
validator2.setIcon(GlyphsBuilder.create(FontAwesomeIconView.class).glyph(FontAwesomeIcon.WARNING).size("1em").styleClass("error").build());
productNameTextField.getValidators().add(validator2);
productNameTextField.focusedProperty().addListener((o, oldVal, newVal) -> {
if (!newVal)
productNameTextField.validate();
});
RequiredFieldValidator validator3 = new RequiredFieldValidator();
validator3.setMessage("Input Required");
validator3.setIcon(GlyphsBuilder.create(FontAwesomeIconView.class).glyph(FontAwesomeIcon.WARNING).size("1em").styleClass("error").build());
productPriceTextField.getValidators().add(validator3);
productPriceTextField.focusedProperty().addListener((o, oldVal, newVal) -> {
if (!newVal)
productPriceTextField.validate();
});
enableRunOperation();
}
use of javafx.beans.value.ObservableValue in project SmartCity-Market by TechnionYP5777.
the class ManageEmployeesTab method initialize.
@Override
public void initialize(URL location, ResourceBundle __) {
userTxt.textProperty().addListener((observable, oldValue, newValue) -> enableFinishBtn());
passTxt.textProperty().addListener((observable, oldValue, newValue) -> enableFinishBtn());
securityAnswerTxt.textProperty().addListener((observable, oldValue, newValue) -> enableFinishBtn());
radioBtnCont.addRadioButtons(Arrays.asList(new RadioButton[] { workerRadioBtn, managerRadioBtn }));
securityCombo.getItems().addAll(SecurityQuestions.getQuestions());
RequiredFieldValidator validator2 = new RequiredFieldValidator();
validator2.setMessage("Input Required");
validator2.setIcon(GlyphsBuilder.create(FontAwesomeIconView.class).glyph(FontAwesomeIcon.WARNING).size("1em").styleClass("error").build());
userTxt.getValidators().add(validator2);
userTxt.focusedProperty().addListener((o, oldVal, newVal) -> {
if (!newVal)
userTxt.validate();
});
RequiredFieldValidator validator3 = new RequiredFieldValidator();
validator3.setMessage("Input Required");
validator3.setIcon(GlyphsBuilder.create(FontAwesomeIconView.class).glyph(FontAwesomeIcon.WARNING).size("1em").styleClass("error").build());
passTxt.getValidators().add(validator3);
passTxt.focusedProperty().addListener((o, oldVal, newVal) -> {
if (!newVal)
passTxt.validate();
});
RequiredFieldValidator validator4 = new RequiredFieldValidator();
validator4.setMessage("Input Required");
validator4.setIcon(GlyphsBuilder.create(FontAwesomeIconView.class).glyph(FontAwesomeIcon.WARNING).size("1em").styleClass("error").build());
securityAnswerTxt.getValidators().add(validator4);
securityAnswerTxt.focusedProperty().addListener((o, oldVal, newVal) -> {
if (!newVal)
securityAnswerTxt.validate();
});
createEmployeesList();
searchEmployee.textProperty().addListener(obs -> {
String filter = searchEmployee.getText();
filteredDataEmployees.setPredicate(filter == null || filter.length() == 0 ? s -> true : s -> s.contains(filter));
});
employeesList.setCellFactory(CheckBoxListCell.forListView(new Callback<String, ObservableValue<Boolean>>() {
@Override
public ObservableValue<Boolean> call(String item) {
BooleanProperty observable = new SimpleBooleanProperty();
observable.set(selectedEmployees.contains(item));
observable.addListener((obs, wasSelected, isNowSelected) -> {
if (isNowSelected)
selectedEmployees.add(item);
else
selectedEmployees.remove(item);
enableRemoveButton();
});
return observable;
}
}));
securityCombo.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> __, String oldValue, String newValue) {
enableFinishBtn();
}
});
enableFinishBtn();
enableRemoveButton();
}
Aggregations