类javafx.scene.control.TableColumn.CellEditEvent源码实例Demo

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

源代码1 项目: Open-Lowcode   文件: CTimePeriodField.java
@Override
public void handle(CellEditEvent<ObjectTableRow, TimePeriod> event) {
	try {
		boolean changed = false;
		if (event.getOldValue() == null)
			if (event.getNewValue() != null)
				changed = true;
		if (event.getOldValue() != null)
			if (!(event.getOldValue().equals(event.getNewValue())))
				changed = true;
		if (changed) {
			ObjectTableRow objecttochange = event.getRowValue();
			objecttochange.updateField(thistimeperiodfield.getFieldname(), event.getNewValue());
			logger.info("Updated timeperiod for field " + thistimeperiodfield.getFieldname() + ", new value = "
					+ event.getNewValue());
		} else {
			logger.info("received edit event where old values and new values are the same");
		}
	} catch (RuntimeException e) {
		logger.severe("exception in updating TimePeriod " + thistimeperiodfield.getFieldname() + " : "
				+ e.getClass() + ": " + e.getMessage());
		ExceptionLogger.setInLogs(e, logger);
	}

}
 
源代码2 项目: MyBox   文件: TableAutoCommitCell.java
@Override
public void commitEdit(final T valNew) {
    if (isEditing()) {
        super.commitEdit(valNew);
    } else {
        final TableView<S> tbl = getTableView();
        if (tbl != null) {
            final TablePosition<S, T> pos = new TablePosition<>(tbl, getTableRow().getIndex(), getTableColumn()); // instead of tbl.getEditingCell()
            final CellEditEvent<S, T> ev = new CellEditEvent<>(tbl, pos, TableColumn.editCommitEvent(), valNew);
            Event.fireEvent(getTableColumn(), ev);
        }
        updateItem(valNew, false);
        if (tbl != null) {
            tbl.edit(-1, null);
        }
        // TODO ControlUtils.requestFocusOnControlOnlyIfCurrentFocusOwnerIsChild(tbl);
    }
}
 
源代码3 项目: phoebus   文件: PVTableItem.java
@Override
public void commitEdit ( String newValue ) {
    if (!isEditing() && !newValue.equals(getItem())) {
        TableView<PVTableItem> table = getTableView();
        if (table != null) {
            TableColumn<PVTableItem, String> column = getTableColumn();
            TableColumn.CellEditEvent<PVTableItem, String> event = new CellEditEvent<PVTableItem, String>(table,
                    new TablePosition<PVTableItem, String>(table, getIndex(), column),
                    TableColumn.editCommitEvent(), newValue);
            Event.fireEvent(column, event);
        }
    }
    else {
        super.commitEdit(newValue);
    }
    Platform.runLater( ( ) -> focusedOnCommit.requestFocus());
}
 
源代码4 项目: phoebus   文件: EditCell.java
@Override
public void commitEdit(T item) {
    // This block is necessary to support commit on losing focus, because the baked-in mechanism
    // sets our editing state to false before we can intercept the loss of focus.
    // The default commitEdit(...) method simply bails if we are not editing...

    if (!isEditing() && !item.equals(getItem())) {
        TableView<S> table = getTableView();
        if (table != null) {
            TableColumn<S, T> column = getTableColumn();
            CellEditEvent<S, T> event = new CellEditEvent<S, T>(table,
                    new TablePosition<S, T>(table, getIndex(), column),
                    TableColumn.editCommitEvent(), item);
            Event.fireEvent(column, event);
        }
    }
    else {
        super.commitEdit(item);
    }

    setContentDisplay(ContentDisplay.TEXT_ONLY);
}
 
源代码5 项目: zest-writer   文件: TableController.java
private void addCol() {
    TableColumn tc = new TableColumn();
    tc.setEditable(true);
    tc.setCellValueFactory(param -> {
        CellDataFeatures<ZRow, String> dtf = (CellDataFeatures<ZRow, String>) param;
        return new SimpleStringProperty(dtf.getValue().getRow().get(0));
    });

    tc.setCellFactory(TextFieldTableCell.forTableColumn());
    tc.setOnEditCommit(t -> {
        CellEditEvent<ZRow, String> evt = (CellEditEvent<ZRow, String>) t;
        List<String> row = evt.getTableView().getItems().get(evt.getTablePosition().getRow()).getRow();
        row.set(evt.getTablePosition().getColumn(), evt.getNewValue());
    });
    tc.setPrefWidth(150);
    TextField txf = new TextField();
    txf.setPrefWidth(150);
    txf.setPromptText(Configuration.getBundle().getString("ui.dialog.table_editor.colon") +
            (tableView.getColumns().size()+1));
    tc.setGraphic(txf);
    tableView.getColumns().addAll(tc);
    postAddColumn();
}
 
源代码6 项目: SONDY   文件: EventDetectionUI.java
public final void initializeParameterTable(){
    parameterTable.setEditable(true);
    TableColumn keyColumn = new TableColumn("Parameter");
    keyColumn.setMinWidth(Main.columnWidthRIGHT/2-1);
    keyColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
    TableColumn valueColumn = new TableColumn("Value");
    valueColumn.setMinWidth(Main.columnWidthRIGHT/2-1);
    valueColumn.setCellFactory(TextFieldTableCell.forTableColumn());
    valueColumn.setCellValueFactory(new PropertyValueFactory<>("value")); 
    valueColumn.setOnEditCommit(
        new EventHandler<CellEditEvent<Parameter, String>>() {
            @Override
            public void handle(CellEditEvent<Parameter, String> t) {
                ((Parameter) t.getTableView().getItems().get(t.getTablePosition().getRow())).setValue(t.getNewValue());
            }
        }
    );
    parameterTable.getColumns().addAll(keyColumn,valueColumn);
}
 
源代码7 项目: pdfsam   文件: TooltippedTextFieldTableCell.java
@Override
public void commitEdit(String item) {

    // This block is necessary to support commit on losing focus, because the baked-in mechanism
    // sets our editing state to false before we can intercept the loss of focus.
    // The default commitEdit(...) method simply bails if we are not editing...
    if (!isEditing() && !item.equals(getItem())) {
        TableView<SelectionTableRowData> table = getTableView();
        if (table != null) {
            TableColumn<SelectionTableRowData, String> column = getTableColumn();
            CellEditEvent<SelectionTableRowData, String> event = new CellEditEvent<>(table,
                    new TablePosition<>(table, getIndex(), column), TableColumn.editCommitEvent(), item);
            Event.fireEvent(column, event);
        }
    }

    super.commitEdit(item);
    setContentDisplay(ContentDisplay.TEXT_ONLY);
}
 
源代码8 项目: Open-Lowcode   文件: CChoiceField.java
@Override
public void handle(CellEditEvent<ObjectTableRow, CChoiceFieldValue> event) {
	try {
		boolean changed = false;
		if (event.getOldValue() == null)
			if (event.getNewValue() != null)
				changed = true;
		if (event.getOldValue() != null)
			if (!(event.getOldValue().equals(event.getNewValue())))
				changed = true;
		if (changed) {
			ObjectTableRow objecttochange = event.getRowValue();
			objecttochange.updateField(thischoicefield.getFieldname(), event.getNewValue());
			logger.info("Updated choice value for field " + thischoicefield.getFieldname() + ", new value = "
					+ event.getNewValue());
		} else {
			logger.info("received edit event where old values and new values are the same");
		}
	} catch (RuntimeException e) {
		logger.severe("exception in updating ChoiceField " + thischoicefield.getFieldname() + " : "
				+ e.getClass().getName() + ": " + e.getMessage());
		for (int i = 0; i < e.getStackTrace().length; i++)
			if (e.getStackTrace()[i].toString().startsWith("org.openlowcode"))
				logger.severe("		- " + e.getStackTrace()[i].toString());
	}

}
 
源代码9 项目: phoebus   文件: DirectChoiceBoxTableCell.java
@Override
protected void updateItem(final T value, final boolean empty)
{
    super.updateItem(value, empty);

    if (empty)
        setGraphic(null);
    else
    {
        choicebox.setValue(value);
        setGraphic(choicebox);

        choicebox.setOnAction(event ->
        {
            // 'onAction' is invoked from setValue as called above,
            // but also when table updates its cells.
            // Ignore those.
            // Also ignore dummy updates to null which happen
            // when the list of choices changes
            if (! choicebox.isShowing() ||
                choicebox.getValue() == null)
                return;

            final TableRow<S> row = getTableRow();
            if (row == null)
                return;

            // Fire 'onEditCommit'
            final TableView<S> table = getTableView();
            final TableColumn<S, T> col = getTableColumn();
            final TablePosition<S, T> pos = new TablePosition<>(table, row.getIndex(), col);
            Objects.requireNonNull(col.getOnEditCommit(), "Must define onEditCommit handler")
                   .handle(new CellEditEvent<>(table, pos, TableColumn.editCommitEvent(), choicebox.getValue()));
        });
    }
}
 
static <T, S> T getObjectAtEvent(CellEditEvent<T, S> evt) {
	
	TableView<T> tableView = evt.getTableView();
	
	ObservableList<T> items = tableView.getItems();
	
	TablePosition<T,S> tablePosition = evt.getTablePosition();
	
	int rowId = tablePosition.getRow();
	
	T obj = items.get(rowId);

	return obj;
}
 
 类所在包
 类方法
 同包方法