Intellij插件开发:在不同的项目窗口中打开时,toolWindow扩展为空白

时间:2019-12-30 17:17:47

标签: intellij-idea intellij-plugin

当我在不同的intellij窗口中打开多个(3-4)项目时,我的JSON插件工具窗口空白。 这是我的plugin.xml

<idea-plugin>
  <id>com.xxxxx.json.Editor</id>
  <name>JSON Editor</name>
  <version>1.5</version>
  <vendor email="xxxxxxxxxx" url="xxxxxxx">xxxxxx</vendor>

  <description><![CDATA[
      JetBrains IntelliJ IDE plugin for easy viewing and editing of currently opened JSON file in IDE using Tree Structure.
    ]]></description>

  <change-notes><![CDATA[
      Feature: Indentation changes - adding space after ':' char.
    ]]>
  </change-notes>

  <idea-version since-build="192.6"/>
  <extensions defaultExtensionNs="com.intellij">
    <toolWindow id="JSON Editor" anchor="right" factoryClass="JsonEditor" />
  </extensions>

  <actions>
  </actions>

</idea-plugin>

这是带有插件JSON编辑器工具窗口的内容(按钮和树视图)的屏幕截图。

enter image description here

这是同一工具的内容的屏幕快照,窗口完全空白(如果在不同的窗口中打开多个(3-4)项目,则会发生这种情况。)

enter image description here

如何解决此问题?还可以在不同的位置打开插件扩展实例的不同状态吗?

1 个答案:

答案 0 :(得分:3)

由于AWT小部件只能有一个父级,因此每次调用d2方法时,都需要创建mainContent的另一个实例。

此方法在每个IDE窗口中调用,因此一个窗口将“获胜”。

所以不要写createToolWindowContent来写mainContent。然后,可以通过使用当前窗口的Project对象来访问全局所需的详细信息,这两个窗口之间会有所不同。