diff --git a/org.fortiss.tooling.kernel.ui/trunk/icons/select_all.png b/org.fortiss.tooling.kernel.ui/trunk/icons/select_all.png new file mode 100644 index 0000000000000000000000000000000000000000..998a0e590d62bd148191b79fcaee46ddc3497892 Binary files /dev/null and b/org.fortiss.tooling.kernel.ui/trunk/icons/select_all.png differ diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/ITutorialUIWhitelistProvider.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/ITutorialUIWhitelistProvider.java index 5282acc87591bd509a27aa2a9f776247ad1404a5..e03b2af0998a2b5979c89463d87a750a096c270a 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/ITutorialUIWhitelistProvider.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/ITutorialUIWhitelistProvider.java @@ -26,7 +26,7 @@ import org.eclipse.jface.action.IContributionItem; * @author hoelzl * @author $Author: hoelzl $ * @version $Rev: 18709 $ - * @ConQAT.Rating YELLOW Hash: EF068A38A42C0E4AB6E94AA3D99A4FFE + * @ConQAT.Rating YELLOW Hash: CB12A92EE54964BB92F8DB7E446808BC */ public interface ITutorialUIWhitelistProvider { /** Returns whether the given element should be displayed in the navigator tree. */ @@ -44,6 +44,9 @@ public interface ITutorialUIWhitelistProvider { /** Returns whether the global rename action is visible in the context menu. */ boolean globalRenameActionVisible(); + /** Returns whether the global "select all" action is visible in the context menu. */ + boolean globalSelectAllActionVisible(); + /** Returns whether the given context menu contribution is visible. */ boolean contextMenuContributionVisible(EObject element, IContributionItem contribution); } diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/TutorialStepUIAtomicWithWhitelistBase.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/TutorialStepUIAtomicWithWhitelistBase.java index e99b095398e99a01a0796a89b88d8a571a648e6c..2dabdde99b92d8b2b3726b4a2202c70b3e3f871c 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/TutorialStepUIAtomicWithWhitelistBase.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/TutorialStepUIAtomicWithWhitelistBase.java @@ -29,7 +29,7 @@ import org.fortiss.tooling.kernel.ui.extension.ITutorialUIWhitelistProvider; * @author hoelzl * @author $Author: hoelzl $ * @version $Rev: 18709 $ - * @ConQAT.Rating YELLOW Hash: E42D05ED143FC1B3FA87BD1828F67537 + * @ConQAT.Rating YELLOW Hash: 91424573B85CF01E1577D55B445C7710 */ public abstract class TutorialStepUIAtomicWithWhitelistBase extends TutorialStepUIAtomicBase implements ITutorialUIWhitelistProvider { @@ -73,6 +73,12 @@ public abstract class TutorialStepUIAtomicWithWhitelistBase extends TutorialStep return true; } + /** {@inheritDoc} */ + @Override + public boolean globalSelectAllActionVisible() { + return true; + } + /** {@inheritDoc} */ @Override public boolean contextMenuContributionVisible(EObject element, IContributionItem contribution) { diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/TutorialStepUICompositeWithWhitelistBase.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/TutorialStepUICompositeWithWhitelistBase.java index 187a331704999eac8b3a7cf54e8a0dae06ba4b19..f8f9c71d7bd8ee7b4e14570b797cc25a2b7ede4e 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/TutorialStepUICompositeWithWhitelistBase.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/TutorialStepUICompositeWithWhitelistBase.java @@ -30,7 +30,7 @@ import org.fortiss.tooling.kernel.ui.extension.ITutorialUIWhitelistProvider; * @author hoelzl * @author $Author: hoelzl $ * @version $Rev: 18709 $ - * @ConQAT.Rating YELLOW Hash: 69DF31BEA71E0C448A989D1332F27206 + * @ConQAT.Rating YELLOW Hash: 8945A5050A267FF6017A75199FD94F05 */ public abstract class TutorialStepUICompositeWithWhitelistBase extends TutorialStepUICompositeBase implements ITutorialUIWhitelistProvider { @@ -76,6 +76,12 @@ public abstract class TutorialStepUICompositeWithWhitelistBase extends TutorialS return true; } + /** {@inheritDoc} */ + @Override + public boolean globalSelectAllActionVisible() { + return true; + } + /** {@inheritDoc} */ @Override public boolean contextMenuContributionVisible(EObject element, IContributionItem contribution) { diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ActionService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ActionService.java index 7a10751b81658eab8ac0c830a778ceed83609d0e..b38689263a4b08dabd2edf6202cf64137b505b94 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ActionService.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ActionService.java @@ -44,6 +44,7 @@ import org.fortiss.tooling.kernel.ui.internal.actions.DeleteAction; import org.fortiss.tooling.kernel.ui.internal.actions.PasteAction; import org.fortiss.tooling.kernel.ui.internal.actions.RedoAction; import org.fortiss.tooling.kernel.ui.internal.actions.RenameAction; +import org.fortiss.tooling.kernel.ui.internal.actions.SelectAllAction; import org.fortiss.tooling.kernel.ui.internal.actions.UndoAction; import org.fortiss.tooling.kernel.ui.internal.views.NavigatorNewMenu; import org.fortiss.tooling.kernel.ui.service.IActionService; @@ -55,7 +56,7 @@ import org.fortiss.tooling.kernel.ui.util.EObjectSelectionUtils; * @author hoelzlf * @author $Author$ * @version $Rev$ - * @ConQAT.Rating YELLOW Hash: 2EB398C7C37EB120360B479B0A3EF898 + * @ConQAT.Rating YELLOW Hash: 30F05BE76B211235B375C2DF267C4635 */ public class ActionService implements IActionService, IPersistencyServiceListener, CommandStackListener, IIntrospectiveKernelService { @@ -91,6 +92,9 @@ public class ActionService implements IActionService, IPersistencyServiceListene /** The global rename action. */ public RenameAction globalRenameAction; + /** The global "select all" action. */ + public SelectAllAction globalSelectAllAction; + /** Initializes the service. */ public void initializeService() { globalDeleteAction = new DeleteAction(); @@ -100,6 +104,7 @@ public class ActionService implements IActionService, IPersistencyServiceListene globalCutAction = new CutAction(); globalPasteAction = new PasteAction(); globalRenameAction = new RenameAction(); + globalSelectAllAction = new SelectAllAction(); } /** Starts the service. */ @@ -114,13 +119,13 @@ public class ActionService implements IActionService, IPersistencyServiceListene /** {@inheritDoc} */ @Override public void addGlobalDefaultActionSectionToMenu(IMenuManager menuManager) { - addGlobalEditingActionsToMenu(menuManager, true, true, true); + addGlobalEditingActionsToMenu(menuManager, true, true, true, true); } /** {@inheritDoc} */ @Override public void addGlobalEditingActionsToMenu(IMenuManager menuManager, boolean copyPaste, - boolean delete, boolean rename) { + boolean delete, boolean rename, boolean selectAll) { if(copyPaste) { menuManager.appendToGroup(GLOBAL_DEFAULT_MENU_SECTION_ID, globalCopyAction); menuManager.appendToGroup(GLOBAL_DEFAULT_MENU_SECTION_ID, globalCutAction); @@ -132,6 +137,10 @@ public class ActionService implements IActionService, IPersistencyServiceListene if(rename) { menuManager.appendToGroup(GLOBAL_DEFAULT_MENU_SECTION_ID, globalRenameAction); } + + if(selectAll) { + menuManager.appendToGroup(GLOBAL_DEFAULT_MENU_SECTION_ID, globalSelectAllAction); + } } /** {@inheritDoc} */ @@ -171,6 +180,8 @@ public class ActionService implements IActionService, IPersistencyServiceListene ActionFactory.DELETE.getCommandId(), actionBars); registerGlobalAction(globalRenameAction, ActionFactory.RENAME.getId(), ActionFactory.RENAME.getCommandId(), actionBars); + registerGlobalAction(globalSelectAllAction, ActionFactory.SELECT_ALL.getId(), + ActionFactory.SELECT_ALL.getCommandId(), actionBars); } /** Registers the given action globally. */ @@ -189,6 +200,7 @@ public class ActionService implements IActionService, IPersistencyServiceListene globalPasteAction.refresh(targets); globalDeleteAction.refresh(targets); globalRenameAction.refresh(targets); + globalSelectAllAction.refresh(targets); globalUndoAction.refresh(targets); globalRedoAction.refresh(targets); } @@ -259,6 +271,12 @@ public class ActionService implements IActionService, IPersistencyServiceListene globalRenameAction.run(); } + /** {@inheritDoc} */ + @Override + public void runGlobalSelectAllAction() { + globalSelectAllAction.run(); + } + /** {@inheritDoc} */ @Override public Prototype getNewMenuContributionPrototype(IContributionItem contributionItem) { diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ContextMenuService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ContextMenuService.java index c1455642e7515e532f36f64ee8a74ec1298396cb..9d43e2d8ba54d8db9c25c0e83c8a445aa1e214a6 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ContextMenuService.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ContextMenuService.java @@ -55,7 +55,7 @@ import org.osgi.framework.Bundle; * @author hoelzl * @author $Author$ * @version $Rev$ - * @ConQAT.Rating YELLOW Hash: 3448206DA62CB18B6BC802486F94D387 + * @ConQAT.Rating YELLOW Hash: C750C764FE6FEC1CC10F7709200A2BC9 */ public class ContextMenuService implements IContextMenuService, IIntrospectiveKernelService { /** The singleton service instance. */ @@ -173,7 +173,8 @@ public class ContextMenuService implements IContextMenuService, IIntrospectiveKe IActionService.getInstance().addGlobalEditingActionsToMenu(menu, ITutorialUIService.getInstance().globalCopyPasteActionsVisible(), ITutorialUIService.getInstance().globalDeleteActionVisible(), - ITutorialUIService.getInstance().globalRenameActionVisible()); + ITutorialUIService.getInstance().globalRenameActionVisible(), + ITutorialUIService.getInstance().globalSelectAllActionVisible()); } } } diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/TutorialUIService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/TutorialUIService.java index 5de3dae905c219e665e4d2e2629d430fc0c6f5fe..180a6815067c62098089190b7ba3d4092dc60db1 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/TutorialUIService.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/TutorialUIService.java @@ -59,7 +59,7 @@ import org.osgi.framework.BundleException; * @author hoelzl * @author $Author: hoelzl $ * @version $Rev: 18709 $ - * @ConQAT.Rating RED Hash: 86CD841209EB95BE385D3201B5137A06 + * @ConQAT.Rating YELLOW Hash: B64FCE1222C16D24B0D64C9641915E8D */ public final class TutorialUIService implements ITutorialUIService, ITutorialUIWhitelistProvider, IIntrospectiveKernelService { @@ -307,6 +307,22 @@ public final class TutorialUIService implements ITutorialUIService, ITutorialUIW return false; } + /** {@inheritDoc} */ + @Override + public boolean globalSelectAllActionVisible() { + TutorialStepBase step = ITutorialService.getInstance().getActiveTutorialStep(); + while(step != null) { + if(step instanceof ITutorialUIWhitelistProvider) { + ITutorialUIWhitelistProvider p = (ITutorialUIWhitelistProvider)step; + if(p.globalSelectAllActionVisible()) { + return true; + } + } + step = step.getParent(); + } + return false; + } + /** {@inheritDoc} */ @Override public boolean contextMenuContributionVisible(EObject element, IContributionItem contribution) { diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/actions/SelectAllAction.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/actions/SelectAllAction.java new file mode 100644 index 0000000000000000000000000000000000000000..efcd66d69724fe357071a55aee41b75b6898103a --- /dev/null +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/actions/SelectAllAction.java @@ -0,0 +1,51 @@ +/*--------------------------------------------------------------------------+ +$Id$ +| | +| Copyright 2016 fortiss GmbH | +| | +| Licensed under the Apache License, Version 2.0 (the "License"); | +| you may not use this file except in compliance with the License. | +| You may obtain a copy of the License at | +| | +| http://www.apache.org/licenses/LICENSE-2.0 | +| | +| Unless required by applicable law or agreed to in writing, software | +| distributed under the License is distributed on an "AS IS" BASIS, | +| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | +| See the License for the specific language governing permissions and | +| limitations under the License. | ++--------------------------------------------------------------------------*/ +package org.fortiss.tooling.kernel.ui.internal.actions; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.ui.actions.ActionFactory; +import org.fortiss.tooling.kernel.ui.ToolingKernelUIActivator; +import org.fortiss.tooling.kernel.ui.extension.base.EObjectActionBase; +import org.fortiss.tooling.kernel.ui.util.SelectionUtils; + +/** + * Action for selecting all elements in the currently active editor. the currently selected model + * element. + * + * @author barner + * @author $Author$ + * @version $Rev$ + * @ConQAT.Rating YELLOW Hash: 703812CFF16B4B0ACFEC857D9B17CA6D + */ +public class SelectAllAction extends EObjectActionBase<EObject> { + + /** Constructor. */ + public SelectAllAction() { + super("Select all", ToolingKernelUIActivator.getImageDescriptor("icons/select_all.png")); + setId(ActionFactory.SELECT_ALL.getId()); + } + + /** {@inheritDoc} */ + @Override + public void run() { + EObject target = getTarget(); + if(target != null) { + SelectionUtils.setSelection(target.eContents()); + } + } +} diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/service/IActionService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/service/IActionService.java index e9791230cb666dc4ffdc6fa3af6455ba042ddcf3..e8ac2c534efa96b67ca15a64693b5e244cb92de5 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/service/IActionService.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/service/IActionService.java @@ -30,7 +30,7 @@ import org.fortiss.tooling.kernel.ui.internal.ActionService; * @author hoelzl * @author $Author$ * @version $Rev$ - * @ConQAT.Rating YELLOW Hash: 6296378743496C14102753053F08D77F + * @ConQAT.Rating YELLOW Hash: 1BDD6C00C8379F1C4661C01E865184F0 */ public interface IActionService { /** Returns the service instance. */ @@ -59,6 +59,9 @@ public interface IActionService { /** Runs the global rename action. */ public void runGlobalRenameAction(); + /** Runs the global "select all" action. */ + public void runGlobalSelectAllAction(); + /** Registers all global actions with the given {@link IActionBars}. */ void registerGlobalActions(IActionBars actionBars); @@ -73,13 +76,14 @@ public interface IActionService { /** * Adds the global default actions to the given context menu. Currently the * default are the editing actions as provided by # - * {@link IActionService#addGlobalEditingActionsToMenu(IMenuManager,boolean,boolean,boolean)}. + * {@link IActionService#addGlobalEditingActionsToMenu(IMenuManager,boolean,boolean,boolean,boolean)} + * . */ void addGlobalDefaultActionSectionToMenu(IMenuManager menuManager); - /** Adds the global editing actions to the menu (Copy, Cut, Paste, Delete, Rename). */ + /** Adds the global editing actions to the menu (Copy, Cut, Paste, Delete, Rename, Select All). */ void addGlobalEditingActionsToMenu(IMenuManager menuManager, boolean copyPaste, boolean delete, - boolean rename); + boolean rename, boolean selectAll); /** Adds the global undo/redo actions to the menu. */ void addGlobalUndoRedoActionsToMenu(IMenuManager menuManager); diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/util/ActionUtils.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/util/ActionUtils.java index 987b5910ad2b5df9aabe061ff57ccf82df04baa9..2b13ac8a17611cb3ab129b8b1b03e7f42319445f 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/util/ActionUtils.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/util/ActionUtils.java @@ -28,7 +28,7 @@ import org.fortiss.tooling.kernel.ui.service.IActionService; * @author aravantinos * @author $Author$ * @version $Rev$ - * @ConQAT.Rating YELLOW Hash: 45636C73464A38AAF743A8E9C5E13CC6 + * @ConQAT.Rating YELLOW Hash: C77D5F99A252385BAED91752692B71CE */ public class ActionUtils { @@ -55,6 +55,8 @@ public class ActionUtils { IActionService.getInstance().runGlobalRedoAction(); } else if(e.keyCode == SWT.F2) { IActionService.getInstance().runGlobalRenameAction(); + } else if((e.stateMask & SWT.CTRL) != 0 && e.keyCode == 0x61) { + IActionService.getInstance().runGlobalSelectAllAction(); } } }