public void registerActions()

in Utils/azure-toolkit-ide-libs/azure-toolkit-ide-springcloud-lib/src/main/java/com/microsoft/azure/toolkit/ide/springcloud/SpringCloudActionsContributor.java [44:128]


    public void registerActions(AzureActionManager am) {
        new Action<>(OPEN_PUBLIC_URL)
            .visibleWhen(s -> s instanceof SpringCloudApp)
            .enableWhen(s -> s.getFormalStatus().isRunning())
            .withLabel("Access Public Endpoint")
            .withIcon(AzureIcons.Action.BROWSER.getIconPath())
            .withIdParam(AbstractAzResource::getName)
            .withShortcut("control alt P")
            .withHandler((s, e) -> {
                final String msg = String.format("App \"%s\" is not publicly accessible. Do you want to assign it a public endpoint?", s.getName());
                if (!s.isPublicEndpointEnabled() && AzureMessager.getMessager().confirm(msg)) {
                    final SpringCloudAppDraft update = (SpringCloudAppDraft) s.update();
                    update.setPublicEndpointEnabled(true);
                    update.commit();
                }
                if (s.isPublicEndpointEnabled()) {
                    am.getAction(ResourceCommonActionsContributor.OPEN_URL).handle(s.getApplicationUrl(), e);
                }
            })
            .register(am);

        new Action<>(OPEN_TEST_URL)
            .visibleWhen(s -> s instanceof SpringCloudApp && !((SpringCloudApp) s).getParent().isConsumptionTier())
            .enableWhen(s -> s.getFormalStatus().isRunning())
            .withLabel("Access Test Endpoint")
            .withIcon(AzureIcons.Action.BROWSER.getIconPath())
            .withIdParam(AbstractAzResource::getName)
            .withHandler((s, e) -> am.getAction(ResourceCommonActionsContributor.OPEN_URL).handle(s.getTestUrl(), e))
            .register(am);

        new Action<>(STREAM_LOG_APP)
            .visibleWhen(s -> s instanceof SpringCloudApp)
            .withLabel("Start Streaming Logs")
            .withIcon(AzureIcons.Action.LOG.getIconPath())
            .withIdParam(AbstractAzResource::getName)
            .register(am);

        new Action<>(STREAM_LOG)
            .visibleWhen(s -> s instanceof SpringCloudAppInstance)
            .withLabel("Start Streaming Logs")
            .withIcon(AzureIcons.Action.LOG.getIconPath())
            .withIdParam(AbstractAzResource::getName)
            .register(am);

        new Action<>(GROUP_CREATE_CLUSTER)
            .visibleWhen(s -> s instanceof ResourceGroup)
            .enableWhen(s -> s.getFormalStatus().isConnected())
            .withLabel("Spring Apps")
            .withIdParam(AbstractAzResource::getName)
            .register(am);

        new Action<>(ENABLE_REMOTE_DEBUGGING)
            .visibleWhen(s -> s instanceof SpringCloudApp &&
                !((SpringCloudApp) s).getParent().isConsumptionTier() &&
                ((SpringCloudApp) s).getFormalStatus().isRunning() &&
                Optional.ofNullable(((SpringCloudApp) s).getActiveDeployment()).map(deployment -> !deployment.isRemoteDebuggingEnabled()).orElse(false))
            .withLabel("Enable Remote Debugging")
            .withIdParam(AbstractAzResource::getName)
            .register(am);

        new Action<>(DISABLE_REMOTE_DEBUGGING)
            .visibleWhen(s -> s instanceof SpringCloudApp &&
                !((SpringCloudApp) s).getParent().isConsumptionTier() &&
                ((SpringCloudApp) s).getFormalStatus().isRunning() &&
                Optional.ofNullable(((SpringCloudApp) s).getActiveDeployment()).map(SpringCloudDeployment::isRemoteDebuggingEnabled).orElse(false))
            .withLabel("Disable Remote Debugging")
            .withIdParam(AbstractAzResource::getName)
            .register(am);

        new Action<>(ATTACH_DEBUGGER_APP)
            .visibleWhen(s -> s instanceof SpringCloudApp && !((SpringCloudApp) s).getParent().isConsumptionTier())
            .enableWhen(s -> s.getFormalStatus().isRunning())
            .withLabel("Attach Debugger")
            .withIcon(AzureIcons.Action.ATTACH_DEBUGGER.getIconPath())
            .withIdParam(AbstractAzResource::getName)
            .register(am);

        new Action<>(ATTACH_DEBUGGER)
            .visibleWhen(s -> s instanceof SpringCloudAppInstance && !((SpringCloudAppInstance) s).getParent().getParent().getParent().isConsumptionTier())
            .enableWhen(s -> s.getParent().getParent().getFormalStatus().isRunning())
            .withLabel("Attach Debugger")
            .withIcon(AzureIcons.Action.ATTACH_DEBUGGER.getIconPath())
            .withIdParam(AbstractAzResource::getName)
            .register(am);
    }