public void createToolWindowContent(final Project project, final ToolWindow toolWindow) {
// Plugin is now placed into a Tabbed Pane to add additional views to it
JBTabbedPane master = new JBTabbedPane(SwingConstants.BOTTOM);
SlingPluginExplorer explorer = new SlingPluginExplorer(project);
LOGGER.debug("CTWC: Explorer: '" + explorer + "'");
master.insertTab("Plugin", null, explorer, "Plugin Windows", 0);
WebContentFXPanel info = new WebContentFXPanel();
master.insertTab("Info", null, info, "Plugin Info", 1);
final AemdcPanel aemdcPanel = ComponentProvider.getComponent(project, AemdcPanel.class);
LOGGER.debug("AEMDC Panel found: '{}'", aemdcPanel);
aemdcPanel.setContainer(master);
final ContentManager contentManager = toolWindow.getContentManager();
final Content content = contentManager.getFactory().createContent(master, null, false);
contentManager.addContent(content);
Disposer.register(project, explorer);
final ToolWindowManagerAdapter listener = new ToolWindowManagerAdapter() {
boolean wasVisible = false;
@Override
public void stateChanged() {
if (toolWindow.isDisposed()) {
return;
}
boolean visible = toolWindow.isVisible();
// If the Plugin became visible then we let the AEMDC Panel know to recrate the JFX Panel
// to avoid the double buffering
if(!wasVisible && visible) {
aemdcPanel.reset();
}
wasVisible = visible;
}
};
final ToolWindowManagerEx manager = ToolWindowManagerEx.getInstanceEx(project);
manager.addToolWindowManagerListener(listener, project);
}