Search in sources :

Example 26 with Action

use of org.eclipse.che.ide.api.action.Action in project che by eclipse.

the class PopupMenu method openSubPopup.

private void openSubPopup(final Element tableRowElement) {
    if (tableRowElement == null) {
        return;
    }
    if (openedSubPopup != null) {
        if (tableRowElement == subPopupAnchor) {
            return;
        }
        openedSubPopup.closePopup();
    }
    if (subPopupAnchor != null) {
        Element e = subPopupAnchor;
        subPopupAnchor = null;
        setStyleNormal(e);
    }
    subPopupAnchor = tableRowElement;
    setStyleHovered(subPopupAnchor);
    int itemIndex = Integer.parseInt(tableRowElement.getAttribute("item-index"));
    Action menuItem = list.get(itemIndex);
    String idPrefix = itemIdPrefix;
    if (idPrefix != null) {
        idPrefix += "/" + presentationFactory.getPresentation(menuItem).getText();
    }
    openedSubPopup = new PopupMenu((ActionGroup) menuItem, actionManager, managerProvider, presentationFactory, lockLayer, actionSelectedHandler, keyBindingAgent, idPrefix);
    final int HORIZONTAL_OFFSET = 3;
    final int VERTICAL_OFFSET = 1;
    openedSubPopup.getElement().getStyle().setVisibility(Visibility.HIDDEN);
    lockLayer.add(openedSubPopup, 0, 0);
    Scheduler.get().scheduleDeferred(new ScheduledCommand() {

        @Override
        public void execute() {
            int left = getAbsoluteLeft() + getOffsetWidth() - HORIZONTAL_OFFSET;
            int top = tableRowElement.getAbsoluteTop() - lockLayer.getTopOffset() - VERTICAL_OFFSET;
            if (left + openedSubPopup.getOffsetWidth() > Window.getClientWidth()) {
                if (left > openedSubPopup.getOffsetWidth()) {
                    left = getAbsoluteLeft() - openedSubPopup.getOffsetWidth() + HORIZONTAL_OFFSET;
                } else {
                    int diff = left + openedSubPopup.getOffsetWidth() - Window.getClientWidth();
                    left -= diff;
                }
            }
            if (top + openedSubPopup.getOffsetHeight() > Window.getClientHeight()) {
                if (top > openedSubPopup.getOffsetHeight()) {
                    top = tableRowElement.getAbsoluteTop() - openedSubPopup.getOffsetHeight() + VERTICAL_OFFSET;
                } else {
                    int diff = top + openedSubPopup.getOffsetHeight() - Window.getClientHeight();
                    top -= diff;
                }
            }
            openedSubPopup.getElement().getStyle().setLeft(left, Unit.PX);
            openedSubPopup.getElement().getStyle().setTop(top, Unit.PX);
            openedSubPopup.getElement().getStyle().setVisibility(Visibility.VISIBLE);
        }
    });
}
Also used : ToggleAction(org.eclipse.che.ide.api.action.ToggleAction) Action(org.eclipse.che.ide.api.action.Action) ScheduledCommand(com.google.gwt.core.client.Scheduler.ScheduledCommand) ActionGroup(org.eclipse.che.ide.api.action.ActionGroup) Element(com.google.gwt.dom.client.Element)

Example 27 with Action

use of org.eclipse.che.ide.api.action.Action in project che by eclipse.

the class StandardComponentInitializer method initialize.

public void initialize() {
    messageLoaderResources.Css().ensureInjected();
    editorResources.editorCss().ensureInjected();
    popupResources.popupStyle().ensureInjected();
    fileTypeRegistry.registerFileType(xmlFile);
    fileTypeRegistry.registerFileType(txtFile);
    fileTypeRegistry.registerFileType(jsonFile);
    fileTypeRegistry.registerFileType(mdFile);
    fileTypeRegistry.registerFileType(pngFile);
    editorRegistry.registerDefaultEditor(pngFile, imageViewerProvider);
    fileTypeRegistry.registerFileType(bmpFile);
    editorRegistry.registerDefaultEditor(bmpFile, imageViewerProvider);
    fileTypeRegistry.registerFileType(gifFile);
    editorRegistry.registerDefaultEditor(gifFile, imageViewerProvider);
    fileTypeRegistry.registerFileType(iconFile);
    editorRegistry.registerDefaultEditor(iconFile, imageViewerProvider);
    fileTypeRegistry.registerFileType(svgFile);
    editorRegistry.registerDefaultEditor(svgFile, imageViewerProvider);
    fileTypeRegistry.registerFileType(jpeFile);
    editorRegistry.registerDefaultEditor(jpeFile, imageViewerProvider);
    fileTypeRegistry.registerFileType(jpegFile);
    editorRegistry.registerDefaultEditor(jpegFile, imageViewerProvider);
    fileTypeRegistry.registerFileType(jpgFile);
    editorRegistry.registerDefaultEditor(jpgFile, imageViewerProvider);
    // Workspace (New Menu)
    DefaultActionGroup workspaceGroup = (DefaultActionGroup) actionManager.getAction(GROUP_WORKSPACE);
    actionManager.registerAction(IMPORT_PROJECT, importProjectAction);
    workspaceGroup.add(importProjectAction);
    actionManager.registerAction(CREATE_PROJECT, createProjectAction);
    workspaceGroup.add(createProjectAction);
    actionManager.registerAction("downloadWsAsZipAction", downloadWsAction);
    workspaceGroup.add(downloadWsAction);
    workspaceGroup.addSeparator();
    // Project (New Menu)
    DefaultActionGroup projectGroup = (DefaultActionGroup) actionManager.getAction(GROUP_PROJECT);
    DefaultActionGroup newGroup = new DefaultActionGroup("New", true, actionManager);
    newGroup.getTemplatePresentation().setDescription("Create...");
    newGroup.getTemplatePresentation().setSVGResource(resources.newResource());
    actionManager.registerAction(GROUP_FILE_NEW, newGroup);
    projectGroup.add(newGroup);
    newGroup.addSeparator();
    actionManager.registerAction(NEW_FILE, newFileAction);
    newGroup.addAction(newFileAction);
    actionManager.registerAction("newFolder", newFolderAction);
    newGroup.addAction(newFolderAction);
    newGroup.addSeparator();
    actionManager.registerAction("newXmlFile", newXmlFileAction);
    newXmlFileAction.getTemplatePresentation().setSVGResource(xmlFile.getImage());
    newGroup.addAction(newXmlFileAction);
    actionManager.registerAction("uploadFile", uploadFileAction);
    projectGroup.add(uploadFileAction);
    actionManager.registerAction("uploadFolder", uploadFolderAction);
    projectGroup.add(uploadFolderAction);
    actionManager.registerAction("convertFolderToProject", convertFolderToProjectAction);
    projectGroup.add(convertFolderToProjectAction);
    actionManager.registerAction("downloadAsZipAction", downloadProjectAction);
    projectGroup.add(downloadProjectAction);
    actionManager.registerAction("showHideHiddenFiles", showHiddenFilesAction);
    projectGroup.add(showHiddenFilesAction);
    projectGroup.addSeparator();
    actionManager.registerAction("projectConfiguration", projectConfigurationAction);
    projectGroup.add(projectConfigurationAction);
    // Edit (New Menu)
    DefaultActionGroup editGroup = (DefaultActionGroup) actionManager.getAction(GROUP_EDIT);
    DefaultActionGroup recentGroup = new DefaultActionGroup(RECENT_GROUP_ID, true, actionManager);
    actionManager.registerAction(GROUP_RECENT_FILES, recentGroup);
    actionManager.registerAction("clearRecentList", clearRecentFilesAction);
    recentGroup.addSeparator();
    recentGroup.add(clearRecentFilesAction, LAST);
    editGroup.add(recentGroup);
    actionManager.registerAction(OPEN_RECENT_FILES, openRecentFilesAction);
    editGroup.add(openRecentFilesAction);
    editGroup.addSeparator();
    actionManager.registerAction(CLOSE_ACTIVE_EDITOR, closeActiveEditorAction);
    editGroup.add(closeActiveEditorAction);
    actionManager.registerAction(FORMAT, formatterAction);
    editGroup.add(formatterAction);
    actionManager.registerAction("undo", undoAction);
    editGroup.add(undoAction);
    actionManager.registerAction("redo", redoAction);
    editGroup.add(redoAction);
    actionManager.registerAction(CUT, cutResourceAction);
    editGroup.add(cutResourceAction);
    actionManager.registerAction(COPY, copyResourceAction);
    editGroup.add(copyResourceAction);
    actionManager.registerAction(PASTE, pasteResourceAction);
    editGroup.add(pasteResourceAction);
    actionManager.registerAction(RENAME, renameItemAction);
    editGroup.add(renameItemAction);
    actionManager.registerAction(DELETE_ITEM, deleteResourceAction);
    editGroup.add(deleteResourceAction);
    actionManager.registerAction(FULL_TEXT_SEARCH, fullTextSearchAction);
    editGroup.add(fullTextSearchAction);
    editGroup.addSeparator();
    editGroup.add(switchPreviousEditorAction);
    editGroup.add(switchNextEditorAction);
    editGroup.addSeparator();
    editGroup.add(revealResourceAction);
    // Assistant (New Menu)
    DefaultActionGroup assistantGroup = (DefaultActionGroup) actionManager.getAction(GROUP_ASSISTANT);
    actionManager.registerAction(FIND_ACTION, findActionAction);
    assistantGroup.add(findActionAction);
    actionManager.registerAction("hotKeysList", hotKeysListAction);
    assistantGroup.add(hotKeysListAction);
    assistantGroup.addSeparator();
    actionManager.registerAction("callCompletion", completeAction);
    assistantGroup.add(completeAction);
    actionManager.registerAction("downloadItemAction", downloadResourceAction);
    actionManager.registerAction(NAVIGATE_TO_FILE, navigateToFileAction);
    assistantGroup.add(navigateToFileAction);
    // Compose Save group
    DefaultActionGroup saveGroup = new DefaultActionGroup(actionManager);
    actionManager.registerAction("saveGroup", saveGroup);
    actionManager.registerAction("save", saveAction);
    actionManager.registerAction("saveAll", saveAllAction);
    saveGroup.addSeparator();
    saveGroup.add(saveAction);
    saveGroup.add(saveAllAction);
    //Compose Profile menu
    DefaultActionGroup profileGroup = (DefaultActionGroup) actionManager.getAction(GROUP_PROFILE);
    actionManager.registerAction("showPreferences", showPreferencesAction);
    profileGroup.add(showPreferencesAction);
    // Compose Help menu
    DefaultActionGroup helpGroup = (DefaultActionGroup) actionManager.getAction(GROUP_HELP);
    helpGroup.addSeparator();
    // Compose main context menu
    DefaultActionGroup resourceOperation = new DefaultActionGroup(actionManager);
    actionManager.registerAction("resourceOperation", resourceOperation);
    actionManager.registerAction("refreshPathAction", refreshPathAction);
    actionManager.registerAction("linkWithEditor", linkWithEditorAction);
    resourceOperation.addSeparator();
    resourceOperation.add(showReferenceAction);
    resourceOperation.add(goIntoAction);
    resourceOperation.add(editFileAction);
    resourceOperation.add(cutResourceAction);
    resourceOperation.add(copyResourceAction);
    resourceOperation.add(pasteResourceAction);
    resourceOperation.add(renameItemAction);
    resourceOperation.add(deleteResourceAction);
    resourceOperation.addSeparator();
    resourceOperation.add(downloadResourceAction);
    resourceOperation.add(refreshPathAction);
    resourceOperation.add(linkWithEditorAction);
    resourceOperation.addSeparator();
    resourceOperation.add(convertFolderToProjectAction);
    resourceOperation.addSeparator();
    DefaultActionGroup mainContextMenuGroup = (DefaultActionGroup) actionManager.getAction(GROUP_MAIN_CONTEXT_MENU);
    mainContextMenuGroup.add(newGroup, Constraints.FIRST);
    mainContextMenuGroup.addSeparator();
    mainContextMenuGroup.add(resourceOperation);
    DefaultActionGroup partMenuGroup = (DefaultActionGroup) actionManager.getAction(GROUP_PART_MENU);
    partMenuGroup.add(maximizePartAction);
    partMenuGroup.add(minimizePartAction);
    partMenuGroup.add(restorePartAction);
    actionManager.registerAction("expandEditor", expandEditorAction);
    DefaultActionGroup rightMenuGroup = (DefaultActionGroup) actionManager.getAction(GROUP_RIGHT_MAIN_MENU);
    rightMenuGroup.add(expandEditorAction, FIRST);
    // Compose main toolbar
    DefaultActionGroup changeResourceGroup = new DefaultActionGroup(actionManager);
    actionManager.registerAction("changeResourceGroup", changeResourceGroup);
    actionManager.registerAction("editFile", editFileAction);
    actionManager.registerAction("goInto", goIntoAction);
    actionManager.registerAction(SHOW_REFERENCE, showReferenceAction);
    actionManager.registerAction("collapseAll", collapseAllAction);
    actionManager.registerAction("openFile", openFileAction);
    actionManager.registerAction(SWITCH_LEFT_TAB, switchPreviousEditorAction);
    actionManager.registerAction(SWITCH_RIGHT_TAB, switchNextEditorAction);
    actionManager.registerAction("scrollFromSource", revealResourceAction);
    changeResourceGroup.add(cutResourceAction);
    changeResourceGroup.add(copyResourceAction);
    changeResourceGroup.add(pasteResourceAction);
    changeResourceGroup.add(deleteResourceAction);
    DefaultActionGroup mainToolbarGroup = (DefaultActionGroup) actionManager.getAction(GROUP_MAIN_TOOLBAR);
    mainToolbarGroup.add(newGroup);
    mainToolbarGroup.add(changeResourceGroup);
    toolbarPresenter.bindMainGroup(mainToolbarGroup);
    DefaultActionGroup centerToolbarGroup = (DefaultActionGroup) actionManager.getAction(GROUP_CENTER_TOOLBAR);
    toolbarPresenter.bindCenterGroup(centerToolbarGroup);
    DefaultActionGroup rightToolbarGroup = (DefaultActionGroup) actionManager.getAction(GROUP_RIGHT_TOOLBAR);
    toolbarPresenter.bindRightGroup(rightToolbarGroup);
    //Editor context menu group
    DefaultActionGroup editorTabContextMenu = (DefaultActionGroup) actionManager.getAction(GROUP_EDITOR_TAB_CONTEXT_MENU);
    editorTabContextMenu.add(closeAction);
    actionManager.registerAction(CLOSE, closeAction);
    editorTabContextMenu.add(closeAllAction);
    actionManager.registerAction(CLOSE_ALL, closeAllAction);
    editorTabContextMenu.add(closeOtherAction);
    actionManager.registerAction(CLOSE_OTHER, closeOtherAction);
    editorTabContextMenu.add(closeAllExceptPinnedAction);
    actionManager.registerAction(CLOSE_ALL_EXCEPT_PINNED, closeAllExceptPinnedAction);
    editorTabContextMenu.addSeparator();
    editorTabContextMenu.add(reopenClosedFileAction);
    actionManager.registerAction(REOPEN_CLOSED, reopenClosedFileAction);
    editorTabContextMenu.add(pinEditorTabAction);
    actionManager.registerAction(PIN_TAB, pinEditorTabAction);
    editorTabContextMenu.addSeparator();
    actionManager.registerAction(SPLIT_HORIZONTALLY, splitHorizontallyAction);
    editorTabContextMenu.add(splitHorizontallyAction);
    actionManager.registerAction(SPLIT_VERTICALLY, splitVerticallyAction);
    editorTabContextMenu.add(splitVerticallyAction);
    actionManager.registerAction(SIGNATURE_HELP, signatureHelpAction);
    DefaultActionGroup editorContextMenuGroup = new DefaultActionGroup(actionManager);
    actionManager.registerAction(GROUP_EDITOR_CONTEXT_MENU, editorContextMenuGroup);
    editorContextMenuGroup.add(undoAction);
    editorContextMenuGroup.add(redoAction);
    editorContextMenuGroup.addSeparator();
    editorContextMenuGroup.add(formatterAction);
    editorContextMenuGroup.addSeparator();
    editorContextMenuGroup.add(fullTextSearchAction);
    editorContextMenuGroup.add(closeActiveEditorAction);
    // Define hot-keys
    keyBinding.getGlobal().addKey(new KeyBuilder().action().alt().charCode('n').build(), NAVIGATE_TO_FILE);
    keyBinding.getGlobal().addKey(new KeyBuilder().action().charCode('F').build(), FULL_TEXT_SEARCH);
    keyBinding.getGlobal().addKey(new KeyBuilder().action().charCode('A').build(), FIND_ACTION);
    keyBinding.getGlobal().addKey(new KeyBuilder().alt().charCode('L').build(), FORMAT);
    keyBinding.getGlobal().addKey(new KeyBuilder().action().charCode('c').build(), COPY);
    keyBinding.getGlobal().addKey(new KeyBuilder().action().charCode('x').build(), CUT);
    keyBinding.getGlobal().addKey(new KeyBuilder().action().charCode('v').build(), PASTE);
    keyBinding.getGlobal().addKey(new KeyBuilder().shift().charCode(KeyCodeMap.F6).build(), RENAME);
    keyBinding.getGlobal().addKey(new KeyBuilder().shift().charCode(KeyCodeMap.F7).build(), SHOW_REFERENCE);
    keyBinding.getGlobal().addKey(new KeyBuilder().alt().charCode(KeyCodeMap.ARROW_LEFT).build(), SWITCH_LEFT_TAB);
    keyBinding.getGlobal().addKey(new KeyBuilder().alt().charCode(KeyCodeMap.ARROW_RIGHT).build(), SWITCH_RIGHT_TAB);
    keyBinding.getGlobal().addKey(new KeyBuilder().action().charCode('e').build(), OPEN_RECENT_FILES);
    keyBinding.getGlobal().addKey(new KeyBuilder().charCode(KeyCodeMap.DELETE).build(), DELETE_ITEM);
    keyBinding.getGlobal().addKey(new KeyBuilder().alt().charCode('N').build(), NEW_FILE);
    keyBinding.getGlobal().addKey(new KeyBuilder().alt().charCode('x').build(), CREATE_PROJECT);
    keyBinding.getGlobal().addKey(new KeyBuilder().alt().charCode('A').build(), IMPORT_PROJECT);
    if (UserAgent.isMac()) {
        keyBinding.getGlobal().addKey(new KeyBuilder().control().charCode('w').build(), CLOSE_ACTIVE_EDITOR);
        keyBinding.getGlobal().addKey(new KeyBuilder().control().charCode('p').build(), SIGNATURE_HELP);
    } else {
        keyBinding.getGlobal().addKey(new KeyBuilder().alt().charCode('w').build(), CLOSE_ACTIVE_EDITOR);
        keyBinding.getGlobal().addKey(new KeyBuilder().action().charCode('p').build(), SIGNATURE_HELP);
    }
    final Map<String, Perspective> perspectives = perspectiveManager.getPerspectives();
    if (perspectives.size() > 1) {
        //if registered perspectives will be more then 2 Main Menu -> Window
        // will appears and contains all of them as sub-menu
        final DefaultActionGroup windowMenu = new DefaultActionGroup("Window", true, actionManager);
        actionManager.registerAction("Window", windowMenu);
        final DefaultActionGroup mainMenu = (DefaultActionGroup) actionManager.getAction(GROUP_MAIN_MENU);
        mainMenu.add(windowMenu);
        for (Perspective perspective : perspectives.values()) {
            final Action action = new Action(perspective.getPerspectiveName()) {

                @Override
                public void actionPerformed(ActionEvent e) {
                    perspectiveManager.setPerspectiveId(perspective.getPerspectiveId());
                }
            };
            actionManager.registerAction(perspective.getPerspectiveId(), action);
            windowMenu.add(action);
        }
    }
}
Also used : KeyBuilder(org.eclipse.che.ide.api.keybinding.KeyBuilder) Perspective(org.eclipse.che.ide.api.parts.Perspective) FullTextSearchAction(org.eclipse.che.ide.actions.FullTextSearchAction) UndoAction(org.eclipse.che.ide.actions.UndoAction) LinkWithEditorAction(org.eclipse.che.ide.actions.LinkWithEditorAction) MinimizePartAction(org.eclipse.che.ide.actions.common.MinimizePartAction) ConvertFolderToProjectAction(org.eclipse.che.ide.actions.ConvertFolderToProjectAction) NavigateToFileAction(org.eclipse.che.ide.actions.NavigateToFileAction) UploadFolderAction(org.eclipse.che.ide.actions.UploadFolderAction) RestorePartAction(org.eclipse.che.ide.actions.common.RestorePartAction) CloseAllAction(org.eclipse.che.ide.part.editor.actions.CloseAllAction) RenameItemAction(org.eclipse.che.ide.actions.RenameItemAction) SaveAction(org.eclipse.che.ide.actions.SaveAction) ShowHiddenFilesAction(org.eclipse.che.ide.actions.ShowHiddenFilesAction) CutResourceAction(org.eclipse.che.ide.resources.action.CutResourceAction) SplitVerticallyAction(org.eclipse.che.ide.part.editor.actions.SplitVerticallyAction) DownloadWsAction(org.eclipse.che.ide.actions.DownloadWsAction) DownloadResourceAction(org.eclipse.che.ide.actions.DownloadResourceAction) PinEditorTabAction(org.eclipse.che.ide.part.editor.actions.PinEditorTabAction) RevealResourceAction(org.eclipse.che.ide.resources.action.RevealResourceAction) SwitchNextEditorAction(org.eclipse.che.ide.part.editor.actions.SwitchNextEditorAction) ImportProjectAction(org.eclipse.che.ide.actions.ImportProjectAction) NewXmlFileAction(org.eclipse.che.ide.xml.NewXmlFileAction) SaveAllAction(org.eclipse.che.ide.actions.SaveAllAction) CloseAction(org.eclipse.che.ide.part.editor.actions.CloseAction) CloseOtherAction(org.eclipse.che.ide.part.editor.actions.CloseOtherAction) GoIntoAction(org.eclipse.che.ide.actions.GoIntoAction) EditFileAction(org.eclipse.che.ide.actions.EditFileAction) HotKeysListAction(org.eclipse.che.ide.actions.HotKeysListAction) ProjectConfigurationAction(org.eclipse.che.ide.actions.ProjectConfigurationAction) RedoAction(org.eclipse.che.ide.actions.RedoAction) NewFileAction(org.eclipse.che.ide.newresource.NewFileAction) FormatterAction(org.eclipse.che.ide.actions.FormatterAction) OpenFileAction(org.eclipse.che.ide.actions.OpenFileAction) ReopenClosedFileAction(org.eclipse.che.ide.part.editor.actions.ReopenClosedFileAction) FindActionAction(org.eclipse.che.ide.actions.find.FindActionAction) ShowPreferencesAction(org.eclipse.che.ide.actions.ShowPreferencesAction) ClearRecentListAction(org.eclipse.che.ide.part.editor.recent.ClearRecentListAction) NewFolderAction(org.eclipse.che.ide.newresource.NewFolderAction) PasteResourceAction(org.eclipse.che.ide.resources.action.PasteResourceAction) CollapseAllAction(org.eclipse.che.ide.actions.CollapseAllAction) OpenRecentFilesAction(org.eclipse.che.ide.part.editor.recent.OpenRecentFilesAction) CreateProjectAction(org.eclipse.che.ide.actions.CreateProjectAction) CompleteAction(org.eclipse.che.ide.actions.CompleteAction) ExpandEditorAction(org.eclipse.che.ide.actions.ExpandEditorAction) DownloadProjectAction(org.eclipse.che.ide.actions.DownloadProjectAction) MaximizePartAction(org.eclipse.che.ide.actions.common.MaximizePartAction) ShowReferenceAction(org.eclipse.che.ide.actions.ShowReferenceAction) DeleteResourceAction(org.eclipse.che.ide.actions.DeleteResourceAction) CloseAllExceptPinnedAction(org.eclipse.che.ide.part.editor.actions.CloseAllExceptPinnedAction) SplitHorizontallyAction(org.eclipse.che.ide.part.editor.actions.SplitHorizontallyAction) CopyResourceAction(org.eclipse.che.ide.resources.action.CopyResourceAction) SwitchPreviousEditorAction(org.eclipse.che.ide.part.editor.actions.SwitchPreviousEditorAction) SignatureHelpAction(org.eclipse.che.ide.actions.SignatureHelpAction) Action(org.eclipse.che.ide.api.action.Action) UploadFileAction(org.eclipse.che.ide.actions.UploadFileAction) CloseActiveEditorAction(org.eclipse.che.ide.actions.CloseActiveEditorAction) RefreshPathAction(org.eclipse.che.ide.actions.RefreshPathAction) ActionEvent(org.eclipse.che.ide.api.action.ActionEvent) DefaultActionGroup(org.eclipse.che.ide.api.action.DefaultActionGroup)

Example 28 with Action

use of org.eclipse.che.ide.api.action.Action in project che by eclipse.

the class CommandProducerActionManager method removeActionsForMachine.

private void removeActionsForMachine(Machine machine) {
    List<Action> actions = actionsByMachines.remove(machine);
    if (actions != null) {
        for (Action action : actions) {
            DefaultActionGroup actionGroup = actionsToActionGroups.remove(action);
            if (actionGroup != null) {
                actionGroup.remove(action);
                String id = actionManager.getId(action);
                if (id != null) {
                    actionManager.unregisterAction(id);
                }
            }
        }
    }
}
Also used : Action(org.eclipse.che.ide.api.action.Action) DefaultActionGroup(org.eclipse.che.ide.api.action.DefaultActionGroup)

Example 29 with Action

use of org.eclipse.che.ide.api.action.Action in project che by eclipse.

the class FindActionPresenter method nameChanged.

@Override
public void nameChanged(String name, boolean checkBoxState) {
    if (name.isEmpty()) {
        view.hideActions();
        return;
    }
    String pattern = convertPattern(name.trim());
    RegExp regExp = RegExp.compile(pattern);
    Map<Action, String> actions = new TreeMap<>(actionComparator);
    if (checkBoxState) {
        Set<String> ids = ((ActionManagerImpl) actionManager).getActionIds();
        for (Action action : actionsMap.keySet()) {
            ids.remove(actionManager.getId(action));
        }
        for (String id : ids) {
            Action action = actionManager.getAction(id);
            Presentation presentation = action.getTemplatePresentation();
            String text = presentation.getText();
            if (text != null && regExp.test(text)) {
                actions.put(action, null);
            }
        }
    }
    List<String> excludedActionIds = getExcludedActionIds(actionManager);
    for (Entry<Action, String> entry : actionsMap.entrySet()) {
        final Action action = entry.getKey();
        final String groupName = entry.getValue();
        if (excludedActionIds.contains(actionManager.getId(action))) {
            continue;
        }
        Presentation presentation = action.getTemplatePresentation();
        String text = presentation.getText();
        if (text != null && regExp.test(text)) {
            actions.put(action, groupName);
        }
    }
    if (!actions.isEmpty()) {
        view.showActions(actions);
    } else {
        view.hideActions();
    }
}
Also used : Action(org.eclipse.che.ide.api.action.Action) RegExp(com.google.gwt.regexp.shared.RegExp) ActionManagerImpl(org.eclipse.che.ide.actions.ActionManagerImpl) TreeMap(java.util.TreeMap) Presentation(org.eclipse.che.ide.api.action.Presentation)

Example 30 with Action

use of org.eclipse.che.ide.api.action.Action in project che by eclipse.

the class FindActionPresenter method getExcludedActionIds.

private List<String> getExcludedActionIds(ActionManager actionManager) {
    List<String> ids = new ArrayList<>();
    DefaultActionGroup editGroup = (DefaultActionGroup) actionManager.getAction(IdeActions.GROUP_RECENT_FILES);
    Action[] children = editGroup.getChildActionsOrStubs();
    for (Action child : children) {
        if (child instanceof Separator) {
            continue;
        }
        ids.add(actionManager.getId(child));
    }
    return unmodifiableList(ids);
}
Also used : Action(org.eclipse.che.ide.api.action.Action) ArrayList(java.util.ArrayList) DefaultActionGroup(org.eclipse.che.ide.api.action.DefaultActionGroup) Separator(org.eclipse.che.ide.api.action.Separator)

Aggregations

Action (org.eclipse.che.ide.api.action.Action)32 ActionEvent (org.eclipse.che.ide.api.action.ActionEvent)10 ActionGroup (org.eclipse.che.ide.api.action.ActionGroup)10 DefaultActionGroup (org.eclipse.che.ide.api.action.DefaultActionGroup)10 Presentation (org.eclipse.che.ide.api.action.Presentation)10 Separator (org.eclipse.che.ide.api.action.Separator)5 ToggleAction (org.eclipse.che.ide.api.action.ToggleAction)5 ArrayList (java.util.ArrayList)4 CustomComponentAction (org.eclipse.che.ide.api.action.CustomComponentAction)4 CreateProjectAction (org.eclipse.che.ide.actions.CreateProjectAction)2 ImportProjectAction (org.eclipse.che.ide.actions.ImportProjectAction)2 PromisableAction (org.eclipse.che.ide.api.action.PromisableAction)2 SplitHorizontallyAction (org.eclipse.che.ide.part.editor.actions.SplitHorizontallyAction)2 SplitVerticallyAction (org.eclipse.che.ide.part.editor.actions.SplitVerticallyAction)2 Test (org.junit.Test)2 JavaScriptObject (com.google.gwt.core.client.JavaScriptObject)1 ScheduledCommand (com.google.gwt.core.client.Scheduler.ScheduledCommand)1 DivElement (com.google.gwt.dom.client.DivElement)1 Element (com.google.gwt.dom.client.Element)1 RegExp (com.google.gwt.regexp.shared.RegExp)1