From 952dcd552ecd40092dc5708ff0b872ba77c60b9f Mon Sep 17 00:00:00 2001 From: Karol Lewandowski Date: Thu, 15 Jun 2023 10:51:07 +0200 Subject: [PATCH] Execution API docs (#1065) --- .../DemoConfigurationFactory.java | 3 +- .../DemoRunConfiguration.java | 22 +++++----- .../DemoRunConfigurationOptions.java | 3 +- .../DemoRunConfigurationType.java | 41 ++++--------------- .../runConfiguration/DemoSettingsEditor.form | 29 ------------- .../runConfiguration/DemoSettingsEditor.java | 28 +++++++------ 6 files changed, 39 insertions(+), 87 deletions(-) delete mode 100644 run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoSettingsEditor.form diff --git a/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoConfigurationFactory.java b/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoConfigurationFactory.java index af3199185..cf345d4d5 100644 --- a/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoConfigurationFactory.java +++ b/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoConfigurationFactory.java @@ -23,7 +23,8 @@ public class DemoConfigurationFactory extends ConfigurationFactory { @NotNull @Override - public RunConfiguration createTemplateConfiguration(@NotNull Project project) { + public RunConfiguration createTemplateConfiguration( + @NotNull Project project) { return new DemoRunConfiguration(project, this, "Demo"); } diff --git a/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoRunConfiguration.java b/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoRunConfiguration.java index bc0324eb0..e9b608d08 100644 --- a/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoRunConfiguration.java +++ b/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoRunConfiguration.java @@ -1,5 +1,4 @@ -// Copyright 2000-2022 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. - +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.sdk.runConfiguration; import com.intellij.execution.ExecutionException; @@ -17,7 +16,9 @@ import org.jetbrains.annotations.Nullable; public class DemoRunConfiguration extends RunConfigurationBase { - protected DemoRunConfiguration(Project project, ConfigurationFactory factory, String name) { + protected DemoRunConfiguration(Project project, + ConfigurationFactory factory, + String name) { super(project, factory, name); } @@ -41,19 +42,18 @@ public class DemoRunConfiguration extends RunConfigurationBase myScriptName = string("").provideDelegate(this, "scriptName"); + private final StoredProperty myScriptName = + string("").provideDelegate(this, "scriptName"); public String getScriptName() { return myScriptName.getValue(this); diff --git a/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoRunConfigurationType.java b/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoRunConfigurationType.java index 47f9b06be..4db55fefe 100644 --- a/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoRunConfigurationType.java +++ b/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoRunConfigurationType.java @@ -1,43 +1,18 @@ -// Copyright 2000-2022 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. - +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.sdk.runConfiguration; -import com.intellij.execution.configurations.ConfigurationFactory; -import com.intellij.execution.configurations.ConfigurationType; +import com.intellij.execution.configurations.ConfigurationTypeBase; import com.intellij.icons.AllIcons; -import org.jetbrains.annotations.NotNull; +import com.intellij.openapi.util.NotNullLazyValue; -import javax.swing.*; - -public class DemoRunConfigurationType implements ConfigurationType { +public class DemoRunConfigurationType extends ConfigurationTypeBase { static final String ID = "DemoRunConfiguration"; - @NotNull - @Override - public String getDisplayName() { - return "Demo"; - } - - @Override - public String getConfigurationTypeDescription() { - return "Demo run configuration type"; - } - - @Override - public Icon getIcon() { - return AllIcons.General.Information; - } - - @NotNull - @Override - public String getId() { - return ID; - } - - @Override - public ConfigurationFactory[] getConfigurationFactories() { - return new ConfigurationFactory[]{new DemoConfigurationFactory(this)}; + protected DemoRunConfigurationType() { + super(ID, "Demo", "Demo run configuration type", + NotNullLazyValue.createValue(() -> AllIcons.Nodes.Console)); + addFactory(new DemoConfigurationFactory(this)); } } diff --git a/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoSettingsEditor.form b/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoSettingsEditor.form deleted file mode 100644 index 3c3160f08..000000000 --- a/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoSettingsEditor.form +++ /dev/null @@ -1,29 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoSettingsEditor.java b/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoSettingsEditor.java index 7a6f85757..b02f8bbe3 100644 --- a/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoSettingsEditor.java +++ b/run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoSettingsEditor.java @@ -1,27 +1,36 @@ -// Copyright 2000-2022 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. - +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.sdk.runConfiguration; +import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory; import com.intellij.openapi.options.SettingsEditor; -import com.intellij.openapi.ui.LabeledComponent; import com.intellij.openapi.ui.TextFieldWithBrowseButton; +import com.intellij.util.ui.FormBuilder; import org.jetbrains.annotations.NotNull; import javax.swing.*; public class DemoSettingsEditor extends SettingsEditor { - private JPanel myPanel; - private LabeledComponent myScriptName; + private final JPanel myPanel; + private final TextFieldWithBrowseButton scriptPathField; + + public DemoSettingsEditor() { + scriptPathField = new TextFieldWithBrowseButton(); + scriptPathField.addBrowseFolderListener("Select Script File", null, null, + FileChooserDescriptorFactory.createSingleFileDescriptor()); + myPanel = FormBuilder.createFormBuilder() + .addLabeledComponent("Script file", scriptPathField) + .getPanel(); + } @Override protected void resetEditorFrom(DemoRunConfiguration demoRunConfiguration) { - myScriptName.getComponent().setText(demoRunConfiguration.getScriptName()); + scriptPathField.setText(demoRunConfiguration.getScriptName()); } @Override protected void applyEditorTo(@NotNull DemoRunConfiguration demoRunConfiguration) { - demoRunConfiguration.setScriptName(myScriptName.getComponent().getText()); + demoRunConfiguration.setScriptName(scriptPathField.getText()); } @NotNull @@ -30,9 +39,4 @@ public class DemoSettingsEditor extends SettingsEditor { return myPanel; } - private void createUIComponents() { - myScriptName = new LabeledComponent<>(); - myScriptName.setComponent(new TextFieldWithBrowseButton()); - } - }