use of javafx.collections.ListChangeListener in project Challenger4SysAdmins by fvarrui.
the class TreeItemFactory method createChallengeTreeItem.
/**
* @param challenge un chellenge
* @return un item
*/
public static TreeItem<Object> createChallengeTreeItem(Challenge challenge) {
TreeItem<Object> challengeItem = new TreeItem<Object>();
challengeItem.setExpanded(true);
challengeItem.setValue(challenge);
for (Goal goal : challenge.getGoals()) {
challengeItem.getChildren().add(createGoalTreeItem(goal));
}
challenge.goalsProperty().addListener(new ListChangeListener<Goal>() {
public void onChanged(Change<? extends Goal> c) {
while (c.next()) {
c.getAddedSubList().stream().forEach(g -> challengeItem.getChildren().add(createGoalTreeItem(g)));
c.getRemoved().stream().forEach(g -> {
TreeItem<Object> item = challengeItem.getChildren().stream().filter(i -> i.getValue().equals(g)).findFirst().get();
challengeItem.getChildren().remove(item);
});
}
}
});
return challengeItem;
}
use of javafx.collections.ListChangeListener in project Challenger4SysAdmins by fvarrui.
the class TreeItemFactory method createTestTreeItem.
/**
* @param test un test
* @return un item de tipo test
*/
public static TreeItem<Object> createTestTreeItem(Test test) {
TreeItem<Object> testItem = new TreeItem<Object>();
testItem.setExpanded(true);
testItem.setValue(test);
if (test instanceof TestGroup) {
TestGroup ct = (TestGroup) test;
for (Test t : ct.getTests()) {
testItem.getChildren().add(createTestTreeItem(t));
}
ct.testsProperty().addListener(new ListChangeListener<Test>() {
public void onChanged(Change<? extends Test> c) {
while (c.next()) {
c.getAddedSubList().stream().forEach(g -> testItem.getChildren().add(createTestTreeItem(g)));
c.getRemoved().stream().forEach(g -> {
TreeItem<Object> item = testItem.getChildren().stream().filter(i -> i.getValue().equals(g)).findFirst().get();
testItem.getChildren().remove(item);
});
}
}
});
} else if (test instanceof CommandTest) {
CommandTest ct = (CommandTest) test;
if (ct.getCommand() != null) {
testItem.getChildren().add(createCommandTreeItem(ct.getCommand()));
}
ct.commandProperty().addListener((o, ov, nv) -> {
if (nv != null) {
testItem.getChildren().add(createCommandTreeItem(ct.getCommand()));
} else {
testItem.getChildren().clear();
}
});
}
return testItem;
}
use of javafx.collections.ListChangeListener in project Board-Instrumentation-Framework by intel.
the class DoubleRadialGauge method registerListeners.
private void registerListeners() {
sectionsOne.addListener((ListChangeListener<Section>) c -> IntStream.range(0, sectionsOne.size()).parallel().forEachOrdered(i -> {
Section section = sectionsOne.get(i);
switch(i) {
case 0:
setSectionFill0One(section.getColor());
break;
case 1:
setSectionFill1One(section.getColor());
break;
case 2:
setSectionFill2One(section.getColor());
break;
case 3:
setSectionFill3One(section.getColor());
break;
case 4:
setSectionFill4One(section.getColor());
break;
}
}));
areasOne.addListener((ListChangeListener<Section>) c -> IntStream.range(0, areasOne.size()).parallel().forEachOrdered(i -> {
Section area = areasOne.get(i);
switch(i) {
case 0:
setAreaFill0One(area.getColor());
break;
case 1:
setAreaFill1One(area.getColor());
break;
case 2:
setAreaFill2One(area.getColor());
break;
case 3:
setAreaFill3One(area.getColor());
break;
case 4:
setAreaFill4One(area.getColor());
break;
}
}));
sectionsTwo.addListener((ListChangeListener<Section>) c -> IntStream.range(0, sectionsTwo.size()).parallel().forEachOrdered(i -> {
Section section = sectionsTwo.get(i);
switch(i) {
case 0:
setSectionFill0Two(section.getColor());
break;
case 1:
setSectionFill1Two(section.getColor());
break;
case 2:
setSectionFill2Two(section.getColor());
break;
case 3:
setSectionFill3Two(section.getColor());
break;
case 4:
setSectionFill4Two(section.getColor());
break;
}
}));
areasTwo.addListener((ListChangeListener<Section>) c -> IntStream.range(0, areasTwo.size()).parallel().forEachOrdered(i -> {
Section area = areasTwo.get(i);
switch(i) {
case 0:
setAreaFill0Two(area.getColor());
break;
case 1:
setAreaFill1Two(area.getColor());
break;
case 2:
setAreaFill2Two(area.getColor());
break;
case 3:
setAreaFill3Two(area.getColor());
break;
case 4:
setAreaFill4Two(area.getColor());
break;
}
}));
}
use of javafx.collections.ListChangeListener in project loinc2hpo by monarch-initiative.
the class AnnotateTabController method initialize.
@FXML
private void initialize() {
if (model != null) {
// weird line. model is set by main controller; this line never runs
setModel(model);
// currentAnnotationController.setModel(model); //let current annotation stage have access to model
}
// currentAnnotationController.setModel(model); //let current annotation stage have access to model
suggestHPOButton.setTooltip(new Tooltip("Suggest new HPO terms"));
filterButton.setTooltip(new Tooltip("Filter Loinc by providing a Loinc list in txt file"));
addCodedAnnotationButton.setTooltip(new Tooltip("Add current annotation"));
flagForAnnotation.setTooltip(new Tooltip("Check if you are not confident"));
clearButton.setTooltip(new Tooltip("Clear all textfields"));
allAnnotationsButton.setTooltip(new Tooltip("Display annotations for currently selected Loinc code"));
initLOINCtableButton.setTooltip(new Tooltip("Initialize Loinc Core Table. Download it first."));
IntializeHPOmodelbutton.setTooltip(new Tooltip("Load hp.owl as a RDF model for query"));
searchForLOINCIdButton.setTooltip(new Tooltip("Search Loinc with a Loinc code or name"));
modeButton.setTooltip(new Tooltip("Switch between basic and advanced annotation mode"));
autoQueryButton.setTooltip(new Tooltip("Find candidate HPO terms with automatically generated keys"));
manualQueryButton.setTooltip(new Tooltip("Find candidate HPO terms with manually typed keys"));
hpoListView.setCellFactory(new Callback<ListView<HPO_Class_Found>, ListCell<HPO_Class_Found>>() {
@Override
public ListCell<HPO_Class_Found> call(ListView<HPO_Class_Found> param) {
return new ListCell<HPO_Class_Found>() {
@Override
public void updateItem(HPO_Class_Found hpo, boolean empty) {
super.updateItem(hpo, empty);
if (hpo != null) {
setText(hpo.toString());
Tooltip tooltip = new Tooltip(hpo.getDefinition());
tooltip.setPrefWidth(300);
tooltip.setWrapText(true);
setTooltip(tooltip);
} else {
setText(null);
}
}
};
}
});
treeView.setCellFactory(new Callback<TreeView<HPO_TreeView>, TreeCell<HPO_TreeView>>() {
@Override
public TreeCell<HPO_TreeView> call(TreeView<HPO_TreeView> param) {
return new TreeCell<HPO_TreeView>() {
@Override
public void updateItem(HPO_TreeView hpo, boolean empty) {
super.updateItem(hpo, empty);
if (empty) {
setText(null);
setGraphic(null);
} else {
if (hpo != null && hpo.hpo_class_found == null) {
setText("root");
}
if (hpo != null && hpo.hpo_class_found != null) {
setText(hpo.toString());
if (hpo.hpo_class_found.getDefinition() != null) {
Tooltip tooltip = new Tooltip(hpo.hpo_class_found.getDefinition());
tooltip.setPrefWidth(300);
tooltip.setWrapText(true);
setTooltip(tooltip);
}
}
}
}
};
}
});
// if user creates a new Loinc group, add two menuitems for it, and specify the actions when those menuitems are
// clicked
userCreatedLoincLists.addListener(new ListChangeListener<String>() {
@Override
public void onChanged(Change<? extends String> c) {
while (c.next()) {
if (c.wasAdded()) {
logger.trace(c + " was added");
c.getAddedSubList().stream().filter(p -> !model.getUserCreatedLoincLists().containsKey(p)).forEach(p -> {
model.addUserCreatedLoincList(p, new LinkedHashSet<>());
MenuItem newListMenuItem = new MenuItem(p);
userCreatedLoincListsButton.getItems().add(newListMenuItem);
newListMenuItem.setOnAction((event -> {
logger.trace("action detected");
if (loincTableView.getSelectionModel().getSelectedItem() != null) {
LoincId loincId = loincTableView.getSelectionModel().getSelectedItem().getLOINC_Number();
if (model.getUserCreatedLoincLists().get(p).contains(loincId)) {
model.getUserCreatedLoincLists().get(p).remove(loincId);
logger.trace(String.format("LOINC: %s removed from %s", loincId, p));
} else {
model.getUserCreatedLoincLists().get(p).add(loincId);
logger.trace(String.format("LOINC: %s added to %s", loincId, p));
}
changeColorLoincTableView();
model.setSessionChanged(true);
}
}));
MenuItem newExportMenuItem = new MenuItem(p);
exportLoincListButton.getItems().add(newExportMenuItem);
newExportMenuItem.setOnAction((event -> {
logger.trace("action detected");
if (loincTableView.getSelectionModel().getSelectedItem() != null) {
Set<LoincId> loincIds = model.getUserCreatedLoincLists().get(p);
if (loincIds.isEmpty()) {
return;
}
FileChooser chooser = new FileChooser();
chooser.setTitle("Save Loinc List: ");
chooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("TSV files (*.txt)", "*.txt"));
chooser.setInitialFileName(p);
File f = chooser.showSaveDialog(null);
String filepath;
if (f == null) {
return;
} else {
filepath = f.getAbsolutePath();
}
StringBuilder builder = new StringBuilder();
loincIds.forEach(l -> {
builder.append(l);
builder.append("\n");
});
WriteToFile.writeToFile(builder.toString().trim(), filepath);
}
}));
MenuItem newImportMenuItem = new MenuItem(p);
importLoincGroupButton.getItems().add(newImportMenuItem);
newImportMenuItem.setOnAction((event) -> {
logger.trace("user wants to import " + p);
FileChooser chooser = new FileChooser();
chooser.setTitle("Select file to import from");
File f = chooser.showOpenDialog(null);
if (f == null) {
return;
}
List<String> malformed = new ArrayList<>();
List<String> notFound = new ArrayList<>();
try {
LoincOfInterest loincSet = new LoincOfInterest(f.getAbsolutePath());
Set<String> loincIds = loincSet.getLoincOfInterest();
loincIds.forEach(l -> {
LoincId loincId = null;
try {
loincId = new LoincId(l);
} catch (MalformedLoincCodeException e) {
malformed.add(l);
}
if (model.getLoincEntryMap().containsKey(loincId)) {
model.getUserCreatedLoincLists().get(p).add(loincId);
} else {
notFound.add(l);
}
changeColorLoincTableView();
});
} catch (FileNotFoundException e) {
logger.error("File not found. Should never happen");
}
if (!malformed.isEmpty() || !notFound.isEmpty()) {
String malformedString = String.join("\n", malformed);
String notFoundString = String.join("\n", notFound);
PopUps.showInfoMessage(String.format("Malformed Loinc: %d\n%s\nNot Found: %d\n%s", malformed.size(), malformedString, notFound.size(), notFoundString), "Error during importing");
}
});
});
} else {
logger.error("This should never happen");
}
}
}
});
initadvancedAnnotationTable();
}
use of javafx.collections.ListChangeListener in project bisq-desktop by bisq-network.
the class NotificationCenter method onAllServicesAndViewsInitialized.
public void onAllServicesAndViewsInitialized() {
tradeManager.getTradableList().addListener((ListChangeListener<Trade>) change -> {
change.next();
if (change.wasRemoved()) {
change.getRemoved().stream().forEach(trade -> {
String tradeId = trade.getId();
if (disputeStateSubscriptionsMap.containsKey(tradeId)) {
disputeStateSubscriptionsMap.get(tradeId).unsubscribe();
disputeStateSubscriptionsMap.remove(tradeId);
}
if (tradePhaseSubscriptionsMap.containsKey(tradeId)) {
tradePhaseSubscriptionsMap.get(tradeId).unsubscribe();
tradePhaseSubscriptionsMap.remove(tradeId);
}
});
}
if (change.wasAdded()) {
change.getAddedSubList().stream().forEach(trade -> {
String tradeId = trade.getId();
if (disputeStateSubscriptionsMap.containsKey(tradeId)) {
log.debug("We have already an entry in disputeStateSubscriptionsMap.");
} else {
Subscription disputeStateSubscription = EasyBind.subscribe(trade.disputeStateProperty(), disputeState -> onDisputeStateChanged(trade, disputeState));
disputeStateSubscriptionsMap.put(tradeId, disputeStateSubscription);
}
if (tradePhaseSubscriptionsMap.containsKey(tradeId)) {
log.debug("We have already an entry in tradePhaseSubscriptionsMap.");
} else {
Subscription tradePhaseSubscription = EasyBind.subscribe(trade.statePhaseProperty(), phase -> onTradePhaseChanged(trade, phase));
tradePhaseSubscriptionsMap.put(tradeId, tradePhaseSubscription);
}
});
}
});
tradeManager.getTradableList().stream().forEach(trade -> {
String tradeId = trade.getId();
Subscription disputeStateSubscription = EasyBind.subscribe(trade.disputeStateProperty(), disputeState -> onDisputeStateChanged(trade, disputeState));
disputeStateSubscriptionsMap.put(tradeId, disputeStateSubscription);
Subscription tradePhaseSubscription = EasyBind.subscribe(trade.statePhaseProperty(), phase -> onTradePhaseChanged(trade, phase));
tradePhaseSubscriptionsMap.put(tradeId, tradePhaseSubscription);
});
}
Aggregations