Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Lorenzo2015-02-17 11:54:47 +0000
committerVincent Lorenzo2015-02-17 11:56:23 +0000
commit0bdf1eadb555bfa87bed5f98f78fbf1fcab1571d (patch)
treef417888ed8e77c31705ba8d2b6ad72c2701a2bc1 /plugins
parent2bdec905ed072e56523099a57311c30d7445576a (diff)
parenta36347f863fb079ca9ebcaff523a279e0291d4bb (diff)
downloadorg.eclipse.papyrus-0bdf1eadb555bfa87bed5f98f78fbf1fcab1571d.tar.gz
org.eclipse.papyrus-0bdf1eadb555bfa87bed5f98f78fbf1fcab1571d.tar.xz
org.eclipse.papyrus-0bdf1eadb555bfa87bed5f98f78fbf1fcab1571d.zip
merge remote-tracking branch 'origin/master' into master
Diffstat (limited to 'plugins')
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src-gen/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/CustomGraphicalTypeRegistry.java6
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/ParserProvider.java6
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/command/InstanceSpecificationLinkCreateCommand.java35
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/advice/InstanceSpecificationEditHelperAdvice.java29
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/ui/AssociationSelectionDialog.java139
-rw-r--r--plugins/uml/xtext/org.eclipse.papyrus.uml.xtext.integration.ui/src/org/eclipse/papyrus/uml/xtext/integration/XtextDirectEditManager.java2
6 files changed, 115 insertions, 102 deletions
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src-gen/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/CustomGraphicalTypeRegistry.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src-gen/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/CustomGraphicalTypeRegistry.java
index cbaf713b4ba..04af664d00f 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src-gen/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/CustomGraphicalTypeRegistry.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src-gen/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/CustomGraphicalTypeRegistry.java
@@ -202,6 +202,9 @@ public class CustomGraphicalTypeRegistry extends GraphicalTypeRegistry {
if (SysMLGraphicalTypes.COMPARTMENT_SYSML_VALUE_AS_LIST_ID.equals(containerType)) {
return SysMLGraphicalTypes.SHAPE_SYSML_VALUE_AS_LABEL_ID;
}
+ if (SysMLGraphicalTypes.COMPARTMENT_SYSML_PARAMETER_AS_LIST_ID.equals(containerType)) {
+ return SysMLGraphicalTypes.SHAPE_SYSML_VALUE_AS_LABEL_ID;
+ }
return UNDEFINED_TYPE;
}
if (((ISpecializationType) SysMLElementTypes.ACTOR_PART_PROPERTY).getMatcher().matches(domainElement)) {
@@ -537,6 +540,9 @@ public class CustomGraphicalTypeRegistry extends GraphicalTypeRegistry {
if (SysMLGraphicalTypes.COMPARTMENT_SYSML_VALUE_AS_LIST_ID.equals(containerType)) {
return SysMLGraphicalTypes.SHAPE_SYSML_VALUE_AS_LABEL_ID;
}
+ if (SysMLGraphicalTypes.COMPARTMENT_SYSML_PARAMETER_AS_LIST_ID.equals(containerType)) {
+ return SysMLGraphicalTypes.SHAPE_SYSML_VALUE_AS_LABEL_ID;
+ }
return UNDEFINED_TYPE;
}
if (SysMLElementTypes.ACTOR_PART_PROPERTY.getSemanticHint().equals(proposedType)) {
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/ParserProvider.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/ParserProvider.java
index f86682a3bcc..089c9ae6b0c 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/ParserProvider.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/ParserProvider.java
@@ -35,6 +35,7 @@ import org.eclipse.papyrus.uml.diagram.common.parser.OperationLabelParser;
import org.eclipse.papyrus.uml.diagram.common.parser.PropertyLabelParser;
import org.eclipse.papyrus.uml.diagram.common.parser.ReceptionLabelParser;
import org.eclipse.papyrus.uml.diagram.common.parser.SlotLabelParser;
+import org.eclipse.papyrus.uml.diagram.common.parser.stereotype.AppliedStereotypeParser;
import org.eclipse.papyrus.uml.diagram.common.utils.UMLGraphicalTypes;
/**
@@ -74,7 +75,8 @@ public class ParserProvider extends AbstractProvider implements IParserProvider
graphicalHintToParser.put(UMLGraphicalTypes.LINKLABEL_UML_ASSOCIATION_SOURCE_MULTIPLICITY_ID, new AssociationEndLabelParser());
graphicalHintToParser.put(UMLGraphicalTypes.LINKLABEL_UML_ASSOCIATION_TARGET_ROLE_ID, new AssociationEndLabelParser());
graphicalHintToParser.put(UMLGraphicalTypes.LINKLABEL_UML_ASSOCIATION_TARGET_MULTIPLICITY_ID, new AssociationEndLabelParser());
-
+ graphicalHintToParser.put(UMLGraphicalTypes.LINKLABEL_UML_APPLIEDSTEREOTYPE_ID, new AppliedStereotypeParser());
+
graphicalHintToParser.put(ElementTypes.INSTANCE_SPECIFICATION_SLOT_CLN.getSemanticHint(), new SlotLabelParser());
graphicalHintToParser.put(UMLGraphicalTypes.AFFIXEDLABEL_UML_PORT_LABEL_ID, new PropertyLabelParser());
@@ -129,4 +131,4 @@ public class ParserProvider extends AbstractProvider implements IParserProvider
return "undefined";
}
-}
+} \ No newline at end of file
diff --git a/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/command/InstanceSpecificationLinkCreateCommand.java b/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/command/InstanceSpecificationLinkCreateCommand.java
index abd0f489e07..b4c46279de5 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/command/InstanceSpecificationLinkCreateCommand.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/command/InstanceSpecificationLinkCreateCommand.java
@@ -27,6 +27,11 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.gmf.runtime.common.core.command.CommandResult;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForResource;
+import org.eclipse.papyrus.uml.service.types.Activator;
+import org.eclipse.papyrus.uml.service.types.helper.advice.InstanceSpecificationEditHelperAdvice;
import org.eclipse.papyrus.uml.service.types.ui.AssociationSelectionDialog;
import org.eclipse.papyrus.uml.tools.utils.NamedElementUtil;
import org.eclipse.swt.SWT;
@@ -108,26 +113,7 @@ public class InstanceSpecificationLinkCreateCommand extends EditElementCommand {
@Override
public boolean canExecute() {
- /*
- * Case 0: Only the target is null
- */
- if (source != null && target == null) {
- return source instanceof InstanceSpecification && ((InstanceSpecification) source).getClassifiers().size() > 0;
- }
- /*
- * Case 1 : source and target != null
- * look for if it exist at least a common association between classifiers referenced between these instances
- */
- if (source == null || target == null) {
- return false;
- }
- if (false == source instanceof InstanceSpecification) {
- return false;
- }
- if (false == target instanceof InstanceSpecification) {
- return false;
- }
- return ((InstanceSpecification) source).getClassifiers().size() > 0 && ((InstanceSpecification) target).getClassifiers().size() > 0;
+ return InstanceSpecificationEditHelperAdvice.canCreate(source, target);
}
/**
@@ -212,7 +198,14 @@ public class InstanceSpecificationLinkCreateCommand extends EditElementCommand {
if (((InstanceSpecification) source).getClassifiers().isEmpty() || ((InstanceSpecification) target).getClassifiers().isEmpty()) {
return CommandResult.newCancelledCommandResult();
}
- AssociationSelectionDialog associationSelectionDialog = new AssociationSelectionDialog(new Shell(), SWT.NATIVE, getModelAssociations());
+ ServicesRegistry registry;
+ try {
+ registry = ServiceUtilsForResource.getInstance().getServiceRegistry(source.eResource());
+ } catch (ServiceException e) {
+ Activator.log.error(e);
+ return CommandResult.newCancelledCommandResult();
+ }
+ AssociationSelectionDialog associationSelectionDialog = new AssociationSelectionDialog(new Shell(), SWT.NATIVE, getModelAssociations(), registry);
associationSelectionDialog.open();
Association selectedAssociation = associationSelectionDialog.getSelectedAssociation();
if (selectedAssociation == null && associationSelectionDialog.isCanceled()) {
diff --git a/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/advice/InstanceSpecificationEditHelperAdvice.java b/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/advice/InstanceSpecificationEditHelperAdvice.java
index 08f90762d3c..3a7bb568a23 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/advice/InstanceSpecificationEditHelperAdvice.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/advice/InstanceSpecificationEditHelperAdvice.java
@@ -17,30 +17,43 @@ import org.eclipse.uml2.uml.InstanceSpecification;
public class InstanceSpecificationEditHelperAdvice extends AbstractEditHelperAdvice {
- protected boolean canCreate(EObject source, EObject target) {
- if((source != null) && !(source instanceof InstanceSpecification)) {
+ public static boolean canCreate(EObject source, EObject target) {
+ /*
+ * Case 0: Only the target is null
+ */
+ if (source != null && target == null) {
+ return source instanceof InstanceSpecification && ((InstanceSpecification) source).getClassifiers().size() > 0;
+ }
+ /*
+ * Case 1 : source and target != null
+ * look for if it exist at least a common association between classifiers referenced between these instances
+ */
+ if (source == null || target == null) {
+ return false;
+ }
+ if (false == source instanceof InstanceSpecification) {
return false;
}
- if((target != null) && !(target instanceof InstanceSpecification)) {
+ if (false == target instanceof InstanceSpecification) {
return false;
}
- return true;
+ return ((InstanceSpecification) source).getClassifiers().size() > 0 && ((InstanceSpecification) target).getClassifiers().size() > 0;
}
@Override
protected ICommand getBeforeCreateRelationshipCommand(CreateRelationshipRequest request) {
- List<ISpecializationType> subs = Arrays.asList(ElementTypeRegistry.getInstance().getSpecializationsOf(UMLElementTypes.CONSTRAINT_CONTEXT.getId()));
- if(!subs.contains(request.getElementType())) {
+ List<ISpecializationType> subs = Arrays.asList(ElementTypeRegistry.getInstance().getSpecializationsOf(UMLElementTypes.INSTANCE_SPECIFICATION.getId()));
+ if (!subs.contains(request.getElementType())) {
return IdentityCommand.INSTANCE;
}
EObject source = request.getSource();
EObject target = request.getTarget();
boolean noSourceOrTarget = (source == null || target == null);
boolean noSourceAndTarget = (source == null && target == null);
- if(!noSourceAndTarget && !canCreate(source, target)) {
+ if (!noSourceAndTarget && !canCreate(source, target)) {
return UnexecutableCommand.INSTANCE;
}
- if(noSourceOrTarget && !noSourceAndTarget) {
+ if (noSourceOrTarget && !noSourceAndTarget) {
// The request isn't complete yet. Return the identity command so
// that the create relationship gesture is enabled.
return IdentityCommand.INSTANCE;
diff --git a/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/ui/AssociationSelectionDialog.java b/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/ui/AssociationSelectionDialog.java
index 5ea3dccb7ba..1af004c0aa4 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/ui/AssociationSelectionDialog.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/ui/AssociationSelectionDialog.java
@@ -17,7 +17,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
@@ -27,7 +27,6 @@ import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.papyrus.infra.core.services.ServiceException;
import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
-import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForResource;
import org.eclipse.papyrus.infra.services.labelprovider.service.LabelProviderService;
import org.eclipse.papyrus.uml.service.types.Activator;
import org.eclipse.swt.events.SelectionAdapter;
@@ -48,6 +47,8 @@ public class AssociationSelectionDialog extends AbstractAssociationSelectionDial
/** The common associations. */
protected Set<Association> commonAssociations;
+ private ServicesRegistry serviceRegistry;
+
private boolean isCanceled = true;
@@ -61,10 +62,20 @@ public class AssociationSelectionDialog extends AbstractAssociationSelectionDial
* @param commonAssociations
* list of assocation in which we would like to llok for
*/
- public AssociationSelectionDialog(Shell parent, int style, Set<Association> commonAssociations) {
+ public AssociationSelectionDialog(Shell parent, int style, Set<Association> commonAssociations, ServicesRegistry serviceRegistry) {
super(parent, style);
this.commonAssociations = commonAssociations == null ? new HashSet<Association>() : commonAssociations;
this.selectedAssociation = null;
+ this.serviceRegistry = serviceRegistry;
+ }
+
+ private IBaseLabelProvider getLabelProvider() {
+ try {
+ return serviceRegistry.getService(LabelProviderService.class).getLabelProvider();
+ } catch (ServiceException e) {
+ Activator.log.error(e);
+ return null;
+ }
}
/**
@@ -74,74 +85,62 @@ public class AssociationSelectionDialog extends AbstractAssociationSelectionDial
@Override
protected void createContents() {
super.createContents();
- ServicesRegistry registry;
- try {
- if (selectedAssociation != null) {
- registry = ServiceUtilsForResource.getInstance().getServiceRegistry(selectedAssociation.eResource());
- LabelProviderService labelProviderService = registry.getService(LabelProviderService.class);
- final ILabelProvider labelProvider = labelProviderService.getLabelProvider();
- final IStructuredContentProvider associationContentProvider = new IStructuredContentProvider() {
-
- @Override
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
-
- @Override
- public void dispose() {
- }
-
- @Override
- public Object[] getElements(Object inputElement) {
- List<Object> result = new ArrayList<Object>();
- result.add(UNTYPED);
- result.addAll(commonAssociations);
- return result.toArray();
- }
- };
- final TableViewer tableViewer = new TableViewer(table);
- tableViewer.setLabelProvider(labelProvider);
- tableViewer.setContentProvider(associationContentProvider);
- tableViewer.setInput(commonAssociations);
- tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-
- @Override
- public void selectionChanged(SelectionChangedEvent event) {
- btnOk.setEnabled(true);
-
- }
- });
-
- btnOk.setEnabled(false);
- btnOk.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent event) {
- ISelection selection = tableViewer.getSelection();
- if (selection instanceof IStructuredSelection) {
- Object selectedItem = ((IStructuredSelection) selection).getFirstElement();
- selectedAssociation = selectedItem instanceof Association ? (Association) selectedItem : null;
- isCanceled = false;
- shlAssociationselection.close();
- }
- }
-
- });
- btnCancel.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent event) {
- selectedAssociation = null;
- shlAssociationselection.close();
-
- }
-
- });
- } else {
- btnCancel.setVisible(true);
+ final IStructuredContentProvider associationContentProvider = new IStructuredContentProvider() {
+
+ @Override
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
- } catch (ServiceException e1) {
- Activator.log.error(e1);
- }
+
+ @Override
+ public void dispose() {
+ }
+
+ @Override
+ public Object[] getElements(Object inputElement) {
+ List<Object> result = new ArrayList<Object>();
+ result.add(UNTYPED);
+ result.addAll(commonAssociations);
+ return result.toArray();
+ }
+ };
+ final TableViewer tableViewer = new TableViewer(table);
+ tableViewer.setLabelProvider(getLabelProvider());
+ tableViewer.setContentProvider(associationContentProvider);
+ tableViewer.setInput(commonAssociations);
+ tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ btnOk.setEnabled(true);
+
+ }
+ });
+ btnOk.setEnabled(false);
+ btnOk.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ ISelection selection = tableViewer.getSelection();
+ if (selection instanceof IStructuredSelection) {
+ Object selectedItem = ((IStructuredSelection) selection).getFirstElement();
+ selectedAssociation = selectedItem instanceof Association ? (Association) selectedItem : null;
+ isCanceled = false;
+ shlAssociationselection.close();
+ }
+ }
+
+ });
+ btnCancel.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ selectedAssociation = null;
+ shlAssociationselection.close();
+
+ }
+
+ });
+ btnCancel.setVisible(true);
}
/**
diff --git a/plugins/uml/xtext/org.eclipse.papyrus.uml.xtext.integration.ui/src/org/eclipse/papyrus/uml/xtext/integration/XtextDirectEditManager.java b/plugins/uml/xtext/org.eclipse.papyrus.uml.xtext.integration.ui/src/org/eclipse/papyrus/uml/xtext/integration/XtextDirectEditManager.java
index 67c575b858d..4eb33ca9251 100644
--- a/plugins/uml/xtext/org.eclipse.papyrus.uml.xtext.integration.ui/src/org/eclipse/papyrus/uml/xtext/integration/XtextDirectEditManager.java
+++ b/plugins/uml/xtext/org.eclipse.papyrus.uml.xtext.integration.ui/src/org/eclipse/papyrus/uml/xtext/integration/XtextDirectEditManager.java
@@ -283,7 +283,7 @@ public class XtextDirectEditManager extends DirectEditManagerEx {
if (!text.isDisposed() && text.getFont() != null && !text.getFont().isDisposed()) {
Dimension fontMetrics = TextUtilities.INSTANCE.getTextExtents("a", text.getFont()).getCopy();
source.getFigure().translateToRelative(fontMetrics);
- rect.height = Math.max(rect.height, fontMetrics.height);
+ rect.height = Math.max(rect.height, fontMetrics.height * text.getLineCount());
}
source.getFigure().translateToAbsolute(rect);
if (!rect.equals(new Rectangle(text.getBounds()))) {

Back to the top