List of usage examples for javafx.collections.transformation SortedList SortedList
@SuppressWarnings("unchecked") public SortedList(@NamedArg("source") ObservableList<? extends E> source, @NamedArg("comparator") Comparator<? super E> comparator)
From source file:com.properned.application.ManageLocaleController.java
public void initializeList() { logger.info("Initialize locale list"); list = FXCollections.observableArrayList(multiLanguageProperties.getMapPropertiesByLocale().keySet()); SortedList<Locale> sortedList = new SortedList<>(list, new Comparator<Locale>() { @Override// ww w. j a va2 s . c o m public int compare(Locale o1, Locale o2) { return o1.toString().compareTo(o2.toString()); } }); localeList.setItems(sortedList); localeList.setCellFactory(c -> new LocaleListCell(multiLanguageProperties, this)); list.addListener(new ListChangeListener<Locale>() { @Override public void onChanged(Change<? extends Locale> c) { if (c.next()) { if (c.wasAdded()) { List<? extends Locale> addedSubList = c.getAddedSubList(); for (Locale locale : addedSubList) { try { MultiLanguageProperties.getInstance().addLocale(locale); } catch (IOException e) { Properned.getInstance().showError( MessageReader.getInstance().getMessage("manageLocale.error.errorAddLocale"), e); } } } } } }); }
From source file:cz.lbenda.gui.tableView.FilterMenuItem.java
private FilterMenuItem(VBox panel, FilterableTableView filterableTableView, FilterableTableColumn filterableTableColumn) { super(null, panel); this.filterableTableView = filterableTableView; okCancelBar.setAlignment(Pos.BOTTOM_RIGHT); this.tableColumn = filterableTableColumn; this.getStyleClass().add("listview-menu-item"); SortedList<Item> sortedList = new SortedList<>(filteredList, Item::compareTo); ListView<Item> listView = new ListView<>(); listView.setItems(sortedList);//from w ww .j a v a 2 s.com listView.setCellFactory(CheckBoxListCell.forListView(Item::onProperty)); TextField textField = new TextField(); textField.textProperty().addListener((observable, oldValue, newValue) -> { filteredList.setPredicate(item -> StringUtils.isEmpty(newValue) || !StringUtils.isEmpty(item.getName()) && item.getName().toLowerCase().contains(newValue.toLowerCase())); }); prepareBars(); prepareQuickFilter(); prepareOkCancelBar(); panel.getChildren().add(buttonBar); panel.getChildren().add(textField); panel.getChildren().add(listView); panel.getChildren().add(quickFilter); panel.getChildren().add(okCancelBar); //noinspection unchecked filterableTableView.sortProperty().addListener((observable, oldValue, newValue) -> { if (newValue == null || (newValue != comparatorAsc && newValue != comparatorDsc)) { filterableTableColumn.removeRightIndicator(sortIndicator); sortToggleGroup.selectToggle(null); } else { filterableTableColumn.removeRightIndicator(sortIndicator); filterableTableColumn.addRightIndicator(sortIndicator); if (newValue == comparatorAsc) { sortIndicator.setImage(IconFactory.getInstance().image(this, ICON_SORT_ASC, IconFactory.IconLocation.INDICATOR)); } else { sortIndicator.setImage(IconFactory.getInstance().image(this, ICON_SORT_DSC, IconFactory.IconLocation.INDICATOR)); } } }); }
From source file:com.properned.application.SystemController.java
public void initialize() { logger.info("Initialize System controller"); localeButton.disableProperty().bind(multiLanguageProperties.isLoadedProperty().not()); saveButton.disableProperty().bind(multiLanguageProperties.isDirtyProperty().not() .or(multiLanguageProperties.isLoadedProperty().not())); Stage primaryStage = Properned.getInstance().getPrimaryStage(); primaryStage.titleProperty()/* ww w .j av a2 s . c o m*/ .bind(multiLanguageProperties.baseNameProperty() .concat(Bindings.when(multiLanguageProperties.isLoadedProperty()) .then(new SimpleStringProperty(" (") .concat(multiLanguageProperties.parentDirectoryPathProperty()).concat(")")) .otherwise("")) .concat(Bindings.when(multiLanguageProperties.isDirtyProperty()).then(" *").otherwise(""))); FilteredList<String> filteredList = new FilteredList<>(multiLanguageProperties.getListMessageKey(), new Predicate<String>() { @Override public boolean test(String t) { String filter = filterText.getText(); if (filter == null || filter.equals("")) { return true; } return t.contains(filter); } }); SortedList<String> sortedList = new SortedList<>(filteredList, new Comparator<String>() { @Override public int compare(String o1, String o2) { return o1.compareTo(o2); } }); messageKeyList.setItems(sortedList); filterText.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { // Filter the list filteredList.setPredicate(new Predicate<String>() { @Override public boolean test(String t) { String filter = filterText.getText(); if (filter == null || filter.equals("")) { return true; } return t.contains(filter); } }); // check the add button disabled status if (isKeyCanBeAdded(newValue)) { addButton.setDisable(false); } else { addButton.setDisable(true); } } }); ChangeListener<String> changeMessageListener = new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { logger.info("Message key selection changed : " + newValue); valueList.setItems(FXCollections.observableArrayList()); valueList.setItems(FXCollections .observableArrayList(multiLanguageProperties.getMapPropertiesByLocale().keySet())); } }; messageKeyList.getSelectionModel().selectedItemProperty().addListener(changeMessageListener); messageKeyList.setCellFactory(c -> new MessageKeyListCell(multiLanguageProperties)); valueList.setCellFactory(c -> new ValueListCell(multiLanguageProperties, messageKeyList)); filterText.setOnKeyReleased(new EventHandler<KeyEvent>() { @Override public void handle(KeyEvent event) { if (event.getCode() == KeyCode.DOWN) { messageKeyList.requestFocus(); event.consume(); } else if (event.getCode() == KeyCode.ENTER) { addKey(); event.consume(); } } }); }