/*******************************************************************************
* 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 extends EObject> ownedComment;
protected List ownedCommentBusinessFilters = new ArrayList();
protected List ownedCommentFilters = new ArrayList();
protected Text name;
protected EMFComboViewer visibility;
protected EMFListEditUtil clientDependencyEditUtil;
protected ReferencesTable extends EObject> clientDependency;
protected List clientDependencyBusinessFilters = new ArrayList();
protected List clientDependencyFilters = new ArrayList();
protected EMFComboViewer messageSort;
protected EMFListEditUtil argumentEditUtil;
protected ReferencesTable extends EObject> 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
}