diff --git a/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java b/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java index 5c1f4cc35402..6f13af4fed19 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java +++ b/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java @@ -242,7 +242,7 @@ public class FileStructurePopup implements Disposable { public void show() { //final long time = System.currentTimeMillis(); JComponent panel = createCenterPanel(); - new MnemonicHelper().register(panel); + MnemonicHelper.init(panel); boolean shouldSetWidth = DimensionService.getInstance().getSize(getDimensionServiceKey(), myProject) == null; myPopup = JBPopupFactory.getInstance().createComponentPopupBuilder(panel, null) .setTitle(myTitle) diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java index ff3ad83bcafe..5ccd42cfd4cb 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java @@ -897,7 +897,7 @@ public abstract class ChooseByNameBase { myTextPopup.setSize(bounds.getSize()); myTextPopup.setLocation(bounds.getLocation()); - new MnemonicHelper().register(myTextFieldPanel); + MnemonicHelper.init(myTextFieldPanel); if (myProject != null && !myProject.isDefault()) { DaemonCodeAnalyzer.getInstance(myProject).disableUpdateByTimer(myTextPopup); } diff --git a/platform/platform-api/src/com/intellij/openapi/MnemonicHelper.java b/platform/platform-api/src/com/intellij/openapi/MnemonicHelper.java index 1e4577c58dac..05bbcac3b354 100644 --- a/platform/platform-api/src/com/intellij/openapi/MnemonicHelper.java +++ b/platform/platform-api/src/com/intellij/openapi/MnemonicHelper.java @@ -143,4 +143,13 @@ public class MnemonicHelper extends ComponentTreeWatcher { "alt pressed " + mnemonic; return CustomShortcutSet.fromString(shortcut); } + + /** + * Initializes mnemonics support for the specified component and for its children if needed. + * + * @param component the root component of the hierarchy + */ + public static void init(Component component) { + new MnemonicHelper().register(component); + } } diff --git a/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapper.java b/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapper.java index 35f0b92cdb8b..bd6daff16513 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapper.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapper.java @@ -1242,7 +1242,7 @@ public abstract class DialogWrapper { southSection.add(south, BorderLayout.SOUTH); } - new MnemonicHelper().register(root); + MnemonicHelper.init(root); if (!postponeValidation()) { startTrackingValidation(); } diff --git a/platform/platform-api/src/com/intellij/util/net/AuthenticationDialog.java b/platform/platform-api/src/com/intellij/util/net/AuthenticationDialog.java index 83cca8a039df..0f8c2495f929 100644 --- a/platform/platform-api/src/com/intellij/util/net/AuthenticationDialog.java +++ b/platform/platform-api/src/com/intellij/util/net/AuthenticationDialog.java @@ -30,7 +30,7 @@ public class AuthenticationDialog extends DialogWrapper { super(component, true); setTitle(title); - new MnemonicHelper().register(getContentPane()); + MnemonicHelper.init(getContentPane()); panel = new AuthenticationPanel(description, login, password, rememberPassword); final Window window = getWindow(); @@ -45,7 +45,7 @@ public class AuthenticationDialog extends DialogWrapper { super(JOptionPane.getRootFrame(), true); setTitle(title); - new MnemonicHelper().register(getContentPane()); + MnemonicHelper.init(getContentPane()); panel = new AuthenticationPanel(description, login, password, rememberPassword); final Window window = getWindow(); diff --git a/platform/platform-impl/src/com/intellij/openapi/application/ImportOldConfigsPanel.java b/platform/platform-impl/src/com/intellij/openapi/application/ImportOldConfigsPanel.java index d25f2949b347..1097409baaee 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/ImportOldConfigsPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/ImportOldConfigsPanel.java @@ -57,7 +57,7 @@ public class ImportOldConfigsPanel extends JDialog { } private void init() { - new MnemonicHelper().register(getContentPane()); + MnemonicHelper.init(getContentPane()); ButtonGroup group = new ButtonGroup(); group.add(myRbDoNotImport); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/FloatingDecorator.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/FloatingDecorator.java index fb494bb140d7..5a0a20351c29 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/FloatingDecorator.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/FloatingDecorator.java @@ -66,7 +66,7 @@ public final class FloatingDecorator extends JDialog { FloatingDecorator(final IdeFrameImpl owner,final WindowInfoImpl info,final InternalDecorator internalDecorator){ super(owner,internalDecorator.getToolWindow().getId()); - new MnemonicHelper().register(getContentPane()); + MnemonicHelper.init(getContentPane()); myInternalDecorator=internalDecorator; setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java index cbb8931a2225..a20bca20cd63 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java @@ -109,7 +109,7 @@ public class IdeFrameImpl extends JFrame implements IdeFrameEx, DataProvider { setFocusTraversalPolicy(layoutFocusTraversalPolicy); setupCloseAction(); - new MnemonicHelper().register(this); + MnemonicHelper.init(this); myBalloonLayout = new BalloonLayoutImpl(myRootPane, new Insets(8, 8, 8, 8)); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java index 80d4739c5631..0da90ca293a1 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java @@ -113,7 +113,7 @@ public class FlatWelcomeFrame extends JFrame implements IdeFrame { myBalloonLayout = new BalloonLayoutImpl(rootPane, new JBInsets(8, 8, 8, 8)); WelcomeFrame.setupCloseAction(this); - new MnemonicHelper().register(this); + MnemonicHelper.init(this); Disposer.register(ApplicationManager.getApplication(), new Disposable() { @Override public void dispose() { diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/WelcomeFrame.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/WelcomeFrame.java index d638fde23562..339f6a3e76a3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/WelcomeFrame.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/WelcomeFrame.java @@ -80,7 +80,7 @@ public class WelcomeFrame extends JFrame implements IdeFrame { myScreen = screen; setupCloseAction(this); - new MnemonicHelper().register(this); + MnemonicHelper.init(this); myScreen.setupFrame(this); Disposer.register(ApplicationManager.getApplication(), new Disposable() { @Override diff --git a/xml/dom-openapi/src/com/intellij/util/xml/ui/DomFileEditor.java b/xml/dom-openapi/src/com/intellij/util/xml/ui/DomFileEditor.java index ee8f1faaf450..dcce76401d42 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/ui/DomFileEditor.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/ui/DomFileEditor.java @@ -102,7 +102,7 @@ public class DomFileEditor extends Perspecti @Override @NotNull protected JComponent createCustomComponent() { - new MnemonicHelper().register(getComponent()); + MnemonicHelper.init(getComponent()); myComponent = myComponentFactory.create(); DomUIFactory.getDomUIFactory().setupErrorOutdatingUserActivityWatcher(this, getDomElement()); DomManager.getDomManager(getProject()).addDomEventListener(new DomEventListener() {