diff --git a/topics/tutorials/framework.md b/topics/tutorials/framework.md index 432df619c..ed7df89fe 100644 --- a/topics/tutorials/framework.md +++ b/topics/tutorials/framework.md @@ -1,6 +1,6 @@ [//]: # (title: Frameworks) - + The following tutorial shows how to support a custom framework type for a project and make this framework type embedded in a project wizard as a UI component. The examples in this tutorial rely heavily on the [framework_basics](https://github.com/JetBrains/intellij-sdk-code-samples/tree/main/framework_basics) code sample. @@ -28,11 +28,12 @@ It is best if this is the FQN name of the class: ```java public class DemoFramework extends FrameworkTypeEx { - public static final String FRAMEWORK_ID = "org.intellij.sdk.framework.DemoFramework"; - protected DemoFramework() { - super(FRAMEWORK_ID); - } -} + + public static final String FRAMEWORK_ID = "org.intellij.sdk.framework.DemoFramework"; + + protected DemoFramework() { + super(FRAMEWORK_ID); + } ``` The *Presentable name* and *icon* define the appearance of visual components related to the framework: @@ -59,42 +60,48 @@ To make the framework set up available while executing the steps to create a pro In this example the framework is added to any [`ModuleType`](upsource:///platform/lang-api/src/com/intellij/openapi/module/ModuleType.java) without checking, which is usually not the case. ```java -@NotNull -@Override -public FrameworkSupportInModuleProvider createProvider() { + @NotNull + @Override + public FrameworkSupportInModuleProvider createProvider() { return new FrameworkSupportInModuleProvider() { - @NotNull - @Override - public FrameworkTypeEx getFrameworkType() { - return DemoFramework.this; - } + @NotNull + @Override + public FrameworkTypeEx getFrameworkType() { + return DemoFramework.this; + } - @NotNull - @Override - public FrameworkSupportInModuleConfigurable createConfigurable(@NotNull FrameworkSupportModel model) { - return new FrameworkSupportInModuleConfigurable() { - @Nullable - @Override - public JComponent createComponent() { - return new JCheckBox("SDK Extra Option"); - } + @NotNull + @Override + public FrameworkSupportInModuleConfigurable createConfigurable(@NotNull FrameworkSupportModel model) { + return new FrameworkSupportInModuleConfigurable() { - @Override - public void addSupport(@NotNull Module module, @NotNull ModifiableRootModel model, @NotNull ModifiableModelsProvider provider) { - // This is the place to set up a library, generate a specific file, etc - // and actually add framework support to a module. - } - }; - } + @Override + public JComponent createComponent() { + return new JCheckBox("SDK Extra Option"); + } - @Override - public boolean isEnabledForModuleType(@NotNull ModuleType type) { - return true; - } + @Override + public void addSupport(@NotNull Module module, + @NotNull ModifiableRootModel model, + @NotNull ModifiableModelsProvider provider) { + // This is the place to set up a library, generate a specific file, etc + // and actually add framework support to a module. + } + }; + } + + @Override + public boolean isEnabledForModuleType(@NotNull ModuleType type) { + return true; + } }; -} -``` + } -After compiling and running the code sample above an extra option for configuring the newly created Demo custom framework should be available in the Project Wizard: +``` +## Compile and Run the Plugin + +See [Code Samples](code_samples.md) on how to set up and run the plugin. + +Extra option for configuring the newly created Demo custom framework should be available in the Project Wizard: ![Custom Framework Support](custom_framework.png)