From 75d6b1ed4fc89e2010a0ed5f735a2f2cdd5f5b61 Mon Sep 17 00:00:00 2001 From: crschnick Date: Thu, 28 Dec 2023 07:38:37 +0000 Subject: [PATCH] Rework pro context menu entries --- .../xpipe/app/browser/action/LeafAction.java | 5 +-- .../xpipe/app/comp/store/StoreEntryComp.java | 31 ++++++++++--------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/browser/action/LeafAction.java b/app/src/main/java/io/xpipe/app/browser/action/LeafAction.java index 03647c96..cfdf1a99 100644 --- a/app/src/main/java/io/xpipe/app/browser/action/LeafAction.java +++ b/app/src/main/java/io/xpipe/app/browser/action/LeafAction.java @@ -59,7 +59,8 @@ public interface LeafAction extends BrowserAction { } default MenuItem toItem(OpenFileSystemModel model, List selected, UnaryOperator nameFunc) { - var mi = new MenuItem(nameFunc.apply(getName(model, selected))); + var name = nameFunc.apply(getName(model, selected)); + var mi = new MenuItem(name); mi.setOnAction(event -> { ThreadHelper.runFailableAsync(() -> { BooleanScope.execute(model.getBusy(), () -> { @@ -80,7 +81,7 @@ public interface LeafAction extends BrowserAction { if (getProFeatureId() != null && !LicenseProvider.get().getFeature(getProFeatureId()).isSupported()) { mi.setDisable(true); - mi.setGraphic(new FontIcon("mdi2p-professional-hexagon")); + mi.setText(mi.getText() + " (Pro)"); } return mi; diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreEntryComp.java b/app/src/main/java/io/xpipe/app/comp/store/StoreEntryComp.java index 5e952f5e..3e399f12 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreEntryComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreEntryComp.java @@ -268,27 +268,28 @@ public abstract class StoreEntryComp extends SimpleComp { !LicenseProvider.get().getFeature(p.getKey().getProFeatureId()).isSupported(); if (proRequired) { item.setDisable(true); - item.setGraphic(new FontIcon("mdi2p-professional-hexagon")); + item.textProperty().bind(Bindings.createStringBinding(() -> name.getValue() + " (Pro)",name)); + } else { + item.textProperty().bind(name); } Menu menu = actionProvider.canLinkTo() ? (Menu) item : null; - item.setOnAction(event -> { - if (menu != null && !event.getTarget().equals(menu)) { - return; - } + item.setOnAction(event -> { + if (menu != null && !event.getTarget().equals(menu)) { + return; + } - if (menu != null && menu.isDisable()) { - return; - } + if (menu != null && menu.isDisable()) { + return; + } - contextMenu.hide(); - ThreadHelper.runFailableAsync(() -> { - var action = actionProvider.createAction( - wrapper.getEntry().ref()); - action.execute(); - }); + contextMenu.hide(); + ThreadHelper.runFailableAsync(() -> { + var action = actionProvider.createAction( + wrapper.getEntry().ref()); + action.execute(); }); - item.textProperty().bind(name); + }); if (actionProvider.activeType() == ActionProvider.DataStoreCallSite.ActiveType.ONLY_SHOW_IF_ENABLED) { item.visibleProperty().bind(p.getValue()); } else if (actionProvider.activeType() == ActionProvider.DataStoreCallSite.ActiveType.ALWAYS_SHOW) {