mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-29 09:47:50 +08:00
[code] framework sample
This commit is contained in:
parent
3c5b6e8c8c
commit
f8ac7ad5b9
43
framework/META-INF/plugin.xml
Normal file
43
framework/META-INF/plugin.xml
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<idea-plugin version="2">
|
||||||
|
<id>com.intellij.demo.framework</id>
|
||||||
|
<name>Framework example</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<vendor email="support@yourcompany.com" url="http://www.yourcompany.com">YourCompany</vendor>
|
||||||
|
|
||||||
|
<description><![CDATA[
|
||||||
|
Enter short description for your plugin here.<br>
|
||||||
|
<em>most HTML tags may be used</em>
|
||||||
|
]]></description>
|
||||||
|
|
||||||
|
<change-notes><![CDATA[
|
||||||
|
Add change notes here.<br>
|
||||||
|
<em>most HTML tags may be used</em>
|
||||||
|
]]>
|
||||||
|
</change-notes>
|
||||||
|
|
||||||
|
<!-- please see https://confluence.jetbrains.com/display/IDEADEV/Build+Number+Ranges for description -->
|
||||||
|
<idea-version since-build="131"/>
|
||||||
|
|
||||||
|
<!-- please see https://confluence.jetbrains.com/display/IDEADEV/Plugin+Compatibility+with+IntelliJ+Platform+Products
|
||||||
|
on how to target different products -->
|
||||||
|
<!-- uncomment to enable plugin in all products
|
||||||
|
<depends>com.intellij.modules.lang</depends>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<extensions defaultExtensionNs="com.intellij">
|
||||||
|
<framework.type implementation="com.intellij.tutorials.framework.DemoFramework"/>
|
||||||
|
</extensions>
|
||||||
|
|
||||||
|
<application-components>
|
||||||
|
<!-- Add your application components here -->
|
||||||
|
</application-components>
|
||||||
|
|
||||||
|
<project-components>
|
||||||
|
<!-- Add your project components here -->
|
||||||
|
</project-components>
|
||||||
|
|
||||||
|
<actions>
|
||||||
|
<!-- Add your actions here -->
|
||||||
|
</actions>
|
||||||
|
|
||||||
|
</idea-plugin>
|
12
framework/framework.iml
Normal file
12
framework/framework.iml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PLUGIN_MODULE" version="4">
|
||||||
|
<component name="DevKit.ModuleBuildProperties" url="file://$MODULE_DIR$/META-INF/plugin.xml" />
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
@ -0,0 +1,71 @@
|
|||||||
|
package com.intellij.tutorials.framework;
|
||||||
|
|
||||||
|
import com.intellij.framework.FrameworkTypeEx;
|
||||||
|
import com.intellij.framework.addSupport.FrameworkSupportInModuleConfigurable;
|
||||||
|
import com.intellij.framework.addSupport.FrameworkSupportInModuleProvider;
|
||||||
|
import com.intellij.icons.AllIcons;
|
||||||
|
import com.intellij.ide.util.frameworkSupport.FrameworkSupportModel;
|
||||||
|
import com.intellij.openapi.module.Module;
|
||||||
|
import com.intellij.openapi.module.ModuleType;
|
||||||
|
import com.intellij.openapi.roots.ModifiableModelsProvider;
|
||||||
|
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Anna Bulenkova
|
||||||
|
*/
|
||||||
|
public class DemoFramework extends FrameworkTypeEx {
|
||||||
|
public static final String FRAMEWORK_ID = "Demo";
|
||||||
|
protected DemoFramework() {
|
||||||
|
super(FRAMEWORK_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public FrameworkSupportInModuleProvider createProvider() {
|
||||||
|
return new FrameworkSupportInModuleProvider() {
|
||||||
|
@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("Extra Option");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addSupport(@NotNull Module module, @NotNull ModifiableRootModel model, @NotNull ModifiableModelsProvider provider) {
|
||||||
|
//do what you want here: setup a library, generate a specific file, etc
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnabledForModuleType(@NotNull ModuleType type) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public String getPresentableName() {
|
||||||
|
return "Demo Framework";
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public Icon getIcon() {
|
||||||
|
return AllIcons.Providers.Apache;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user