Various fixes

This commit is contained in:
crschnick 2024-06-27 05:03:38 +00:00
parent 9d4903e665
commit 99056e924c
7 changed files with 29 additions and 25 deletions

View file

@ -9,6 +9,7 @@ import io.xpipe.app.fxcomps.SimpleComp;
import io.xpipe.app.fxcomps.impl.PrettyImageHelper;
import io.xpipe.app.fxcomps.util.PlatformThread;
import javafx.beans.binding.Bindings;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.ObservableList;
@ -63,8 +64,9 @@ public class BrowserSelectionListComp extends SimpleComp {
return l;
});
},
false)
.styleClass("selected-file-list");
true)
.styleClass("selected-file-list")
.hide(Bindings.isEmpty(list));
return c.createRegion();
}
}

View file

@ -3,6 +3,7 @@ package io.xpipe.app.browser;
import io.xpipe.app.browser.file.BrowserFileTransferMode;
import io.xpipe.app.browser.fs.OpenFileSystemModel;
import io.xpipe.app.comp.base.LoadingOverlayComp;
import io.xpipe.app.core.AppFont;
import io.xpipe.app.core.AppI18n;
import io.xpipe.app.fxcomps.Comp;
import io.xpipe.app.fxcomps.SimpleComp;
@ -10,16 +11,13 @@ import io.xpipe.app.fxcomps.augment.DragOverPseudoClassAugment;
import io.xpipe.app.fxcomps.impl.*;
import io.xpipe.app.fxcomps.util.DerivedObservableList;
import io.xpipe.app.fxcomps.util.PlatformThread;
import javafx.beans.binding.Bindings;
import javafx.collections.FXCollections;
import javafx.geometry.Insets;
import javafx.scene.image.Image;
import javafx.scene.input.Dragboard;
import javafx.scene.input.TransferMode;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Region;
import org.kordamp.ikonli.javafx.FontIcon;
import java.io.File;
@ -77,9 +75,8 @@ public class BrowserTransferComp extends SimpleComp {
var dragNotice = new LabelComp(syncAllDownloaded.flatMap(
aBoolean -> aBoolean ? AppI18n.observable("dragLocalFiles") : AppI18n.observable("dragFiles")))
.apply(struc -> struc.get().setGraphic(new FontIcon("mdi2h-hand-left")))
.hide(Bindings.isEmpty(syncItems))
.grow(true, false)
.apply(struc -> struc.get().setPadding(new Insets(8)));
.apply(struc -> AppFont.medium(struc.get()))
.hide(Bindings.isEmpty(syncItems));
var downloadButton = new IconButtonComp("mdi2d-download", () -> {
model.download();
@ -91,23 +88,15 @@ public class BrowserTransferComp extends SimpleComp {
model.clear();
})
.hide(Bindings.isEmpty(syncItems));
var clearPane = Comp.derive(
new HorizontalComp(List.of(downloadButton, clearButton))
.apply(struc -> struc.get().setSpacing(10)),
button -> {
var p = new AnchorPane(button);
AnchorPane.setRightAnchor(button, 10.0);
AnchorPane.setTopAnchor(button, 10.0);
p.setPickOnBounds(false);
return p;
});
var listBox = new VerticalComp(List.of(list, dragNotice))
var bottom = new HorizontalComp(List.of(dragNotice, Comp.hspacer(), downloadButton, Comp.hspacer(4), clearButton));
var listBox = new VerticalComp(List.of(list, bottom))
.spacing(5)
.padding(new Insets(10, 10, 5, 10))
.apply(struc -> struc.get().setMinHeight(200))
.apply(struc -> struc.get().setMaxHeight(200));
var stack = LoadingOverlayComp.noProgress(
new StackComp(List.of(backgroundStack, listBox, clearPane))
new StackComp(List.of(backgroundStack, listBox))
.apply(DragOverPseudoClassAugment.create())
.apply(struc -> {
struc.get().setOnDragOver(event -> {

View file

@ -366,7 +366,12 @@ public class StoreCreationComp extends DialogComp {
.description("connectionNameDescription")
.addString(name, false)
.nonNull(propVal)
.build();
.buildComp()
.onSceneAssign(struc -> {
if (staticDisplay) {
struc.get().requestFocus();
}
}).createRegion();
}
private void commit(boolean validated) {
@ -391,9 +396,10 @@ public class StoreCreationComp extends DialogComp {
var providerChoice = new StoreProviderChoiceComp(filter, provider, staticDisplay);
if (staticDisplay) {
providerChoice.apply(struc -> struc.get().setDisable(true));
} else {
providerChoice.onSceneAssign(struc -> struc.get().requestFocus());
}
providerChoice.apply(GrowAugment.create(true, false));
providerChoice.onSceneAssign(struc -> struc.get().requestFocus());
provider.subscribe(n -> {
if (n != null) {

View file

@ -228,6 +228,11 @@ public class DataStoreChoiceComp<T extends DataStore> extends SimpleComp {
icon.setPickOnBounds(false);
AppFont.header(icon);
var pane = new StackPane(r, icon);
pane.focusedProperty().addListener((observable, oldValue, newValue) -> {
if (newValue) {
r.requestFocus();
}
});
StackPane.setMargin(icon, new Insets(10));
pane.setPickOnBounds(false);
StackPane.setAlignment(icon, Pos.CENTER_RIGHT);

View file

@ -4,7 +4,6 @@ import io.xpipe.app.fxcomps.Comp;
import io.xpipe.app.fxcomps.CompStructure;
import io.xpipe.app.fxcomps.SimpleCompStructure;
import io.xpipe.app.fxcomps.util.PlatformThread;
import javafx.collections.FXCollections;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;
@ -24,6 +23,10 @@ public class VerticalComp extends Comp<CompStructure<VBox>> {
this.entries = PlatformThread.sync(entries);
}
public Comp<CompStructure<VBox>> spacing(double spacing) {
return apply(struc -> struc.get().setSpacing(spacing));
}
@Override
public CompStructure<VBox> createBase() {
VBox b = new VBox();

View file

@ -16,7 +16,7 @@ public class FixedServiceStoreProvider extends AbstractServiceStoreProvider {
FixedServiceStore s = store.getStore().asNeeded();
return DataStorage.get()
.getOrCreateNewSyntheticEntry(
s.getHost().get(),
s.getDisplayParent().get(),
"Services",
FixedServiceGroupStore.builder()
.parent(s.getDisplayParent().get().ref())

View file

@ -67,7 +67,6 @@ open module io.xpipe.ext.base {
LaunchStoreAction,
XPipeUrlAction,
EditStoreAction,
DeleteChildrenStoreAction,
BrowseStoreAction,
ScanStoreAction;
provides DataStoreProvider with