类javafx.scene.control.TreeTablePosition源码实例Demo

下面列出了怎么用javafx.scene.control.TreeTablePosition的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: Open-Lowcode   文件: EditableTreeTable.java
/**
 * @return the elements corresponding to the active cell
 */
public List<E> getSelectedElements() {
	ObservableList<TreeTablePosition<EditableTreeTableLineItem<Wrapper<E>>, ?>> selectedcells = treetableview
			.getSelectionModel().getSelectedCells();
	if (selectedcells.size() == 1) {
		TreeTablePosition<EditableTreeTableLineItem<Wrapper<E>>, ?> selectedposition = selectedcells.get(0);
		TreeTableColumn<EditableTreeTableLineItem<Wrapper<E>>, ?> tablecolumn = selectedposition.getTableColumn();
		if (tablecolumn instanceof EditableTreeTableValueColumn) {
			@SuppressWarnings({ "unchecked", "rawtypes" })
			EditableTreeTableValueColumn<E, ?, ?> tablecolumnparsed = (EditableTreeTableValueColumn) tablecolumn;
			TreeItem<EditableTreeTableLineItem<Wrapper<E>>> treeitem = selectedposition.getTreeItem();
			EditableTreeTableLineItem<Wrapper<E>> rowdata = treeitem.getValue();
			ArrayList<Wrapper<E>> filteredvalues = tablecolumnparsed.columngrouping.filterItems(rowdata,
					tablecolumnparsed.titlekey);
			ArrayList<E> returnedvalues = new ArrayList<E>();
			for (int i = 0; i < filteredvalues.size(); i++) {
				returnedvalues.add(filteredvalues.get(i).getPayload());
			}
			return returnedvalues;
		}
	}
	return new ArrayList<E>();
}
 
源代码2 项目: Open-Lowcode   文件: EditableTreeTable.java
/**
 * generates a listener to manage
 * <ul>
 * <li>on key pressed, edition starts</li>
 * <li>delete removes content from the cell</li>
 * </ul>
 */
private void generateEditionListener() {
	treetableview.setOnKeyPressed(new EventHandler<KeyEvent>() {

		@Override
		public void handle(KeyEvent event) {
			KeyCode keyCode = event.getCode();
			logger.finest("   > Key event on table " + keyCode);

			TreeTablePosition<
					EditableTreeTableLineItem<Wrapper<E>>,
					?> focusedcell = treetableview.getFocusModel().getFocusedCell();
			if (treetableview.getEditingCell() != null) {
				logger.finest("    >>Discard event as editing cell active");
			} else {

				if (keyCode == KeyCode.DELETE || keyCode == KeyCode.BACK_SPACE) {
					logger.finest("     > Delete detected ");
					TreeTableColumn<EditableTreeTableLineItem<Wrapper<E>>, ?> column = focusedcell.getTableColumn();
					if (column instanceof EditableTreeTableValueColumn) {
						@SuppressWarnings("unchecked")
						EditableTreeTableValueColumn<
								E, ?, ?> parsedcolumn = (EditableTreeTableValueColumn<E, ?, ?>) column;
						TreeItem<EditableTreeTableLineItem<Wrapper<E>>> treeitem = focusedcell.getTreeItem();
						parsedcolumn.clear(treeitem.getValue());
					}

				}
				if (keyCode.isLetterKey() || keyCode.isDigitKey() || keyCode == KeyCode.DECIMAL
						|| keyCode == KeyCode.SPACE) {
					logger.finest("     > Detected real content");
					treetableview.edit(focusedcell.getRow(), focusedcell.getTableColumn());

				}
			}
		}

	});
}
 
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();
    }
}
 
源代码4 项目: marathonv5   文件: RFXTreeTableView.java
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;
    }
}
 
源代码5 项目: Open-Lowcode   文件: EditableTreeTable.java
/**
 * @return the tree table view
 */
public Node getNode() {

	treetableview = new TreeTableView<EditableTreeTableLineItem<Wrapper<E>>>();
	treetableview.setEditable(true);
	treetableview.getSelectionModel().setCellSelectionEnabled(true);
	generateTree();
	generateRootColumn();
	generateEditionListener();
	for (int i = 0; i < this.columngroups.size(); i++) {

		ColumnGroup<E> thiscolumngroup = this.columngroups.get(i);

		thiscolumngroup.preProcess(payload);
		List<TreeTableColumn<EditableTreeTableLineItem<Wrapper<E>>, ?>> columnsforgroup = thiscolumngroup
				.generateColumns();
		logger.finest(" ---- Processing columngroup " + i + ", class = " + thiscolumngroup.getClass().getName()
				+ " columncount=" + (columnsforgroup != null ? columnsforgroup.size() : "null"));
		if (columnsforgroup != null)
			for (int j = 0; j < columnsforgroup.size(); j++) {
				TreeTableColumn<EditableTreeTableLineItem<Wrapper<E>>, ?> column = columnsforgroup.get(j);
				logger.finest("   ----> processing column " + j + " inside columngroup, class = "
						+ column.getClass() + ", title = " + column.getText());
				treetableview.getColumns().add(column);
			}
	}
	expandall(treetableview.getRoot(), 0);
	resize();
	if (this.defaultisreadonly)
		treetableview.setEditable(false);
	treetableview.setOnMouseClicked(new EventHandler<MouseEvent>() {
		@Override
		public void handle(MouseEvent event) {
			if (treetableview.isEditable()) {
				logger.fine("Sink event as editable mode");
			} else {
				if (event.getClickCount() > 1 && (event.getButton().equals(MouseButton.PRIMARY))) {
					logger.fine(" >>> Proper Event");
					if (readonlyactioneventhandler != null) {

						ObservableList<
								TreeTablePosition<
										EditableTreeTableLineItem<Wrapper<E>>,
										?>> selectedcells = treetableview.getSelectionModel().getSelectedCells();
						if (selectedcells.size() == 1) {
							TreeTablePosition<
									EditableTreeTableLineItem<Wrapper<E>>,
									?> selectedposition = selectedcells.get(0);
							TreeTableColumn<
									EditableTreeTableLineItem<Wrapper<E>>,
									?> tablecolumn = selectedposition.getTableColumn();
							if (tablecolumn instanceof EditableTreeTableValueColumn) {
								if (fireonlyifoneitem) {
									@SuppressWarnings({ "unchecked", "rawtypes" })
									EditableTreeTableValueColumn<
											E, ?, ?> tablecolumnparsed = (EditableTreeTableValueColumn) tablecolumn;
									TreeItem<EditableTreeTableLineItem<Wrapper<E>>> treeitem = selectedposition
											.getTreeItem();
									EditableTreeTableLineItem<Wrapper<E>> rowdata = treeitem.getValue();
									ArrayList<Wrapper<E>> filteredvalues = tablecolumnparsed.columngrouping
											.filterItems(rowdata, tablecolumnparsed.titlekey);
									if (filteredvalues.size() == 1)
										readonlyactioneventhandler.handle(event);

								} else {
									readonlyactioneventhandler.handle(event);
								}

							}
						}
					}
				}

			}
		}
	});
	return treetableview;
}
 
源代码6 项目: mzmine3   文件: FeatureTableFX.java
@SuppressWarnings("unchecked")
private void editFocusedCell() {
  TreeTablePosition<ModularFeatureListRow, ?> focusedCell =
      this.focusModelProperty().get().focusedCellProperty().get();
  this.edit(focusedCell.getRow(), focusedCell.getTableColumn());
}
 
 类所在包
 类方法
 同包方法