Search in sources :

Example 6 with ListChangeListener

use of javafx.collections.ListChangeListener in project Challenger4SysAdmins by fvarrui.

the class TreeItemFactory method createChallengeTreeItem.

/**
 * @param challenge un chellenge
 * @return un item
 */
public static TreeItem<Object> createChallengeTreeItem(Challenge challenge) {
    TreeItem<Object> challengeItem = new TreeItem<Object>();
    challengeItem.setExpanded(true);
    challengeItem.setValue(challenge);
    for (Goal goal : challenge.getGoals()) {
        challengeItem.getChildren().add(createGoalTreeItem(goal));
    }
    challenge.goalsProperty().addListener(new ListChangeListener<Goal>() {

        public void onChanged(Change<? extends Goal> c) {
            while (c.next()) {
                c.getAddedSubList().stream().forEach(g -> challengeItem.getChildren().add(createGoalTreeItem(g)));
                c.getRemoved().stream().forEach(g -> {
                    TreeItem<Object> item = challengeItem.getChildren().stream().filter(i -> i.getValue().equals(g)).findFirst().get();
                    challengeItem.getChildren().remove(item);
                });
            }
        }
    });
    return challengeItem;
}
Also used : TestGroup(fvarrui.sysadmin.challenger.test.TestGroup) Challenge(fvarrui.sysadmin.challenger.Challenge) Test(fvarrui.sysadmin.challenger.test.Test) Goal(fvarrui.sysadmin.challenger.Goal) ListChangeListener(javafx.collections.ListChangeListener) TreeItem(javafx.scene.control.TreeItem) CommandTest(fvarrui.sysadmin.challenger.test.CommandTest) Command(fvarrui.sysadmin.challenger.command.Command) Goal(fvarrui.sysadmin.challenger.Goal) TreeItem(javafx.scene.control.TreeItem)

Example 7 with ListChangeListener

use of javafx.collections.ListChangeListener in project Challenger4SysAdmins by fvarrui.

the class TreeItemFactory method createTestTreeItem.

/**
 * @param test un test
 * @return un item de tipo test
 */
public static TreeItem<Object> createTestTreeItem(Test test) {
    TreeItem<Object> testItem = new TreeItem<Object>();
    testItem.setExpanded(true);
    testItem.setValue(test);
    if (test instanceof TestGroup) {
        TestGroup ct = (TestGroup) test;
        for (Test t : ct.getTests()) {
            testItem.getChildren().add(createTestTreeItem(t));
        }
        ct.testsProperty().addListener(new ListChangeListener<Test>() {

            public void onChanged(Change<? extends Test> c) {
                while (c.next()) {
                    c.getAddedSubList().stream().forEach(g -> testItem.getChildren().add(createTestTreeItem(g)));
                    c.getRemoved().stream().forEach(g -> {
                        TreeItem<Object> item = testItem.getChildren().stream().filter(i -> i.getValue().equals(g)).findFirst().get();
                        testItem.getChildren().remove(item);
                    });
                }
            }
        });
    } else if (test instanceof CommandTest) {
        CommandTest ct = (CommandTest) test;
        if (ct.getCommand() != null) {
            testItem.getChildren().add(createCommandTreeItem(ct.getCommand()));
        }
        ct.commandProperty().addListener((o, ov, nv) -> {
            if (nv != null) {
                testItem.getChildren().add(createCommandTreeItem(ct.getCommand()));
            } else {
                testItem.getChildren().clear();
            }
        });
    }
    return testItem;
}
Also used : TestGroup(fvarrui.sysadmin.challenger.test.TestGroup) Challenge(fvarrui.sysadmin.challenger.Challenge) Test(fvarrui.sysadmin.challenger.test.Test) Goal(fvarrui.sysadmin.challenger.Goal) ListChangeListener(javafx.collections.ListChangeListener) TreeItem(javafx.scene.control.TreeItem) CommandTest(fvarrui.sysadmin.challenger.test.CommandTest) Command(fvarrui.sysadmin.challenger.command.Command) TreeItem(javafx.scene.control.TreeItem) Test(fvarrui.sysadmin.challenger.test.Test) CommandTest(fvarrui.sysadmin.challenger.test.CommandTest) TestGroup(fvarrui.sysadmin.challenger.test.TestGroup) CommandTest(fvarrui.sysadmin.challenger.test.CommandTest)

Example 8 with ListChangeListener

use of javafx.collections.ListChangeListener in project Board-Instrumentation-Framework by intel.

the class DoubleRadialGauge method registerListeners.

private void registerListeners() {
    sectionsOne.addListener((ListChangeListener<Section>) c -> IntStream.range(0, sectionsOne.size()).parallel().forEachOrdered(i -> {
        Section section = sectionsOne.get(i);
        switch(i) {
            case 0:
                setSectionFill0One(section.getColor());
                break;
            case 1:
                setSectionFill1One(section.getColor());
                break;
            case 2:
                setSectionFill2One(section.getColor());
                break;
            case 3:
                setSectionFill3One(section.getColor());
                break;
            case 4:
                setSectionFill4One(section.getColor());
                break;
        }
    }));
    areasOne.addListener((ListChangeListener<Section>) c -> IntStream.range(0, areasOne.size()).parallel().forEachOrdered(i -> {
        Section area = areasOne.get(i);
        switch(i) {
            case 0:
                setAreaFill0One(area.getColor());
                break;
            case 1:
                setAreaFill1One(area.getColor());
                break;
            case 2:
                setAreaFill2One(area.getColor());
                break;
            case 3:
                setAreaFill3One(area.getColor());
                break;
            case 4:
                setAreaFill4One(area.getColor());
                break;
        }
    }));
    sectionsTwo.addListener((ListChangeListener<Section>) c -> IntStream.range(0, sectionsTwo.size()).parallel().forEachOrdered(i -> {
        Section section = sectionsTwo.get(i);
        switch(i) {
            case 0:
                setSectionFill0Two(section.getColor());
                break;
            case 1:
                setSectionFill1Two(section.getColor());
                break;
            case 2:
                setSectionFill2Two(section.getColor());
                break;
            case 3:
                setSectionFill3Two(section.getColor());
                break;
            case 4:
                setSectionFill4Two(section.getColor());
                break;
        }
    }));
    areasTwo.addListener((ListChangeListener<Section>) c -> IntStream.range(0, areasTwo.size()).parallel().forEachOrdered(i -> {
        Section area = areasTwo.get(i);
        switch(i) {
            case 0:
                setAreaFill0Two(area.getColor());
                break;
            case 1:
                setAreaFill1Two(area.getColor());
                break;
            case 2:
                setAreaFill2Two(area.getColor());
                break;
            case 3:
                setAreaFill3Two(area.getColor());
                break;
            case 4:
                setAreaFill4Two(area.getColor());
                break;
        }
    }));
}
Also used : IntStream(java.util.stream.IntStream) Arrays(java.util.Arrays) DoubleRadialGaugeSkin(eu.hansolo.enzo.gauge.skin.DoubleRadialGaugeSkin) PseudoClass(javafx.css.PseudoClass) SimpleStringProperty(javafx.beans.property.SimpleStringProperty) Control(javafx.scene.control.Control) FXCollections(javafx.collections.FXCollections) DoubleProperty(javafx.beans.property.DoubleProperty) Skin(javafx.scene.control.Skin) IntegerProperty(javafx.beans.property.IntegerProperty) ArrayList(java.util.ArrayList) StyleConverter(javafx.css.StyleConverter) ListChangeListener(javafx.collections.ListChangeListener) Locale(java.util.Locale) SimpleIntegerProperty(javafx.beans.property.SimpleIntegerProperty) StyleableProperty(javafx.css.StyleableProperty) Color(javafx.scene.paint.Color) ObjectProperty(javafx.beans.property.ObjectProperty) Section(eu.hansolo.enzo.common.Section) CssMetaData(javafx.css.CssMetaData) DecimalFormat(java.text.DecimalFormat) BooleanPropertyBase(javafx.beans.property.BooleanPropertyBase) AnimationTimer(javafx.animation.AnimationTimer) BooleanProperty(javafx.beans.property.BooleanProperty) Duration(javafx.util.Duration) List(java.util.List) SimpleBooleanProperty(javafx.beans.property.SimpleBooleanProperty) StyleableObjectProperty(javafx.css.StyleableObjectProperty) SimpleObjectProperty(javafx.beans.property.SimpleObjectProperty) Paint(javafx.scene.paint.Paint) DoublePropertyBase(javafx.beans.property.DoublePropertyBase) SimpleDoubleProperty(javafx.beans.property.SimpleDoubleProperty) ObservableList(javafx.collections.ObservableList) StringProperty(javafx.beans.property.StringProperty) Collections(java.util.Collections) Styleable(javafx.css.Styleable) Section(eu.hansolo.enzo.common.Section)

Example 9 with ListChangeListener

use of javafx.collections.ListChangeListener in project loinc2hpo by monarch-initiative.

the class AnnotateTabController method initialize.

@FXML
private void initialize() {
    if (model != null) {
        // weird line. model is set by main controller; this line never runs
        setModel(model);
    // currentAnnotationController.setModel(model); //let current annotation stage have access to model
    }
    // currentAnnotationController.setModel(model); //let current annotation stage have access to model
    suggestHPOButton.setTooltip(new Tooltip("Suggest new HPO terms"));
    filterButton.setTooltip(new Tooltip("Filter Loinc by providing a Loinc list in txt file"));
    addCodedAnnotationButton.setTooltip(new Tooltip("Add current annotation"));
    flagForAnnotation.setTooltip(new Tooltip("Check if you are not confident"));
    clearButton.setTooltip(new Tooltip("Clear all textfields"));
    allAnnotationsButton.setTooltip(new Tooltip("Display annotations for currently selected Loinc code"));
    initLOINCtableButton.setTooltip(new Tooltip("Initialize Loinc Core Table. Download it first."));
    IntializeHPOmodelbutton.setTooltip(new Tooltip("Load hp.owl as a RDF model for query"));
    searchForLOINCIdButton.setTooltip(new Tooltip("Search Loinc with a Loinc code or name"));
    modeButton.setTooltip(new Tooltip("Switch between basic and advanced annotation mode"));
    autoQueryButton.setTooltip(new Tooltip("Find candidate HPO terms with automatically generated keys"));
    manualQueryButton.setTooltip(new Tooltip("Find candidate HPO terms with manually typed keys"));
    hpoListView.setCellFactory(new Callback<ListView<HPO_Class_Found>, ListCell<HPO_Class_Found>>() {

        @Override
        public ListCell<HPO_Class_Found> call(ListView<HPO_Class_Found> param) {
            return new ListCell<HPO_Class_Found>() {

                @Override
                public void updateItem(HPO_Class_Found hpo, boolean empty) {
                    super.updateItem(hpo, empty);
                    if (hpo != null) {
                        setText(hpo.toString());
                        Tooltip tooltip = new Tooltip(hpo.getDefinition());
                        tooltip.setPrefWidth(300);
                        tooltip.setWrapText(true);
                        setTooltip(tooltip);
                    } else {
                        setText(null);
                    }
                }
            };
        }
    });
    treeView.setCellFactory(new Callback<TreeView<HPO_TreeView>, TreeCell<HPO_TreeView>>() {

        @Override
        public TreeCell<HPO_TreeView> call(TreeView<HPO_TreeView> param) {
            return new TreeCell<HPO_TreeView>() {

                @Override
                public void updateItem(HPO_TreeView hpo, boolean empty) {
                    super.updateItem(hpo, empty);
                    if (empty) {
                        setText(null);
                        setGraphic(null);
                    } else {
                        if (hpo != null && hpo.hpo_class_found == null) {
                            setText("root");
                        }
                        if (hpo != null && hpo.hpo_class_found != null) {
                            setText(hpo.toString());
                            if (hpo.hpo_class_found.getDefinition() != null) {
                                Tooltip tooltip = new Tooltip(hpo.hpo_class_found.getDefinition());
                                tooltip.setPrefWidth(300);
                                tooltip.setWrapText(true);
                                setTooltip(tooltip);
                            }
                        }
                    }
                }
            };
        }
    });
    // if user creates a new Loinc group, add two menuitems for it, and specify the actions when those menuitems are
    // clicked
    userCreatedLoincLists.addListener(new ListChangeListener<String>() {

        @Override
        public void onChanged(Change<? extends String> c) {
            while (c.next()) {
                if (c.wasAdded()) {
                    logger.trace(c + " was added");
                    c.getAddedSubList().stream().filter(p -> !model.getUserCreatedLoincLists().containsKey(p)).forEach(p -> {
                        model.addUserCreatedLoincList(p, new LinkedHashSet<>());
                        MenuItem newListMenuItem = new MenuItem(p);
                        userCreatedLoincListsButton.getItems().add(newListMenuItem);
                        newListMenuItem.setOnAction((event -> {
                            logger.trace("action detected");
                            if (loincTableView.getSelectionModel().getSelectedItem() != null) {
                                LoincId loincId = loincTableView.getSelectionModel().getSelectedItem().getLOINC_Number();
                                if (model.getUserCreatedLoincLists().get(p).contains(loincId)) {
                                    model.getUserCreatedLoincLists().get(p).remove(loincId);
                                    logger.trace(String.format("LOINC: %s removed from %s", loincId, p));
                                } else {
                                    model.getUserCreatedLoincLists().get(p).add(loincId);
                                    logger.trace(String.format("LOINC: %s added to %s", loincId, p));
                                }
                                changeColorLoincTableView();
                                model.setSessionChanged(true);
                            }
                        }));
                        MenuItem newExportMenuItem = new MenuItem(p);
                        exportLoincListButton.getItems().add(newExportMenuItem);
                        newExportMenuItem.setOnAction((event -> {
                            logger.trace("action detected");
                            if (loincTableView.getSelectionModel().getSelectedItem() != null) {
                                Set<LoincId> loincIds = model.getUserCreatedLoincLists().get(p);
                                if (loincIds.isEmpty()) {
                                    return;
                                }
                                FileChooser chooser = new FileChooser();
                                chooser.setTitle("Save Loinc List: ");
                                chooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("TSV files (*.txt)", "*.txt"));
                                chooser.setInitialFileName(p);
                                File f = chooser.showSaveDialog(null);
                                String filepath;
                                if (f == null) {
                                    return;
                                } else {
                                    filepath = f.getAbsolutePath();
                                }
                                StringBuilder builder = new StringBuilder();
                                loincIds.forEach(l -> {
                                    builder.append(l);
                                    builder.append("\n");
                                });
                                WriteToFile.writeToFile(builder.toString().trim(), filepath);
                            }
                        }));
                        MenuItem newImportMenuItem = new MenuItem(p);
                        importLoincGroupButton.getItems().add(newImportMenuItem);
                        newImportMenuItem.setOnAction((event) -> {
                            logger.trace("user wants to import " + p);
                            FileChooser chooser = new FileChooser();
                            chooser.setTitle("Select file to import from");
                            File f = chooser.showOpenDialog(null);
                            if (f == null) {
                                return;
                            }
                            List<String> malformed = new ArrayList<>();
                            List<String> notFound = new ArrayList<>();
                            try {
                                LoincOfInterest loincSet = new LoincOfInterest(f.getAbsolutePath());
                                Set<String> loincIds = loincSet.getLoincOfInterest();
                                loincIds.forEach(l -> {
                                    LoincId loincId = null;
                                    try {
                                        loincId = new LoincId(l);
                                    } catch (MalformedLoincCodeException e) {
                                        malformed.add(l);
                                    }
                                    if (model.getLoincEntryMap().containsKey(loincId)) {
                                        model.getUserCreatedLoincLists().get(p).add(loincId);
                                    } else {
                                        notFound.add(l);
                                    }
                                    changeColorLoincTableView();
                                });
                            } catch (FileNotFoundException e) {
                                logger.error("File not found. Should never happen");
                            }
                            if (!malformed.isEmpty() || !notFound.isEmpty()) {
                                String malformedString = String.join("\n", malformed);
                                String notFoundString = String.join("\n", notFound);
                                PopUps.showInfoMessage(String.format("Malformed Loinc: %d\n%s\nNot Found: %d\n%s", malformed.size(), malformedString, notFound.size(), notFoundString), "Error during importing");
                            }
                        });
                    });
                } else {
                    logger.error("This should never happen");
                }
            }
        }
    });
    initadvancedAnnotationTable();
}
Also used : PopUps(org.monarchinitiative.loinc2hpo.gui.PopUps) WriteToFile(org.monarchinitiative.loinc2hpo.io.WriteToFile) javafx.scene.control(javafx.scene.control) Inject(com.google.inject.Inject) Parent(javafx.scene.Parent) Task(javafx.concurrent.Task) ListChangeListener(javafx.collections.ListChangeListener) MalformedLoincCodeException(org.monarchinitiative.loinc2hpo.exception.MalformedLoincCodeException) HpoTerm(com.github.phenomics.ontolib.formats.hpo.HpoTerm) GitHubPopup(org.monarchinitiative.loinc2hpo.gui.GitHubPopup) Circle(javafx.scene.shape.Circle) ImmutableMap(com.google.common.collect.ImmutableMap) LoincLongNameParser(org.monarchinitiative.loinc2hpo.util.LoincLongNameParser) Event(javafx.event.Event) javafx.stage(javafx.stage) Platform(javafx.application.Platform) FXML(javafx.fxml.FXML) Logger(org.apache.logging.log4j.Logger) Code(org.monarchinitiative.loinc2hpo.codesystems.Code) HPO_Class_Found(org.monarchinitiative.loinc2hpo.util.HPO_Class_Found) ObservableList(javafx.collections.ObservableList) org.monarchinitiative.loinc2hpo.loinc(org.monarchinitiative.loinc2hpo.loinc) LoincCodeNotFoundException(org.monarchinitiative.loinc2hpo.exception.LoincCodeNotFoundException) NetPostException(org.monarchinitiative.loinc2hpo.exception.NetPostException) Singleton(com.google.inject.Singleton) Scene(javafx.scene.Scene) Main(org.monarchinitiative.loinc2hpo.gui.Main) java.util(java.util) Loinc2HPOCodedValue(org.monarchinitiative.loinc2hpo.codesystems.Loinc2HPOCodedValue) LocalDateTime(java.time.LocalDateTime) FXCollections(javafx.collections.FXCollections) GitHubLabelRetriever(org.monarchinitiative.loinc2hpo.github.GitHubLabelRetriever) GitHubPoster(org.monarchinitiative.loinc2hpo.github.GitHubPoster) CodeSystemConvertor(org.monarchinitiative.loinc2hpo.codesystems.CodeSystemConvertor) FXMLLoader(javafx.fxml.FXMLLoader) Annotation(org.monarchinitiative.loinc2hpo.model.Annotation) SparqlQuery(org.monarchinitiative.loinc2hpo.util.SparqlQuery) Callback(javafx.util.Callback) Color(javafx.scene.paint.Color) OntologyModelBuilderForJena(org.monarchinitiative.loinc2hpo.io.OntologyModelBuilderForJena) javafx.scene.input(javafx.scene.input) Model(org.monarchinitiative.loinc2hpo.model.Model) ReadOnlyStringWrapper(javafx.beans.property.ReadOnlyStringWrapper) LoincOfInterest(org.monarchinitiative.loinc2hpo.io.LoincOfInterest) Injector(com.google.inject.Injector) ActionEvent(javafx.event.ActionEvent) java.io(java.io) LoincCodeClass(org.monarchinitiative.loinc2hpo.util.LoincCodeClass) LogManager(org.apache.logging.log4j.LogManager) LoincOfInterest(org.monarchinitiative.loinc2hpo.io.LoincOfInterest) ObservableList(javafx.collections.ObservableList) HPO_Class_Found(org.monarchinitiative.loinc2hpo.util.HPO_Class_Found) MalformedLoincCodeException(org.monarchinitiative.loinc2hpo.exception.MalformedLoincCodeException) WriteToFile(org.monarchinitiative.loinc2hpo.io.WriteToFile) FXML(javafx.fxml.FXML)

Example 10 with ListChangeListener

use of javafx.collections.ListChangeListener in project bisq-desktop by bisq-network.

the class NotificationCenter method onAllServicesAndViewsInitialized.

public void onAllServicesAndViewsInitialized() {
    tradeManager.getTradableList().addListener((ListChangeListener<Trade>) change -> {
        change.next();
        if (change.wasRemoved()) {
            change.getRemoved().stream().forEach(trade -> {
                String tradeId = trade.getId();
                if (disputeStateSubscriptionsMap.containsKey(tradeId)) {
                    disputeStateSubscriptionsMap.get(tradeId).unsubscribe();
                    disputeStateSubscriptionsMap.remove(tradeId);
                }
                if (tradePhaseSubscriptionsMap.containsKey(tradeId)) {
                    tradePhaseSubscriptionsMap.get(tradeId).unsubscribe();
                    tradePhaseSubscriptionsMap.remove(tradeId);
                }
            });
        }
        if (change.wasAdded()) {
            change.getAddedSubList().stream().forEach(trade -> {
                String tradeId = trade.getId();
                if (disputeStateSubscriptionsMap.containsKey(tradeId)) {
                    log.debug("We have already an entry in disputeStateSubscriptionsMap.");
                } else {
                    Subscription disputeStateSubscription = EasyBind.subscribe(trade.disputeStateProperty(), disputeState -> onDisputeStateChanged(trade, disputeState));
                    disputeStateSubscriptionsMap.put(tradeId, disputeStateSubscription);
                }
                if (tradePhaseSubscriptionsMap.containsKey(tradeId)) {
                    log.debug("We have already an entry in tradePhaseSubscriptionsMap.");
                } else {
                    Subscription tradePhaseSubscription = EasyBind.subscribe(trade.statePhaseProperty(), phase -> onTradePhaseChanged(trade, phase));
                    tradePhaseSubscriptionsMap.put(tradeId, tradePhaseSubscription);
                }
            });
        }
    });
    tradeManager.getTradableList().stream().forEach(trade -> {
        String tradeId = trade.getId();
        Subscription disputeStateSubscription = EasyBind.subscribe(trade.disputeStateProperty(), disputeState -> onDisputeStateChanged(trade, disputeState));
        disputeStateSubscriptionsMap.put(tradeId, disputeStateSubscription);
        Subscription tradePhaseSubscription = EasyBind.subscribe(trade.statePhaseProperty(), phase -> onTradePhaseChanged(trade, phase));
        tradePhaseSubscriptionsMap.put(tradeId, tradePhaseSubscription);
    });
}
Also used : Inject(com.google.inject.Inject) PendingTradesView(bisq.desktop.main.portfolio.pendingtrades.PendingTradesView) HashMap(java.util.HashMap) DisputeManager(bisq.core.arbitration.DisputeManager) ArrayList(java.util.ArrayList) DisputesView(bisq.desktop.main.disputes.DisputesView) ListChangeListener(javafx.collections.ListChangeListener) Res(bisq.core.locale.Res) SellerTrade(bisq.core.trade.SellerTrade) Map(java.util.Map) Nullable(javax.annotation.Nullable) Navigation(bisq.desktop.Navigation) MakerTrade(bisq.core.trade.MakerTrade) Trade(bisq.core.trade.Trade) DontShowAgainLookup(bisq.core.user.DontShowAgainLookup) Log(bisq.common.app.Log) Subscription(org.fxmisc.easybind.Subscription) Consumer(java.util.function.Consumer) MainView(bisq.desktop.main.MainView) List(java.util.List) Slf4j(lombok.extern.slf4j.Slf4j) BuyerTrade(bisq.core.trade.BuyerTrade) EasyBind(org.fxmisc.easybind.EasyBind) TraderDisputeView(bisq.desktop.main.disputes.trader.TraderDisputeView) TradeManager(bisq.core.trade.TradeManager) Preferences(bisq.core.user.Preferences) UserThread(bisq.common.UserThread) PortfolioView(bisq.desktop.main.portfolio.PortfolioView) SellerTrade(bisq.core.trade.SellerTrade) MakerTrade(bisq.core.trade.MakerTrade) Trade(bisq.core.trade.Trade) BuyerTrade(bisq.core.trade.BuyerTrade) Subscription(org.fxmisc.easybind.Subscription)

Aggregations

ListChangeListener (javafx.collections.ListChangeListener)24 FXCollections (javafx.collections.FXCollections)15 List (java.util.List)14 ObservableList (javafx.collections.ObservableList)13 ArrayList (java.util.ArrayList)11 Collectors (java.util.stream.Collectors)9 Map (java.util.Map)8 SimpleObjectProperty (javafx.beans.property.SimpleObjectProperty)8 Color (javafx.scene.paint.Color)8 Platform (javafx.application.Platform)7 Label (javafx.scene.control.Label)7 HashMap (java.util.HashMap)6 TimeUnit (java.util.concurrent.TimeUnit)6 IntegerProperty (javafx.beans.property.IntegerProperty)6 SimpleIntegerProperty (javafx.beans.property.SimpleIntegerProperty)6 ChangeListener (javafx.beans.value.ChangeListener)6 Node (javafx.scene.Node)6 Button (javafx.scene.control.Button)6 IntStream (java.util.stream.IntStream)5 SimpleStringProperty (javafx.beans.property.SimpleStringProperty)5