/** Gets the index of the currently focused item. */ private int getFocusIdx() { if (!autoCompletePopup.isShowing()) { return -1; } List<ObservableSet<PseudoClass>> collect = autoCompletePopup.getItems() .stream() .map(this::getStyleableNode) .filter(Objects::nonNull) .map(Node::getPseudoClassStates) .collect(Collectors.toList()); for (int i = 0; i < collect.size(); i++) { if (collect.get(i).contains(PseudoClass.getPseudoClass("focused"))) { return i; } } return -1; }
@Override public boolean contains(Object o) { return getDelegate().contains(o); }
/** * @param root * The "checked" state of all the descendants, including the root * itself, will be monitored */ public CheckedTreeItemCollector(CheckBoxTreeItem<T> root) { this.root = root; root.addEventHandler(TreeModificationEvent.ANY, event -> { @SuppressWarnings("unchecked") TreeModificationEvent<T> mod = (TreeModificationEvent<T>) event; T value = mod.getTreeItem().getValue(); boolean checked = mod.getTreeItem().isSelected(); synchronized (this.checkedItems) { if (checked && !this.checkedItems.contains(value)) { this.checkedItems.add(value); } else if (!checked && this.checkedItems.contains(value)) { this.checkedItems.remove(value); } } }); this.checkedItems.addListener((SetChangeListener<T>) change -> { if (change.getElementAdded() != null) { setCheckedStateForValue(root, change.getElementAdded(), true); } if (change.getElementRemoved() != null) { setCheckedStateForValue(root, change.getElementRemoved(), false); } }); }
/** * @param root * The "checked" state of all the descendants, including the root * itself, will be monitored */ public CheckedTreeItemCollector(CheckBoxTreeItem<T> root) { this.root = root; root.addEventHandler(TreeModificationEvent.ANY, event -> { @SuppressWarnings("unchecked") TreeModificationEvent<T> mod = (TreeModificationEvent<T>) event; T value = mod.getTreeItem().getValue(); boolean checked = mod.getTreeItem().isSelected(); synchronized (this.checkedItems) { if (checked && !this.checkedItems.contains(value)) { this.checkedItems.add(value); } else if (!checked && this.checkedItems.contains(value)) { this.checkedItems.remove(value); } } }); this.checkedItems.addListener((SetChangeListener<T>) change -> { if (change.getElementAdded() != null) { setCheckedStateForValue(root, change.getElementAdded(), true); } if (change.getElementRemoved() != null) { setCheckedStateForValue(root, change.getElementRemoved(), false); } }); }