javafx.scene.control.TabPane.TabClosingPolicy#javafx.collections.ListChangeListener源码实例Demo

下面列出了javafx.scene.control.TabPane.TabClosingPolicy#javafx.collections.ListChangeListener 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: gef   文件: ListListenerHelperEx.java
/**
 * Infers the elementary changes constituting the change of the
 * {@link ObservableList}.
 *
 * @param <E>
 *            The element type of the {@link ObservableList} that was
 *            changed.
 * @param change
 *            The (atomic) change to infer elementary changes from.
 * @return A list of elementary changes.
 */
protected static <E> List<ElementarySubChange<E>> getElementaryChanges(
		ListChangeListener.Change<? extends E> change) {
	List<ElementarySubChange<E>> elementarySubChanges = new ArrayList<>();
	while (change.next()) {
		if (change.wasReplaced()) {
			elementarySubChanges.add(ElementarySubChange.replaced(
					change.getRemoved(), change.getAddedSubList(),
					change.getFrom(), change.getTo()));
		} else if (change.wasRemoved()) {
			elementarySubChanges.add(ElementarySubChange.removed(
					change.getRemoved(), change.getFrom(), change.getTo()));
		} else if (change.wasAdded()) {
			elementarySubChanges.add(ElementarySubChange.added(
					new ArrayList<>(change.getAddedSubList()),
					change.getFrom(), change.getTo()));
		} else if (change.wasPermutated()) {
			// find permutation
			int[] permutation = CollectionUtils.getPermutation(change);
			elementarySubChanges.add(ElementarySubChange.<E> permutated(
					permutation, change.getFrom(), change.getTo()));
		}
	}
	change.reset();
	return elementarySubChanges;
}
 
源代码2 项目: mzmine3   文件: ColorPalettePreviewField.java
public ColorPalettePreviewField(SimpleColorPalette palette) {
  super();
  rects = new ArrayList<>();
  listeners = new ArrayList<>();
  setPalette(palette);

  setMinWidth(RECT_HEIGHT * 10);
  setMaxWidth(RECT_HEIGHT * 20);
  setPrefWidth(palette.size() * RECT_HEIGHT);

  validDrag = false;

  palette.addListener((ListChangeListener<Color>) c -> {
    while (c.next()) {
      this.setPrefWidth(palette.size() * RECT_HEIGHT);
      if (c.wasRemoved() && selected >= palette.size()) {
        selected = palette.size() - 1;
      }
    }
    updatePreview();
  });
}
 
源代码3 项目: chart-fx   文件: MetaDataRenderer.java
public InfoHBox() {
    super();
    setMouseTransparent(true);

    // adjust size to 0 if there are no messages to show
    getChildren().addListener((ListChangeListener<Node>) ch -> {
        if (getChildren().isEmpty()) {
            setMinWidth(0);
            setSpacing(0);
            setPadding(Insets.EMPTY);
        } else {
            setPadding(new Insets(5, 5, 5, 5));
            setMinWidth(200);
            setSpacing(5);
        }
    });
}
 
源代码4 项目: chart-fx   文件: ToolBarFlowPane.java
public void registerListener() {
    this.getChildren().addListener((ListChangeListener.Change<? extends Node> c) -> adjustToolBarWidth());

    setOnMouseClicked(mevt -> {
        if (chart.toolBarPinnedProperty().isBound()) {
            return;
        }
        chart.setToolBarPinned(!chart.isToolBarPinned());
    });
    chart.toolBarPinnedProperty().addListener((obj, valOld, valNew) -> {
        if (valNew) {
            chart.setPinnedSide(javafx.geometry.Side.TOP);
            this.setBackground(new Background(new BackgroundFill(selectedColour, CornerRadii.EMPTY, Insets.EMPTY)));
        } else {
            chart.setPinnedSide(null);
            this.setBackground(new Background(new BackgroundFill(defaultColour, CornerRadii.EMPTY, Insets.EMPTY)));
        }
        chart.requestLayout();
    });
}
 
源代码5 项目: chart-fx   文件: DataViewer.java
public DataViewer() {
    super();
    HBox.setHgrow(this, Priority.ALWAYS);
    VBox.setVgrow(this, Priority.ALWAYS);
    getStylesheets().add(getClass().getResource("DataViewer.css").toExternalForm());

    dataViewRoot.getSubDataViews().addListener(subDataViewChangeListener);
    dataViewRoot.activeSubViewProperty().addListener(activeSubDataViewChangeListener);
    userToolBarItems.addListener((ListChangeListener<Node>) change -> updateToolBar());
    showListStyleDataViews.addListener((ch, o, n) -> updateToolBar());
    selectedViewProperty().addListener((ch, o, n) -> updateToolBar());

    windowDecorationProperty().addListener((ch, o, n) -> updateWindowDecorations(dataViewRoot));
    detachableWindowProperty().addListener((ch, o, n) -> updateDetachableWindowProperty(dataViewRoot));
    windowDecorationVisible().addListener((ch, o, n) -> setWindowDecoration(Boolean.TRUE.equals(n) ? WindowDecoration.BAR : WindowDecoration.NONE));
    closeWindowButtonVisibleProperty().addListener(closeWindowButtonHandler);

    final Label spacer = new Label();
    HBox.setHgrow(spacer, Priority.ALWAYS);
    toolBar = new ToolBar(separator1, viewList, separator2, spacer);
    this.setCenter(dataViewRoot);
    requestLayout();
}
 
源代码6 项目: chart-fx   文件: TableViewer.java
protected void rendererChanged(final ListChangeListener.Change<? extends Renderer> change) {
    boolean dataSetChanges = false;
    while (change.next()) {
        // handle added renderer
        change.getAddedSubList().forEach(renderer -> renderer.getDatasets().addListener(datasetChangeListener));
        if (!change.getAddedSubList().isEmpty()) {
            dataSetChanges = true;
        }

        // handle removed renderer
        change.getRemoved().forEach(renderer -> renderer.getDatasets().removeListener(datasetChangeListener));
        if (!change.getRemoved().isEmpty()) {
            dataSetChanges = true;
        }
    }

    if (dataSetChanges) {
        datasetsChanged(null);
    }
}
 
源代码7 项目: tornadofx-controls   文件: MultiSelect.java
private void configureItemChangeListener() {
	items.addListener((ListChangeListener<E>) c -> {
		while (c.next()) {
			if (c.wasRemoved())
				getChildren().remove(c.getFrom(), c.getTo() + 1);

			if (c.wasAdded()) {
				for (int i = 0; i < c.getAddedSize(); i++) {
					E item = c.getAddedSubList().get(i);
					Node cell = getCellFactory().apply(this, item);
					getChildren().add(i + c.getFrom(), cell);
				}
			}
		}
	});
}
 
源代码8 项目: chart-fx   文件: Chart.java
protected void rendererChanged(final ListChangeListener.Change<? extends Renderer> change) {
    FXUtils.assertJavaFxThread();
    while (change.next()) {
        // handle added renderer
        change.getAddedSubList().forEach(renderer -> {
            // update legend and recalculateLayout on datasetChange
            renderer.getDatasets().addListener(datasetChangeListener);
            // add listeners to all datasets already in the renderer
            renderer.getDatasets().forEach(set -> set.addListener(dataSetDataListener));
        });

        // handle removed renderer
        change.getRemoved().forEach(renderer -> {
            renderer.getDatasets().removeListener(datasetChangeListener);
            renderer.getDatasets().forEach(set -> set.removeListener(dataSetDataListener));
        });
    }
    // reset change to allow derived classes to add additional listeners to renderer changes
    change.reset();

    requestLayout();
    updateLegend(getDatasets(), getRenderers());
}
 
源代码9 项目: ariADDna   文件: SyncSettingsController.java
/**
 * Native init method.
 * Create VUFS folders tree view
 * @param location
 * @param resources
 */
@Override
public void initialize(URL location, ResourceBundle resources) {
    //TODO: replace to getting elements from Repository
    CheckBoxTreeItem<String> root = new CheckBoxTreeItem<>("Root");
    root.setExpanded(true);
    CheckBoxTreeItem<String> folder1 = new CheckBoxTreeItem<>("Folder1");
    folder1.getChildren().addAll(
            new CheckBoxTreeItem<>("MyFoto"),
            new CheckBoxTreeItem<>("OtherFiles")
    );
    root.getChildren().addAll(
            folder1,
            new CheckBoxTreeItem<>("Documents"),
            new CheckBoxTreeItem<>("WorkFiles"),
            new CheckBoxTreeItem<>("Projects"));

    // Create the CheckTreeView with the data
    final CheckTreeView<String> checkTreeView = new CheckTreeView<>(root);
    checkTreeView.getCheckModel().getCheckedItems()
            .addListener((ListChangeListener<TreeItem<String>>) c -> {
                System.out.println(checkTreeView.getCheckModel().getCheckedItems());
            });
    checkTreeView.setId("sync-tree-view");
    container.getChildren().add(checkTreeView);
}
 
源代码10 项目: bisq-core   文件: ProposalListPresentation.java
@Inject
public ProposalListPresentation(ProposalService proposalService,
                                BsqStateService bsqStateService,
                                MyProposalListService myProposalListService,
                                BsqWalletService bsqWalletService,
                                ProposalValidator proposalValidator) {
    this.proposalService = proposalService;
    this.bsqStateService = bsqStateService;
    this.myProposalListService = myProposalListService;
    this.bsqWalletService = bsqWalletService;
    this.proposalValidator = proposalValidator;

    bsqStateService.addBsqStateListener(this);
    myProposalListService.addListener(this);

    proposalService.getTempProposals().addListener((ListChangeListener<Proposal>) c -> {
        updateLists();
    });
    proposalService.getProposalPayloads().addListener((ListChangeListener<ProposalPayload>) c -> {
        updateLists();
    });
}
 
源代码11 项目: scenic-view   文件: CSSFXMonitor.java
private void monitorStages(ObservableList<? extends Window> observableStages) {
    // first listen for changes
    observableStages.addListener(new ListChangeListener<Window>() {
        @Override
        public void onChanged(javafx.collections.ListChangeListener.Change<? extends Window> c) {
            while (c.next()) {
                if (c.wasRemoved()) {
                    for (Window removedStage : c.getRemoved()) {
                        unregisterStage(removedStage);
                    }
                }
                if (c.wasAdded()) {
                    for (Window addedStage : c.getAddedSubList()) {
                        registerStage(addedStage);
                    }
                }
            }
        }
    });

    // then process already existing stages
    for (Window stage : observableStages) {
        registerStage(stage);
    }

}
 
源代码12 项目: scenic-view   文件: CSSFXMonitor.java
private void monitorScenes(ObservableList<Scene> observableScenes) {
    // first listen for changes
    observableScenes.addListener(new ListChangeListener<Scene>() {
        @Override
        public void onChanged(javafx.collections.ListChangeListener.Change<? extends Scene> c) {
            while (c.next()) {
                if (c.wasRemoved()) {
                    for (Scene removedScene : c.getRemoved()) {
                        unregisterScene(removedScene);
                    }
                }
                if (c.wasAdded()) {
                    for (Scene addedScene : c.getAddedSubList()) {
                        registerScene(addedScene);
                    }
                }
            }
        }
    });
    
    // then add existing values
    for (Scene s : observableScenes) {
        registerScene(s);
    }
}
 
源代码13 项目: scenic-view   文件: CSSFXMonitor.java
@Override
public void onChanged(javafx.collections.ListChangeListener.Change<? extends String> c) {
    while (c.next()) {
        if (c.wasRemoved()) {
            for (String removedURI : c.getRemoved()) {
                if (!isAManagedSourceURI(removedURI)) {
                    registrar.unregister(origin, removedURI);
                }
            }
        }
        if (c.wasAdded()) {
            for (String newURI : c.getAddedSubList()) {
                if (!isAManagedSourceURI(newURI)) {
                    registrar.register(origin, newURI, c.getList());
                }
            }
        }
    }
}
 
源代码14 项目: BlockMap   文件: MapPane.java
public MapPane(WorldRendererCanvas renderer) {
	this.renderer = Objects.requireNonNull(renderer);
	catchEvents = new Region();
	ListChangeListener<Node> l = c -> {
		getChildren().clear();
		getChildren().addAll(decorationLayers);
		getChildren().add(catchEvents);
		getChildren().addAll(pinLayers);
		getChildren().addAll(settingsLayers);
	};
	settingsLayers.addListener(l);
	pinLayers.addListener(l);
	decorationLayers.addListener(l);

	catchEvents.setPickOnBounds(true);
	EventHandler<? super Event> refireEvent = event -> decorationLayers.forEach(l1 -> l1.fireEvent(event));
	catchEvents.addEventFilter(EventType.ROOT, refireEvent);
	pinLayers.addListener((ListChangeListener<Node>) e -> {
		while (e.next()) {
			e.getRemoved().forEach(n -> n.removeEventFilter(EventType.ROOT, refireEvent));
			e.getAddedSubList().forEach(n -> n.addEventFilter(EventType.ROOT, refireEvent));
		}
	});

	decorationLayers.add(renderer);
}
 
源代码15 项目: gef   文件: ContentBehavior.java
@Override
public void onChanged(
		ListChangeListener.Change<? extends Object> change) {
	// System.out.println("Content changed " + change);
	// XXX: An atomic operation (including setAll()) on the
	// ObservableList will lead to an atomic change here; we do not have
	// to iterate through the individual changes but may simply
	// synchronize with the list as it emerges after the changes have
	// been applied.
	// while (change.next()) {
	// if (change.wasRemoved()) {
	// removeContentPartChildren(getHost(),
	// ImmutableList.copyOf(change.getRemoved()));
	// } else if (change.wasAdded()) {
	// addContentPartChildren(getHost(),
	// ImmutableList.copyOf(change.getAddedSubList()),
	// change.getFrom());
	// } else if (change.wasPermutated()) {
	// throw new UnsupportedOperationException(
	// "Reorder not yet implemented");
	// }
	// }
	synchronizeContentPartChildren(getHost(), change.getList());
}
 
源代码16 项目: WorkbenchFX   文件: WorkbenchUtils.java
/**
 * Adds a {@link ListChangeListener} to an {@link ObservableList}.
 *
 * @param list to add a listener to
 * @param addAction action to be performed when an object was added to the {@link ObservableList}
 * @param removeAction action to be performed when an object was removed
 *                     from the {@link ObservableList}
 * @param <T> type of the {@link ObservableList}
 */
public static <T> void addListListener(ObservableList<T> list,
    Consumer<T> addAction,
    Consumer<T> removeAction) {
  list.addListener((ListChangeListener<? super T>) c -> {
    while (c.next()) {
      if (!c.wasPermutated() && !c.wasUpdated()) {
        for (T remitem : c.getRemoved()) {
          removeAction.accept(remitem);
        }
        for (T additem : c.getAddedSubList()) {
          addAction.accept(additem);
        }
      }
    }
  });
}
 
源代码17 项目: trex-stateless-gui   文件: FilterController.java
public FilterController() {
    Initialization.initializeFXML(this, "/fxml/pkt_capture/Filter.fxml");
    PortsManager.getInstance().addPortServiceModeChangedListener(this::updateFilters);
    updateFilters();

    applyBtn.setOnAction(event -> {
        onUpdateHandlers.forEach(UpdateFilterHandler::onFilterUpdate);
        applyBtn.setDisable(true);
    });

    rxFilter
            .getCheckModel()
            .getCheckedItems()
            .addListener((ListChangeListener<String>) c -> applyBtn.setDisable(!applyBtnDisabled));

    txFilter
            .getCheckModel()
            .getCheckedItems()
            .addListener((ListChangeListener<String>) c -> applyBtn.setDisable(!applyBtnDisabled));

    bpfFilter
            .textProperty()
            .addListener((observableValue, oldValue, newValue) -> applyBtn.setDisable(!applyBtnDisabled));
}
 
源代码18 项目: MyBox   文件: TableManageController.java
protected void tableChanged(ListChangeListener.Change<? extends P> change) {
//        while (change.next()) {
//            if (change.wasPermutated()) {
//                for (int i = change.getFrom(); i < change.getTo(); ++i) {
//
//                }
//            } else if (change.wasUpdated()) {
//
//            } else {
//                for (P remitem : change.getRemoved()) {
//
//                }
//                for (P additem : change.getAddedSubList()) {
//                }
//            }
//        }
        checkSelected();
    }
 
源代码19 项目: green_android   文件: NotificationBarPane.java
public NotificationBarPane(Node content) {
    super(content);
    progressBar = new ProgressBar();
    label = new Label("infobar!");
    bar = new HBox(label);
    bar.setMinHeight(0.0);
    bar.getStyleClass().add("info-bar");
    bar.setFillHeight(true);
    setBottom(bar);
    // Figure out the height of the bar based on the CSS. Must wait until after we've been added to the parent node.
    sceneProperty().addListener(o -> {
        if (getParent() == null) return;
        getParent().applyCss();
        getParent().layout();
        barHeight = bar.getHeight();
        bar.setPrefHeight(0.0);
    });
    items = FXCollections.observableArrayList();
    items.addListener((ListChangeListener<? super Item>) change -> {
        config();
        showOrHide();
    });
}
 
源代码20 项目: AILibs   文件: DescriptiveStatisticsTimelineView.java
public DescriptiveStatisticsTimelineView(final ObservableList<Double> scores) {
	super(new NumberAxis(), new NumberAxis());

	// defining the axes
	this.getXAxis().setLabel("elapsed time (s)");

	// defining a series
	this.scores = scores;
	this.performanceSeries = new Series<>();
	this.getData().add(this.performanceSeries);
	this.update();
	scores.addListener(new ListChangeListener<Double>() {

		@Override
		public void onChanged(final Change<? extends Double> c) {
			DescriptiveStatisticsTimelineView.this.update();
		}
	});
}
 
源代码21 项目: phoebus   文件: PVList.java
private void createContextMenu()
{
    // Publish selected items as PV
    final ListChangeListener<PVInfo> sel_changed = change ->
    {
        final List<ProcessVariable> pvs = change.getList()
                                                .stream()
                                                .map(info -> new ProcessVariable(info.name.get()))
                                                .collect(Collectors.toList());
        SelectionService.getInstance().setSelection(PVListApplication.DISPLAY_NAME, pvs);
    };
    table.getSelectionModel().getSelectedItems().addListener(sel_changed);
    table.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);

    // Context menu with selection-based entries, i.e. PV contributions
    final ContextMenu menu = new ContextMenu();
    table.setOnContextMenuRequested(event ->
    {
        menu.getItems().clear();
        ContextMenuHelper.addSupportedEntries(table, menu);
        menu.show(table.getScene().getWindow());
    });
    table.setContextMenu(menu);
}
 
源代码22 项目: OpenLabeler   文件: PolygonItem.java
public Handle(int idx, ObservableList<Double> pts) {
   super(0, 0, TagBase.HANDLE_RADIUS);
   index = idx;
   points = pts;
   setCenterX(points.get(idx * 2));
   setCenterY(points.get(idx * 2 + 1));

   var changeListListener = new ListChangeListener<Double>()
   {
      @Override
      public void onChanged(Change<? extends Double> c) {
         if (!c.next()) {
            return;
         }
         if (c.wasReplaced()) {
            setCenterX(points.get(idx * 2));
            setCenterY(points.get(idx * 2 + 1));
         }
      }
   };

   parentProperty().addListener(((observable, oldValue, newValue) -> {
      if (newValue == null) {
         points.removeListener(changeListListener);
      }
      else {
         points.addListener(changeListListener);
      }
   }));

   setCursor(Cursor.CROSSHAIR);
   setOnMousePressed(this::onMousePressed);
   setOnMouseDragged(this::onMouseDragged);
   setOnMouseReleased(this::onMouseReleased);
}
 
源代码23 项目: constellation   文件: TableVisualisation.java
public void setSelectionModelListener(final ListChangeListener<C> listener) {
    if (currentListener != null) {
        table.getSelectionModel().getSelectedItems().removeListener(currentListener);
    }
    if (listener != null) {
        table.getSelectionModel().getSelectedItems().addListener(listener);
    }
    currentListener = listener;
}
 
源代码24 项目: constellation   文件: TableVisualisation.java
@Override
public void resultChanged(final List<C> selectedItems, final List<C> ignoredItems) {
    Platform.runLater(() -> {
        // remove the selection change listener
        final ListChangeListener<C> listener = currentListener;
        setSelectionModelListener(null);

        // add items from the ignored list which are currently selected
        final int[] selectionIndices = new int[selectedItems.size() + ignoredItems.size()];
        if (!ignoredItems.isEmpty()) {
            final List<C> currentSelection = table.getSelectionModel().getSelectedItems();
            ignoredItems.forEach(item -> {
                if (currentSelection.contains(item)) {
                    selectionIndices[selectedItems.size() + ignoredItems.indexOf(item)] = table.getItems().indexOf(item);
                }
            });
        }

        // add all items from the selected list
        if (!selectedItems.isEmpty()) {
            selectedItems.forEach(item -> {
                selectionIndices[selectedItems.indexOf(item)] = table.getItems().indexOf(item);
            });
        }

        // clear the table selection and then make the new selection
        table.getSelectionModel().clearSelection();
        if (selectionIndices.length > 0) {
            table.getSelectionModel().selectIndices(selectionIndices[0], selectionIndices);
        }

        // add the selection change listener back
        setSelectionModelListener(listener);
    });
}
 
源代码25 项目: pikatimer   文件: AgeGroups.java
public AgeGroups() {
    // if the agIncrementProperty or the agStartProperty change, 
    // invalidate the agMap and agNameMaps
    agIncrementProperty.addListener(listener -> {invalidateMaps();});
    agStartProperty.addListener(listener -> {invalidateMaps();});
    customIncrementsProperty.addListener(listener -> {invalidateMaps();});
    customIncrementObservableList.addListener((ListChangeListener<AgeGroupIncrement>) c -> {invalidateMaps(); });
    customNamesProperty.addListener(listener -> {invalidateMaps();});       
    
}
 
源代码26 项目: milkman   文件: SettableTreeItem.java
@SneakyThrows
public void setChildren(ObservableList<TreeItem<T>> children) {
	Field fc = TreeItem.class.getDeclaredField("children");
	fc.setAccessible(true);
	fc.set(this, children);
	
	Field f = TreeItem.class.getDeclaredField("childrenListener");
	f.setAccessible(true);
	ListChangeListener<TreeItem<T>> object = (ListChangeListener<TreeItem<T>>) f.get(this);
	
       children.addListener(object);

}
 
源代码27 项目: tilesfx   文件: TimelineTileSkin.java
@Override protected void registerListeners() {
    super.registerListeners();
    tile.timePeriodProperty().addListener(periodListener);
    tile.getChartData().addListener((ListChangeListener<ChartData>) c -> {
        while(c.next()) {
            if (c.wasAdded()) {
                c.getAddedSubList().forEach(chartData -> addData(chartData));
            }
        }
        Set<ChartData> dataSet = tile.getChartData().stream().filter(data -> !dataList.contains(data)).collect(Collectors.toSet());
        Platform.runLater(() -> tile.removeChartData(new ArrayList<>(dataSet)));
    });
    tile.getSections().addListener((ListChangeListener<Section>) c -> {
        while(c.next()) {
            if (c.wasAdded()) {
                c.getAddedSubList().forEach(section -> {
                    Rectangle sectionRect = new Rectangle();
                    sectionRect.setMouseTransparent(true);
                    sections.put(section, sectionRect);
                });
            } else if (c.wasRemoved()) {
                c.getRemoved().forEach(section -> sections.remove(section));
            }
        }
        sectionGroup.getChildren().setAll(sections.values());
        resize();
    });
}
 
源代码28 项目: chart-fx   文件: XYChart.java
@Override
protected void rendererChanged(final ListChangeListener.Change<? extends Renderer> change) {
    while (change.next()) {
        // handle added renderer
        //TODO: check if this function is still necessary (presently commented)
        // for (final Renderer renderer : change.getAddedSubList()) {
        // checkRendererForRequiredAxes(renderer);
        //}
    }
    // reset change to allow derived classes to add additional listeners to renderer changes
    change.reset();
    super.rendererChanged(change);
}
 
protected R bind(final R other) {
    errorStyleProperty().bind(other.errorStyleProperty());
    pointReductionProperty().bind(other.pointReductionProperty());
    assumeSortedDataProperty().bind(other.assumeSortedDataProperty());
    dashSizeProperty().bind(other.dashSizeProperty());
    minRequiredReductionSizeProperty().bind(other.minRequiredReductionSizeProperty());
    markerSizeProperty().bind(other.markerSizeProperty());
    drawMarkerProperty().bind(other.drawMarkerProperty());
    polyLineStyleProperty().bind(other.polyLineStyleProperty());
    drawChartDataSetsProperty().bind(other.drawChartDataSetsProperty());
    drawBarsProperty().bind(other.drawBarsProperty());
    drawBubblesProperty().bind(other.drawBubblesProperty());
    allowNaNsProperty().bind(other.allowNaNsProperty());
    shiftBarProperty().bind(other.shiftBarProperty());
    shiftBarOffsetProperty().bind(other.shiftBarOffsetProperty());
    dynamicBarWidthProperty().bind(other.dynamicBarWidthProperty());
    barWidthPercentageProperty().bind(other.barWidthPercentageProperty());
    barWidthProperty().bind(other.barWidthProperty());
    getAxes().setAll(other.getAxes());
    intensityFadingProperty().bind(other.intensityFadingProperty());

    // Bindings.bindContent(axesList(), other.axesList());

    other.getAxes().addListener((ListChangeListener<? super Axis>) change -> {
        while (change.next()) {
            getAxes().addAll(change.getAddedSubList());
            getAxes().removeAll(change.getRemoved());
        }
    });
    return getThis();
}
 
源代码30 项目: gef   文件: ListListenerHelperEx.java
/**
 * Notifies all attached {@link InvalidationListener}s and
 * {@link ListChangeListener}s about the change.
 *
 * @param change
 *            The change to notify listeners about.
 */
public void fireValueChangedEvent(
		ListChangeListener.Change<? extends E> change) {
	notifyInvalidationListeners();
	if (change != null) {
		notifyListChangeListeners(change);
	}
}