Java 类javafx.scene.control.SelectionModel 实例源码

项目:Java-9-Programming-Blueprints    文件:BeanPathAdapter.java   
/**
 * Attempts to coerce a value into a {@link String}
 * 
 * @param v
 *            the value to coerce
 * @return the coerced value (null when value failed to be coerced)
 */
public static <VT> String coerceToString(final VT v) {
    String cv = null;
    if (v != null
            && SelectionModel.class.isAssignableFrom(v.getClass())) {
        cv = ((SelectionModel<?>) v).getSelectedItem() != null ? ((SelectionModel<?>) v)
                .getSelectedItem().toString() : null;
    } else if (v != null
            && (Calendar.class.isAssignableFrom(v.getClass()) || Date.class
                    .isAssignableFrom(v.getClass()))) {
        final Date date = Date.class.isAssignableFrom(v.getClass()) ? (Date) v
                : ((Calendar) v).getTime();
        cv = SDF.format(date);
    } else if (v != null) {
        cv = v.toString();
    }
    return cv;
}
项目:jabref    文件:KeyBindingsDialogController.java   
@FXML
private void initialize() {
    viewModel = new KeyBindingsDialogViewModel(keyBindingRepository, dialogService, preferences);

    keyBindingsTable.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
    viewModel.selectedKeyBindingProperty().bind(
            EasyBind.monadic(keyBindingsTable.selectionModelProperty())
                    .flatMap(SelectionModel::selectedItemProperty)
                    .selectProperty(TreeItem::valueProperty)
    );
    keyBindingsTable.setOnKeyPressed(evt -> viewModel.setNewBindingForCurrent(evt));
    keyBindingsTable.rootProperty().bind(
            EasyBind.map(viewModel.rootKeyBindingProperty(),
                    keybinding -> new RecursiveTreeItem<>(keybinding, KeyBindingViewModel::getChildren))
    );
    actionColumn.setCellValueFactory(cellData -> cellData.getValue().getValue().nameProperty());
    shortcutColumn.setCellValueFactory(cellData -> cellData.getValue().getValue().shownBindingProperty());
    resetColumn.setCellFactory(new ViewModelTreeTableCellFactory<KeyBindingViewModel, String>()
            .withGraphic(keyBinding -> keyBinding.getIcon().map(IconTheme.JabRefIcon::getGraphicNode).orElse(null))
            .withOnMouseClickedEvent(keyBinding -> evt -> keyBinding.resetToDefault())
    );
}
项目:java-ml-projects    文件:AppUtils.java   
@SuppressWarnings("rawtypes")
public static void disableIfNotSelected(SelectionModel selectionModel, Node... nodes) {
    BooleanBinding selected = selectionModel.selectedItemProperty().isNull();
    for (Node node : nodes) {
        node.disableProperty().bind(selected);
    }
}
项目:fx-animation-editor    文件:BindingFunctions.java   
public static <T> void bind(SelectionModel<T> selectionModel, ObjectProperty<T> selectedItem) {
    selectionModel.selectedItemProperty().addListener((v, o, n) -> {
        selectedItem.set(n);
    });
    selectedItem.addListener((v, o, n) -> {
        selectionModel.select(n);
    });
    selectionModel.select(selectedItem.get());
}
项目:Java-9-Programming-Blueprints    文件:BeanPathAdapter.java   
/**
 * @see BeanPathAdapter.FieldBean#performOperation(String, String,
 *      Class, String, Observable, Class, SelectionModel, FieldProperty,
 *      FieldBeanOperation)
 */
public <T> FieldProperty<?, ?, ?> performOperation(
        final String fieldPath, final ObservableList<T> observableList,
        final Class<T> listValueClass, final String collectionItemPath,
        final Class<?> collectionItemPathType,
        final SelectionModel<T> selectionModel,
        final FieldProperty<?, ?, ?> itemMaster,
        final FieldBeanOperation operation) {
    return performOperation(fieldPath, fieldPath, listValueClass,
            collectionItemPath, (Observable) observableList,
            collectionItemPathType, selectionModel, itemMaster,
            operation);
}
项目:Java-9-Programming-Blueprints    文件:BeanPathAdapter.java   
/**
 * @see BeanPathAdapter.FieldBean#performOperation(String, String,
 *      Class, String, Observable, Class, SelectionModel, FieldProperty,
 *      FieldBeanOperation)
 */
public <T> FieldProperty<?, ?, ?> performOperation(
        final String fieldPath, final ObservableSet<T> observableSet,
        final Class<T> setValueClass, final String collectionItemPath,
        final Class<?> collectionItemPathType,
        final SelectionModel<T> selectionModel,
        final FieldProperty<?, ?, ?> itemMaster,
        final FieldBeanOperation operation) {
    return performOperation(fieldPath, fieldPath, setValueClass,
            collectionItemPath, (Observable) observableSet,
            collectionItemPathType, selectionModel, itemMaster,
            operation);
}
项目:Java-9-Programming-Blueprints    文件:BeanPathAdapter.java   
/**
 * @see BeanPathAdapter.FieldBean#performOperation(String, String,
 *      Class, String, Observable, Class, SelectionModel, FieldProperty,
 *      FieldBeanOperation)
 */
public <K, V> FieldProperty<?, ?, ?> performOperation(
        final String fieldPath,
        final ObservableMap<K, V> observableMap,
        final Class<V> mapValueClass, final String collectionItemPath,
        final Class<?> collectionItemPathType,
        final SelectionModel<V> selectionModel,
        final FieldProperty<?, ?, ?> itemMaster,
        final FieldBeanOperation operation) {
    return performOperation(fieldPath, fieldPath, mapValueClass,
            collectionItemPath, (Observable) observableMap,
            collectionItemPathType, selectionModel, itemMaster,
            operation);
}
项目:Gargoyle    文件:DockTabPaneBehavior.java   
private void moveSelection(int startIndex, int delta) {
    final DockTabPane tabPane = getControl();
    int tabIndex = findValidTab(startIndex, delta);
    if (tabIndex > -1) {
        final SelectionModel<DockTab> selectionModel = tabPane.getSelectionModel();
        selectionModel.select(tabIndex);
    }
    tabPane.requestFocus();
}
项目:aomrolemapper    文件:FxUtils.java   
public static <T> void reselectCurrent(ListView<T> list) {
    SelectionModel<T> model = list.getSelectionModel();
    int i = model.getSelectedIndex();
    model.clearSelection();
    System.out.println("selecting i = " + i);
    model.select(i);
}
项目:aomrolemapper    文件:FxUtils.java   
public static <T> void selectNearby(ListView<T> list, T item) {
    SelectionModel<T> model = list.getSelectionModel();
    int i = model.getSelectedIndex();
    int n = list.getItems().size();
    if (i + 1 < n) model.select(i + 1);
    else if (i - 1 >= 0) model.select(i - 1);
    else model.clearSelection();
}
项目:Java-9-Programming-Blueprints    文件:BeanPathAdapter.java   
/**
 * Binds a {@link ObservableList} by traversing the bean's field tree. An
 * additional item path can be specified when the path points to a
 * {@link Collection} that contains beans that also need traversed in order
 * to establish the final value. For example: If a field path points to
 * <code>phoneNumbers</code> (relative to the {@link #getBean()}) where
 * <code>phoneNumbers</code> is a {@link Collection} that contains
 * <code>PhoneNumber</code> instances which in turn have a field called
 * <code>areaCode</code> then an item path can be passed in addition to the
 * field path with <code>areaCode</code> as it's value.
 * 
 * @param fieldPath
 *            the <b><code>.</code></b> separated field paths relative to
 *            the {@link #getBean()} that will be traversed
 * @param itemFieldPath
 *            the <b><code>.</code></b> separated field paths relative to
 *            each item in the bean's underlying {@link Collection} that
 *            will be traversed (empty/null when each item value does not
 *            need traversed)
 * @param itemFieldPathType
 *            the {@link Class} of that the item path points to
 * @param list
 *            the {@link ObservableList} to bind to the field class type of
 *            the property
 * @param listValueType
 *            the class type of the {@link ObservableList} value
 * @param selectionModel
 *            the {@link SelectionModel} used to set the values within the
 *            {@link ObservableList} <b>only applicable when the
 *            {@link ObservableList} is used for selection(s) and therefore
 *            cannot be updated directly because it is read-only</b>
 * @param selectionModelItemMasterPath
 *            when binding to {@link SelectionModel} items, this will be the
 *            optional path to the collection field that contains all the
 *            items to select from
 */
public <E> void bindContentBidirectional(final String fieldPath,
        final String itemFieldPath, final Class<?> itemFieldPathType,
        final ObservableList<E> list, final Class<E> listValueType,
        final SelectionModel<E> selectionModel,
        final String selectionModelItemMasterPath) {
    FieldProperty<?, ?, ?> itemMaster = null;
    if (selectionModelItemMasterPath != null
            && !selectionModelItemMasterPath.isEmpty()) {
        itemMaster = getRoot().performOperation(
                selectionModelItemMasterPath, list, listValueType,
                itemFieldPath, itemFieldPathType, null, null,
                FieldBeanOperation.CREATE_OR_FIND);
    }
    getRoot().performOperation(fieldPath, list, listValueType,
            itemFieldPath, itemFieldPathType, selectionModel, itemMaster,
            FieldBeanOperation.BIND);
}
项目:Java-9-Programming-Blueprints    文件:BeanPathAdapter.java   
/**
 * Binds a {@link ObservableSet} by traversing the bean's field tree. An
 * additional item path can be specified when the path points to a
 * {@link Collection} that contains beans that also need traversed in order
 * to establish the final value. For example: If a field path points to
 * <code>phoneNumbers</code> (relative to the {@link #getBean()}) where
 * <code>phoneNumbers</code> is a {@link Collection} that contains
 * <code>PhoneNumber</code> instances which in turn have a field called
 * <code>areaCode</code> then an item path can be passed in addition to the
 * field path with <code>areaCode</code> as it's value.
 * 
 * @param fieldPath
 *            the <b><code>.</code></b> separated field paths relative to
 *            the {@link #getBean()} that will be traversed
 * @param itemFieldPath
 *            the <b><code>.</code></b> separated field paths relative to
 *            each item in the bean's underlying {@link Collection} that
 *            will be traversed (empty/null when each item value does not
 *            need traversed)
 * @param itemFieldPathType
 *            the {@link Class} of that the item path points to
 * @param set
 *            the {@link ObservableSet} to bind to the field class type of
 *            the property
 * @param setValueType
 *            the class type of the {@link ObservableSet} value
 * @param selectionModel
 *            the {@link SelectionModel} used to set the values within the
 *            {@link ObservableSet} <b>only applicable when the
 *            {@link ObservableSet} is used for selection(s) and therefore
 *            cannot be updated directly because it is read-only</b>
 * @param selectionModelItemMasterPath
 *            when binding to {@link SelectionModel} items, this will be the
 *            optional path to the collection field that contains all the
 *            items to select from
 */
public <E> void bindContentBidirectional(final String fieldPath,
        final String itemFieldPath, final Class<?> itemFieldPathType,
        final ObservableSet<E> set, final Class<E> setValueType,
        final SelectionModel<E> selectionModel,
        final String selectionModelItemMasterPath) {
    FieldProperty<?, ?, ?> itemMaster = null;
    if (selectionModelItemMasterPath != null
            && !selectionModelItemMasterPath.isEmpty()) {
        itemMaster = getRoot().performOperation(
                selectionModelItemMasterPath, set, setValueType,
                itemFieldPath, itemFieldPathType, null, null,
                FieldBeanOperation.CREATE_OR_FIND);
    }
    getRoot().performOperation(fieldPath, set, setValueType, itemFieldPath,
            itemFieldPathType, selectionModel, itemMaster,
            FieldBeanOperation.BIND);
}
项目:Java-9-Programming-Blueprints    文件:BeanPathAdapter.java   
/**
 * Binds a {@link ObservableMap} by traversing the bean's field tree. An
 * additional item path can be specified when the path points to a
 * {@link Collection} that contains beans that also need traversed in order
 * to establish the final value. For example: If a field path points to
 * <code>phoneNumbers</code> (relative to the {@link #getBean()}) where
 * <code>phoneNumbers</code> is a {@link Collection} that contains
 * <code>PhoneNumber</code> instances which in turn have a field called
 * <code>areaCode</code> then an item path can be passed in addition to the
 * field path with <code>areaCode</code> as it's value.
 * 
 * @param fieldPath
 *            the <b><code>.</code></b> separated field paths relative to
 *            the {@link #getBean()} that will be traversed
 * @param itemFieldPath
 *            the <b><code>.</code></b> separated field paths relative to
 *            each item in the bean's underlying {@link Collection} that
 *            will be traversed (empty/null when each item value does not
 *            need traversed)
 * @param itemFieldPathType
 *            the {@link Class} of that the item path points to
 * @param map
 *            the {@link ObservableMap} to bind to the field class type of
 *            the property
 * @param mapValueType
 *            the class type of the {@link ObservableMap} value
 * @param selectionModel
 *            the {@link SelectionModel} used to set the values within the
 *            {@link ObservableMap} <b>only applicable when the
 *            {@link ObservableMap} is used for selection(s) and therefore
 *            cannot be updated directly because it is read-only</b>
 * @param selectionModelItemMasterPath
 *            when binding to {@link SelectionModel} items, this will be the
 *            optional path to the collection field that contains all the
 *            items to select from
 */
public <K, V> void bindContentBidirectional(final String fieldPath,
        final String itemFieldPath, final Class<?> itemFieldPathType,
        final ObservableMap<K, V> map, final Class<V> mapValueType,
        final SelectionModel<V> selectionModel,
        final String selectionModelItemMasterPath) {
    FieldProperty<?, ?, ?> itemMaster = null;
    if (selectionModelItemMasterPath != null
            && !selectionModelItemMasterPath.isEmpty()) {
        itemMaster = getRoot().performOperation(
                selectionModelItemMasterPath, map, mapValueType,
                itemFieldPath, itemFieldPathType, null, null,
                FieldBeanOperation.CREATE_OR_FIND);
    }
    getRoot().performOperation(fieldPath, map, mapValueType, itemFieldPath,
            itemFieldPathType, selectionModel, itemMaster,
            FieldBeanOperation.BIND);
}
项目:aomrolemapper    文件:MainController.java   
private void setupTabPane() {
    SelectionModel<Tab> model = vTabPane.getSelectionModel();
    model.selectedItemProperty().addListener(mTabChangeListener);
    model.clearSelection();
    model.selectFirst();
}
项目:aomrolemapper    文件:FxUtils.java   
public static <T> void forceSelect(ListView<T> list, T item) {
    SelectionModel<T> model = list.getSelectionModel();
    model.clearSelection();
    model.select(item);
}
项目:aomrolemapper    文件:FxUtils.java   
public static <T> void forceSelect(ChoiceBox<T> list, T item) {
    SelectionModel<T> model = list.getSelectionModel();
    model.clearSelection();
    model.select(item);
}
项目:aomrolemapper    文件:FxUtils.java   
public static <T> void forceSelectFirst(ListView<T> list) {
    SelectionModel<T> model = list.getSelectionModel();
    model.clearSelection();
    model.selectFirst();
}
项目:agile    文件:NavPane.java   
public NavPane() {

        this.setCellFactory(new NavItemCell());
        this.getItems().addAll(NavItem.navs);

        this.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);

        SelectionModel sm = this.getSelectionModel();

        sm.selectedItemProperty().addListener(
                new ChangeListener<NavItem>() {
                    @Override
                    public void changed(ObservableValue<? extends NavItem> observable, NavItem oldValue, NavItem newValue) {

                        System.out.println("change" + oldValue + newValue);
                        Event.fireEvent(NavPane.this, new NavItemEvent(oldValue, newValue, NavItemEvent.NAV_CHANGED));

                    }
                });

    }
项目:Java-9-Programming-Blueprints    文件:BeanPathAdapter.java   
/**
 * Constructor
 * 
 * @param bean
 *            the bean that the path belongs to
 * @param fullPath
 *            the full <code>.</code> separated path to the
 *            {@link FieldProperty}
 * @param fieldName
 *            the name of the field within the bean
 * @param notifyProperty
 *            the {@link FieldPathValueProperty} that will be set every
 *            time the {@link FieldProperty#setValue(Object)} is
 *            performed or an item within the value is changed
 * @param declaredFieldType
 *            the declared {@link Class} of the field
 * @param collectionItemPath
 *            the the <code>.</code> separated field names of the
 *            {@link Observable} collection (only applicable when the
 *            {@link Observable} is a {@link ObservableList},
 *            {@link ObservableSet}, or {@link ObservableMap})
 * @param collectionObservable
 *            the {@link Observable} {@link Collection} used to bind to
 *            the {@link FieldProperty} <b>OR</b> when the
 *            {@link SelectionModel} is specified this is the
 *            {@link Observable} {@link Collection} of available items
 *            to select from
 * @param collectionType
 *            the {@link Collection} {@link Class} used to attempt to
 *            transform the underlying field {@link Observable}
 *            {@link Collection} to the {@link Collection} {@link Class}
 *            (only applicable when the actual field is a
 *            {@link Collection})
 * @param collectionSelectionModel
 *            the {@link SelectionModel} used to set the values within
 *            the {@link Observable} <b>only applicable when the
 *            {@link Observable} is used for selection(s) and therefore
 *            cannot be updated directly because it is read-only</b>
 * @param itemMaster
 *            the {@link FieldProperty} that contains the item(s) that
 *            the {@link SelectionModel} can select from
 */
@SuppressWarnings("unchecked")
protected FieldProperty(final BT bean, final String fullPath,
        final String fieldName,
        final FieldPathValueProperty notifyProperty,
        final Class<T> declaredFieldType,
        final String collectionItemPath,
        final Observable collectionObservable,
        final Class<?> collectionType,
        final SelectionModel<?> collectionSelectionModel,
        final FieldProperty<?, ?, ?> itemMaster) {
    super();
    this.fullPath = fullPath;
    this.notifyProperty = notifyProperty;
    this.fieldHandle = new FieldHandle<BT, T>(bean, fieldName,
            declaredFieldType);
    this.itemMaster = itemMaster;
    this.collectionObservable = new WeakReference<Observable>(
            collectionObservable);
    this.collectionItemPath = collectionItemPath;
    this.collectionType = collectionType;
    this.collectionSelectionModel = (SelectionModel<Object>) collectionSelectionModel;
    if (this.collectionSelectionModel != null
            && this.itemMaster != null) {
        this.itemMaster.addListener(this);
    }
    setDerived();
}
项目:Java-9-Programming-Blueprints    文件:BeanPathAdapter.java   
/**
 * @return a {@link SelectionModel} for the {@link FieldProperty} when
 *         the field references a collection/map for item selection or
 *         {@code null} when not a selection {@link FieldProperty}
 */
protected SelectionModel<Object> getCollectionSelectionModel() {
    return collectionSelectionModel;
}