implement hideable notification bars

This commit is contained in:
Jan-Peter Klein
2024-07-02 12:43:27 +02:00
parent d379ada100
commit 8ff06a3efd
3 changed files with 66 additions and 5 deletions

View File

@@ -14,10 +14,13 @@ import org.slf4j.LoggerFactory;
import javax.inject.Inject;
import javafx.beans.Observable;
import javafx.beans.binding.Bindings;
import javafx.beans.binding.BooleanBinding;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.ReadOnlyBooleanProperty;
import javafx.beans.property.ReadOnlyObjectProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.fxml.FXML;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
@@ -33,6 +36,10 @@ public class MainWindowController implements FxController {
private final FxApplicationWindows appWindows;
private final BooleanBinding updateAvailable;
private final LicenseHolder licenseHolder;
private final BooleanProperty hideSupportNotificationClicked = new SimpleBooleanProperty(false);
private final BooleanProperty supportNotificationHidden = new SimpleBooleanProperty();
private final BooleanProperty hideUpdateNotificationClicked = new SimpleBooleanProperty(false);
private final BooleanProperty updateNotificationHidden = new SimpleBooleanProperty();
public StackPane root;
@@ -69,6 +76,9 @@ public class MainWindowController implements FxController {
window.heightProperty().addListener((_, _, _) -> savePositionalSettings());
window.xProperty().addListener((_, _, _) -> savePositionalSettings());
window.yProperty().addListener((_, _, _) -> savePositionalSettings());
supportNotificationHidden.bind(Bindings.createBooleanBinding(() -> !licenseHolder.isValidLicense() && !hideSupportNotificationClicked.get(), hideSupportNotificationClicked));
updateNotificationHidden.bind(Bindings.createBooleanBinding(() -> updateAvailable.get() && !hideUpdateNotificationClicked.get(), hideUpdateNotificationClicked));
}
private boolean neverTouched() {
@@ -105,6 +115,16 @@ public class MainWindowController implements FxController {
appWindows.showPreferencesWindow(SelectedPreferencesTab.UPDATES);
}
@FXML
public void hideSupportNotification() {
this.hideSupportNotificationClicked.setValue(true);
}
@FXML
public void hideUpdateNotification() {
this.hideUpdateNotificationClicked.setValue(true);
}
public LicenseHolder getLicenseHolder() {
return licenseHolder;
}
@@ -125,4 +145,36 @@ public class MainWindowController implements FxController {
return updateAvailable.get();
}
public BooleanProperty hideSupportNotificationClickedProperty() {
return hideSupportNotificationClicked;
}
public boolean isHideSupportNotificationClicked() {
return hideSupportNotificationClicked.get();
}
public BooleanProperty supportNotificationHiddenProperty() {
return supportNotificationHidden;
}
public boolean isSupportNotificationHidden() {
return supportNotificationHidden.get();
}
public BooleanProperty hideUpdateNotificationClickedProperty() {
return hideUpdateNotificationClicked;
}
public boolean isHideUpdateNotificationClicked() {
return hideUpdateNotificationClicked.get();
}
public BooleanProperty updateNotificationHiddenProperty() {
return updateNotificationHidden;
}
public boolean isUpdateNotificationHidden() {
return updateNotificationHidden.get();
}
}