@FXML
private void initialize() {
dataOrDefault.addListener((__, prevData, curData) -> {
Map<String, Object> updated = curData.changesFrom(prevData);
if (prevData != null) {
// Remove items for any deleted robot preferences
prevData.asMap().entrySet().stream()
.map(Map.Entry::getKey)
.filter(k -> !curData.containsKey(k))
.forEach(wrapperProperties::remove);
}
updated.forEach((key, value) -> {
if (NetworkTableUtils.isMetadata(key)) {
return;
}
wrapperProperties.computeIfAbsent(key, k -> generateWrapper(k, value)).setValue(value);
});
});
wrapperProperties.addListener((MapChangeListener<String, ObjectProperty<? super Object>>) change -> {
if (change.wasAdded()) {
propertySheet.getItems().add(new ExtendedPropertySheet.PropertyItem<>(change.getValueAdded(), change.getKey()));
} else if (change.wasRemoved()) {
propertySheet.getItems().removeIf(i -> i.getName().equals(change.getKey()));
}
propertySheet.getItems().sort(itemSorter);
});
exportProperties(propertySheet.searchBoxVisibleProperty());
}
RobotPreferencesWidget.java 文件源码
java
阅读 17
收藏 0
点赞 0
评论 0
项目:shuffleboard
作者:
评论列表
文章目录