Example usage for org.eclipse.jface.action SubContributionItem getId

List of usage examples for org.eclipse.jface.action SubContributionItem getId

Introduction

In this page you can find the example usage for org.eclipse.jface.action SubContributionItem getId.

Prototype

@Override
    public String getId() 

Source Link

Usage

From source file:org.talend.core.model.action.DisableLanguageActions.java

License:Open Source License

public void earlyStartup() {
    List<String> ids = null;
    RepositoryContext context = (RepositoryContext) CorePlugin.getContext()
            .getProperty(Context.REPOSITORY_CONTEXT_KEY);
    if (context != null) {
        Project project = context.getProject();
    } else {/* w w w.  ja  v  a 2 s .  c o m*/
        return;
    }

    ECodeLanguage lan = LanguageManager.getCurrentLanguage();

    switch (lan) {
    case JAVA:
        ids = Arrays.asList(new String[] { "org.talend.help.perl.OpenPerlHelpAction" }); //$NON-NLS-1$
        break;
    case PERL:
        ids = null;
        break;
    }

    if (ids != null && !ids.isEmpty()) {
        final String[] toolsID = ids.toArray(new String[] {});
        final IWorkbench workbench = PlatformUI.getWorkbench();
        workbench.getDisplay().asyncExec(new Runnable() {

            public void run() {
                IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
                if (window != null) {
                    Menu menubar = window.getShell().getMenuBar();
                    MenuItem[] mItems = menubar.getItems();

                    for (MenuItem item : mItems) {
                        Object menuItemData = item.getData();
                        if (menuItemData == null) {
                            continue;
                        }

                        if (menuItemData instanceof MenuManager) {
                            MenuManager menumanager = (MenuManager) menuItemData;
                            IContributionItem[] items2 = menumanager.getItems();
                            for (IContributionItem contributionItem : items2) {
                                disableActionFRomIContributionItem(toolsID, contributionItem);
                            }
                        } else if (menuItemData instanceof IContributionItem) {
                            disableActionFRomIContributionItem(toolsID, (IContributionItem) menuItemData);
                        }
                    }
                }
            }

            /**
             * DOC smallet Comment method "disableActionFRomIContributionItem".
             * 
             * @param toolsID
             * @param contributionItem
             */
            private void disableActionFRomIContributionItem(final String[] toolsID,
                    IContributionItem contributionItem) {
                SubContributionItem cItem;
                if (contributionItem instanceof SubContributionItem) {
                    cItem = (SubContributionItem) contributionItem;
                    IContributionItem conItems = cItem.getInnerItem();
                    if (conItems instanceof ActionContributionItem) {
                        ActionContributionItem items = (ActionContributionItem) conItems;
                        String id = cItem.getId();
                        if ((id != null) && (Arrays.binarySearch(toolsID, id) >= 0)) {
                            items.getAction().setEnabled(false);
                        }
                    }
                }
            }
        });

        exectued = true;
    }
}