public void assignSampleData()

in kit/src/main/java/com/oracle/javafx/scenebuilder/kit/fxom/sampledata/SampleDataGenerator.java [59:200]


    public void assignSampleData(FXOMObject startObject) {
        assert startObject != null;
        
        final Object sceneGraphObject = startObject.getSceneGraphObject();
        final AbstractSampleData currentData = sampleDataMap.get(startObject);
        final AbstractSampleData newData;
        
        if (sceneGraphObject == null) {
            // startObject is unresolved
            newData = null;
        } else {
            final Class<?> sceneGraphClass = sceneGraphObject.getClass();
            if (sceneGraphClass == ChoiceBox.class) {
                final ChoiceBox<?> choiceBox = (ChoiceBox<?>) sceneGraphObject;
                if (choiceBox.getItems().isEmpty()) {
                    if (currentData instanceof ChoiceBoxSampleData) {
                        newData = currentData;
                    } else {
                        newData = new ChoiceBoxSampleData();
                    }
                } else {
                    newData = null;
                }
            } else if (sceneGraphClass == ComboBox.class) {
                final ComboBox<?> comboBox = (ComboBox<?>) sceneGraphObject;
                if (comboBox.getItems().isEmpty()) {
                    if (currentData instanceof ComboBoxSampleData) {
                        newData = currentData;
                    } else {
                        newData = new ComboBoxSampleData();
                    }
                } else {
                    newData = null;
                }
            } else if (sceneGraphClass == ListView.class) {
                final ListView<?> listView = (ListView<?>) sceneGraphObject;
                if (listView.getItems().isEmpty()) {
                    if (currentData instanceof ListViewSampleData) {
                        newData = currentData;
                    } else {
                        newData = new ListViewSampleData();
                    }
                } else {
                    newData = null;
                }
            } else if (sceneGraphClass == TreeView.class) {
                final TreeView<?> treeView = (TreeView<?>) sceneGraphObject;
                if (treeView.getRoot() == null) {
                    if (currentData instanceof TreeViewSampleData) {
                        newData = currentData;
                    } else {
                        newData = new TreeViewSampleData();
                    }
                } else {
                    newData = null;
                }
            } else if (sceneGraphClass == TableView.class) {
                final TableView<?> treeView = (TableView<?>) sceneGraphObject;
                if (TableViewSampleData.canApplyTo(treeView)) {
                    if (currentData instanceof TableViewSampleData) {
                        newData = currentData;
                    } else {
                        newData = new TableViewSampleData();
                    }
                } else {
                    newData = null;
                }
            } else if (sceneGraphClass == TreeTableView.class) {
                final TreeTableView<?> treeTableView = (TreeTableView<?>) sceneGraphObject;
                if (treeTableView.getRoot() == null) {
                    if (currentData instanceof TreeTableViewSampleData) {
                        newData = currentData;
                    } else {
                        newData = new TreeTableViewSampleData();
                    }
                } else {
                    newData = null;
                }
            } else if (sceneGraphClass == PieChart.class) {
                final PieChart pieChart = (PieChart) sceneGraphObject;
                if (pieChart.getData().isEmpty()) {
                    if (currentData instanceof PieChartSampleData) {
                        newData = currentData;
                    } else {
                        newData = new PieChartSampleData();
                    }
                } else {
                    newData = null;
                }
            } else if (sceneGraphClass == Spinner.class) {
                final Spinner<?> spinner = (Spinner<?>) sceneGraphObject;
                if (spinner.getValue() == null) {
                    if (currentData instanceof SpinnerSampleData) {
                        newData = currentData;
                    } else {
                        newData = new SpinnerSampleData();
                    }
                } else {
                    newData = null;
                }
            } else if (XYChartSampleData.isKnownXYChart(sceneGraphObject)) {
                final XYChart<?,?> xyChart = (XYChart<?,?>) sceneGraphObject;
                if (xyChart.getData().isEmpty()) {
                    if (currentData instanceof XYChartSampleData) {
                        newData = currentData;
                    } else {
                        newData = new XYChartSampleData();
                    }
                } else {
                    newData = null;
                }
            } else {
                newData = null;
            }
        }
        
        if (newData == null) {
            if (currentData != null) {
                sampleDataMap.remove(startObject);
            }
        } else {
            newData.applyTo(sceneGraphObject);
            sampleDataMap.put(startObject, newData);
        }
        
        if (startObject instanceof FXOMInstance) {
            final FXOMInstance fxomInstance = (FXOMInstance) startObject;
            for (FXOMProperty p : fxomInstance.getProperties().values()) {
                if (p instanceof FXOMPropertyC) {
                    final FXOMPropertyC pc = (FXOMPropertyC) p;
                    for (FXOMObject v : pc.getValues()) {
                        assignSampleData(v);
                    }
                }
            }
        } else if (startObject instanceof FXOMCollection) {
            final FXOMCollection fxomCollection = (FXOMCollection) startObject;
            for (FXOMObject i : fxomCollection.getItems()) {
                assignSampleData(i);
            }
        } 
    }