Migrate all actions, fix various bugs

This commit is contained in:
crschnick
2023-02-09 21:06:58 +00:00
parent 51bbf8ad67
commit 7be8087b19
19 changed files with 298 additions and 207 deletions

View File

@@ -171,13 +171,18 @@ public class StoreEntryComp extends SimpleComp {
var button = new IconButtonComp(
actionProvider.getIcon(entry.getEntry().getStore().asNeeded()), () -> {
ThreadHelper.runFailableAsync(() -> {
var action = actionProvider.createAction(entry.getEntry().getStore().asNeeded());
var action = actionProvider.createAction(
entry.getEntry().getStore().asNeeded());
action.execute();
});
});
button.apply(new FancyTooltipAugment<>(
actionProvider.getName(entry.getEntry().getStore().asNeeded())));
button.disable(Bindings.not(p.getValue()));
if (!actionProvider.showIfDisabled()) {
button.hide(Bindings.not(p.getValue()));
} else {
button.disable(Bindings.not(p.getValue()));
}
list.add(button);
}
@@ -227,7 +232,8 @@ public class StoreEntryComp extends SimpleComp {
var item = new MenuItem(null, new FontIcon(icon));
item.setOnAction(event -> {
ThreadHelper.runFailableAsync(() -> {
var action = actionProvider.createAction(entry.getEntry().getStore().asNeeded());
var action = actionProvider.createAction(
entry.getEntry().getStore().asNeeded());
action.execute();
});
});
@@ -245,7 +251,8 @@ public class StoreEntryComp extends SimpleComp {
if (AppPrefs.get().developerMode().getValue()) {
var browse = new MenuItem(I18n.get("browse"), new FontIcon("mdi2f-folder-open-outline"));
browse.setOnAction(event -> DesktopHelper.browsePath(entry.getEntry().getDirectory()));
browse.setOnAction(
event -> DesktopHelper.browsePath(entry.getEntry().getDirectory()));
contextMenu.getItems().add(browse);
}

View File

@@ -11,6 +11,10 @@ public class DataStateProviderImpl extends DataStateProvider {
@Override
public void putState(DataStore store, String key, Object value) {
if (DataStorage.get() == null) {
return;
}
var entry = DataStorage.get().getEntryByStore(store);
if (entry.isEmpty()) {
return;
@@ -22,6 +26,10 @@ public class DataStateProviderImpl extends DataStateProvider {
@Override
public <T> T getState(DataStore store, String key, Class<T> c, Supplier<T> def) {
if (DataStorage.get() == null) {
return def.get();
}
var entry = DataStorage.get().getEntryByStore(store);
if (entry.isEmpty()) {
return def.get();

View File

@@ -74,10 +74,6 @@ public abstract class DataStorage {
}
public static DataStorage get() {
if (INSTANCE == null) {
throw new IllegalStateException("Not initialized");
}
return INSTANCE;
}
@@ -175,6 +171,10 @@ public abstract class DataStorage {
}
public Optional<DataSourceCollection> getCollectionForName(String name) {
if (name == null) {
return Optional.ofNullable(getInternalCollection());
}
return sourceCollections.stream()
.filter(c -> name.equalsIgnoreCase(c.getName()))
.findAny();

View File

@@ -13,7 +13,7 @@ public abstract class TerminalProvider {
@Override
public void init(ModuleLayer layer) {
ServiceLoader.load(layer, TerminalProvider.class).findFirst().orElseThrow();
INSTANCE = ServiceLoader.load(layer, TerminalProvider.class).findFirst().orElseThrow();
}
@Override

View File

@@ -7,12 +7,14 @@ import io.xpipe.app.exchange.cli.*;
import io.xpipe.app.issue.EventHandlerImpl;
import io.xpipe.app.storage.DataStateProviderImpl;
import io.xpipe.app.util.ProxyManagerProviderImpl;
import io.xpipe.app.util.TerminalProvider;
import io.xpipe.app.util.XPipeDaemonProvider;
import io.xpipe.core.util.DataStateProvider;
import io.xpipe.core.util.ProxyManagerProvider;
import io.xpipe.extension.Cache;
import io.xpipe.extension.I18n;
import io.xpipe.extension.event.EventHandler;
import io.xpipe.extension.util.ModuleLayerLoader;
import io.xpipe.extension.util.XPipeDaemon;
import org.slf4j.spi.SLF4JServiceProvider;
@@ -99,6 +101,7 @@ open module io.xpipe.app {
uses MessageExchangeImpl;
uses io.xpipe.app.util.TerminalProvider;
provides ModuleLayerLoader with TerminalProvider.Loader;
provides DataStateProvider with
DataStateProviderImpl;
provides ProxyManagerProvider with