public String getTreeTableSelection(TreeTableView<?> treeTableView) { TreeTableViewSelectionModel<?> selectionModel = treeTableView.getSelectionModel(); ObservableList<Integer> selectedIndices = selectionModel.getSelectedIndices(); ObservableList<?> selectedCells = selectionModel.getSelectedCells(); int rowCount = treeTableView.getExpandedItemCount(); int columnCount = treeTableView.getColumns().size(); if (selectedIndices.size() == 0 || selectedCells.size() == 0) { return ""; } else if (!selectionModel.isCellSelectionEnabled() && selectedIndices.size() == treeTableView.getExpandedItemCount() || selectionModel.isCellSelectionEnabled() && selectedCells.size() == rowCount * columnCount) { return "all"; } else if (!selectionModel.isCellSelectionEnabled()) { return getTreeTableRowSelectionText(treeTableView, selectionModel.getSelectedItems()); } else { int[] rows = new int[selectedCells.size()]; int[] columns = new int[selectedCells.size()]; JSONObject cells = new JSONObject(); JSONArray value = new JSONArray(); for (int i = 0; i < selectedCells.size(); i++) { TreeTablePosition<?, ?> cell = (TreeTablePosition<?, ?>) selectedCells.get(i); rows[i] = cell.getRow(); columns[i] = cell.getColumn(); List<String> cellValue = new ArrayList<>(); cellValue.add(getTreeTableNodePath(treeTableView, selectionModel.getModelItem(cell.getRow()))); cellValue.add(getTreeTableColumnName(treeTableView, cell.getColumn())); value.put(cellValue); } cells.put("cells", value); return cells.toString(); } }
public RFXTreeTableView(Node source, JSONOMapConfig omapConfig, Point2D point, IJSONRecorder recorder) { super(source, omapConfig, point, recorder); TreeTableView<?> treeTableView = (TreeTableView<?>) source; if (source == null) { return; } if (treeTableView.getEditingCell() != null) { TreeTablePosition<?, ?> editingCell = treeTableView.getEditingCell(); row = editingCell.getRow(); column = editingCell.getColumn(); } else { if (point != null) { column = getTreeTableColumnAt(treeTableView, point); row = getTreeTableRowAt(treeTableView, point); } else { ObservableList<?> selectedCells = treeTableView.getSelectionModel().getSelectedCells(); for (Object cell : selectedCells) { TreeTablePosition<?, ?> tablePosition = (TreeTablePosition<?, ?>) cell; column = tablePosition.getColumn(); row = tablePosition.getRow(); } } } cellInfo = getTreeTableCellText(treeTableView, row, column); if (row == -1 || column == -1) { row = column = -1; } }
@Property(SELECTED_CELLS_PROP_NAME) public List<Point> getSelectedCells() { return new GetAction<java.util.List<Point>>() { @Override public void run(Object... parameters) throws Exception { java.util.List<Point> res = new ArrayList<Point>(); for (TreeTablePosition tp : (java.util.List<TreeTablePosition>) getControl().getSelectionModel().getSelectedCells()) { res.add(new Point(tp.getColumn(), tp.getRow())); } setResult(res); } }.dispatch(getEnvironment()); }