Java 类javafx.scene.control.TableColumn.CellDataFeatures 实例源码
项目: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();
}
项目:pdfsam
文件:ReverseColumn.java
@Override
public TableColumn<SelectionTableRowData, Boolean> getTableColumn() {
TableColumn<SelectionTableRowData, Boolean> tableColumn = new TableColumn<>(getColumnTitle());
tableColumn.setCellFactory(CheckBoxTableCell.forTableColumn(tableColumn));
tableColumn.setCellValueFactory(
new Callback<CellDataFeatures<SelectionTableRowData, Boolean>, ObservableValue<Boolean>>() {
@Override
public ObservableValue<Boolean> call(CellDataFeatures<SelectionTableRowData, Boolean> param) {
if (param.getValue() != null) {
return param.getValue().reverse;
}
return null;
}
});
return tableColumn;
}
项目:jvarkit
文件:VcfStage.java
/** build FILTER table */
private TableView<String> buildFilterTable()
{
final TableView<String> table=new TableView<>();
final TableColumn<String,String> scol = new TableColumn<>("Filter");
scol.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<String,String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<String, String> param) {
return new ReadOnlyObjectWrapper<String>(param.getValue());
}
});
table.getColumns().add(scol);
table.setPlaceholder(new Label("No Variant or Variant contains no Filter"));
return table;
}
项目:gemoc-studio-modeldebugging
文件:EventTableView.java
@Override
public ObservableValue<String> call(CellDataFeatures<EventInstance, String> p) {
EventInstance event = p.getValue();
Object refValue = event.getParameters().get(reference);
if (refValue != null) {
String string = stringGetter.apply(refValue);
ObservableValue<String> result = new ReadOnlyObjectWrapper<String>(string);
return result;
}
return null;
}
项目:gemoc-studio-modeldebugging
文件:EventTableView.java
@Override
public ObservableValue<String> call(CellDataFeatures<EventInstance, String> p) {
EventInstance event = p.getValue();
Object refValue = event.getParameters().get(attribute);
if (refValue != null) {
ObservableValue<String> result = new ReadOnlyObjectWrapper<String>(refValue.toString());
return result;
}
return null;
}
项目:Evolution-Speciation
文件:MainWindowLayout.java
private void updateNameColumn(TableColumn<TableCreature, String> nameColumn) {
nameColumn.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<TableCreature, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<TableCreature, String> p) {
return new SimpleStringProperty(p.getValue().name);
}
});
}
项目:Evolution-Speciation
文件:MainWindowLayout.java
private void updateDnaSequenceColumn(TableColumn<TableCreature, String> dnaSequenceColumn) {
dnaSequenceColumn.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<TableCreature, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<TableCreature, String> p) {
return new SimpleStringProperty(p.getValue().dnaSequence);
}
});
}
项目:Evolution-Speciation
文件:MainWindowLayout.java
private void updateAmountColumn(TableColumn<TableCreature, String> amountColumn) {
amountColumn.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<TableCreature, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<TableCreature, String> p) {
return new SimpleStringProperty(p.getValue().amount);
}
});
}
项目:Gargoyle
文件:PivotTableViewExam.java
@Deprecated
TableColumn<Map<String, Object>, Object> createColumn(String column) {
TableColumn<Map<String, Object>, Object> tableColumn = new TableColumn<>(column);
tableColumn.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Map<String, Object>, Object>, ObservableValue<Object>>() {
@Override
public ObservableValue<Object> call(CellDataFeatures<Map<String, Object>, Object> param) {
return new SimpleObjectProperty<>(param.getValue().get(column));
}
});
return tableColumn;
}
项目:myWMS
文件:BeanUtils.java
public static <D>
Callback<CellDataFeatures<D,?>, ObservableValue<?>> getCellValueFactory(PropertyDescriptor pds) {
return a -> {
try {
return ObservableConstant.of(pds.getReadMethod().invoke(a.getValue()));
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
throw new UndeclaredThrowableException(e);
}
};
}
项目:TableFilterFX
文件:ColumnFilter.java
/**
* map indexs of the items to the items
*/
private void mapIndexesToCellValues() {
mapCellValuesToRowIndexes.clear();
for (int i = 0; i < tableFilter.getUnfilteredItems().size(); i++) {
S item = tableFilter.getUnfilteredItems().get(i);
T cellValue = column.getCellValueFactory().call(new CellDataFeatures<>(tableFilter.getTableView(), column, item)).getValue();
List<Integer> indexes = mapCellValuesToRowIndexes.get(cellValue);
if (indexes == null) {
indexes = new ArrayList<>();
mapCellValuesToRowIndexes.put(cellValue, indexes);
}
indexes.add(i);
}
}
项目:examples-javafx-repos1
文件:BigTableController.java
@FXML
public void initialize() {
btnSave.disableProperty().bind( dirtyFlag.not() );
// id is read-only
/* tcId.setCellValueFactory(new PropertyValueFactory<MyObject,Number>("id") {
@Override
public ObservableValue<Number> call(CellDataFeatures<MyObject, Number> param) {
return new ReadOnlyObjectWrapper<Number>(param.getValue().getId());
}
});
*/
tcId.setCellValueFactory(new PropertyValueFactory<MyObject,Number>("id"));
tcData.setCellValueFactory(new PropertyValueFactory<MyObject,String>("data"){
@Override
public ObservableValue<String> call(CellDataFeatures<MyObject, String> param) {
System.out.println("pvCounter=" + pvCounter++);
return new ReadOnlyObjectWrapper<String>(param.getValue().getData());
}
});
tcData.setCellFactory(TextFieldTableCell.forTableColumn());
tcData.setOnEditCommit( dataEditCommitHandler );
}
项目:ShootOFF
文件:TrainingExerciseBase.java
/**
* Adds a column to the shot timer table. The <tt>name</tt> is used to
* reference this column for the purposes of setting text and cleaning up.
*
* @param name
* both the text that will appear for name of the column and the
* name used to reference this column whenever it needs to be
* looked up
* @param width
* the width of the new column
*
* @since 1.3
*/
public void addShotTimerColumn(String name, int width) {
final TableColumn<ShotEntry, String> newCol = new TableColumn<>(name);
newCol.setPrefWidth(width);
newCol.setCellValueFactory(new Callback<CellDataFeatures<ShotEntry, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<ShotEntry, String> p) {
return new SimpleStringProperty(p.getValue().getExerciseValue(name));
}
});
exerciseColumns.put(name, newCol);
shotTimerTable.getColumns().add(newCol);
}
项目:jfx-torrent
文件:TorrentViewTable.java
private LinkedHashMap<String, TableColumn<TorrentView, ?>> buildColumnMappings() {
final Callback<CellDataFeatures<TorrentView, String>, ObservableValue<String>> priorityValueFactory =
tj -> tj.getValue().lifeCycleChangeProperty();
final Callback<CellDataFeatures<TorrentView, String>, ObservableValue<String>> nameValueFactory =
tj -> new ReadOnlyObjectWrapper<>(tj.getValue().getFileName());
final Callback<CellDataFeatures<TorrentView, Number>, ObservableValue<Number>> sizeValueFactory =
tj -> new ReadOnlyObjectWrapper<>(tj.getValue().getTotalLength());
final Callback<CellDataFeatures<TorrentView, Number>, ObservableValue<Number>> selectedSizeValueFactory =
tj -> tj.getValue().selectedLengthProperty();
final Callback<CellDataFeatures<TorrentView, Number>, ObservableValue<Number>> addedValueFactory =
tj -> new ReadOnlyObjectWrapper<>(tj.getValue().getAddedOnTime());
final Callback<CellDataFeatures<TorrentView, String>, ObservableValue<String>> trackerValueFactory =
tj -> new ReadOnlyObjectWrapper<>(tj.getValue().getTrackerUrl());
final TableColumn<TorrentView, ?> priorityColumn = TableUtils.buildColumn(priorityValueFactory,
val -> val.getLifeCycleChange(),
GuiUtils.RIGHT_ALIGNED_COLUMN_HEADER_TYPE_NAME, PRIORITY_COLUMN_LABEL);
torrentTable.getSortOrder().add(priorityColumn);
final LinkedHashMap<String, TableColumn<TorrentView, ?>> columnMappings = new LinkedHashMap<>();
columnMappings.put(PRIORITY_COLUMN_LABEL, priorityColumn);
columnMappings.put(NAME_COLUMN_LABEL, TableUtils.buildColumn(nameValueFactory, tj -> tj.getFileName(),
GuiUtils.LEFT_ALIGNED_COLUMN_HEADER_TYPE_NAME, NAME_COLUMN_LABEL));
columnMappings.put(SIZE_COLUMN_LABEL, TableUtils.buildColumn(sizeValueFactory, tj ->
UnitConverter.formatByteCount(tj.getTotalLength()),
GuiUtils.RIGHT_ALIGNED_COLUMN_HEADER_TYPE_NAME, SIZE_COLUMN_LABEL));
columnMappings.put(SELECTED_SIZE_COLUMN_LABEL, TableUtils.buildColumn(selectedSizeValueFactory, tj ->
UnitConverter.formatByteCount(tj.getSelectedLength()),
GuiUtils.LEFT_ALIGNED_COLUMN_HEADER_TYPE_NAME, SELECTED_SIZE_COLUMN_LABEL));
columnMappings.put(ADDED_COLUMN_LABEL, TableUtils.buildColumn(addedValueFactory, tj ->
UnitConverter.formatMillisToDate(tj.getAddedOnTime(), TimeZone.getDefault()),
GuiUtils.LEFT_ALIGNED_COLUMN_HEADER_TYPE_NAME, ADDED_COLUMN_LABEL));
columnMappings.put(TRACKER_COLUMN_LABEL, TableUtils.buildColumn(trackerValueFactory, tj -> tj.getTrackerUrl(),
GuiUtils.LEFT_ALIGNED_COLUMN_HEADER_TYPE_NAME, TRACKER_COLUMN_LABEL));
return columnMappings;
}
项目:ModelDebugging
文件:EventTableView.java
@Override
public ObservableValue<String> call(CellDataFeatures<EObject, String> p) {
EObject object = p.getValue();
Object refValue = object.eGet(reference);
if (refValue != null) {
String string = stringGetter.apply(refValue);
ObservableValue<String> result = new ReadOnlyObjectWrapper<String>(string);
return result;
}
return null;
}
项目:jfxCellValueFactories
文件:FormattedBigDecimalValueFactory.java
public ObservableValue<String> call(CellDataFeatures<EntityType, String> features) {
try {
EntityType entity = features.getValue();
Method m = entity.getClass().getMethod(getterName);
BigDecimal bigDecimal = (BigDecimal) m.invoke(entity);
String formattedBigDecimal = formatter.format(bigDecimal);
return new SimpleObservableValue<String>(formattedBigDecimal);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
项目:jfxCellValueFactories
文件:FormattedDateValueFactory.java
public ObservableValue<String> call(CellDataFeatures<EntityType, String> features) {
try {
EntityType entity = features.getValue();
Method m = entity.getClass().getMethod(getterName);
Date date = (Date) m.invoke(entity);
String formattedDate = formatter.format(date);
return new SimpleObservableValue<String>(formattedDate);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
项目:dwoss
文件:ReportController.java
private TableColumn<ReportLine, Number> toCurrencyColumn(String header, Callback<CellDataFeatures<ReportLine, Number>, ObservableValue<Number>> callback) {
TableColumn<ReportLine, Number> tc = new TableColumn<>();
tc.setText(header);
tc.setCellValueFactory(callback);
tc.setCellFactory(p -> new CurrencyCell());
return tc;
}
项目:Introspect-Framework
文件:RfxTable.java
private Callback<CellDataFeatures<Object, String>, ObservableValue<String>> createCellValueFactoryForJavaTypeOrEnum(
LanguageProvider languageProvider, Class<?> objectClass) {
JavaFormatFactory formatFactory = new JavaFormatFactory(languageProvider);
Format format = formatFactory.create(objectClass);
return new Callback<CellDataFeatures<Object, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<Object, String> param) {
String value = format.format(param);
return new ReadOnlyObjectWrapper<String>(value);
}
};
}
项目:Jootil
文件:BaseManagerStage.java
/**
* Adds a column for the specified property.
* @param name the column name
* @param property the property name
* @param width the width
*/
public <T> void addColumn(String name, int width, Callback<CellDataFeatures<E,T>, ObservableValue<T>> callback)
{
//table column
TableColumn<E, T> tableColumn = new TableColumn<E, T>(name);
tableColumn.setPrefWidth(width);
tableColumn.setCellValueFactory(callback);
this.tableView.getColumns().add(tableColumn);
}
项目:pdfsam
文件:SelectionTableColumn.java
/**
* @return the cell value factory used to extract data from the data model
*/
default Callback<CellDataFeatures<SelectionTableRowData, T>, ObservableValue<T>> cellValueFactory() {
return new Callback<CellDataFeatures<SelectionTableRowData, T>, ObservableValue<T>>() {
@Override
public ObservableValue<T> call(CellDataFeatures<SelectionTableRowData, T> param) {
if (param.getValue() != null) {
return getObservableValue(param.getValue());
}
return null;
}
};
}
项目:jvarkit
文件:NgsStage.java
protected <T,R> TableColumn<T,R> makeColumn(final String tag,final Function<T,R> supplier)
{
final TableColumn<T,R> col = new TableColumn<>(tag);
col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<T,R>, ObservableValue<R>>() {
@Override
public ObservableValue<R> call(CellDataFeatures<T, R> param) {
return new ReadOnlyObjectWrapper<R>(supplier.apply(param.getValue()));
}
});
return col;
}
项目:Gargoyle
文件:NumberingCellValueFactory.java
@Override
public ObservableValue<Integer> call(CellDataFeatures<T, Integer> param) {
return new ReadOnlyObjectWrapper<Integer>(items.indexOf(param.getValue()) + 1);
}
项目:Gargoyle
文件:NumberingCellValueFactory.java
@Override
public ObservableValue<Integer> call(CellDataFeatures<T, Integer> param) {
return new ReadOnlyObjectWrapper<Integer>(items.indexOf(param.getValue()) + 1);
}
项目:Gargoyle
文件:XmlAttributeTableViewFactory.java
public XmlAttributeTableView generate(NodeList list, List<String> columns) {
XmlAttributeTableView view = new XmlAttributeTableView();
view.setEditable(true);
ObservableList<TableColumn<Node, String>> tbColumns = FXCollections.observableArrayList();
for (String column : columns) {
TableColumn<Node, String> tc = new TableColumn<Node, String>();
tc.setEditable(false);
tc.setCellFactory(TextFieldTableCell.forTableColumn());
tc.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Node, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<Node, String> param) {
NamedNodeMap attributes = param.getValue().getAttributes();
if (attributes != null) {
Node namedItem = attributes.getNamedItem(column);
if (namedItem != null) {
SimpleStringProperty simpleStringProperty = new SimpleStringProperty(namedItem.getNodeValue());
simpleStringProperty.addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
if (newValue != null) {
namedItem.setNodeValue(newValue);
}
}
});
return simpleStringProperty;
}
}
return new SimpleStringProperty();
}
});
tc.setText(column);
if (columnHandler != null)
tc = columnHandler.apply(tc, column);
tbColumns.add(tc);
}
view.getColumns().setAll(tbColumns);
// view.getItems().addAll(list)
int itemCount = list.getLength();
List<Node> arrayList = new ArrayList<Node>();
for (int i = 0; i < itemCount; i++) {
Node item = list.item(i);
arrayList.add(item);
}
view.getItems().addAll(arrayList);
view.getSelectionModel().setCellSelectionEnabled(true);
view.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
FxUtil.installClipboardKeyEvent(view);
FxUtil.installFindKeyEvent(null, view);
return view;
}
项目:Gargoyle
文件:EditableTableView.java
@Override
public ObservableValue<ValueExpression> call(
CellDataFeatures<Map<ColumnExpression, ObjectProperty<ValueExpression>>, ValueExpression> param) {
return param.getValue().get(columnName);
}
项目:fall2016java
文件:FXMLDocumentController.java
@Override
public void initialize(URL url, ResourceBundle rb) {
studentsList = FXCollections.observableArrayList();
currentIndex = 0;
studentsListView.setItems(studentsList);
studentComboBox.setItems(studentsList);
studentsTableView.setItems(studentsList);
idColumn.setCellValueFactory(
new Callback<CellDataFeatures<Student, String>,
ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<Student, String> param) {
return new SimpleStringProperty(param.getValue().getStudentId());
}
});
nameColumn.setCellValueFactory(param -> new SimpleStringProperty(param.getValue().getStudentName()));
cgpaColumn.setCellValueFactory(param -> new SimpleDoubleProperty(param.getValue().getCgpa()));
final String HOSTNAME = "172.17.0.134";
final String DBNAME = "studentinfodb";
final String USERNAME = "cse2015fall2016";
final String PASSWORD = "java";
final String DBURL = "jdbc:mysql://" + HOSTNAME + "/" + DBNAME;
try {
Connection connection = DriverManager.getConnection(DBURL, USERNAME, PASSWORD);
System.out.println("Connected");
Statement statement = connection.createStatement();
String query = "select * from studentInfo;";
ResultSet resultSet = statement.executeQuery(query);
while (resultSet.next()) {
Student student = new Student(resultSet.getString("studentId"),
resultSet.getString("studentName"),
resultSet.getDouble("cgpa"));
studentsList.add(student);
}
if (studentsList.size() > 0) {
displayCurrentStudent();
}
} catch (SQLException ex) {
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
}
}
项目:openjfx-8u-dev-tests
文件:NewTableViewApp.java
private VBox getAddColumnForm() {
final TextField tfColumnName = new TextField();
tfColumnName.setPromptText("new column name");
tfColumnName.setId(NEW_COLUMN_NAME_TEXTFIELD_ID);
final TextField indexTf = new TextField();
indexTf.setPromptText("at index");
indexTf.setId(NEW_COLUMN_INDEX_TEXTFIELD_UD);
final CheckBox addDataPropertiesTabToTab = new CheckBox("with properties table for data");
addDataPropertiesTabToTab.setId(NEW_COLUMN_GET_DATA_PROPERTIES_TAB_ID);
final CheckBox addColumnPropertiesTableToTab = new CheckBox("with properties table for column");
addColumnPropertiesTableToTab.setId(NEW_COLUMN_GET_COLUMN_PROPERTIES_TAB_ID);
Button button = new Button("Add");
button.setId(NEW_COLUMN_ADD_BUTTON_ID);
button.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent t) {
final String name = tfColumnName.getText();
int index = Integer.parseInt(indexTf.getText());
TableColumn column = new TableColumn(name);
column.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<DataItem, String>, ObservableValue<String>>() {
public ObservableValue<String> call(CellDataFeatures<DataItem, String> p) {
return p.getValue().get(name);
}
});
introduceColumn(name, column);
if (addColumnPropertiesTableToTab.isSelected()) {
tabPane.addPropertiesTable(name, NodeControllerFactory.createFullController(column, tabPane));
}
testedTableView.getColumns().add(index, column);
if (addDataPropertiesTabToTab.isSelected()) {
final PropertiesTable forData = new PropertiesTable(null);
for (DataItem item : allData) {
forData.addStringLine(item.get(name), "new value");
}
tabPane.addPropertiesTable(name + " data", forData.getVisualRepresentation());
}
}
});
HBox hb1 = new HBox(3);
hb1.getChildren().addAll(new Label("With name"), tfColumnName);
HBox hb2 = new HBox(3);
hb2.getChildren().addAll(new Label("At index"), indexTf, button);
VBox vb = new VBox();
vb.getChildren().addAll(hb1, addDataPropertiesTabToTab, addColumnPropertiesTableToTab, hb2);
return vb;
}
项目:drbookings
文件:OccupancyCellValueFactory.java
@Override
public ObservableValue<Number> call(final CellDataFeatures<DateBean, Number> param) {
return param.getValue().auslastungProperty();
}
项目:qupath
文件:ViewTrackerExportCommand.java
@Override
public void run() {
if (dialog == null) {
dialog = new Stage();
if (QuPathGUI.getInstance() != null)
dialog.initOwner(QuPathGUI.getInstance().getStage());
dialog.setTitle("View tracker");
for (int i = 0; i < nCols(tracker); i++) {
final int col = i;
TableColumn<ViewRecordingFrame, Object> column = new TableColumn<>(getColumnName(col));
column.setCellValueFactory(new Callback<CellDataFeatures<ViewRecordingFrame, Object>, ObservableValue<Object>>() {
@Override
public ObservableValue<Object> call(CellDataFeatures<ViewRecordingFrame, Object> frame) {
return new SimpleObjectProperty<>(getColumnValue(frame.getValue(), col));
}
});
table.getColumns().add(column);
}
table.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
table.getSelectionModel().selectedItemProperty().addListener((v, o, frame) -> {
if (frame != null)
ViewTrackerPlayback.setViewerForFrame(viewer, frame);
});
refreshTracker();
Button btnImport = new Button("Import");
btnImport.setOnAction(e -> {
if (handleImport(tracker)) {
refreshTracker();
}
});
Button btnExport = new Button("Export");
btnExport.setOnAction(e -> {
handleExport(tracker);
});
Button btnCopy = new Button("Copy to clipboard");
btnCopy.setOnAction(e -> {
ClipboardContent content = new ClipboardContent();
content.putString(tracker.getSummaryString());
Clipboard clipboard = Clipboard.getSystemClipboard();
clipboard.setContent(content);
});
GridPane panelButtons = PanelToolsFX.createColumnGridControls(
btnImport,
btnExport,
btnCopy
);
BorderPane pane = new BorderPane();
pane.setCenter(table);
pane.setBottom(panelButtons);
dialog.setScene(new Scene(pane));
}
dialog.show();
dialog.toFront();
}
项目:VocabHunter
文件:FilterGridController.java
private ObservableValue<GridCell> extractValue(final CellDataFeatures<GridLine, GridCell> features, final int index) {
List<GridCell> cells = features.getValue().getCells();
GridCell cell = getCell(cells, index);
return cellCache.computeIfAbsent(cell, ReadOnlyObjectWrapper::new);
}
项目:jfx-torrent
文件:TableUtils.java
/**
* Build a table column
*
* @param <T> Type of the view object stored in the table
* @param <U> Type of data stored in the table cells
* @param cellValueFactory How to set the cell values
* @param valueConverter Function that converts T to string representation
* @param alignmentStyle Column content alignment
* @param columnName Column name displayed in the column header
* @return Built column
*/
public static <T, U> TableColumn<T, U> buildColumn(
final Callback<CellDataFeatures<T, U>, ObservableValue<U>> cellValueFactory,
final Function<T, String> valueConverter, final String alignmentStyle,
final String columnName) {
final TableColumn<T, U> builtColumn = new TableColumn<>(columnName);
builtColumn.setId(columnName);
builtColumn.setGraphic(TableUtils.buildColumnHeader(builtColumn, alignmentStyle));
builtColumn.setCellValueFactory(cellValueFactory);
builtColumn.setCellFactory(column -> new TableCell<T, U>() {
final Label valueLabel = new Label();
@Override
protected final void updateItem(final U value, final boolean empty) {
super.updateItem(value, empty);
if(empty) {
setText(null);
setGraphic(null);
}
else {
if(this.getTableRow() == null) {
return;
}
final T item = this.getTableView().getItems().get(this.getTableRow().getIndex());
valueLabel.setText(valueConverter.apply(item));
this.setGraphic(valueLabel);
if(GuiUtils.RIGHT_ALIGNED_COLUMN_HEADER_TYPE_NAME.equals(alignmentStyle)) {
this.setAlignment(Pos.BASELINE_RIGHT);
super.setPadding(GuiUtils.rightPadding());
}
else {
this.setAlignment(Pos.BASELINE_LEFT);
super.setPadding(GuiUtils.leftPadding());
}
}
}
});
return builtColumn;
}
项目:jfx-torrent
文件:TrackerTable.java
private LinkedHashMap<String, TableColumn<TrackableView, ?>> buildColumnMappings() {
final Function<TrackableView, String> updateInValueConverter = tv -> {
if(!tv.isUserManaged() || tv.getTorrentView().getStatus() == TorrentStatus.STOPPED) {
return "";
}
final long nextUpdateValue = tv.getNextUpdate();
if(nextUpdateValue < 1000 || (nextUpdateValue > 0 && "".equals(tv.getStatus()))) {
return Tracker.STATUS_UPDATING_MESSAGE;
}
else {
return UnitConverter.formatMillisToTime(nextUpdateValue);
}
};
final Function<TrackableView, String> intervalValueConverter = tv -> {
final long interval = tv.getInterval();
return (tv.isUserManaged() && tv.getTorrentView().getStatus() != TorrentStatus.STOPPED) && (interval > 0)?
UnitConverter.formatMillisToTime(interval) : "";
};
final Function<TrackableView, String> minIntervalValueConverter =
tv -> tv.isUserManaged() && tv.getTorrentView().getStatus() != TorrentStatus.STOPPED?
UnitConverter.formatMillisToTime(tv.getMinInterval()) : "";
final Callback<CellDataFeatures<TrackableView, String>, ObservableValue<String>> nameValueFactory =
tv -> new ReadOnlyObjectWrapper<>(tv.getValue().getName());
final Callback<CellDataFeatures<TrackableView, String>, ObservableValue<String>> statusValueFactory =
tv -> tv.getValue().statusProperty();
final Callback<CellDataFeatures<TrackableView, Number>, ObservableValue<Number>> nextUpdateValueFactory =
tv -> tv.getValue().nextUpdateProperty();
final Callback<CellDataFeatures<TrackableView, Number>, ObservableValue<Number>> intervalValueFactory =
tv -> tv.getValue().intervalProperty();
final Callback<CellDataFeatures<TrackableView, Number>, ObservableValue<Number>> minIntervalValueFactory =
tv -> tv.getValue().minIntervalProperty();
final Callback<CellDataFeatures<TrackableView, Number>, ObservableValue<Number>> seedsValueFactory =
tv -> tv.getValue().seedsProperty();
final Callback<CellDataFeatures<TrackableView, Number>, ObservableValue<Number>> peersValueFactory =
tv -> tv.getValue().leechersProperty();
final Callback<CellDataFeatures<TrackableView, Number>, ObservableValue<Number>> downloadedValueFactory =
tv -> tv.getValue().downloadedProperty();
final TableColumn<TrackableView, String> nameColumn = TableUtils.buildColumn(nameValueFactory,
TrackableView::getName, GuiUtils.LEFT_ALIGNED_COLUMN_HEADER_TYPE_NAME, NAME_COLUMN_NAME);
trackerTable.getSortOrder().add(nameColumn);
final LinkedHashMap<String, TableColumn<TrackableView, ?>> columnMappings = new LinkedHashMap<>();
columnMappings.put(NAME_COLUMN_NAME, nameColumn);
columnMappings.put(STATUS_COLUMN_NAME, TableUtils.buildColumn(statusValueFactory,
TrackableView::getStatus, GuiUtils.LEFT_ALIGNED_COLUMN_HEADER_TYPE_NAME, STATUS_COLUMN_NAME));
columnMappings.put(UPDATE_IN_COLUMN_NAME, TableUtils.buildColumn(nextUpdateValueFactory,
updateInValueConverter, GuiUtils.LEFT_ALIGNED_COLUMN_HEADER_TYPE_NAME, UPDATE_IN_COLUMN_NAME));
columnMappings.put(INTERVAL_COLUMN_NAME, TableUtils.buildColumn(intervalValueFactory,
intervalValueConverter, GuiUtils.LEFT_ALIGNED_COLUMN_HEADER_TYPE_NAME, INTERVAL_COLUMN_NAME));
columnMappings.put(MIN_INTERVAL_COLUMN_NAME, TableUtils.buildColumn(minIntervalValueFactory,
minIntervalValueConverter, GuiUtils.LEFT_ALIGNED_COLUMN_HEADER_TYPE_NAME, MIN_INTERVAL_COLUMN_NAME));
columnMappings.put(SEEDS_COLUMN_NAME, TableUtils.buildColumn(seedsValueFactory,
val -> String.valueOf(val.getSeeders()), GuiUtils.RIGHT_ALIGNED_COLUMN_HEADER_TYPE_NAME, SEEDS_COLUMN_NAME));
columnMappings.put(PEERS_COLUMN_NAME, TableUtils.buildColumn(peersValueFactory,
val -> String.valueOf(val.getLeechers()), GuiUtils.RIGHT_ALIGNED_COLUMN_HEADER_TYPE_NAME, PEERS_COLUMN_NAME));
columnMappings.put(DOWNLOADED_COLUMN_NAME, TableUtils.buildColumn(downloadedValueFactory, val ->
String.valueOf(val.getDownloaded()), GuiUtils.RIGHT_ALIGNED_COLUMN_HEADER_TYPE_NAME, DOWNLOADED_COLUMN_NAME));
return columnMappings;
}
项目:dwoss
文件:ReportController.java
private TableColumn<ReportLine, String> toTableLineColumn(String header, Callback<CellDataFeatures<ReportLine, String>, ObservableValue<String>> callback) {
TableColumn tc = new TableColumn();
tc.setText(header);
tc.setCellValueFactory(callback);
return tc;
}
项目:ISAAC
文件:CreateMappingItemController.java
@Override
public ObservableValue<SearchResultConcept> call(CellDataFeatures<SearchResultConcept, SearchResultConcept> param) {
return new SimpleObjectProperty<SearchResultConcept>(param.getValue());
}
项目:ISAAC
文件:MappingController.java
@Override
public ObservableValue<MappingItem> call(CellDataFeatures<MappingItem, MappingItem> param) {
return new SimpleObjectProperty<MappingItem>(param.getValue());
}
项目:ISAAC
文件:MappingController.java
@Override
public ObservableValue<MappingSet> call(CellDataFeatures<MappingSet, MappingSet> param) {
return new SimpleObjectProperty<MappingSet>(param.getValue());
}
项目:ISAAC
文件:RelationshipTableView.java
private void addTableColumns(RelationshipColumnType[] columns, boolean isStampColumnSet,
Callback<TableColumn<RelationshipVersion, RelationshipVersion>, TableCell<RelationshipVersion, RelationshipVersion>> cellFactory)
{
TableColumn<RelationshipVersion, RelationshipVersion> nestingParent = null;
if (isStampColumnSet)
{
nestingParent = new TableColumn<>("Stamp Fields");
relationshipsTable.getColumns().add(nestingParent);
stampColumns.add(nestingParent);
}
for (RelationshipColumnType col : columns)
{
TableColumn<RelationshipVersion, RelationshipVersion> tc = new TableColumn<RelationshipVersion, RelationshipVersion>(col.toString());
tc.setUserData(col);
tc.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<RelationshipVersion, RelationshipVersion>, ObservableValue<RelationshipVersion>>()
{
@Override
public ObservableValue<RelationshipVersion> call(CellDataFeatures<RelationshipVersion, RelationshipVersion> param)
{
return new SimpleObjectProperty<RelationshipVersion>(param.getValue());
}
});
tc.setCellFactory(cellFactory);
//TODO Dan forgot to put comparators on these columns
//off by default
if (col == RelationshipColumnType.UUID || col == RelationshipColumnType.SOURCE)
{
tc.setVisible(false);
}
if (col == RelationshipColumnType.SOURCE)
{
sourceColumn = tc;
}
if (nestingParent == null)
{
relationshipsTable.getColumns().add(tc);
}
else
{
nestingParent.getColumns().add(tc);
stampColumns.add(tc);
}
}
}
项目:ISAAC
文件:DescriptionTableView.java
private void addTableColumns(DescriptionColumnType[] columns, boolean isStampColumnSet,
Callback<TableColumn<DescriptionVersion, DescriptionVersion>, TableCell<DescriptionVersion, DescriptionVersion>> cellFactory)
{
TableColumn<DescriptionVersion, DescriptionVersion> nestingParent = null;
if (isStampColumnSet)
{
nestingParent = new TableColumn<>("Stamp Fields");
descriptionsTable.getColumns().add(nestingParent);
stampColumns.add(nestingParent);
}
for (DescriptionColumnType col : columns)
{
TableColumn<DescriptionVersion, DescriptionVersion> tc = new TableColumn<DescriptionVersion, DescriptionVersion>(col.toString());
tc.setUserData(col);
tc.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<DescriptionVersion, DescriptionVersion>, ObservableValue<DescriptionVersion>>()
{
@Override
public ObservableValue<DescriptionVersion> call(CellDataFeatures<DescriptionVersion, DescriptionVersion> param)
{
return new SimpleObjectProperty<DescriptionVersion>(param.getValue());
}
});
tc.setCellFactory(cellFactory);
//TODO Dan forgot to put comparators on these columns
//off by default
if (col == DescriptionColumnType.UUID)
{
tc.setVisible(false);
}
if (nestingParent == null)
{
descriptionsTable.getColumns().add(tc);
}
else
{
nestingParent.getColumns().add(tc);
stampColumns.add(tc);
}
}
}
项目:Strata
文件:ScheduleGui.java
@Override
public ObservableValue<T> call(CellDataFeatures<S, T> param) {
return getCellDataReflectively(param.getValue());
}