Fix many small issues

This commit is contained in:
crschnick
2023-02-12 16:48:07 +00:00
parent 5539eaa420
commit 44f7b4922d
15 changed files with 123 additions and 37 deletions

View File

@@ -55,8 +55,6 @@ public class DsStoreProviderChoiceComp extends Comp<CompStructure<ComboBox<Node>
@Override
public CompStructure<ComboBox<Node>> createBase() {
var comboBox = new CustomComboBoxBuilder<>(provider, this::createGraphic, createDefaultNode(), v -> true);
comboBox.add(null);
comboBox.addSeparator();
getProviders().stream()
.filter(p -> AppPrefs.get().developerShowHiddenProviders().get() || p.shouldShow())
.forEach(comboBox::add);

View File

@@ -195,21 +195,14 @@ public class GuiDsStoreCreator extends MultiStepComp.Step<CompStructure<?>> {
}
var d = n.guiDialog(input);
if (d == null || d.getComp() == null) {
layout.setCenter(null);
validator.setValue(new SimpleValidator());
return;
}
var propVal = new SimpleValidator();
var propR = createStoreProperties(d.getComp(), propVal);
var propR = createStoreProperties(d == null || d.getComp() == null ? null : d.getComp(), propVal);
var box = new VBox(propR);
box.setSpacing(7);
layout.setCenter(box);
validator.setValue(new ChainedValidator(List.of(d.getValidator(), propVal)));
validator.setValue(new ChainedValidator(List.of(d != null && d.getValidator() != null ? d.getValidator() : new SimpleValidator(), propVal)));
} else {
layout.setCenter(null);
validator.setValue(new SimpleValidator());

View File

@@ -152,9 +152,14 @@ public class StoreEntryComp extends SimpleComp {
button.setFocusTraversable(false);
button.setOnAction(event -> {
event.consume();
if (entry.getEditable().get()) {
entry.editDialog();
}
ThreadHelper.runFailableAsync(() -> {
var found = entry.getDefaultActionProvider().getValue();
if (found != null) {
found.getDataStoreCallSite()
.createAction(entry.getEntry().getStore().asNeeded())
.execute();
}
});
});
return button;
@@ -164,7 +169,7 @@ public class StoreEntryComp extends SimpleComp {
var list = new ArrayList<Comp<?>>();
for (var p : entry.getActionProviders().entrySet()) {
var actionProvider = p.getKey().getDataStoreCallSite();
if (!actionProvider.isMajor()) {
if (!actionProvider.isMajor() || p.getKey().equals(entry.getDefaultActionProvider().getValue())) {
continue;
}
@@ -213,7 +218,7 @@ public class StoreEntryComp extends SimpleComp {
settingsButton.apply(s -> {
s.get().prefWidthProperty().bind(Bindings.divide(s.get().heightProperty(), 1.35));
});
settingsButton.apply(new FancyTooltipAugment<>("entrySettings"));
settingsButton.apply(new FancyTooltipAugment<>("more"));
return settingsButton;
}
@@ -263,11 +268,6 @@ public class StoreEntryComp extends SimpleComp {
});
contextMenu.getItems().add(refresh);
var edit = new MenuItem(I18n.get("edit"), new FontIcon("mdal-edit"));
edit.disableProperty().bind(entry.getEditable().not());
edit.setOnAction(event -> entry.editDialog());
contextMenu.getItems().add(edit);
var del = new MenuItem(I18n.get("delete"), new FontIcon("mdal-delete_outline"));
del.disableProperty().bind(entry.getDeletable().not());
del.setOnAction(event -> entry.delete());

View File

@@ -9,7 +9,7 @@ import javafx.beans.binding.Bindings;
import javafx.beans.value.ObservableBooleanValue;
import javafx.scene.layout.Region;
import java.util.Map;
import java.util.LinkedHashMap;
public class StoreEntryListComp extends SimpleComp {
@@ -28,13 +28,14 @@ public class StoreEntryListComp extends SimpleComp {
@Override
protected Region createSimple() {
var map = Map.<Comp<?>, ObservableBooleanValue>of(
var map = new LinkedHashMap<Comp<?>, ObservableBooleanValue>();
map.put(
createList(),
BindingsHelper.persist(Bindings.and(
Bindings.not(StoreViewState.get().emptyProperty()),
Bindings.not(Bindings.isEmpty(StoreViewState.get().getShownEntries())))),
new StoreStorageEmptyIntroComp(),
StoreViewState.get().emptyProperty(),
BindingsHelper.persist(
Bindings.not(Bindings.isEmpty(StoreViewState.get().getShownEntries()))));
map.put(new StoreStorageEmptyIntroComp(), StoreViewState.get().emptyProperty());
map.put(
new StoreNotFoundComp(),
BindingsHelper.persist(Bindings.and(
Bindings.not(Bindings.isEmpty(StoreViewState.get().getAllEntries())),

View File

@@ -8,9 +8,11 @@ import io.xpipe.app.storage.DataStoreEntry;
import io.xpipe.extension.event.ErrorEvent;
import io.xpipe.extension.fxcomps.util.PlatformThread;
import io.xpipe.extension.util.ActionProvider;
import javafx.beans.Observable;
import javafx.beans.binding.Bindings;
import javafx.beans.property.*;
import javafx.beans.value.ObservableBooleanValue;
import javafx.beans.value.ObservableValue;
import lombok.Getter;
import java.time.Duration;
@@ -30,6 +32,7 @@ public class StoreEntryWrapper implements StorageFilter.Filterable {
private final StringProperty information = new SimpleStringProperty();
private final StringProperty summary = new SimpleStringProperty();
private final Map<ActionProvider, ObservableBooleanValue> actionProviders;
private final ObservableValue<ActionProvider> defaultActionProvider;
private final BooleanProperty editable = new SimpleBooleanProperty();
private final BooleanProperty renamable = new SimpleBooleanProperty();
private final BooleanProperty refreshable = new SimpleBooleanProperty();
@@ -65,6 +68,14 @@ public class StoreEntryWrapper implements StorageFilter.Filterable {
lastAccess);
actionProviders.put(dataStoreActionProvider, property);
});
this.defaultActionProvider = Bindings.createObjectBinding(() -> {
var found = actionProviders.entrySet().stream()
.filter(e -> e.getValue().get())
.filter(e -> e.getKey().getDataStoreCallSite() != null
&& e.getKey().getDataStoreCallSite().isDefault())
.findFirst();
return found.map(p -> p.getKey()).orElse(null);
}, actionProviders.values().toArray(Observable[]::new));
setupListeners();
update();
}

View File

@@ -80,6 +80,7 @@ public class StoreStorageEmptyIntroComp extends SimpleComp {
var sp = new StackPane(v);
sp.setAlignment(Pos.CENTER);
sp.setPickOnBounds(false);
return sp;
}
}

View File

@@ -30,7 +30,7 @@ public class AppPrefs {
private static ObservableBooleanValue bindDeveloperTrue(ObservableBooleanValue o) {
return Bindings.createBooleanBinding(
() -> {
return AppPrefs.get().developerMode().getValue() || o.get();
return AppPrefs.get().developerMode().getValue() && o.get();
},
o,
AppPrefs.get().developerMode());
@@ -39,7 +39,7 @@ public class AppPrefs {
private static ObservableBooleanValue bindDeveloperFalse(ObservableBooleanValue o) {
return Bindings.createBooleanBinding(
() -> {
return !AppPrefs.get().developerMode().getValue() || o.get();
return !AppPrefs.get().developerMode().getValue() && o.get();
},
o,
AppPrefs.get().developerMode());