AddRemoveStringItem( final DOC column, final String label, final StringProperty value, final String tooltip, final ObservableBooleanValue enableThis) { super(label, tooltip, NO_DECORATOR); final String currentValue = value.get(); if (currentValue == null) { this.strings = FXCollections.observableArrayList(); } else { this.strings = FXCollections.observableArrayList( Stream.of(currentValue.split(",")) .filter(s -> !s.isEmpty()) .toArray(String[]::new) ); } this.column = requireNonNull(column); this.enabled = enableThis; this.cache = new SimpleStringProperty(); this.strings.addListener((ListChangeListener.Change<? extends String> c) -> { @SuppressWarnings("unchecked") final List<String> list = (List<String>) c.getList(); value.setValue(getFormatedString(list)); }); }
getSelectionModel().getSelectedIndices().addListener((Change<? extends Integer> c) -> { ObservableList<? extends Integer> selected = c.getList(); if (selected.isEmpty()) { eventStudio().broadcast(clearSelectionEvent(), ownerModule);
ObservableList<? extends Tab> tabs = change.getList();
private void treeViewChangeListener(ListChangeListener.Change<? extends TreeItem<N>> c) { if (c.getList().isEmpty()) { tree.setContextMenu(null); } else if (c.getList().size() == 1) { TreeItem<N> selectedTreeItem = c.getList().get(0); N value = selectedTreeItem.getValue(); if (value instanceof Project) { tree.setContextMenu(createProjectContextMenu(selectedTreeItem)); tree.setOnKeyPressed((KeyEvent ke) -> { if (ke.getCode() == KeyCode.F2) { renameNode(selectedTreeItem); } }); } else if (value instanceof Folder) { tree.setContextMenu(createFolderContextMenu(selectedTreeItem)); } else { tree.setContextMenu(null); } N node = selectedTreeItem.getValue(); String nodeId = (node instanceof Project) ? ((Project) node).getId() : null; deleteMenuItemDisableProperty.setValue(openedProjects.contains(nodeId)); } else { multipleSelectionChangeListener(c); } }
public static <T> Observable<ListChange<T>> fromObservableListChanges(final ObservableList<T> source) { return Observable.create((ObservableOnSubscribe<ListChange<T>>) subscriber -> { ListChangeListener<T> listener = c -> { while (c.next()) { if (c.wasAdded()) { c.getAddedSubList().forEach(v -> subscriber.onNext(ListChange.of(v,Flag.ADDED))); } if (c.wasRemoved()) { c.getRemoved().forEach(v -> subscriber.onNext(ListChange.of(v,Flag.REMOVED))); } if (c.wasUpdated()) { for (int i = c.getFrom(); i < c.getTo(); i++) { subscriber.onNext(ListChange.of(c.getList().get(i),Flag.UPDATED)); } } } }; source.addListener(listener); subscriber.setDisposable(JavaFxSubscriptions.unsubscribeInEventDispatchThread(() -> source.removeListener(listener))); }).subscribeOn(JavaFxScheduler.platform()); }
public static <T> Observable<ListChange<T>> fromObservableListChanges(final ObservableList<T> source) { return Observable.create((ObservableOnSubscribe<ListChange<T>>) subscriber -> { ListChangeListener<T> listener = c -> { while (c.next()) { if (c.wasAdded()) { c.getAddedSubList().forEach(v -> subscriber.onNext(ListChange.of(v,Flag.ADDED))); } if (c.wasRemoved()) { c.getRemoved().forEach(v -> subscriber.onNext(ListChange.of(v,Flag.REMOVED))); } if (c.wasUpdated()) { for (int i = c.getFrom(); i < c.getTo(); i++) { subscriber.onNext(ListChange.of(c.getList().get(i),Flag.UPDATED)); } } } }; source.addListener(listener); subscriber.setDisposable(JavaFxSubscriptions.unsubscribeInEventDispatchThread(() -> source.removeListener(listener))); }).subscribeOn(JavaFxScheduler.platform()); }
@Override public void onChanged(Change<? extends LimitViolation> c) { getChildren().clear(); addControl(RESOURCE_BUNDLE.getString("Columns"), columnsListView, 0, true); Set<Country> countries = new TreeSet<>(); Set<Double> nominalVoltages = new TreeSet<>(); for (LimitViolation violation : c.getList()) { SubjectInfoExtension extension = violation.getExtension(SubjectInfoExtension.class); if (extension != null) { countries.addAll(extension.getCountries()); nominalVoltages.addAll(extension.getNominalVoltages()); } } violationTypeListView = createListView(Sets.newLinkedHashSet(Arrays.asList(LimitViolationType.values())), "ViolationType", 3, 180); countryListView = createListView(countries, "Countries", 6, 100); nominalVoltagesListView = createListView(nominalVoltages, "NominalVoltages", 9, 100); addControl(RESOURCE_BUNDLE.getString("Precision"), precision, 12, false); } };
@Override public void onChanged(Change<? extends TreeItem<N>> c) { if (c.next() && c.wasReplaced() && c.getRemovedSize() == 1 && c.getRemoved().get(0).getValue() == null) { TreeItem<N> next = null; for (TreeItem<N> addedNode : c.getAddedSubList()) { if (treeModel.getName(addedNode.getValue()).equals(name)) { next = addedNode; break; } } if (next != null) { selectNode(next, pathList); } else { scrollToLastItem(last); } } c.getList().removeListener(this); } });
@SuppressWarnings("unchecked") private void onPanesChanged(final ListChangeListener.Change<? extends PartConfig<?, ?>> change) { while (change.next()) { System.out.println(change); if (change.wasPermutated()) { System.err.println("PERMUTATION -------------------------------------------------------------------"); // getView().removeTab(change.getList().get(change.getFrom())); // getView().addTab(0, change.getList().get(change.getFrom())); } if (change.wasRemoved()) { final List<PartConfig<?, ?>> rList = (List<PartConfig<?, ?>>) change.getRemoved(); callCommand(RemoveDockCommand.class, DockWaveBean.create().dockConfig(object()).parts(rList.toArray(new PartConfig<?, ?>[0]))); } if (change.wasAdded()) { // index change.getFrom() callCommand(AddDockCommand.class, DockWaveBean.create().dockConfig(object()).parts(change.getList().get(change.getFrom()))); } } }
@SuppressWarnings("unchecked") private void onTabsChangedJAT(final ListChangeListener.Change<? extends Dockable> change) { final SequentialTransition st = new SequentialTransition(); while (change.next()) { System.out.println(change); if (change.wasPermutated()) { System.err.println("PERMUTATION -------------------------------------------------------------------"); // getView().removeTab(change.getList().get(change.getFrom())); // getView().addTab(0, change.getList().get(change.getFrom())); } if (change.wasRemoved()) { st.getChildren().add(view().removeTab((List<Dockable>) change.getRemoved())); } if (change.wasAdded()) { st.getChildren().add(view().addTab(change.getFrom(), change.getList().get(change.getFrom()))); } } st.play(); }
static <E, F extends E> TransientListChange<E> fromCurrentStateOf(Change<F> ch) { List<F> list = ch.getList(); int from = ch.getFrom(); int to = ch.getTo(); List<F> removed; if(ch.wasPermutated()) { int len = to - from; removed = new ArrayList<>(len); for(int i = 0; i < len; ++i) { int pi = ch.getPermutation(from + i); removed.add(list.get(pi)); } } else { removed = ch.getRemoved(); } return new TransientListChangeImpl<>(ch.getList(), from, to, removed); } }
public static <T> Observable<T> fromObservableListUpdates(final ObservableList<T> source) { return Observable.create((ObservableOnSubscribe<T>) subscriber -> { ListChangeListener<T> listener = c -> { while (c.next()) { if (c.wasUpdated()) { for (int i = c.getFrom(); i < c.getTo(); i++) { subscriber.onNext(c.getList().get(i)); } } } }; source.addListener(listener); subscriber.setDisposable(JavaFxSubscriptions.unsubscribeInEventDispatchThread(() -> source.removeListener(listener))); }).subscribeOn(JavaFxScheduler.platform()); } public static <T> Observable<ListChange<T>> fromObservableListChanges(final ObservableList<T> source) {
public static <T> Observable<T> fromObservableListUpdates(final ObservableList<T> source) { return Observable.create((ObservableOnSubscribe<T>) subscriber -> { ListChangeListener<T> listener = c -> { while (c.next()) { if (c.wasUpdated()) { for (int i = c.getFrom(); i < c.getTo(); i++) { subscriber.onNext(c.getList().get(i)); } } } }; source.addListener(listener); subscriber.setDisposable(JavaFxSubscriptions.unsubscribeInEventDispatchThread(() -> source.removeListener(listener))); }).subscribeOn(JavaFxScheduler.platform()); } public static <T> Observable<ListChange<T>> fromObservableListChanges(final ObservableList<T> source) {
private void multipleSelectionChangeListener(ListChangeListener.Change<? extends TreeItem<N>> c) { for (TreeItem<N> selectedItem : c.getList()) { if (selectedItem.getValue() instanceof Project) { String id = ((Project) selectedItem.getValue()).getId(); boolean atleastOneOpened = openedProjects.stream().anyMatch(projectId -> projectId.equals(id)); deleteMenuItemDisableProperty.setValue(atleastOneOpened); if (atleastOneOpened) { break; } } } tree.setContextMenu(createMultipleContextMenu(c.getList())); }
private void update(ListChangeListener.Change<? extends S> c) { int from = c.getFrom(); int to = c.getTo(); Function<S, T> function = resolveMapper(); for (int i = from; i < to; i++) { elements[i] = function.apply(c.getList().get(i)); nextUpdate(i); } }
/** * @param c */ private void onFilterChange(Change<? extends NotificationStatus> c) { ObservableList statuses = c.getList(); for (NotificationView notificationView : notifications) { notificationView.setVisible(statuses.contains(notificationView.getNotification().getStatus())); } }
private void replace(ListChangeListener.Change<? extends S> c) { int from = c.getFrom(); int to = c.getTo(); List<T> removed = new ArrayList<>(); Function<S, T> function = resolveMapper(); for (int i = from; i < to; i++) { elements[i] = function.apply(c.getList().get(i)); removed.add(elements[i]); } nextReplace(from, to, removed); }
private void permutate(ListChangeListener.Change<? extends S> c) { int from = c.getFrom(); int to = c.getTo(); int[] perms = new int[from - to]; Function<S, T> function = resolveMapper(); for (int i = from, j = 0; i < to; i++) { perms[j++] = c.getPermutation(i); elements[i] = function.apply(c.getList().get(i)); } nextPermutation(from, to, perms); }