blob: b69a7c21e71113dac99bb2a2cd5b06555bc97c29 [file] [log] [blame]
package org.eclipse.gmf.tooling.examples.linklf.diagram.navigator;
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.emf.core.util.EObjectAdapter;
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.CanvasEditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.Circle2EditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.CircleEditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.Container2EditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.ContainerEditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.ContainerName2EditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.ContainerNameEditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.LabeledLinkEditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.LabeledLinkSourceNameEditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.LinkEditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.PortEditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.Rectangle2EditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.RectangleEditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.Rhombus2EditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.RhombusEditPart;
import org.eclipse.gmf.tooling.examples.linklf.diagram.part.LinklfDiagramEditorPlugin;
import org.eclipse.gmf.tooling.examples.linklf.diagram.part.LinklfVisualIDRegistry;
import org.eclipse.gmf.tooling.examples.linklf.diagram.providers.LinklfElementTypes;
import org.eclipse.gmf.tooling.examples.linklf.diagram.providers.LinklfParserProvider;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.jface.viewers.ITreePathLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TreePath;
import org.eclipse.jface.viewers.ViewerLabel;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.navigator.ICommonContentExtensionSite;
import org.eclipse.ui.navigator.ICommonLabelProvider;
/**
* @generated
*/
public class LinklfNavigatorLabelProvider extends LabelProvider implements ICommonLabelProvider, ITreePathLabelProvider {
/**
* @generated
*/
static {
LinklfDiagramEditorPlugin.getInstance().getImageRegistry().put("Navigator?UnknownElement", ImageDescriptor.getMissingImageDescriptor()); //$NON-NLS-1$
LinklfDiagramEditorPlugin.getInstance().getImageRegistry().put("Navigator?ImageNotFound", ImageDescriptor.getMissingImageDescriptor()); //$NON-NLS-1$
}
/**
* @generated
*/
public void updateLabel(ViewerLabel label, TreePath elementPath) {
Object element = elementPath.getLastSegment();
if (element instanceof LinklfNavigatorItem && !isOwnView(((LinklfNavigatorItem) element).getView())) {
return;
}
label.setText(getText(element));
label.setImage(getImage(element));
}
/**
* @generated
*/
public Image getImage(Object element) {
if (element instanceof LinklfNavigatorGroup) {
LinklfNavigatorGroup group = (LinklfNavigatorGroup) element;
return LinklfDiagramEditorPlugin.getInstance().getBundledImage(group.getIcon());
}
if (element instanceof LinklfNavigatorItem) {
LinklfNavigatorItem navigatorItem = (LinklfNavigatorItem) element;
if (!isOwnView(navigatorItem.getView())) {
return super.getImage(element);
}
return getImage(navigatorItem.getView());
}
return super.getImage(element);
}
/**
* @generated
*/
public Image getImage(View view) {
switch (LinklfVisualIDRegistry.getVisualID(view)) {
case CanvasEditPart.VISUAL_ID:
return getImage("Navigator?Diagram?http://linklf.gmf.eclipse.org?Canvas", LinklfElementTypes.Canvas_1000); //$NON-NLS-1$
case CircleEditPart.VISUAL_ID:
return getImage("Navigator?TopLevelNode?http://linklf.gmf.eclipse.org?Circle", LinklfElementTypes.Circle_2001); //$NON-NLS-1$
case RectangleEditPart.VISUAL_ID:
return getImage("Navigator?TopLevelNode?http://linklf.gmf.eclipse.org?Rectangle", LinklfElementTypes.Rectangle_2002); //$NON-NLS-1$
case ContainerEditPart.VISUAL_ID:
return getImage("Navigator?TopLevelNode?http://linklf.gmf.eclipse.org?Container", LinklfElementTypes.Container_2003); //$NON-NLS-1$
case RhombusEditPart.VISUAL_ID:
return getImage("Navigator?TopLevelNode?http://linklf.gmf.eclipse.org?Rhombus", LinklfElementTypes.Rhombus_2004); //$NON-NLS-1$
case Circle2EditPart.VISUAL_ID:
return getImage("Navigator?Node?http://linklf.gmf.eclipse.org?Circle", LinklfElementTypes.Circle_3001); //$NON-NLS-1$
case Container2EditPart.VISUAL_ID:
return getImage("Navigator?Node?http://linklf.gmf.eclipse.org?Container", LinklfElementTypes.Container_3002); //$NON-NLS-1$
case Rectangle2EditPart.VISUAL_ID:
return getImage("Navigator?Node?http://linklf.gmf.eclipse.org?Rectangle", LinklfElementTypes.Rectangle_3003); //$NON-NLS-1$
case Rhombus2EditPart.VISUAL_ID:
return getImage("Navigator?Node?http://linklf.gmf.eclipse.org?Rhombus", LinklfElementTypes.Rhombus_3004); //$NON-NLS-1$
case PortEditPart.VISUAL_ID:
return getImage("Navigator?Node?http://linklf.gmf.eclipse.org?Port", LinklfElementTypes.Port_3005); //$NON-NLS-1$
case LinkEditPart.VISUAL_ID:
return getImage("Navigator?Link?http://linklf.gmf.eclipse.org?Link", LinklfElementTypes.Link_4001); //$NON-NLS-1$
case LabeledLinkEditPart.VISUAL_ID:
return getImage("Navigator?Link?http://linklf.gmf.eclipse.org?LabeledLink", LinklfElementTypes.LabeledLink_4002); //$NON-NLS-1$
}
return getImage("Navigator?UnknownElement", null); //$NON-NLS-1$
}
/**
* @generated
*/
private Image getImage(String key, IElementType elementType) {
ImageRegistry imageRegistry = LinklfDiagramEditorPlugin.getInstance().getImageRegistry();
Image image = imageRegistry.get(key);
if (image == null && elementType != null && LinklfElementTypes.isKnownElementType(elementType)) {
image = LinklfElementTypes.getImage(elementType);
imageRegistry.put(key, image);
}
if (image == null) {
image = imageRegistry.get("Navigator?ImageNotFound"); //$NON-NLS-1$
imageRegistry.put(key, image);
}
return image;
}
/**
* @generated
*/
public String getText(Object element) {
if (element instanceof LinklfNavigatorGroup) {
LinklfNavigatorGroup group = (LinklfNavigatorGroup) element;
return group.getGroupName();
}
if (element instanceof LinklfNavigatorItem) {
LinklfNavigatorItem navigatorItem = (LinklfNavigatorItem) element;
if (!isOwnView(navigatorItem.getView())) {
return null;
}
return getText(navigatorItem.getView());
}
return super.getText(element);
}
/**
* @generated
*/
public String getText(View view) {
if (view.getElement() != null && view.getElement().eIsProxy()) {
return getUnresolvedDomainElementProxyText(view);
}
switch (LinklfVisualIDRegistry.getVisualID(view)) {
case CanvasEditPart.VISUAL_ID:
return getCanvas_1000Text(view);
case CircleEditPart.VISUAL_ID:
return getCircle_2001Text(view);
case RectangleEditPart.VISUAL_ID:
return getRectangle_2002Text(view);
case ContainerEditPart.VISUAL_ID:
return getContainer_2003Text(view);
case RhombusEditPart.VISUAL_ID:
return getRhombus_2004Text(view);
case Circle2EditPart.VISUAL_ID:
return getCircle_3001Text(view);
case Container2EditPart.VISUAL_ID:
return getContainer_3002Text(view);
case Rectangle2EditPart.VISUAL_ID:
return getRectangle_3003Text(view);
case Rhombus2EditPart.VISUAL_ID:
return getRhombus_3004Text(view);
case PortEditPart.VISUAL_ID:
return getPort_3005Text(view);
case LinkEditPart.VISUAL_ID:
return getLink_4001Text(view);
case LabeledLinkEditPart.VISUAL_ID:
return getLabeledLink_4002Text(view);
}
return getUnknownElementText(view);
}
/**
* @generated
*/
private String getCanvas_1000Text(View view) {
return ""; //$NON-NLS-1$
}
/**
* @generated
*/
private String getCircle_2001Text(View view) {
return ""; //$NON-NLS-1$
}
/**
* @generated
*/
private String getRectangle_2002Text(View view) {
return ""; //$NON-NLS-1$
}
/**
* @generated
*/
private String getContainer_2003Text(View view) {
IParser parser = LinklfParserProvider.getParser(LinklfElementTypes.Container_2003, view.getElement() != null ? view.getElement() : view,
LinklfVisualIDRegistry.getType(ContainerNameEditPart.VISUAL_ID));
if (parser != null) {
return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue());
} else {
LinklfDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5002); //$NON-NLS-1$
return ""; //$NON-NLS-1$
}
}
/**
* @generated
*/
private String getRhombus_2004Text(View view) {
return ""; //$NON-NLS-1$
}
/**
* @generated
*/
private String getCircle_3001Text(View view) {
return ""; //$NON-NLS-1$
}
/**
* @generated
*/
private String getContainer_3002Text(View view) {
IParser parser = LinklfParserProvider.getParser(LinklfElementTypes.Container_3002, view.getElement() != null ? view.getElement() : view,
LinklfVisualIDRegistry.getType(ContainerName2EditPart.VISUAL_ID));
if (parser != null) {
return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue());
} else {
LinklfDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5001); //$NON-NLS-1$
return ""; //$NON-NLS-1$
}
}
/**
* @generated
*/
private String getRectangle_3003Text(View view) {
return ""; //$NON-NLS-1$
}
/**
* @generated
*/
private String getRhombus_3004Text(View view) {
return ""; //$NON-NLS-1$
}
/**
* @generated
*/
private String getPort_3005Text(View view) {
return ""; //$NON-NLS-1$
}
/**
* @generated
*/
private String getLink_4001Text(View view) {
return ""; //$NON-NLS-1$
}
/**
* @generated
*/
private String getLabeledLink_4002Text(View view) {
IParser parser = LinklfParserProvider.getParser(LinklfElementTypes.LabeledLink_4002, view.getElement() != null ? view.getElement() : view,
LinklfVisualIDRegistry.getType(LabeledLinkSourceNameEditPart.VISUAL_ID));
if (parser != null) {
return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue());
} else {
LinklfDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 6001); //$NON-NLS-1$
return ""; //$NON-NLS-1$
}
}
/**
* @generated
*/
private String getUnknownElementText(View view) {
return "<UnknownElement Visual_ID = " + view.getType() + ">"; //$NON-NLS-1$ //$NON-NLS-2$
}
/**
* @generated
*/
private String getUnresolvedDomainElementProxyText(View view) {
return "<Unresolved domain element Visual_ID = " + view.getType() + ">"; //$NON-NLS-1$ //$NON-NLS-2$
}
/**
* @generated
*/
public void init(ICommonContentExtensionSite aConfig) {
}
/**
* @generated
*/
public void restoreState(IMemento aMemento) {
}
/**
* @generated
*/
public void saveState(IMemento aMemento) {
}
/**
* @generated
*/
public String getDescription(Object anElement) {
return null;
}
/**
* @generated
*/
private boolean isOwnView(View view) {
return CanvasEditPart.MODEL_ID.equals(LinklfVisualIDRegistry.getModelID(view));
}
}