Sped-up inital loading od RecordedModelsTab

This commit is contained in:
0xboobface 2018-11-07 17:24:20 +01:00
parent 2a3e9c0634
commit c884c3b248
2 changed files with 10 additions and 13 deletions

View File

@ -25,10 +25,6 @@ public class JavaFxModel implements Model {
public JavaFxModel(Model delegate) { public JavaFxModel(Model delegate) {
this.delegate = delegate; this.delegate = delegate;
try {
onlineProperty.set(delegate.isOnline());
pausedProperty.set(delegate.isSuspended());
} catch (IOException | ExecutionException | InterruptedException e) {}
} }
@Override @Override

View File

@ -192,11 +192,14 @@ public class RecordedModelsTab extends Tab implements TabSelectionListener {
queue.clear(); queue.clear();
for (Model model : models) { for (Model model : models) {
int index = observableModels.indexOf(model); int index = observableModels.indexOf(model);
final JavaFxModel javaFxModel;
if (index == -1) { if (index == -1) {
observableModels.add(new JavaFxModel(model)); javaFxModel = new JavaFxModel(model);
observableModels.add(javaFxModel);
} else { } else {
// make sure to update the JavaFX online property, so that the table cell is updated // make sure to update the JavaFX online property, so that the table cell is updated
JavaFxModel javaFxModel = observableModels.get(index); javaFxModel = observableModels.get(index);
}
threadPool.submit(() -> { threadPool.submit(() -> {
try { try {
javaFxModel.getOnlineProperty().set(javaFxModel.isOnline()); javaFxModel.getOnlineProperty().set(javaFxModel.isOnline());
@ -204,14 +207,12 @@ public class RecordedModelsTab extends Tab implements TabSelectionListener {
} catch (IOException | ExecutionException | InterruptedException e) {} } catch (IOException | ExecutionException | InterruptedException e) {}
}); });
} }
}
for (Iterator<JavaFxModel> iterator = observableModels.iterator(); iterator.hasNext();) { for (Iterator<JavaFxModel> iterator = observableModels.iterator(); iterator.hasNext();) {
Model model = iterator.next(); Model model = iterator.next();
if (!models.contains(model)) { if (!models.contains(model)) {
iterator.remove(); iterator.remove();
} }
} }
}); });
updateService.setOnFailed((event) -> { updateService.setOnFailed((event) -> {
LOG.info("Couldn't get list of models from recorder", event.getSource().getException()); LOG.info("Couldn't get list of models from recorder", event.getSource().getException());