/*
* 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.transformation.ui.model;
import java.util.Iterator;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
import org.teiid.designer.diagram.ui.model.AbstractLocalDiagramModelNode;
import org.teiid.designer.diagram.ui.model.DiagramModelNode;
/**
* TransformationDiagramNode
*
* @since 8.0
*/
public class TransformationDiagramNode extends AbstractLocalDiagramModelNode {
public TransformationDiagramNode( EObject modelObject, String diagramName) {
super( modelObject, diagramName );
}
@Override
public String toString() {
return "TransformDiagramNode(" + getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
}
@Override
public boolean wasLayedOut() {
// This method has to override abstract class
// if any one of it's children answer true to same method
// then we assume that this diagram had entities defined and
// was already layed out at one time.
List children = getChildren();
Iterator iter = children.iterator();
DiagramModelNode nextChild = null;
while( iter.hasNext()) {
nextChild = (DiagramModelNode)iter.next();
if( nextChild.wasLayedOut())
return true;
}
return false;
}
@Override
public void recoverObjectProperties(){
// This method has to override abstract class
// if any one of it's children answer true to wasLayedOut
// then we assume that this diagram had entities defined and
// was already layed out at one time.
// This should be called after the initial layout method only!!!
List children = getChildren();
Iterator iter = children.iterator();
DiagramModelNode nextChild = null;
while( iter.hasNext()) {
nextChild = (DiagramModelNode)iter.next();
if( nextChild.wasLayedOut())
nextChild.recoverObjectProperties();
}
}
/*
* (non-Javadoc)
* @See org.teiid.designer.diagram.ui.model.DiagramModelNode#addChild(org.teiid.designer.diagram.ui.model.DiagramModelNode)
*/
@Override
public void addChild(DiagramModelNode child) {
child.setParent(this);
super.addChild(child);
}
/*
* (non-Javadoc)
* @See org.teiid.designer.diagram.ui.model.DiagramModelNode#addChildren(java.util.List)
*/
@Override
public void addChildren(List newChildren) {
if( newChildren != null && !newChildren.isEmpty() ) {
Object nextChild;
Iterator iter = newChildren.iterator();
while( iter.hasNext() ) {
nextChild = iter.next();
((DiagramModelNode)nextChild).setParent(this);
}
super.addChildren(newChildren);
}
}
}