diff options
| author | pguilet | 2017-06-28 09:40:52 +0000 |
|---|---|---|
| committer | pguilet | 2017-06-28 12:13:14 +0000 |
| commit | 2045b88acbd8bf2ee0317a16fd13e98e85f91c72 (patch) | |
| tree | 511c2bc61da2fefa8ebcd54aa95931713f8b7b46 | |
| parent | e40d3480ca0fc64724032b60414ff92d3e9fa46a (diff) | |
| download | org.eclipse.sirius-2045b88acbd8bf2ee0317a16fd13e98e85f91c72.tar.gz org.eclipse.sirius-2045b88acbd8bf2ee0317a16fd13e98e85f91c72.tar.xz org.eclipse.sirius-2045b88acbd8bf2ee0317a16fd13e98e85f91c72.zip | |
[517049] update behavior of removal functionality
"Remove" button is now disable for empty selection and selection that
are
not strictly resources.
Representations cannot be removed by using this button anymore.
Add some tooltips to aird editor buttons.
Bug: 517049
Change-Id: I15af82d6d661f1666427555e1d7145fdcccacbd2
Signed-off-by: pguilet <pierre.guilet@obeo.fr>
6 files changed, 57 insertions, 48 deletions
diff --git a/plugins/org.eclipse.sirius.ui.editor/plugin.properties b/plugins/org.eclipse.sirius.ui.editor/plugin.properties index 0123dd05a4..9bb46ce4e2 100644 --- a/plugins/org.eclipse.sirius.ui.editor/plugin.properties +++ b/plugins/org.eclipse.sirius.ui.editor/plugin.properties @@ -32,6 +32,9 @@ UI_SessionEditor_inputNotHandled_error_message=The aird editor handles only File GraphicalRepresentationHandler_missingDependencies_requirements=Viewpoint ''{0}'' requires viewpoint(s) which are not enabled: {1} GraphicalRepresentationHandler_disabledViewpoint_label=disabled GraphicalRepresentationHandler_representationNumber_label=\u0020({0} representations) +GraphicalSemanticModelsHandler_removeModelButton_tooltip=Remove model +GraphicalSemanticModelsHandler_newModelButton_tooltip=New model +GraphicalSemanticModelsHandler_addModelButton_tooltip=Add model DefaultSessionEditorPage_closeSession_action_label=Unload models DefaultSessionEditorPage_closeSession_action_tooltip=Unload models and close all associated editors DefaultSessionEditorPage_selectFilterAction_tooltip=Customize view... diff --git a/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/Messages.java b/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/Messages.java index 44526b9c86..1669295f31 100644 --- a/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/Messages.java +++ b/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/Messages.java @@ -88,6 +88,15 @@ public final class Messages { @TranslatableMessage public static String DefaultSessionEditorPage_closeSession_action_label; + @TranslatableMessage + public static String GraphicalSemanticModelsHandler_removeModelButton_tooltip; + + @TranslatableMessage + public static String GraphicalSemanticModelsHandler_newModelButton_tooltip; + + @TranslatableMessage + public static String GraphicalSemanticModelsHandler_addModelButton_tooltip; + // CHECKSTYLE:ON private Messages() { diff --git a/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java b/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java index ff13c62b7e..3fb7b83590 100644 --- a/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java +++ b/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java @@ -15,10 +15,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.EventObject; -import java.util.HashSet; -import java.util.Iterator; import java.util.List; -import java.util.Set; import java.util.stream.Collectors; import org.eclipse.core.resources.IContainer; @@ -70,13 +67,11 @@ import org.eclipse.sirius.business.api.session.Session; import org.eclipse.sirius.business.api.session.SessionListener; import org.eclipse.sirius.business.api.session.SessionManager; import org.eclipse.sirius.business.api.session.SessionManagerListener; -import org.eclipse.sirius.business.api.session.resource.AirdResource; import org.eclipse.sirius.ui.editor.Messages; import org.eclipse.sirius.ui.editor.SessionEditorPlugin; import org.eclipse.sirius.ui.tools.api.views.common.item.ProjectDependenciesItem; import org.eclipse.sirius.ui.tools.internal.actions.analysis.AddModelDependencyAction; import org.eclipse.sirius.ui.tools.internal.actions.analysis.RemoveSemanticResourceAction; -import org.eclipse.sirius.ui.tools.internal.views.common.action.DeleteRepresentationAction; import org.eclipse.sirius.ui.tools.internal.views.common.item.NoDynamicProjectDependencies; import org.eclipse.sirius.ui.tools.internal.views.common.item.ViewpointsFolderItemImpl; import org.eclipse.sirius.ui.tools.internal.views.common.navigator.ManageSessionActionProvider; @@ -177,7 +172,7 @@ public class GraphicalSemanticModelsHandler implements SessionListener, SessionM * The button used to remove external semantic model reference and * representations from the session. */ - private Button removeSemanticModelOrRepresentationButton; + private Button removeSemanticModelDependencyButton; /** * The viewer showing all semantic models loaded from the given session. @@ -303,34 +298,31 @@ public class GraphicalSemanticModelsHandler implements SessionListener, SessionM FillLayout buttonsLayout = new FillLayout(SWT.BEGINNING); buttonsLayout.spacing = 5; buttonsComposite.setLayout(buttonsLayout); - addButton(buttonsComposite, Messages.UI_SessionEditor_new_semantic_model_action_label, () -> { + Button newButton = addButton(buttonsComposite, Messages.UI_SessionEditor_new_semantic_model_action_label, () -> { createAndRegisterNewSemanticModel(); }); - addButton(buttonsComposite, Messages.UI_SessionEditor_models_button_newSemanticModel, () -> { + newButton.setToolTipText(Messages.GraphicalSemanticModelsHandler_newModelButton_tooltip); + Button addButton = addButton(buttonsComposite, Messages.UI_SessionEditor_models_button_newSemanticModel, () -> { AddModelDependencyAction addModelDependencyAction = new AddModelDependencyAction(session, false); addModelDependencyAction.run(); }); - removeSemanticModelOrRepresentationButton = addButton(buttonsComposite, Messages.UI_SessionEditor_models_button_removeSemanticModel, () -> { + addButton.setToolTipText(Messages.GraphicalSemanticModelsHandler_addModelButton_tooltip); + removeSemanticModelDependencyButton = addButton(buttonsComposite, Messages.UI_SessionEditor_models_button_removeSemanticModel, () -> { if (theTreeViewer != null) { final IStructuredSelection selection = (IStructuredSelection) theTreeViewer.getSelection(); Collection<?> selectedObjects = selection.toList(); if (!selectedObjects.isEmpty()) { - Collection<Resource> semanticResources = getSemanticResources(selectedObjects); - if (!semanticResources.isEmpty()) { + Collection<Resource> semanticResources = selectedObjects.stream().filter(Resource.class::isInstance).map(Resource.class::cast).collect(Collectors.toSet()); + if (!semanticResources.isEmpty() && semanticResources.size() == selectedObjects.size()) { RemoveSemanticResourceAction removeSemanticResourceAction = new RemoveSemanticResourceAction(semanticResources, session); removeSemanticResourceAction.run(); } - - Set<DRepresentationDescriptor> repToDelete = selectedObjects.stream().filter(DRepresentationDescriptor.class::isInstance).map(DRepresentationDescriptor.class::cast) - .collect(Collectors.toSet()); - if (!repToDelete.isEmpty()) { - DeleteRepresentationAction deleteRepresentationAction = new DeleteRepresentationAction(repToDelete); - deleteRepresentationAction.run(); - } } theTreeViewer.refresh(); } }); + removeSemanticModelDependencyButton.setEnabled(false); + removeSemanticModelDependencyButton.setToolTipText(Messages.GraphicalSemanticModelsHandler_removeModelButton_tooltip); } /** @@ -605,6 +597,7 @@ public class GraphicalSemanticModelsHandler implements SessionListener, SessionM if (event.getSelection().isEmpty()) { deleteActionHandler.setEnabled(false); renameActionHandler.setEnabled(false); + removeSemanticModelDependencyButton.setEnabled(false); } else { // The tree allows only single selections so we pick the // first element. @@ -627,6 +620,19 @@ public class GraphicalSemanticModelsHandler implements SessionListener, SessionM undoAction.update(); redoAction.update(); actionBars.updateActionBars(); + + if (treeViewer != null) { + Collection<?> selectedObjects = selection.toList(); + if (!selectedObjects.isEmpty()) { + Collection<Resource> semanticResources = selectedObjects.stream().filter(Resource.class::isInstance).map(Resource.class::cast).collect(Collectors.toSet()); + if (!semanticResources.isEmpty() && semanticResources.size() == selectedObjects.size()) { + removeSemanticModelDependencyButton.setEnabled(true); + } else { + removeSemanticModelDependencyButton.setEnabled(false); + } + } + treeViewer.refresh(); + } } }); } @@ -879,34 +885,6 @@ public class GraphicalSemanticModelsHandler implements SessionListener, SessionM } /** - * Return semantic resource form selection in treeViewer. - * - * @param selection - * the selection from treeViewer - * @return semantic resource from selection - */ - private Collection<Resource> getSemanticResources(final Collection<?> selection) { - Collection<Resource> semanticResources = new HashSet<Resource>(); - if (selection != null) { - Iterator<?> iterator = selection.iterator(); - while (iterator.hasNext()) { - Object object = iterator.next(); - if (object instanceof Resource) { - semanticResources.add((Resource) object); - } else if (object instanceof EObject) { - EObject eObject = (EObject) object; - Resource eResource = eObject.eResource(); - if (eResource != null && !(eResource instanceof AirdResource)) { - semanticResources.add(eResource); - } - } - - } - } - return semanticResources; - } - - /** * Helper method to add an action button to the view. * * @param parent diff --git a/plugins/org.eclipse.sirius.ui/plugin.properties b/plugins/org.eclipse.sirius.ui/plugin.properties index 4097ff01fd..37a841ff18 100644 --- a/plugins/org.eclipse.sirius.ui/plugin.properties +++ b/plugins/org.eclipse.sirius.ui/plugin.properties @@ -179,7 +179,10 @@ GraphicalRepresentationHandler_button_activateDeactivateViewpoint_incorrectSelec GraphicalRepresentationHandler_checkBoxGroupByViewpoint_label=Group representations by viewpoint GraphicalRepresentationHandler_checkBoxShowDisabledViewpoints_label=Show disabled viewpoints GraphicalRepresentationHandler_checkBoxGroupByRepresentationDescription_label=Group Representations by Representation Type - +GraphicalRepresentationHandler_newRepresentationButton_tooltip=New representation +GraphicalRepresentationHandler_removeRepresentationButton_tooltip=Remove representation +GraphicalRepresentationHandler_enableViewpointButton_tooltip=Enable viewpoint +GraphicalRepresentationHandler_disableViewpointButton_tooltip=Disable viewpoint LoadEMFResourceRunnableWithProgress_loadResourceTask = Loading resource LogThroughActiveDialectEditorLogListener_permissionError = Permission Issue MarkerDeletionJob_name = Remove modeling marker diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/graphicalcomponents/GraphicalRepresentationHandler.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/graphicalcomponents/GraphicalRepresentationHandler.java index 8ccb98b9fe..51fac9452b 100644 --- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/graphicalcomponents/GraphicalRepresentationHandler.java +++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/graphicalcomponents/GraphicalRepresentationHandler.java @@ -863,7 +863,7 @@ public class GraphicalRepresentationHandler implements SessionManagerListener { */ private void createRepresentationExplorerButton(Composite parent, final TreeViewer theTreeViewer) { Composite buttonsComposite = createButtonsComposite(parent); - addButton(buttonsComposite, Messages.GraphicalRepresentationHandler_button_newRepresentation, () -> { + Button newRepButton = addButton(buttonsComposite, Messages.GraphicalRepresentationHandler_button_newRepresentation, () -> { CreateRepresentationWizard wizard = new CreateRepresentationWizard(session); wizard.init(); final WizardDialog dialog = new WizardDialog(parent.getShell(), wizard); @@ -872,6 +872,7 @@ public class GraphicalRepresentationHandler implements SessionManagerListener { dialog.getShell().setText(Messages.GraphicalRepresentationHandler_CreateRepresentationWizard_title); dialog.open(); }); + newRepButton.setToolTipText(Messages.GraphicalRepresentationHandler_newRepresentationButton_tooltip); removeRepresentationInstanceButton = addButton(buttonsComposite, Messages.GraphicalRepresentationHandler_button_removeRepresentation, () -> { if (theTreeViewer != null) { final IStructuredSelection selection = (IStructuredSelection) theTreeViewer.getSelection(); @@ -885,16 +886,19 @@ public class GraphicalRepresentationHandler implements SessionManagerListener { theTreeViewer.refresh(); } }); + removeRepresentationInstanceButton.setToolTipText(Messages.GraphicalRepresentationHandler_removeRepresentationButton_tooltip); enableViewpointButton = addButton(buttonsComposite, Messages.GraphicalRepresentationHandler_button_activateViewpoint, () -> { if (theTreeViewer != null) { toggleViewpointState((IStructuredSelection) theTreeViewer.getSelection(), true); } }); + enableViewpointButton.setToolTipText(Messages.GraphicalRepresentationHandler_enableViewpointButton_tooltip); disableViewpointButton = addButton(buttonsComposite, Messages.GraphicalRepresentationHandler_button_deactivateViewpoint, () -> { if (theTreeViewer != null) { toggleViewpointState((IStructuredSelection) theTreeViewer.getSelection(), false); } }); + disableViewpointButton.setToolTipText(Messages.GraphicalRepresentationHandler_disableViewpointButton_tooltip); enableViewpointButton.setEnabled(false); disableViewpointButton.setEnabled(false); removeRepresentationInstanceButton.setEnabled(false); diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/viewpoint/provider/Messages.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/viewpoint/provider/Messages.java index d20310d6df..c1f9d02782 100644 --- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/viewpoint/provider/Messages.java +++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/viewpoint/provider/Messages.java @@ -1179,6 +1179,18 @@ public final class Messages { @TranslatableMessage public static String RemoveSemanticResourceAction_Error_Removal_Title; + @TranslatableMessage + public static String GraphicalRepresentationHandler_newRepresentationButton_tooltip; + + @TranslatableMessage + public static String GraphicalRepresentationHandler_removeRepresentationButton_tooltip; + + @TranslatableMessage + public static String GraphicalRepresentationHandler_enableViewpointButton_tooltip; + + @TranslatableMessage + public static String GraphicalRepresentationHandler_disableViewpointButton_tooltip; + // CHECKSTYLE:ON private Messages() { |
