/******************************************************************************* * Copyright (c) 2009 Obeo. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Obeo - initial API and implementation *******************************************************************************/ package org.eclipse.papyrus.tabbedproperties.uml.parts.impl; // Start of user code for imports import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import org.eclipse.emf.common.util.Enumerator; import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EEnumLiteral; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.util.EcoreAdapterFactory; import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent; import org.eclipse.emf.eef.runtime.api.parts.ISWTPropertiesEditionPart; import org.eclipse.emf.eef.runtime.api.policies.IPropertiesEditionPolicy; import org.eclipse.emf.eef.runtime.api.providers.IPropertiesEditionPolicyProvider; import org.eclipse.emf.eef.runtime.impl.notify.PropertiesEditionEvent; import org.eclipse.emf.eef.runtime.impl.parts.CompositePropertiesEditionPart; import org.eclipse.emf.eef.runtime.impl.policies.EObjectPropertiesEditionContext; import org.eclipse.emf.eef.runtime.impl.services.PropertiesEditionPolicyProviderService; import org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil; import org.eclipse.emf.eef.runtime.ui.widgets.EMFComboViewer; import org.eclipse.emf.eef.runtime.ui.widgets.ReferencesTable; import org.eclipse.emf.eef.runtime.ui.widgets.SWTUtils; import org.eclipse.emf.eef.runtime.ui.widgets.TabElementTreeSelectionDialog; import org.eclipse.emf.eef.runtime.ui.widgets.ReferencesTable.ReferencesTableListener; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart; import org.eclipse.papyrus.tabbedproperties.uml.parts.UMLViewsRepository; import org.eclipse.papyrus.tabbedproperties.uml.providers.UMLMessages; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Text; import org.eclipse.uml2.uml.Comment; import org.eclipse.uml2.uml.Dependency; import org.eclipse.uml2.uml.UMLFactory; import org.eclipse.uml2.uml.UMLPackage; import org.eclipse.uml2.uml.ValueSpecification; // End of user code /** * @author Jerome Benois */ public class MessagePropertiesEditionPartImpl extends CompositePropertiesEditionPart implements ISWTPropertiesEditionPart, MessagePropertiesEditionPart { protected EMFListEditUtil ownedCommentEditUtil; protected ReferencesTable ownedComment; protected List ownedCommentBusinessFilters = new ArrayList(); protected List ownedCommentFilters = new ArrayList(); protected Text name; protected EMFComboViewer visibility; protected EMFListEditUtil clientDependencyEditUtil; protected ReferencesTable clientDependency; protected List clientDependencyBusinessFilters = new ArrayList(); protected List clientDependencyFilters = new ArrayList(); protected EMFComboViewer messageSort; protected EMFListEditUtil argumentEditUtil; protected ReferencesTable argument; protected List argumentBusinessFilters = new ArrayList(); protected List argumentFilters = new ArrayList(); /** * Default constructor * * @param editionComponent * the {@link IPropertiesEditionComponent} that manage this part */ public MessagePropertiesEditionPartImpl(IPropertiesEditionComponent editionComponent) { super(editionComponent); } /** * {@inheritDoc} * * @see org.eclipse.emf.eef.runtime.api.parts.ISWTPropertiesEditionPart# createFigure(org.eclipse.swt.widgets.Composite) */ public Composite createFigure(final Composite parent) { view = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 3; view.setLayout(layout); createControls(view); return view; } /** * {@inheritDoc} * * @see org.eclipse.emf.eef.runtime.api.parts.ISWTPropertiesEditionPart# createControls(org.eclipse.swt.widgets.Composite) */ public void createControls(Composite view) { createPropertiesGroup(view); // Start of user code for additional ui definition // End of user code } protected void createPropertiesGroup(Composite parent) { Group propertiesGroup = new Group(parent, SWT.NONE); propertiesGroup.setText(UMLMessages.MessagePropertiesEditionPart_PropertiesGroupLabel); GridData propertiesGroupData = new GridData(GridData.FILL_HORIZONTAL); propertiesGroupData.horizontalSpan = 3; propertiesGroup.setLayoutData(propertiesGroupData); GridLayout propertiesGroupLayout = new GridLayout(); propertiesGroupLayout.numColumns = 3; propertiesGroup.setLayout(propertiesGroupLayout); createOwnedCommentAdvancedTableComposition(propertiesGroup); createNameText(propertiesGroup); createVisibilityEMFComboViewer(propertiesGroup); createClientDependencyAdvancedReferencesTable(propertiesGroup); createMessageSortEMFComboViewer(propertiesGroup); createArgumentAdvancedTableComposition(propertiesGroup); } /** * @param container */ protected void createOwnedCommentAdvancedTableComposition(Composite parent) { this.ownedComment = new ReferencesTable(UMLMessages.MessagePropertiesEditionPart_OwnedCommentLabel, new ReferencesTableListener() { public void handleAdd() { addToOwnedComment(); } public void handleEdit(Comment element) { editOwnedComment(element); } public void handleMove(Comment element, int oldIndex, int newIndex) { moveOwnedComment(element, oldIndex, newIndex); } public void handleRemove(Comment element) { removeFromOwnedComment(element); } public void navigateTo(Comment element) { } }); this.ownedComment.setHelpText(propertiesEditionComponent.getHelpContent(UMLViewsRepository.Message.ownedComment, UMLViewsRepository.SWT_KIND)); this.ownedComment.createControls(parent); GridData ownedCommentData = new GridData(GridData.FILL_HORIZONTAL); ownedCommentData.horizontalSpan = 3; this.ownedComment.setLayoutData(ownedCommentData); } /** * */ protected void moveOwnedComment(Comment element, int oldIndex, int newIndex) { EObject editedElement = ownedCommentEditUtil.foundCorrespondingEObject(element); ownedCommentEditUtil.moveElement(element, oldIndex, newIndex); ownedComment.refresh(); propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(MessagePropertiesEditionPartImpl.this, UMLViewsRepository.Message.ownedComment, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.MOVE, editedElement, newIndex)); } /** * */ protected void addToOwnedComment() { // Start of user code addToOwnedComment() method body Comment eObject = UMLFactory.eINSTANCE.createComment(); IPropertiesEditionPolicyProvider policyProvider = PropertiesEditionPolicyProviderService.getInstance() .getProvider(eObject); IPropertiesEditionPolicy editionPolicy = policyProvider.getEditionPolicy(eObject); if(editionPolicy != null) { EObject propertiesEditionObject = editionPolicy .getPropertiesEditionObject(new EObjectPropertiesEditionContext(propertiesEditionComponent, eObject, resourceSet)); if(propertiesEditionObject != null) { ownedCommentEditUtil.addElement(propertiesEditionObject); ownedComment.refresh(); propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent( MessagePropertiesEditionPartImpl.this, UMLViewsRepository.Message.ownedComment, PropertiesEditionEvent.CHANGE, PropertiesEditionEvent.ADD, null, propertiesEditionObject)); } } // End of user code } /** * */ protected void removeFromOwnedComment(Comment element) { // Start of user code removeFromOwnedComment() method body EObject editedElement = ownedCommentEditUtil.foundCorrespondingEObject(element); ownedCommentEditUtil.removeElement(element); ownedComment.refresh(); propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent( MessagePropertiesEditionPartImpl.this, UMLViewsRepository.Message.ownedComment, PropertiesEditionEvent.CHANGE, PropertiesEditionEvent.REMOVE, null, editedElement)); // End of user code } /** * */ protected void editOwnedComment(Comment element) { // Start of user code editOwnedComment() method body EObject editedElement = ownedCommentEditUtil.foundCorrespondingEObject(element); IPropertiesEditionPolicyProvider policyProvider = PropertiesEditionPolicyProviderService.getInstance() .getProvider(element); IPropertiesEditionPolicy editionPolicy = policyProvider.getEditionPolicy(editedElement); if(editionPolicy != null) { EObject propertiesEditionObject = editionPolicy .getPropertiesEditionObject(new EObjectPropertiesEditionContext(null, element, resourceSet)); if(propertiesEditionObject != null) { ownedCommentEditUtil.putElementToRefresh(editedElement, propertiesEditionObject); ownedComment.refresh(); propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent( MessagePropertiesEditionPartImpl.this, UMLViewsRepository.Message.ownedComment, PropertiesEditionEvent.CHANGE, PropertiesEditionEvent.SET, editedElement, propertiesEditionObject)); } } // End of user code } protected void createNameText(Composite parent) { SWTUtils.createPartLabel(parent, UMLMessages.MessagePropertiesEditionPart_NameLabel, propertiesEditionComponent.isRequired(UMLViewsRepository.Message.name, UMLViewsRepository.SWT_KIND)); name = new Text(parent, SWT.BORDER); GridData nameData = new GridData(GridData.FILL_HORIZONTAL); name.setLayoutData(nameData); name.addModifyListener(new ModifyListener() { /* * (non-Javadoc) * * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent) */ public void modifyText(ModifyEvent e) { if(propertiesEditionComponent != null) propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(MessagePropertiesEditionPartImpl.this, UMLViewsRepository.Message.name, PropertiesEditionEvent.CHANGE, PropertiesEditionEvent.SET, null, name.getText())); } }); SWTUtils.createHelpButton(parent, propertiesEditionComponent.getHelpContent(UMLViewsRepository.Message.name, UMLViewsRepository.SWT_KIND), null); //$NON-NLS-1$ } protected void createVisibilityEMFComboViewer(Composite parent) { SWTUtils.createPartLabel(parent, UMLMessages.MessagePropertiesEditionPart_VisibilityLabel, propertiesEditionComponent.isRequired(UMLViewsRepository.Message.visibility, UMLViewsRepository.SWT_KIND)); visibility = new EMFComboViewer(parent); visibility.setContentProvider(new ArrayContentProvider()); visibility.setLabelProvider(new AdapterFactoryLabelProvider(new EcoreAdapterFactory())); GridData visibilityData = new GridData(GridData.FILL_HORIZONTAL); visibility.getCombo().setLayoutData(visibilityData); SWTUtils.createHelpButton(parent, propertiesEditionComponent.getHelpContent(UMLViewsRepository.Message.visibility, UMLViewsRepository.SWT_KIND), null); //$NON-NLS-1$ } protected void createClientDependencyAdvancedReferencesTable(Composite parent) { this.clientDependency = new ReferencesTable(UMLMessages.MessagePropertiesEditionPart_ClientDependencyLabel, new ReferencesTableListener() { public void handleAdd() { TabElementTreeSelectionDialog dialog = new TabElementTreeSelectionDialog(resourceSet, clientDependencyFilters, clientDependencyBusinessFilters, "Dependency", UMLPackage.eINSTANCE.getDependency(), current.eResource()) { public void process(IStructuredSelection selection) { for(Iterator iter = selection.iterator(); iter.hasNext();) { EObject elem = (EObject)iter.next(); if(!clientDependencyEditUtil.getVirtualList().contains(elem)) clientDependencyEditUtil.addElement(elem); propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(MessagePropertiesEditionPartImpl.this, UMLViewsRepository.Message.clientDependency, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.ADD, null, elem)); } clientDependency.refresh(); } }; dialog.open(); } public void handleEdit(Dependency element) { editClientDependency(element); } public void handleMove(Dependency element, int oldIndex, int newIndex) { moveClientDependency(element, oldIndex, newIndex); } public void handleRemove(Dependency element) { removeFromClientDependency(element); } public void navigateTo(Dependency element) { } }); this.clientDependency.setHelpText(propertiesEditionComponent.getHelpContent(UMLViewsRepository.Message.clientDependency, UMLViewsRepository.SWT_KIND)); this.clientDependency.createControls(parent); GridData clientDependencyData = new GridData(GridData.FILL_HORIZONTAL); clientDependencyData.horizontalSpan = 3; this.clientDependency.setLayoutData(clientDependencyData); this.clientDependency.disableMove(); } /** * */ protected void moveClientDependency(Dependency element, int oldIndex, int newIndex) { EObject editedElement = clientDependencyEditUtil.foundCorrespondingEObject(element); clientDependencyEditUtil.moveElement(element, oldIndex, newIndex); clientDependency.refresh(); propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(MessagePropertiesEditionPartImpl.this, UMLViewsRepository.Message.clientDependency, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.MOVE, editedElement, newIndex)); } /** * */ protected void removeFromClientDependency(Dependency element) { // Start of user code removeFromClientDependency() method body EObject editedElement = clientDependencyEditUtil.foundCorrespondingEObject(element); clientDependencyEditUtil.removeElement(element); clientDependency.refresh(); propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent( MessagePropertiesEditionPartImpl.this, UMLViewsRepository.Message.clientDependency, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.REMOVE, null, editedElement)); // End of user code } /** * */ protected void editClientDependency(Dependency element) { // Start of user code editClientDependency() method body EObject editedElement = clientDependencyEditUtil.foundCorrespondingEObject(element); IPropertiesEditionPolicyProvider policyProvider = PropertiesEditionPolicyProviderService.getInstance() .getProvider(element); IPropertiesEditionPolicy editionPolicy = policyProvider.getEditionPolicy(editedElement); if(editionPolicy != null) { EObject propertiesEditionObject = editionPolicy .getPropertiesEditionObject(new EObjectPropertiesEditionContext(null, element, resourceSet)); if(propertiesEditionObject != null) { clientDependencyEditUtil.putElementToRefresh(editedElement, propertiesEditionObject); clientDependency.refresh(); propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent( MessagePropertiesEditionPartImpl.this, UMLViewsRepository.Message.clientDependency, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.SET, editedElement, propertiesEditionObject)); } } // End of user code } protected void createMessageSortEMFComboViewer(Composite parent) { SWTUtils.createPartLabel(parent, UMLMessages.MessagePropertiesEditionPart_MessageSortLabel, propertiesEditionComponent.isRequired(UMLViewsRepository.Message.messageSort, UMLViewsRepository.SWT_KIND)); messageSort = new EMFComboViewer(parent); messageSort.setContentProvider(new ArrayContentProvider()); messageSort.setLabelProvider(new AdapterFactoryLabelProvider(new EcoreAdapterFactory())); GridData messageSortData = new GridData(GridData.FILL_HORIZONTAL); messageSort.getCombo().setLayoutData(messageSortData); SWTUtils.createHelpButton(parent, propertiesEditionComponent.getHelpContent(UMLViewsRepository.Message.messageSort, UMLViewsRepository.SWT_KIND), null); //$NON-NLS-1$ } /** * @param container */ protected void createArgumentAdvancedTableComposition(Composite parent) { this.argument = new ReferencesTable(UMLMessages.MessagePropertiesEditionPart_ArgumentLabel, new ReferencesTableListener() { public void handleAdd() { addToArgument(); } public void handleEdit(ValueSpecification element) { editArgument(element); } public void handleMove(ValueSpecification element, int oldIndex, int newIndex) { moveArgument(element, oldIndex, newIndex); } public void handleRemove(ValueSpecification element) { removeFromArgument(element); } public void navigateTo(ValueSpecification element) { } }); this.argument.setHelpText(propertiesEditionComponent.getHelpContent(UMLViewsRepository.Message.argument, UMLViewsRepository.SWT_KIND)); this.argument.createControls(parent); GridData argumentData = new GridData(GridData.FILL_HORIZONTAL); argumentData.horizontalSpan = 3; this.argument.setLayoutData(argumentData); } /** * */ protected void moveArgument(ValueSpecification element, int oldIndex, int newIndex) { } /** * */ protected void addToArgument() { // Start of user code addToArgument() method body // End of user code } /** * */ protected void removeFromArgument(ValueSpecification element) { // Start of user code removeFromArgument() method body EObject editedElement = argumentEditUtil.foundCorrespondingEObject(element); argumentEditUtil.removeElement(element); argument.refresh(); propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent( MessagePropertiesEditionPartImpl.this, UMLViewsRepository.Message.argument, PropertiesEditionEvent.CHANGE, PropertiesEditionEvent.REMOVE, null, editedElement)); // End of user code } /** * */ protected void editArgument(ValueSpecification element) { // Start of user code editArgument() method body EObject editedElement = argumentEditUtil.foundCorrespondingEObject(element); IPropertiesEditionPolicyProvider policyProvider = PropertiesEditionPolicyProviderService.getInstance() .getProvider(element); IPropertiesEditionPolicy editionPolicy = policyProvider.getEditionPolicy(editedElement); if(editionPolicy != null) { EObject propertiesEditionObject = editionPolicy .getPropertiesEditionObject(new EObjectPropertiesEditionContext(null, element, resourceSet)); if(propertiesEditionObject != null) { argumentEditUtil.putElementToRefresh(editedElement, propertiesEditionObject); argument.refresh(); propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent( MessagePropertiesEditionPartImpl.this, UMLViewsRepository.Message.argument, PropertiesEditionEvent.CHANGE, PropertiesEditionEvent.SET, editedElement, propertiesEditionObject)); } } // End of user code } public void firePropertiesChanged(PropertiesEditionEvent event) { // Start of user code for tab synchronization // End of user code } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getOwnedCommentToAdd() */ public List getOwnedCommentToAdd() { return ownedCommentEditUtil.getElementsToAdd(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getOwnedCommentToRemove() */ public List getOwnedCommentToRemove() { return ownedCommentEditUtil.getElementsToRemove(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getOwnedCommentToEdit() */ public Map getOwnedCommentToEdit() { return ownedCommentEditUtil.getElementsToRefresh(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getOwnedCommentToMove() */ public List getOwnedCommentToMove() { return ownedCommentEditUtil.getElementsToMove(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getOwnedCommentTable() */ public List getOwnedCommentTable() { return ownedCommentEditUtil.getVirtualList(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#initOwnedComment(EObject current, EReference * containingFeature, EReference feature) */ public void initOwnedComment(EObject current, EReference containingFeature, EReference feature) { if(current.eResource() != null && current.eResource().getResourceSet() != null) this.resourceSet = current.eResource().getResourceSet(); if(containingFeature != null) ownedCommentEditUtil = new EMFListEditUtil(current, containingFeature, feature); else ownedCommentEditUtil = new EMFListEditUtil(current, feature); this.ownedComment.setInput(ownedCommentEditUtil.getVirtualList()); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#updateOwnedComment(EObject newValue) */ public void updateOwnedComment(EObject newValue) { if(ownedCommentEditUtil != null) { ownedCommentEditUtil.reinit(newValue); ownedComment.refresh(); } } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#addFilterOwnedComment(ViewerFilter filter) */ public void addFilterToOwnedComment(ViewerFilter filter) { ownedCommentFilters.add(filter); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#addBusinessFilterOwnedComment(ViewerFilter filter) */ public void addBusinessFilterToOwnedComment(ViewerFilter filter) { ownedCommentBusinessFilters.add(filter); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#isContainedInOwnedCommentTable(EObject element) */ public boolean isContainedInOwnedCommentTable(EObject element) { return ownedCommentEditUtil.contains(element); } public void setMessageForOwnedComment(String msg, int msgLevel) { } public void unsetMessageForOwnedComment() { } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getName() */ public String getName() { return name.getText(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#setName(String newValue) */ public void setName(String newValue) { if(newValue != null) { name.setText(newValue); } else { name.setText(""); //$NON-NLS-1$ } } public void setMessageForName(String msg, int msgLevel) { } public void unsetMessageForName() { } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getVisibility() */ public Enumerator getVisibility() { EEnumLiteral selection = (EEnumLiteral)((StructuredSelection)visibility.getSelection()).getFirstElement(); return selection.getInstance(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#initVisibility(EEnum eenum, Enumerator current) */ public void initVisibility(EEnum eenum, Enumerator current) { visibility.setInput(eenum.getELiterals()); visibility.modelUpdating(new StructuredSelection(current)); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#setVisibility(Enumerator newValue) */ public void setVisibility(Enumerator newValue) { visibility.modelUpdating(new StructuredSelection(newValue)); } public void setMessageForVisibility(String msg, int msgLevel) { } public void unsetMessageForVisibility() { } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getClientDependencyToAdd() */ public List getClientDependencyToAdd() { return clientDependencyEditUtil.getElementsToAdd(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getClientDependencyToRemove() */ public List getClientDependencyToRemove() { return clientDependencyEditUtil.getElementsToRemove(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getClientDependencyTable() */ public List getClientDependencyTable() { return clientDependencyEditUtil.getVirtualList(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#initClientDependency(EObject current, EReference * containingFeature, EReference feature) */ public void initClientDependency(EObject current, EReference containingFeature, EReference feature) { if(current.eResource() != null && current.eResource().getResourceSet() != null) this.resourceSet = current.eResource().getResourceSet(); if(containingFeature != null) clientDependencyEditUtil = new EMFListEditUtil(current, containingFeature, feature); else clientDependencyEditUtil = new EMFListEditUtil(current, feature); this.clientDependency.setInput(clientDependencyEditUtil.getVirtualList()); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#updateClientDependency(EObject newValue) */ public void updateClientDependency(EObject newValue) { if(clientDependencyEditUtil != null) { clientDependencyEditUtil.reinit(newValue); clientDependency.refresh(); } } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#addFilterClientDependency(ViewerFilter filter) */ public void addFilterToClientDependency(ViewerFilter filter) { clientDependencyFilters.add(filter); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#addBusinessFilterClientDependency(ViewerFilter filter) */ public void addBusinessFilterToClientDependency(ViewerFilter filter) { clientDependencyBusinessFilters.add(filter); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#isContainedInClientDependencyTable(EObject element) */ public boolean isContainedInClientDependencyTable(EObject element) { return clientDependencyEditUtil.contains(element); } public void setMessageForClientDependency(String msg, int msgLevel) { } public void unsetMessageForClientDependency() { } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getMessageSort() */ public Enumerator getMessageSort() { EEnumLiteral selection = (EEnumLiteral)((StructuredSelection)messageSort.getSelection()).getFirstElement(); return selection.getInstance(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#initMessageSort(EEnum eenum, Enumerator current) */ public void initMessageSort(EEnum eenum, Enumerator current) { messageSort.setInput(eenum.getELiterals()); messageSort.modelUpdating(new StructuredSelection(current)); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#setMessageSort(Enumerator newValue) */ public void setMessageSort(Enumerator newValue) { messageSort.modelUpdating(new StructuredSelection(newValue)); } public void setMessageForMessageSort(String msg, int msgLevel) { } public void unsetMessageForMessageSort() { } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getArgumentToAdd() */ public List getArgumentToAdd() { return argumentEditUtil.getElementsToAdd(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getArgumentToRemove() */ public List getArgumentToRemove() { return argumentEditUtil.getElementsToRemove(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getArgumentToEdit() */ public Map getArgumentToEdit() { return argumentEditUtil.getElementsToRefresh(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getArgumentToMove() */ public List getArgumentToMove() { return argumentEditUtil.getElementsToMove(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#getArgumentTable() */ public List getArgumentTable() { return argumentEditUtil.getVirtualList(); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#initArgument(EObject current, EReference containingFeature, * EReference feature) */ public void initArgument(EObject current, EReference containingFeature, EReference feature) { if(current.eResource() != null && current.eResource().getResourceSet() != null) this.resourceSet = current.eResource().getResourceSet(); if(containingFeature != null) argumentEditUtil = new EMFListEditUtil(current, containingFeature, feature); else argumentEditUtil = new EMFListEditUtil(current, feature); this.argument.setInput(argumentEditUtil.getVirtualList()); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#updateArgument(EObject newValue) */ public void updateArgument(EObject newValue) { if(argumentEditUtil != null) { argumentEditUtil.reinit(newValue); argument.refresh(); } } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#addFilterArgument(ViewerFilter filter) */ public void addFilterToArgument(ViewerFilter filter) { argumentFilters.add(filter); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#addBusinessFilterArgument(ViewerFilter filter) */ public void addBusinessFilterToArgument(ViewerFilter filter) { argumentBusinessFilters.add(filter); } /** * {@inheritDoc} * * @see org.eclipse.papyrus.tabbedproperties.uml.parts.MessagePropertiesEditionPart#isContainedInArgumentTable(EObject element) */ public boolean isContainedInArgumentTable(EObject element) { return argumentEditUtil.contains(element); } public void setMessageForArgument(String msg, int msgLevel) { } public void unsetMessageForArgument() { } // Start of user code additional methods // End of user code }