package org.xmind.ui.internal.mindmap;
import org.eclipse.draw2d.IFigure;
import org.xmind.core.ITopic;
import org.xmind.gef.IGraphicalViewer;
import org.xmind.gef.draw2d.RotatableWrapLabel;
import org.xmind.gef.part.IPart;
import org.xmind.ui.internal.decorators.InfoItemContentDecorator;
import org.xmind.ui.mindmap.IInfoPart;
import org.xmind.ui.mindmap.ITopicPart;
public class InfoItemContentPart extends TitleTextPart {
public InfoItemContentPart() {
setDecorator(InfoItemContentDecorator.getInstance());
}
public String getContent() {
if (getModel() instanceof InfoItemContent) {
return ((InfoItemContent) getModel()).getContent();
}
return null;
}
public ITopic getTopic() {
return (ITopic) super.getRealModel();
}
public ITopicPart getTopicPart() {
if (getParent() instanceof IInfoPart)
return ((IInfoPart) getParent()).getTopicPart();
return null;
}
@Override
public void setParent(IPart parent) {
if (getParent() instanceof InfoPart)
((InfoPart) getParent()).removeInfoItemContent(this);
super.setParent(parent);
if (getParent() instanceof InfoPart)
((InfoPart) getParent()).addInfoItemContent(this);
}
@Override
protected void updateView() {
super.updateView();
updateToolTip();
}
@Override
protected IFigure createFigure() {
boolean useAdvancedRenderer = getSite().getViewer().getProperties()
.getBoolean(IGraphicalViewer.VIEWER_RENDER_TEXT_AS_PATH, false);
return new RotatableWrapLabel(getContent(), useAdvancedRenderer
? RotatableWrapLabel.ADVANCED : RotatableWrapLabel.NORMAL);
}
}