< prev index next >

apps/samples/Ensemble8/src/app/java/ensemble/samplepage/XYDataVisualizer.java

Print this page
rev 9364 : 8088078: [Chart] "Insert Series" can not work as expected after we remove all data
summary: Fixed error while adding new series to empty table or when no series selected.


 181         yValueColumn.setMinWidth(50);
 182 
 183         TreeTableColumn<XYChartItem<X, Y>, Object> extraValueColumn = new TreeTableColumn<>("Extra Value");
 184         extraValueColumn.setCellValueFactory((CellDataFeatures<XYChartItem<X, Y>, Object> p) -> {
 185             if (p.getValue() != null) {
 186                 return p.getValue().getValue().extraValueProperty();
 187             } else {
 188                 return null;
 189             }
 190         });
 191         extraValueColumn.setMinWidth(100);
 192         extraValueColumn.setSortable(false);
 193 
 194         getColumns().setAll(nameColumn, xValueColumn, yValueColumn, extraValueColumn);
 195 
 196         setOnContextMenuRequested((ContextMenuEvent t) -> {
 197             Node node = t.getPickResult().getIntersectedNode();
 198             while (node != null && !(node instanceof TreeTableRow) && !(node instanceof TreeTableCell)) {
 199                 node = node.getParent();
 200             }
 201             if (node instanceof TreeTableCell) {


 202                 TreeTableCell tc = (TreeTableCell) node;
 203                 if (tc.getItem() == null) {
 204                     getSelectionModel().clearSelection();
 205                 } else {
 206                     getSelectionModel().select(tc.getIndex());
 207                 }
 208             } else if (node instanceof TreeTableRow) {
 209                 TreeTableRow tr = (TreeTableRow) node;
 210                 if (tr.getItem() == null) {
 211                     getSelectionModel().clearSelection();
 212                 } else {
 213                     getSelectionModel().select(tr.getIndex());
 214                 }
 215             }
 216         });
 217 
 218         MenuItem insertDataItemMenuItem = new MenuItem("Insert data item");
 219         insertDataItemMenuItem.setDisable(!isEditable());
 220         insertDataItemMenuItem.setOnAction((ActionEvent t) -> {
 221             TreeItem<XYChartItem<X, Y>> selectedItem = getSelectionModel().getSelectedItem();
 222             if (selectedItem == null || selectedItem.getParent() == null) {
 223                 return;
 224             }
 225             Object value = selectedItem.getValue().getValue();
 226             Object parentValue = selectedItem.getParent().getValue().getValue();
 227             if (value instanceof Series) {
 228                 Series series = (Series) value;
 229                 insertItem(series.getData());
 230             } else if (parentValue instanceof Series) {
 231                 Series series = (Series) parentValue;
 232                 insertItem(series.getData().indexOf(value), series.getData());
 233             }
 234         });
 235 
 236         MenuItem insertSeriesMenuitem = new MenuItem("Insert Series");
 237         insertSeriesMenuitem.setDisable(!isEditable());
 238         insertSeriesMenuitem.setOnAction((ActionEvent t) -> {
 239             TreeItem<XYChartItem<X, Y>> selectedItem = getSelectionModel().getSelectedItem();
 240             if (selectedItem == null) {
 241                 return;
 242             }
 243             Object value = selectedItem.getValue().getValue();
 244             if (value instanceof ObservableList) {
 245                 ObservableList parentList = (ObservableList) value;
 246                 insertSeries(parentList.size(), parentList);
 247             } else {
 248                 Object parentValue = selectedItem.getParent().getValue().getValue();
 249                 if (parentValue instanceof ObservableList) {
 250                     ObservableList parentList = (ObservableList) parentValue;
 251 
 252                     insertSeries(parentList.indexOf(value), parentList);
 253                 }
 254             }
 255         });
 256 
 257         MenuItem deleteItemMenuItem = new MenuItem("Delete item");
 258         deleteItemMenuItem.setDisable(!isEditable());
 259         deleteItemMenuItem.setOnAction((ActionEvent t) -> {
 260             TreeItem<XYChartItem<X, Y>> selectedItem = getSelectionModel().getSelectedItem();
 261             if (selectedItem == null) {
 262                 return;
 263             }




 181         yValueColumn.setMinWidth(50);
 182 
 183         TreeTableColumn<XYChartItem<X, Y>, Object> extraValueColumn = new TreeTableColumn<>("Extra Value");
 184         extraValueColumn.setCellValueFactory((CellDataFeatures<XYChartItem<X, Y>, Object> p) -> {
 185             if (p.getValue() != null) {
 186                 return p.getValue().getValue().extraValueProperty();
 187             } else {
 188                 return null;
 189             }
 190         });
 191         extraValueColumn.setMinWidth(100);
 192         extraValueColumn.setSortable(false);
 193 
 194         getColumns().setAll(nameColumn, xValueColumn, yValueColumn, extraValueColumn);
 195 
 196         setOnContextMenuRequested((ContextMenuEvent t) -> {
 197             Node node = t.getPickResult().getIntersectedNode();
 198             while (node != null && !(node instanceof TreeTableRow) && !(node instanceof TreeTableCell)) {
 199                 node = node.getParent();
 200             }
 201             if (node == null) {
 202                 getSelectionModel().clearSelection();
 203             } else if (node instanceof TreeTableCell) {
 204                 TreeTableCell tc = (TreeTableCell) node;
 205                 if (tc.getItem() == null) {
 206                     getSelectionModel().clearSelection();
 207                 } else {
 208                     getSelectionModel().select(tc.getIndex());
 209                 }
 210             } else if (node instanceof TreeTableRow) {
 211                 TreeTableRow tr = (TreeTableRow) node;
 212                 if (tr.getItem() == null) {
 213                     getSelectionModel().clearSelection();
 214                 } else {
 215                     getSelectionModel().select(tr.getIndex());
 216                 }
 217             }
 218         });
 219 
 220         MenuItem insertDataItemMenuItem = new MenuItem("Insert data item");
 221         insertDataItemMenuItem.setDisable(!isEditable());
 222         insertDataItemMenuItem.setOnAction((ActionEvent t) -> {
 223             TreeItem<XYChartItem<X, Y>> selectedItem = getSelectionModel().getSelectedItem();
 224             if (selectedItem == null || selectedItem.getParent() == null) {
 225                 return;
 226             }
 227             Object value = selectedItem.getValue().getValue();
 228             Object parentValue = selectedItem.getParent().getValue().getValue();
 229             if (value instanceof Series) {
 230                 Series series = (Series) value;
 231                 insertItem(series.getData());
 232             } else if (parentValue instanceof Series) {
 233                 Series series = (Series) parentValue;
 234                 insertItem(series.getData().indexOf(value), series.getData());
 235             }
 236         });
 237 
 238         MenuItem insertSeriesMenuitem = new MenuItem("Insert Series");
 239         insertSeriesMenuitem.setDisable(!isEditable());
 240         insertSeriesMenuitem.setOnAction((ActionEvent t) -> {
 241             TreeItem<XYChartItem<X, Y>> selectedItem = getSelectionModel().getSelectedItem();
 242             Object value = selectedItem == null ? chart.getData()
 243                     : selectedItem.getValue().getValue();


 244             if (value instanceof ObservableList) {
 245                 ObservableList parentList = (ObservableList) value;
 246                 insertSeries(parentList.size(), parentList);
 247             } else {
 248                 Object parentValue = selectedItem.getParent().getValue().getValue();
 249                 if (parentValue instanceof ObservableList) {
 250                     ObservableList parentList = (ObservableList) parentValue;
 251 
 252                     insertSeries(parentList.indexOf(value), parentList);
 253                 }
 254             }
 255         });
 256 
 257         MenuItem deleteItemMenuItem = new MenuItem("Delete item");
 258         deleteItemMenuItem.setDisable(!isEditable());
 259         deleteItemMenuItem.setOnAction((ActionEvent t) -> {
 260             TreeItem<XYChartItem<X, Y>> selectedItem = getSelectionModel().getSelectedItem();
 261             if (selectedItem == null) {
 262                 return;
 263             }


< prev index next >