/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.diagram.ui.notation.uml.model;
import org.eclipse.emf.ecore.EObject;
import org.teiid.designer.core.metamodel.aspect.uml.UmlPackage;
import org.teiid.designer.diagram.ui.DiagramUiPlugin;
import org.teiid.designer.diagram.ui.util.DiagramEntityAdapter;
import org.teiid.designer.diagram.ui.util.DiagramUiUtilities;
import org.teiid.designer.metamodels.diagram.Diagram;
import org.teiid.designer.ui.viewsupport.ModelObjectUtilities;
/**
* @author mdrilling
*
* Model Node for UML Package.
*
* @since 8.0
*/
public class UmlPackageNode extends UmlModelNode {
public UmlPackageNode( Diagram diagramModelObject, EObject modelObject, UmlPackage aspect ) {
super( diagramModelObject, modelObject, aspect );
// Get the EObject Contents (children) - create appropriate ModelNodes
// List list = modelObject.eContents();
// Iterator iter = list.iterator();
// while(iter.hasNext()) {
// EObject eObj = (EObject)iter.next();
// MetamodelAspect mmAspect = UmlModelFactory.getUmlAspect(eObj);
//
// if(mmAspect instanceof UmlClassifier) {
// // Get a DiagramEntity
// DiagramEntity diagramEntity = UmlModelFactory.getDiagramEntity(eObj);
// DiagramModelNode diagramModelNode = new UmlClassifierNode(diagramEntity, eObj, (UmlClassifier)mmAspect);
// // Add new ClassifierNode as a child of the Package
// addChild(diagramModelNode);
// }
//
// }
}
@Override
public String getName() {
return aspect.getSignature(getModelObject(),UmlPackage.SIGNATURE_NAME);
}
@Override
public void setName(String name) {
// aspect.setSignature(getModelObject(),name);
ModelObjectUtilities.rename(getModelObject(), name, this);
// super.setName(name);
}
public void refreshForNameChange(){
if( getDiagramModelObject() != null && !isReadOnly() ) {
String oldName = "xxxXxxx"; //$NON-NLS-1$
DiagramEntityAdapter.setName(getDiagramModelObject(), getName());
firePropertyChange(DiagramNodeProperties.NAME, oldName, getName());
}
}
public void refreshForPathChange(){
update(DiagramNodeProperties.PATH);
}
@Override
public String toString() {
return "UmlPackageNode(" + getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
}
@Override
public String getLocation() {
return getPath();
}
@Override
public String getPath() {
// First check to see if package diagram. if so, we return null
EObject diagramEObject = getParent().getModelObject();
if( !DiagramUiUtilities.isPackageDiagram(diagramEObject)) {
String somePath = null;
if( getDiagramModelObject() != null ) {
Diagram theDiagram = getDiagramModelObject().getDiagram();
somePath = DiagramUiPlugin.getDiagramTypeManager().getDisplayedPath(theDiagram, getModelObject());
}
return somePath;
}
return null;
}
}