diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreCreationComp.java b/app/src/main/java/io/xpipe/app/comp/store/StoreCreationComp.java index ffcff4718..a7f10b31b 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreCreationComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreCreationComp.java @@ -51,7 +51,7 @@ public class StoreCreationComp extends DialogComp { Stage window; BiConsumer consumer; Property provider; - Property store; + ObjectProperty store; Predicate filter; BooleanProperty busy = new SimpleBooleanProperty(); Property validator = new SimpleObjectProperty<>(new SimpleValidator()); @@ -60,6 +60,7 @@ public class StoreCreationComp extends DialogComp { ObservableValue entry; BooleanProperty changedSinceError = new SimpleBooleanProperty(); BooleanProperty skippable = new SimpleBooleanProperty(); + BooleanProperty connectable = new SimpleBooleanProperty(); StringProperty name; DataStoreEntry existingEntry; boolean staticDisplay; @@ -68,7 +69,7 @@ public class StoreCreationComp extends DialogComp { Stage window, BiConsumer consumer, Property provider, - Property store, + ObjectProperty store, Predicate filter, String initialName, DataStoreEntry existingEntry, @@ -96,6 +97,12 @@ public class StoreCreationComp extends DialogComp { } }); + this.provider.subscribe((n) -> { + if (n != null) { + connectable.setValue(n.canConnectDuringCreation()); + } + }); + this.apply(r -> { r.get().setPrefWidth(650); r.get().setPrefHeight(750); @@ -239,7 +246,16 @@ public class StoreCreationComp extends DialogComp { finish(); } }) - .visible(skippable)); + .visible(skippable), + new ButtonComp(AppI18n.observable("connect"), null, () -> { + var temp = DataStoreEntry.createTempWrapper(store.getValue()); + var action = provider.getValue().launchAction(temp); + ThreadHelper.runFailableAsync(() -> { + action.execute(); + }); + }).visible(connectable.and(Bindings.createBooleanBinding(() -> { + return store.getValue() != null && store.getValue().isComplete(); + }, store)))); } @Override diff --git a/app/src/main/java/io/xpipe/app/ext/DataStoreProvider.java b/app/src/main/java/io/xpipe/app/ext/DataStoreProvider.java index 20b8cecf5..56db5c708 100644 --- a/app/src/main/java/io/xpipe/app/ext/DataStoreProvider.java +++ b/app/src/main/java/io/xpipe/app/ext/DataStoreProvider.java @@ -100,6 +100,10 @@ public interface DataStoreProvider { return Comp.empty(); } + default boolean canConnectDuringCreation() { + return false; + } + default Comp createInsightsComp(ObservableValue store) { var content = Bindings.createStringBinding( () -> { diff --git a/lang/app/strings/translations_da.properties b/lang/app/strings/translations_da.properties index 6c3ecd816..c7b267b5d 100644 --- a/lang/app/strings/translations_da.properties +++ b/lang/app/strings/translations_da.properties @@ -489,3 +489,4 @@ closeAllTabs=Luk alle faner closeLeftTabs=Luk faner til venstre closeRightTabs=Luk faner til højre addSerial=Seriel ... +connect=Forbind diff --git a/lang/app/strings/translations_de.properties b/lang/app/strings/translations_de.properties index 4a38b2847..a5eb109f8 100644 --- a/lang/app/strings/translations_de.properties +++ b/lang/app/strings/translations_de.properties @@ -483,3 +483,4 @@ closeAllTabs=Alle Registerkarten schließen closeLeftTabs=Tabs nach links schließen closeRightTabs=Tabs nach rechts schließen addSerial=Serielle ... +connect=Verbinden diff --git a/lang/app/strings/translations_en.properties b/lang/app/strings/translations_en.properties index f09ca8e2c..56e19c3e3 100644 --- a/lang/app/strings/translations_en.properties +++ b/lang/app/strings/translations_en.properties @@ -487,3 +487,4 @@ closeAllTabs=Close all tabs closeLeftTabs=Close tabs to the left closeRightTabs=Close tabs to the right addSerial=Serial ... +connect=Connect diff --git a/lang/app/strings/translations_es.properties b/lang/app/strings/translations_es.properties index b8f966da6..2d11193b9 100644 --- a/lang/app/strings/translations_es.properties +++ b/lang/app/strings/translations_es.properties @@ -470,3 +470,4 @@ closeAllTabs=Cerrar todas las pestañas closeLeftTabs=Cerrar pestañas a la izquierda closeRightTabs=Cerrar pestañas a la derecha addSerial=Serie ... +connect=Conecta diff --git a/lang/app/strings/translations_fr.properties b/lang/app/strings/translations_fr.properties index 5dbeb9ca6..85caf5c34 100644 --- a/lang/app/strings/translations_fr.properties +++ b/lang/app/strings/translations_fr.properties @@ -470,3 +470,4 @@ closeAllTabs=Fermer tous les onglets closeLeftTabs=Ferme les onglets à gauche closeRightTabs=Ferme les onglets à droite addSerial=Série ... +connect=Connecter diff --git a/lang/app/strings/translations_it.properties b/lang/app/strings/translations_it.properties index c676c749b..2200e9260 100644 --- a/lang/app/strings/translations_it.properties +++ b/lang/app/strings/translations_it.properties @@ -470,3 +470,4 @@ closeAllTabs=Chiudi tutte le schede closeLeftTabs=Chiudere le schede a sinistra closeRightTabs=Chiudere le schede a destra addSerial=Seriale ... +connect=Collegare diff --git a/lang/app/strings/translations_ja.properties b/lang/app/strings/translations_ja.properties index e9dee9cde..f9f3d236e 100644 --- a/lang/app/strings/translations_ja.properties +++ b/lang/app/strings/translations_ja.properties @@ -470,3 +470,4 @@ closeAllTabs=すべてのタブを閉じる closeLeftTabs=タブを左に閉じる closeRightTabs=タブを右に閉じる addSerial=シリアル ... +connect=接続する diff --git a/lang/app/strings/translations_nl.properties b/lang/app/strings/translations_nl.properties index e15c98e3d..b23b17e70 100644 --- a/lang/app/strings/translations_nl.properties +++ b/lang/app/strings/translations_nl.properties @@ -470,3 +470,4 @@ closeAllTabs=Alle tabbladen sluiten closeLeftTabs=Tabbladen naar links sluiten closeRightTabs=Tabbladen naar rechts sluiten addSerial=Serieel ... +connect=Maak verbinding met diff --git a/lang/app/strings/translations_pt.properties b/lang/app/strings/translations_pt.properties index 9251ec67d..88377220a 100644 --- a/lang/app/strings/translations_pt.properties +++ b/lang/app/strings/translations_pt.properties @@ -470,3 +470,4 @@ closeAllTabs=Fecha todos os separadores closeLeftTabs=Fecha os separadores à esquerda closeRightTabs=Fecha os separadores à direita addSerial=Série ... +connect=Liga-te diff --git a/lang/app/strings/translations_ru.properties b/lang/app/strings/translations_ru.properties index 73b8f0a87..4da41d4b1 100644 --- a/lang/app/strings/translations_ru.properties +++ b/lang/app/strings/translations_ru.properties @@ -470,3 +470,4 @@ closeAllTabs=Закрыть все вкладки closeLeftTabs=Закрыть вкладки слева closeRightTabs=Закрывать вкладки справа addSerial=Серийный ... +connect=Connect diff --git a/lang/app/strings/translations_tr.properties b/lang/app/strings/translations_tr.properties index 67d230e39..905afd010 100644 --- a/lang/app/strings/translations_tr.properties +++ b/lang/app/strings/translations_tr.properties @@ -471,3 +471,4 @@ closeAllTabs=Tüm sekmeleri kapat closeLeftTabs=Sekmeleri sola doğru kapatın closeRightTabs=Sekmeleri sağa doğru kapatın addSerial=Seri ... +connect=Bağlan diff --git a/lang/app/strings/translations_zh.properties b/lang/app/strings/translations_zh.properties index f71b86601..e118201a0 100644 --- a/lang/app/strings/translations_zh.properties +++ b/lang/app/strings/translations_zh.properties @@ -470,3 +470,4 @@ closeAllTabs=关闭所有标签页 closeLeftTabs=向左关闭标签 closeRightTabs=向右关闭标签页 addSerial=串行 ... +connect=连接