下面列出了怎么用javafx.scene.control.TreeTableColumn.CellDataFeatures的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* generates the root column showing label of line elements
*/
private void generateRootColumn() {
TreeTableColumn<
EditableTreeTableLineItem<Wrapper<E>>,
String> rootcolumn = new TreeTableColumn<EditableTreeTableLineItem<Wrapper<E>>, String>("Item");
rootcolumn.setCellValueFactory(new Callback<
CellDataFeatures<EditableTreeTableLineItem<Wrapper<E>>, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<EditableTreeTableLineItem<Wrapper<E>>, String> param) {
return new SimpleStringProperty(param.getValue().getValue().getLabel());
}
});
treetableview.getColumns().add(rootcolumn);
}
@Override
public ObservableValue<Object> call(CellDataFeatures<ModularFeatureListRow, Object> param) {
final ModularDataModel map = dataMapSupplier.apply(param);
if (map == null) {
logger.log(Level.WARNING, "There was no DataTypeMap for the column of DataType "
+ type.getClass().toString() + " and raw file " + (raw == null ? "NONE" : raw.getName()));
return null;
}
return (ObservableValue<Object>) map.get(type);
}
/**
* The default way to get the DataMap. FeatureListRow (for raw==null), Feature for raw!=null.
*/
@Override
public ModularDataModel apply(CellDataFeatures<ModularFeatureListRow, Object> param) {
if (raw != null) {
// find data type map for feature for this raw file
Map<RawDataFile, ModularFeature> features = param.getValue().getValue().getFeatures();
// no features
if (features.get(raw) == null)
return null;
return features.get(raw);
} else {
// use feature list row DataTypeMap
return param.getValue().getValue();
}
}
public DataTypeCellValueFactory(RawDataFile raw, DataType<?> type,
Function<CellDataFeatures<ModularFeatureListRow, Object>, ModularDataModel> dataMapSupplier) {
this.type = type;
this.raw = raw;
this.dataMapSupplier = dataMapSupplier == null ? this : dataMapSupplier;
}
public BookMarks(){
for(int i=0 ; i< folders.size();i++){
System.out.println(i);
parentFolder.getChildren().add(new TreeItem<>(folders.get(i),new ImageView(folderImage)));
}
bookMarkCol.setCellValueFactory(new Callback<CellDataFeatures<String,String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<String, String> param) {
return new SimpleStringProperty(param.getValue().getValue());
}
});
nameCol.setCellValueFactory(new PropertyValueFactory<URLdetails,String>("name"));
locationCol.setCellValueFactory(new PropertyValueFactory<URLdetails,String>("location"));
dateCol.setCellValueFactory(new PropertyValueFactory<URLdetails,String>("date"));
timeCol.setCellValueFactory(new PropertyValueFactory<URLdetails,String>("time"));
treeView.getSelectionModel().selectedItemProperty().addListener((observable,oldValue,newValue)->{
TreeItem<String> selectedItem = (TreeItem<String>) newValue;
System.out.println("Selected Text : " + selectedItem.getValue());
ObservableList<URLdetails> list = new PopulateTable().PopulateTable(selectedItem.getValue());
table.setItems(list);
});
table.focusedProperty().addListener((observable,oldValue,newValue)->{
String url = table.getSelectionModel().getSelectedItem().getLocation();
System.out.println("Url of the selected bookmarks: "+url);
});
bookMarkCol.setPrefWidth(150);
nameCol.setPrefWidth(200);
timeCol.setPrefWidth(150);
dateCol.setPrefWidth(150);
locationCol.setPrefWidth(300);
parentFolder.setExpanded(true);
treeView.getColumns().add(bookMarkCol);
treeView.setRoot(parentFolder);
table.getColumns().addAll(nameCol,locationCol,dateCol,timeCol);
table.setItems(list);
}
public ObservableValue<T> call(CellDataFeatures<T,T> f)
{
T v = value(f.getValue(), f.getTreeTableColumn(), f.getTreeTableView());
return new ReadOnlyObjectWrapper<T>(v);
}