|
20 | 20 | import de.doubleslash.keeptime.exceptions.FXMLLoaderException; |
21 | 21 | import de.doubleslash.keeptime.model.Model; |
22 | 22 | import de.doubleslash.keeptime.model.Project; |
23 | | -import javafx.collections.ListChangeListener; |
24 | 23 | import javafx.collections.ObservableList; |
25 | 24 | import javafx.collections.transformation.FilteredList; |
26 | 25 | import javafx.fxml.FXMLLoader; |
@@ -77,14 +76,6 @@ public ProjectsListViewController(final Model model, final Controller controller |
77 | 76 |
|
78 | 77 | projectSelectionNodeMap = new HashMap<>(model.getAvailableProjects().size()); |
79 | 78 |
|
80 | | - model.getSortedAvailableProjects().addListener((ListChangeListener<? super Project>) listener -> { |
81 | | - listener.next(); |
82 | | - if (listener.wasAdded()) { |
83 | | - final Project addedProject = listener.getAddedSubList().get(0); |
84 | | - addProjectToProjectSelectionNodeMap(addedProject); |
85 | | - } |
86 | | - }); |
87 | | - |
88 | 79 | for (final Project project : model.getSortedAvailableProjects()) { |
89 | 80 | addProjectToProjectSelectionNodeMap(project); |
90 | 81 | } |
@@ -160,8 +151,6 @@ public ProjectsListViewController(final Model model, final Controller controller |
160 | 151 | private void addProjectToProjectSelectionNodeMap(final Project project) { |
161 | 152 | if (project.isEnabled()) { |
162 | 153 | final Pane projectElement = addProjectToProjectList(project); |
163 | | - final Label projectNameLabel = (Label) projectElement.getChildren().get(0); |
164 | | - projectNameLabel.setTooltip(new Tooltip(projectNameLabel.getText())); |
165 | 154 | projectSelectionNodeMap.put(project, projectElement); |
166 | 155 | } |
167 | 156 | } |
@@ -273,6 +262,8 @@ private Pane addProjectToProjectList(final Project p) { |
273 | 262 | projectNameLabel.setEffect(null); |
274 | 263 | }); |
275 | 264 |
|
| 265 | + projectNameLabel.setTooltip(new Tooltip(projectNameLabel.getText())); |
| 266 | + |
276 | 267 | final MenuItem changeWithTimeMenuItem = new MenuItem("Change with time"); |
277 | 268 | changeWithTimeMenuItem.setOnAction(e -> { |
278 | 269 | final ChangeWithTimeDialog changeWithTimeDialog = new ChangeWithTimeDialog(model, |
@@ -394,6 +385,11 @@ protected void updateItem(final Project item, final boolean empty) { |
394 | 385 | if (item == null || empty) { |
395 | 386 | setGraphic(null); |
396 | 387 | } else { |
| 388 | + final Pane graphic = (Pane) projectSelectionNodeMap.get(item); |
| 389 | + if (graphic == null) { |
| 390 | + final Project addedProject = item; |
| 391 | + addProjectToProjectSelectionNodeMap(addedProject); |
| 392 | + } |
397 | 393 | LOG.trace("Item: '{}' -> '{}'", item.getName(), projectSelectionNodeMap.get(item)); |
398 | 394 | setGraphic(projectSelectionNodeMap.get(item)); |
399 | 395 | } |
|
0 commit comments