/**
* Constructor
*
* @param items 0 or more items
*/
@SafeVarargs
public VertexSelectionModel(T... items) {
this.items = Arrays.copyOf(items, items.length); // use copy for safety
selectedIndices = FXCollections.observableSet();
// setup unmodifiable lists
{
// first setup observable array lists that listen for changes of the selectedIndices set
final ObservableList<Integer> selectedIndicesAsList = FXCollections.observableArrayList();
final ObservableList<T> selectedItems = FXCollections.observableArrayList();
selectedIndices.addListener((SetChangeListener<Integer>) c -> {
if (c.wasAdded()) {
selectedIndicesAsList.add(c.getElementAdded());
selectedItems.add(getItems()[c.getElementAdded()]);
} else if (c.wasRemoved()) {
selectedIndicesAsList.remove(c.getElementRemoved());
selectedItems.remove(getItems()[c.getElementRemoved()]);
}
});
// wrap a unmodifiable observable list around the observable arrays lists
unmodifiableSelectedIndices = FXCollections.unmodifiableObservableList(selectedIndicesAsList);
unmodifiableSelectedItems = FXCollections.unmodifiableObservableList(selectedItems);
}
}
java类javafx.collections.SetChangeListener的实例源码
VertexSelectionModel.java 文件源码
项目:CORNETTO
阅读 21
收藏 0
点赞 0
评论 0
TimeGraphDrawnEventLayer.java 文件源码
项目:lttng-scope
阅读 22
收藏 0
点赞 0
评论 0
public TimeGraphDrawnEventLayer(TimeGraphWidget widget, Group parentGroup) {
super(widget, parentGroup);
ObservableSet<TimeGraphDrawnEventProvider> providers = TimeGraphDrawnEventProviderManager.instance().getRegisteredProviders();
/* Populate with the initial values */
providers.forEach(this::trackEventProvider);
/* Add listeners to track registered/deregistered providers */
providers.addListener((SetChangeListener<TimeGraphDrawnEventProvider>) change -> {
if (change == null) {
return;
}
TimeGraphDrawnEventProvider addedProvider = change.getElementAdded();
if (addedProvider != null) {
trackEventProvider(addedProvider);
}
TimeGraphDrawnEventProvider removedProvider = change.getElementRemoved();
if (removedProvider != null) {
untrackEventProvider(removedProvider);
}
});
filterListener = new DrawnEventFilterListener(getWidget());
}
EditableLabelSkin.java 文件源码
项目:fxutils
阅读 21
收藏 0
点赞 0
评论 0
private void init() {
editableState = false;
Platform.runLater(this::updateVisibleText);
// Register listeners and binds
editableLabel.getPseudoClassStates().addListener( (SetChangeListener<PseudoClass>) e -> {
if (e.getSet().contains(PseudoClass.getPseudoClass("editable"))) {
if ( !editableState ) {
// editableState change to editable
editableState = true;
updateVisibleText();
}
} else {
if ( editableState ) {
// editableState change to not editable
editableState = false;
updateVisibleText();
}
}
});
editableLabel.widthProperty().addListener( observable -> updateVisibleText() );
editableLabel.baseTextProperty().addListener( observable -> updateVisibleText() );
}
ObservableMergers.java 文件源码
项目:drd
阅读 18
收藏 0
点赞 0
评论 0
@SafeVarargs
public static <T, E> void mergeSet(Function<? super E, ? extends T> mapper,
ObservableSet<T> into, ObservableSet<E>... sets) {
final ObservableSet<T> set = into;
for (ObservableSet<E> s : sets) {
for (E item : s) {
set.add(mapper.apply(item));
}
s.addListener((SetChangeListener<E>) c -> {
if (c.wasAdded()) {
set.add(mapper.apply(c.getElementAdded()));
}
if (c.wasRemoved()) {
set.remove(mapper.apply(c.getElementRemoved()));
}
});
}
}
ArmaDisplay.java 文件源码
项目:arma-dialog-creator
阅读 19
收藏 0
点赞 0
评论 0
public ArmaDisplay() {
controlsMerged.add(getBackgroundControls());
controlsMerged.add(getControls());
displayProperties.add(iddProperty);
displayProperties.addListener(new SetChangeListener<DisplayProperty>() {
@Override
public void onChanged(Change<? extends DisplayProperty> change) {
if (change.wasRemoved() && change.getElementRemoved().getPropertyLookup() == DisplayPropertyLookup.IDD) {
throw new IllegalStateException("can't remove idd from display");
}
}
});
}
DisplayPropertiesEditorPane.java 文件源码
项目:arma-dialog-creator
阅读 17
收藏 0
点赞 0
评论 0
/**
@param display display to edit
*/
public DisplayPropertiesEditorPane(@NotNull ArmaDisplay display) {
initRootPane();
initAddDisplayPropertyMB();
this.display = display;
addPropertyEditors();
display.getDisplayProperties().addListener(new SetChangeListener<DisplayProperty>() {
@Override
public void onChanged(Change<? extends DisplayProperty> change) {
if (change.wasAdded()) {
addPropertyEditor(change.getElementAdded());
} else if (change.wasRemoved()) {
removePropertyEditor(change.getElementRemoved());
}
}
});
}
SetContentBinding.java 文件源码
项目:bridje-framework
阅读 20
收藏 0
点赞 0
评论 0
@Override
public void onChanged(SetChangeListener.Change<? extends E> change)
{
final Set<T> set = setRef.get();
if (set == null)
{
change.getSet().removeListener(this);
}
else
{
if (change.wasRemoved())
{
set.remove(converter.convert(change.getElementRemoved()));
}
else
{
set.add(converter.convert(change.getElementAdded()));
}
}
}
ModpackTabController.java 文件源码
项目:SmartModInserter
阅读 20
收藏 0
点赞 0
评论 0
private TreeItem<Object> getModpackTreeItem(Modpack modpack) {
TreeItem<Object> item = new TreeItem<>(modpack);
for (ModReference mod : modpack.getMods()) {
item.getChildren().add(getModTreeItem(mod));
}
modpack.getMods().addListener((SetChangeListener<ModReference>) change -> {
if (change.wasAdded()) {
Platform.runLater(() -> item.getChildren().add(getModTreeItem(change.getElementAdded())));
} else if (change.wasRemoved()) {
Platform.runLater(() -> {
item.getChildren().stream().filter(item2 -> item2.getValue() == change.getElementRemoved()).findAny().ifPresent(item3 -> item.getChildren().remove(item3));
});
}
});
return item;
}
Pie.java 文件源码
项目:dnainator
阅读 19
收藏 0
点赞 0
评论 0
@SuppressWarnings("unused")
private void onChange(SetChangeListener.Change<? extends String> change) {
slices.getChildren().clear();
if (styles.isEmpty()) {
return;
}
int start = 0;
int delta = FULLCIRCLE / styles.size();
for (String style : styles) {
Arc arc = new Arc(0, 0, radius, radius, start, delta);
arc.setType(ArcType.ROUND);
arc.getStyleClass().add(style);
slices.getChildren().add(arc);
start += delta;
}
}
SearchResultPane.java 文件源码
项目:subshare
阅读 20
收藏 0
点赞 0
评论 0
public SearchResultPane(final ImportPgpKeyFromServerData importPgpKeyFromServerData) {
this.importPgpKeyFromServerData = assertNotNull(importPgpKeyFromServerData, "importPgpKeyFromServerData"); //$NON-NLS-1$
loadDynamicComponentFxml(SearchResultPane.class, this);
pgpKeyTreePane.getCheckBoxVisibleForPgpKeyTreeItemClasses().add(PgpKeyPgpKeyTreeItem.class);
pgpKeyTreePane.getCheckedTreeItems().addListener(new SetChangeListener<PgpKeyTreeItem<?>>() {
@Override
public void onChanged(SetChangeListener.Change<? extends PgpKeyTreeItem<?>> change) {
final PgpKeyTreeItem<?> elementAdded = change.getElementAdded();
if (elementAdded instanceof PgpKeyPgpKeyTreeItem)
importPgpKeyFromServerData.getSelectedPgpKeyIds().add(((PgpKeyPgpKeyTreeItem)elementAdded).getPgpKey().getPgpKeyId());
final PgpKeyTreeItem<?> elementRemoved = change.getElementRemoved();
if (elementRemoved instanceof PgpKeyPgpKeyTreeItem)
importPgpKeyFromServerData.getSelectedPgpKeyIds().remove(((PgpKeyPgpKeyTreeItem)elementRemoved).getPgpKey().getPgpKeyId());
}
});
importPgpKeyFromServerData.getSelectedPgpKeyIds().addListener((InvalidationListener) observable -> updateComplete());
}
PgpKeyTreePane.java 文件源码
项目:subshare
阅读 22
收藏 0
点赞 0
评论 0
public PgpKeyTreePane() {
loadDynamicComponentFxml(PgpKeyTreePane.class, this);
treeTableView.setShowRoot(false);
treeTableView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
nameTreeTableColumn.setCellFactory(new Callback<TreeTableColumn<PgpKeyTreeItem<?>,String>, TreeTableCell<PgpKeyTreeItem<?>,String>>() {
@Override
public TreeTableCell<PgpKeyTreeItem<?>, String> call(TreeTableColumn<PgpKeyTreeItem<?>, String> param) {
return new NameCell();
}
});
checkedTreeItems.addListener(new SetChangeListener<PgpKeyTreeItem<?>>() {
@Override
public void onChanged(SetChangeListener.Change<? extends PgpKeyTreeItem<?>> change) {
final PgpKeyTreeItem<?> elementAdded = change.getElementAdded();
if (elementAdded != null)
elementAdded.setChecked(true);
final PgpKeyTreeItem<?> elementRemoved = change.getElementRemoved();
if (elementRemoved != null)
elementRemoved.setChecked(false);
}
});
}
WizardStepBuilder.java 文件源码
项目:MineIDE
阅读 21
收藏 0
点赞 0
评论 0
@SuppressWarnings("unchecked")
public WizardStepBuilder addFileChoosers(final String fieldName, final String fileChooseLabel,
final String startDir, final FileChooser.ExtensionFilter... filters)
{
final WizardStep current = this.current;
final HBox box = new HBox();
final JFXButton button = new JFXButton(fileChooseLabel);
button.setStyle("-fx-text-fill: BLACK;-fx-font-size: 18px;-fx-opacity: 0.7;");
final FileChooser fileChooser = new FileChooser();
fileChooser.setTitle(fileChooseLabel);
fileChooser.setInitialDirectory(new File(startDir));
fileChooser.getExtensionFilters().addAll(filters);
this.current.getData().put(fieldName, new SimpleSetProperty<File>());
button.setOnAction(e -> current.getData().get(fieldName)
.setValue(fileChooser.showOpenMultipleDialog(MineIDE.primaryStage)));
final Label label = new Label(fieldName);
GridPane.setHalignment(label, HPos.RIGHT);
GridPane.setHalignment(button, HPos.LEFT);
this.current.add(label, 0, this.current.getData().size() - 1);
final JFXTextField text = new JFXTextField();
text.setEditable(false);
((SimpleSetProperty<File>) this.current.getData().get(fieldName))
.addListener((SetChangeListener<File>) change ->
{
text.setText("");
change.getSet().forEach(file -> text.appendText(file.getAbsolutePath() + ", "));
text.setText(text.getText().substring(0, text.getText().length() - 2));
});
box.getChildren().addAll(text, button);
this.current.add(box, 1, this.current.getData().size() - 1);
return this;
}
ObservableMergers.java 文件源码
项目:drd
阅读 22
收藏 0
点赞 0
评论 0
@SafeVarargs
public static <T> void mergeSet(ObservableSet<T> into, ObservableSet<T>... sets) {
final ObservableSet<T> set = into;
for (ObservableSet<T> s : sets) {
set.addAll(s);
s.addListener((SetChangeListener<T>) c -> {
if (c.wasAdded()) {
set.add(c.getElementAdded());
}
if (c.wasRemoved()) {
set.remove(c.getElementRemoved());
}
});
}
}
ValueSetAttribute.java 文件源码
项目:factoryfx
阅读 31
收藏 0
点赞 0
评论 0
public ValueSetAttribute(Class<T> itemType) {
super(null);
this.itemType = itemType;
final ObservableSet<T> observableSet = FXCollections.observableSet(new HashSet<>());
value= observableSet;
observableSet.addListener((SetChangeListener<T>) change -> {
updateListeners(get());
});
}
RelatedAnimeFinderService.java 文件源码
项目:manami
阅读 19
收藏 0
点赞 0
评论 0
/**
* @param cache
* Instance of the cache.
* @param app
* Instance of the manami app.
* @param list
* List which being checked for related anime.
* @param observer
* Observer which is being notified about the progress. It also
* gets the result as a list through notification.
*/
public RelatedAnimeFinderService(final Cache cache, final Manami app, final List<? extends MinimalEntry> list, final Observer observer) {
this.app = app;
this.cache = cache;
this.list = list;
addObserver(observer);
myAnime = newArrayList();
relatedAnime = newHashMap();
animeToCheck = new Stack<>();
checkedAnime = new ObservableSetWrapper<>(newHashSet());
checkedAnime.addListener((SetChangeListener<InfoLink>) event -> {
setChanged();
notifyObservers(new ProgressState(checkedAnime.size() + 1, animeToCheck.size()));
});
}
UserListMainTreeItem.java 文件源码
项目:subshare
阅读 16
收藏 0
点赞 0
评论 0
@Override
public void onChanged(final SetChangeListener.Change<? extends User> c) {
final User userAdded = c.getElementAdded();
if (userAdded != null) {
addTreeItemsViewCallback(Collections.singleton(userAdded));
selectUser(userAdded);
}
final User userRemoved = c.getElementRemoved();
if (userRemoved != null)
removeTreeItemsViewCallback(Collections.singleton(userRemoved));
}
SelectKeyPane.java 文件源码
项目:subshare
阅读 19
收藏 0
点赞 0
评论 0
public SelectKeyPane(final AssignOwnerTrustData assignOwnerTrustData) {
this.assignOwnerTrustData = assertNotNull(assignOwnerTrustData, "assignOwnerTrustData");
loadDynamicComponentFxml(SelectKeyPane.class, this);
assignOwnerTrustData.assignToAllPgpKeysProperty().addListener(assignToAllPgpKeysChangeListener);
toggleGroup.selectedToggleProperty().addListener(toggleGroupSelectedToggleListener);
assignOwnerTrustData.ownerTrustProperty().addListener(ownerTrustListener);
pgpKeyTreePane.getCheckBoxVisibleForPgpKeyTreeItemClasses().add(PgpKeyPgpKeyTreeItem.class);
final UserRootPgpKeyTreeItem root = new UserRootPgpKeyTreeItem(pgpKeyTreePane, assignOwnerTrustData.getUser());
pgpKeyTreePane.getTreeTableView().setRoot(root);
for (TreeItem<PgpKeyTreeItem<?>> treeItem : root.getChildren()) {
if (treeItem instanceof PgpKeyPgpKeyTreeItem) {
PgpKeyPgpKeyTreeItem ti = (PgpKeyPgpKeyTreeItem) treeItem;
ti.setChecked(assignOwnerTrustData.getPgpKeys().contains(ti.getPgpKey()));
}
}
pgpKeyTreePane.getCheckedTreeItems().addListener(new SetChangeListener<PgpKeyTreeItem<?>>() {
@Override
public void onChanged(SetChangeListener.Change<? extends PgpKeyTreeItem<?>> change) {
final PgpKeyTreeItem<?> elementAdded = change.getElementAdded();
if (elementAdded instanceof PgpKeyPgpKeyTreeItem)
assignOwnerTrustData.getPgpKeys().add(((PgpKeyPgpKeyTreeItem)elementAdded).getPgpKey());
final PgpKeyTreeItem<?> elementRemoved = change.getElementRemoved();
if (elementRemoved instanceof PgpKeyPgpKeyTreeItem)
assignOwnerTrustData.getPgpKeys().remove(((PgpKeyPgpKeyTreeItem)elementRemoved).getPgpKey());
assignToSelectedPgpKeysRadioButton.setSelected(true);
updateComplete();
}
});
}
FileTreePane.java 文件源码
项目:subshare
阅读 14
收藏 0
点赞 0
评论 0
@Override
public void onChanged(final SetChangeListener.Change<? extends File> c) {
assertFxApplicationThread();
if (c.getElementRemoved() != null)
unselectTreeItemForUnselectedFile(c.getElementRemoved());
if (c.getElementAdded() != null)
selectFileTreeItemForSelectedFile(c.getElementAdded());
updateDisable();
}
User.java 文件源码
项目:exchange
阅读 27
收藏 0
点赞 0
评论 0
@Override
public void readPersisted() {
UserPayload persisted = storage.initAndGetPersistedWithFileName("UserPayload", 100);
userPayload = persisted != null ? persisted : new UserPayload();
checkNotNull(userPayload.getPaymentAccounts(), "userPayload.getPaymentAccounts() must not be null");
checkNotNull(userPayload.getAcceptedLanguageLocaleCodes(), "userPayload.getAcceptedLanguageLocaleCodes() must not be null");
paymentAccountsAsObservable = FXCollections.observableSet(userPayload.getPaymentAccounts());
currentPaymentAccountProperty = new SimpleObjectProperty<>(userPayload.getCurrentPaymentAccount());
userPayload.setAccountId(String.valueOf(Math.abs(keyRing.getPubKeyRing().hashCode())));
// language setup
if (!userPayload.getAcceptedLanguageLocaleCodes().contains(LanguageUtil.getDefaultLanguageLocaleAsCode()))
userPayload.getAcceptedLanguageLocaleCodes().add(LanguageUtil.getDefaultLanguageLocaleAsCode());
String english = LanguageUtil.getEnglishLanguageLocaleCode();
if (!userPayload.getAcceptedLanguageLocaleCodes().contains(english))
userPayload.getAcceptedLanguageLocaleCodes().add(english);
paymentAccountsAsObservable.addListener((SetChangeListener<PaymentAccount>) change -> {
userPayload.setPaymentAccounts(new HashSet<>(paymentAccountsAsObservable));
persist();
});
currentPaymentAccountProperty.addListener((ov) -> {
userPayload.setCurrentPaymentAccount(currentPaymentAccountProperty.get());
persist();
});
}
EventStreams.java 文件源码
项目:ReactFX
阅读 19
收藏 0
点赞 0
评论 0
public static <T> EventStream<SetChangeListener.Change<? extends T>> changesOf(ObservableSet<T> set) {
return new EventStreamBase<SetChangeListener.Change<? extends T>>() {
@Override
protected Subscription observeInputs() {
SetChangeListener<T> listener = c -> emit(c);
set.addListener(listener);
return () -> set.removeListener(listener);
}
};
}
TimelineManager.java 文件源码
项目:Lyrebird
阅读 22
收藏 0
点赞 0
评论 0
public void subscribe(final SetChangeListener<Status> tweetChangeListener) {
loadedTweets.addListener(tweetChangeListener);
}
BeanPathAdapter.java 文件源码
项目:Java-9-Programming-Blueprints
阅读 21
收藏 0
点赞 0
评论 0
/**
* {@inheritDoc}
*/
@Override
public final void onChanged(
SetChangeListener.Change<? extends Object> change) {
syncCollectionValues(getDirty(), true, false, null, change, null);
}
Controller.java 文件源码
项目:minc-launcher
阅读 23
收藏 0
点赞 0
评论 0
private void setupModsListView() {
listViewMods.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
listViewMods.setCellFactory(CheckBoxListCell.forListView(new Callback<ModRow, ObservableValue<Boolean>>() {
@Override
public ObservableValue<Boolean> call(ModRow item) {
return item.onProperty();
}
}));
// Set up filtered data
FilteredList<ModRow> filteredModsByText = new FilteredList<>(modList.getMods(), p -> true);
FilteredList<ModRow> filteredModsByStatus = new FilteredList<>(filteredModsByText, p -> true);
// filter with name
textFieldModsFilter.textProperty().addListener((observable, oldValue, newValue) -> {
filteredModsByText.setPredicate(modRow -> {
// If filter text is empty, display all persons.
if (newValue == null || newValue.isEmpty()) {
return true;
}
// Compare first name and last name of every modRow with filter text.
String lowerCaseFilter = newValue.toLowerCase();
if (modRow.getFile() != null && modRow.getFile().getName().toLowerCase().contains(lowerCaseFilter)) {
return true; // Filter matches name.
}
return false; // Does not match.
});
});
toggleGrooupMods.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
public void changed(ObservableValue<? extends Toggle> ov,
Toggle old_toggle, Toggle new_toggle) {
if (toggleGrooupMods.getSelectedToggle() != null) {
System.out.println(toggleGrooupMods.getSelectedToggle());
if (radioButtonModsAll.isSelected()) {
filteredModsByStatus.setPredicate(row -> {
return true;
});
} else if (radioButtonModsEnabled.isSelected()) {
filteredModsByStatus.setPredicate(row -> {
return row.isChecked();
});
} else if (radioButtonModsDisabled.isSelected()) {
filteredModsByStatus.setPredicate(row -> {
return !row.isChecked();
});
} else {
log.error("what?");
}
}
}
});
listViewMods.setItems(filteredModsByStatus);
modList.getEnabled().addListener(new SetChangeListener<ModRow>() {
@Override
public void onChanged(Change<? extends ModRow> c) {
log.debug("modified: c=" + c);
labelEanbledModsCount.setText(ResStrings.get("label.enabled.mods") + ": " + modList.getEnabled().size());
}
});
loadModList();
}
Market.java 文件源码
项目:MacroIIDiscrete
阅读 30
收藏 0
点赞 0
评论 0
public void addListenerToBuyerSet(SetChangeListener<? super EconomicAgent> setChangeListener) {
buyers.addListener(setChangeListener);
}
Market.java 文件源码
项目:MacroIIDiscrete
阅读 31
收藏 0
点赞 0
评论 0
public void addListenerToSellerSet(SetChangeListener<? super EconomicAgent> setChangeListener) {
sellers.addListener(setChangeListener);
}
Market.java 文件源码
项目:MacroIIDiscrete
阅读 34
收藏 0
点赞 0
评论 0
public void removeListenerFromBuyerSet(SetChangeListener<? super EconomicAgent> setChangeListener) {
buyers.removeListener(setChangeListener);
}
Market.java 文件源码
项目:MacroIIDiscrete
阅读 31
收藏 0
点赞 0
评论 0
public void removeListenerFromSellerSet(SetChangeListener<? super EconomicAgent> setChangeListener) {
sellers.removeListener(setChangeListener);
}
GraphViewMXGraph.java 文件源码
项目:FollowTheBitcoin
阅读 22
收藏 0
点赞 0
评论 0
public GraphViewMXGraph(BiConsumer<MouseEvent, IBase> clickHandler) {
this.clickHandler = clickHandler;
mxGraph = new mxGraph();
mxGraphModel = mxGraph.getModel();
mxGraphView = mxGraph.getView();
mxGraphLayout = new mxHierarchicalLayout(mxGraph, SwingConstants.NORTH);
graphPane = new Pane();
selectedItems.addListener((SetChangeListener<? super IBase>) change -> updateSelectedNodes());
}