Window System Migration

Window System Migration

Tool Windows

Basics

What was a derivative of org.esa.beam.framework.ui.application.support.AbstractToolView

public class ${NAME}ToolView extends AbstractToolView { ... }

becomes a derivative of org.openide.windows.TopComponent:

public class ${NAME}TopComponent extends TopComponent { ... }

 

Help

In most toolwindows we had a help button, created and initialised like this:

AbstractButton helpButton = ToolButtonFactory.createButton(UIUtils.loadImageIcon("icons/Help22.png"), false); helpButton.setToolTipText("Help."); /*I18N*/ helpButton.setName("helpButton"); ... if (getDescriptor().getHelpId() != null) { HelpSys.enableHelpOnButton(helpButton, getDescriptor().getHelpId()); HelpSys.enableHelpKey(mainPane, getDescriptor().getHelpId()); }

This code can be replaced by within a ${NAME}TopComponent.initComponents() method as follows:

AbstractButton helpButton = ToolButtonFactory.createButton(new HelpAction(this), false); helpButton.setName("helpButton");

We can use new HelpAction(this), because this is a TopComponent which is always HelpCtx.Provider. To provide context-sensitive help also add 

@Override public HelpCtx getHelpCtx() { return new HelpCtx(HELP_ID); }

 

References