Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpguilet2017-06-28 09:40:52 +0000
committerpguilet2017-06-28 12:13:14 +0000
commit2045b88acbd8bf2ee0317a16fd13e98e85f91c72 (patch)
tree511c2bc61da2fefa8ebcd54aa95931713f8b7b46
parente40d3480ca0fc64724032b60414ff92d3e9fa46a (diff)
downloadorg.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>
-rw-r--r--plugins/org.eclipse.sirius.ui.editor/plugin.properties3
-rw-r--r--plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/Messages.java9
-rw-r--r--plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java70
-rw-r--r--plugins/org.eclipse.sirius.ui/plugin.properties5
-rw-r--r--plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/graphicalcomponents/GraphicalRepresentationHandler.java6
-rw-r--r--plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/viewpoint/provider/Messages.java12
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() {

Back to the top