diff --git a/run_configuration/META-INF/plugin.xml b/run_configuration/META-INF/plugin.xml
new file mode 100644
index 000000000..e29508754
--- /dev/null
+++ b/run_configuration/META-INF/plugin.xml
@@ -0,0 +1,30 @@
+
+ org.jetbrains.tutorials.run.configuration
+ Run Configuration
+ 1.0
+ JetBrains
+
+ Illustration of working with run configurations
+
+ Initial commit
+
+
+
+ com.intellij.modules.lang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/run_configuration/run_configuration.iml b/run_configuration/run_configuration.iml
new file mode 100644
index 000000000..de3c6c143
--- /dev/null
+++ b/run_configuration/run_configuration.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoConfigurationFactory.java b/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoConfigurationFactory.java
new file mode 100644
index 000000000..a475e8373
--- /dev/null
+++ b/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoConfigurationFactory.java
@@ -0,0 +1,27 @@
+package org.jetbrains.tutorials.run.configuration;
+
+import com.intellij.execution.configurations.ConfigurationFactory;
+import com.intellij.execution.configurations.ConfigurationType;
+import com.intellij.execution.configurations.RunConfiguration;
+import com.intellij.openapi.project.Project;
+
+/**
+ * @author Anna Bulenkova
+ */
+public class DemoConfigurationFactory extends ConfigurationFactory {
+ private static final String FACTORY_NAME = "Demo configuration factory";
+
+ protected DemoConfigurationFactory(ConfigurationType type) {
+ super(type);
+ }
+
+ @Override
+ public RunConfiguration createTemplateConfiguration(Project project) {
+ return new DemoRunConfiguration(project, this, "Demo");
+ }
+
+ @Override
+ public String getName() {
+ return FACTORY_NAME;
+ }
+}
diff --git a/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoRunConfiguration.java b/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoRunConfiguration.java
new file mode 100644
index 000000000..1ab7c7de3
--- /dev/null
+++ b/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoRunConfiguration.java
@@ -0,0 +1,36 @@
+package org.jetbrains.tutorials.run.configuration;
+
+import com.intellij.execution.ExecutionException;
+import com.intellij.execution.Executor;
+import com.intellij.execution.configurations.*;
+import com.intellij.execution.runners.ExecutionEnvironment;
+import com.intellij.openapi.options.SettingsEditor;
+import com.intellij.openapi.project.Project;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * @author Anna Bulenkova
+ */
+public class DemoRunConfiguration extends RunConfigurationBase {
+ protected DemoRunConfiguration(Project project, ConfigurationFactory factory, String name) {
+ super(project, factory, name);
+ }
+
+ @NotNull
+ @Override
+ public SettingsEditor extends RunConfiguration> getConfigurationEditor() {
+ return new DemoSettingsEditor();
+ }
+
+ @Override
+ public void checkConfiguration() throws RuntimeConfigurationException {
+
+ }
+
+ @Nullable
+ @Override
+ public RunProfileState getState(@NotNull Executor executor, @NotNull ExecutionEnvironment executionEnvironment) throws ExecutionException {
+ return null;
+ }
+}
diff --git a/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoRunConfigurationType.java b/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoRunConfigurationType.java
new file mode 100644
index 000000000..bac651411
--- /dev/null
+++ b/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoRunConfigurationType.java
@@ -0,0 +1,39 @@
+package org.jetbrains.tutorials.run.configuration;
+
+import com.intellij.execution.configurations.ConfigurationFactory;
+import com.intellij.execution.configurations.ConfigurationType;
+import com.intellij.icons.AllIcons;
+import org.jetbrains.annotations.NotNull;
+
+import javax.swing.*;
+
+/**
+ * @author Anna Bulenkova
+ */
+public class DemoRunConfigurationType implements ConfigurationType {
+ @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 "DEMO_RUN_CONFIGURATION";
+ }
+
+ @Override
+ public ConfigurationFactory[] getConfigurationFactories() {
+ return new ConfigurationFactory[]{new DemoConfigurationFactory(this)};
+ }
+}
diff --git a/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoSettingsEditor.form b/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoSettingsEditor.form
new file mode 100644
index 000000000..d9dd1f253
--- /dev/null
+++ b/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoSettingsEditor.form
@@ -0,0 +1,29 @@
+
+
diff --git a/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoSettingsEditor.java b/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoSettingsEditor.java
new file mode 100644
index 000000000..db66fec90
--- /dev/null
+++ b/run_configuration/src/org/jetbrains/tutorials/run/configuration/DemoSettingsEditor.java
@@ -0,0 +1,44 @@
+package org.jetbrains.tutorials.run.configuration;
+
+import com.intellij.openapi.options.ConfigurationException;
+import com.intellij.openapi.options.SettingsEditor;
+import com.intellij.openapi.ui.ComponentWithBrowseButton;
+import com.intellij.openapi.ui.LabeledComponent;
+import com.intellij.openapi.ui.TextFieldWithBrowseButton;
+import org.jetbrains.annotations.NotNull;
+
+import javax.swing.*;
+
+/**
+ * @author Anna Bulenkova
+ */
+
+/**
+ * @author Anna Bulenkova
+ */
+public class DemoSettingsEditor extends SettingsEditor {
+ private JPanel myPanel;
+ private LabeledComponent myMainClass;
+
+ @Override
+ protected void resetEditorFrom(DemoRunConfiguration demoRunConfiguration) {
+
+ }
+
+ @Override
+ protected void applyEditorTo(DemoRunConfiguration demoRunConfiguration) throws ConfigurationException {
+
+ }
+
+ @NotNull
+ @Override
+ protected JComponent createEditor() {
+ return myPanel;
+ }
+
+ private void createUIComponents() {
+ myMainClass = new LabeledComponent();
+ myMainClass.setComponent(new TextFieldWithBrowseButton());
+ }
+}
+