SimpleObjectProperty<LighthouseBackend.ProjectState> state = new SimpleObjectProperty<>(getProjectState(project));
projectStates.addListener((javafx.beans.InvalidationListener) x -> state.set(getProjectState(project)));
ProjectOverviewWidget projectWidget = new ProjectOverviewWidget(project,
Main.backend.makeTotalPledgedProperty(project, UI_THREAD),
state);
projectWidget.onCheckStatusChanged(checkStates.get(project));
checkStates.addListener((MapChangeListener<Project, LighthouseBackend.CheckStatus>) change -> {
if (change.getKey().equals(project))
projectWidget.onCheckStatusChanged(change.wasAdded() ? change.getValueAdded() : null);
});
projectWidget.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> switchToProject(project));