mirror of
https://github.com/xpipe-io/xpipe.git
synced 2026-06-22 06:19:02 -04:00
Migrate all actions, fix various bugs
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user