/*
* Copyright (C) Yutaka Matsuno 2010-2012 All rights reserved.
*/
package net.dependableos.dcase.diagram.part.custom;
import net.dependableos.dcase.BasicNode;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService;
import org.eclipse.gmf.runtime.diagram.ui.editparts.TreeEditPart;
import org.eclipse.gmf.runtime.notation.View;
/**
* A custom tree edit part.
*/
public class CustomTreeEditPart extends TreeEditPart {
/**
* the label text to display if the Desc attribute is empty.
*/
private static final String UNDEFINED_STRING = "[Undefined]";
/**
* the element parser.
*/
private IParser parser;
/**
* the element.
*/
private IAdaptable referenceAdapter;
/**
* Allocates a CustomTreeEditPart object.
*
* @param model the model.
*/
public CustomTreeEditPart(Object model) {
super(model);
}
/**
* {@inheritDoc}
*/
@Override
protected String getText() {
if (getParser() != null) {
return getParser().getPrintString(referenceAdapter,
ParserOptions.NONE.intValue());
}
EObject eObject = ((View) getModel()).getElement();
String desc = null;
if (eObject != null) {
if (eObject instanceof BasicNode) {
desc = ((BasicNode) eObject).getDesc();
}
}
if (desc == null || desc.equals("")) {
return UNDEFINED_STRING;
}
return desc;
}
/**
* Method getParser.
*
* @return IParser
*/
private IParser getParser() {
if (parser == null) {
if (referenceAdapter != null
&& referenceAdapter.getAdapter(EObject.class) != null) {
parser = ParserService.getInstance()
.getParser(referenceAdapter);
}
}
return parser;
}
}