2016-03-23 16 views
1

私のプラグインでは、新しいプロジェクトウィザードを構築できましたが、最初のページは正しく表示されません。例えば。これは私のプラグインが持っているものです。最初にSDKオプションを使用してModuleTypeを設定する

My plugin

をそして、これは他のほとんどのプラグインが持っているものです。

Other plugins

私のために欠けているものは、「SDK」のオプションです。私たちのプラグインにはJava 8が必要です。そこに表示されるようにSDKを選択するオプションが必要です。しかし、私はそれが設定されているか分からない。

これは私のplugins.xmlである:

<extensions defaultExtensionNs="com.intellij"> 
    <!-- moduleBuilder builderClass="com.codename1.plugin.intellij.module.CodenameOneModuleType"/ --> 
    <moduleType id="CodenameOne.Module" implementationClass="com.codename1.plugin.intellij.module.CodenameOneModuleType" classpathProvider="true" /> 
</extensions> 

CodenameOneModuleTypeはちょうどNewCodenameOneProjectは基本的にJavaModuleBuilderあるModuleType<NewCodenameOneProject>を拡張します。それが助けになるなら、私はいくつかの情報源を掲載することができます。

ところで、プラグインAPIのjavadocはありますか?

私はソースがどこにあるのか知っていますが、準備ができていないJavaDocはありますか?

答えて

0

私はこれを完全に明確な解決策を見つけることができませんでしたが、私は議論hereに基づいていくつかの結論に達しました:ProjectRootManager.getInstance(project).setProjectSdk(jdk);

    • プロジェクトのためのSDKを設定するには、を介して行われるべきです

      createWizardStepsをオーバーライドする代わりに、ウィザードの第2ページから開始します。getCustomOptionsStep

    私はただのIntelliJ/IDEAのGUIビルダーといくつかのロジックを使用して、上記のコンボボックスのUIを再作成し、それらを理解したら:

    private void refreshSDKCombo(Sdk preferredSdk) { 
        DefaultComboBoxModel<Sdk> sdks = new DefaultComboBoxModel<>(); 
        Sdk[] s = ProjectJdkTable.getInstance().getAllJdks(); 
        for (Sdk ss : s) { 
         if (ss.getSdkType() instanceof JavaSdkType) { 
          String str = ss.getVersionString(); 
          if (str.contains("1.8.") || str.contains("1.9.")) { 
           sdks.addElement(ss); 
          } 
         } 
        } 
        if(preferredSdk != null) { 
         String str = preferredSdk.getVersionString(); 
         if (str.contains("1.8.") || str.contains("1.9.")) { 
          projectSDKCombo.setSelectedItem(preferredSdk); 
         } 
        } 
        projectSDKCombo.setModel(sdks); 
        if(sdks.getSize() > 0) { 
         projectSDKCombo.setSelectedIndex(0); 
        } 
    } 
    

    私は私たちのユースケースのために必要とされるJDKにオプションを8+限ら気づきました!

    私は、次のようなSDKを設定するには、ボタンのロジックをバインド:

    newButton.addActionListener(e -> { 
         ProjectJdksEditor editor = new ProjectJdksEditor((Sdk)projectSDKCombo.getSelectedItem(), 
           ProjectManager.getInstance().getDefaultProject(), 
           newButton); 
         if (editor.showAndGet()) { 
          Sdk selectedJdk = editor.getSelectedJdk(); 
          refreshSDKCombo(selectedJdk); 
         } 
        }); 
    
  • 関連する問題