package org.eclipse.gmf.examples.mindmap.diagram.providers;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.amalgam.examples.mindmap.MindmapPackage;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.gmf.examples.mindmap.diagram.editor.MindmapDiagramEditor;
import org.eclipse.gmf.examples.mindmap.diagram.view.factories.TopicViewFactory;
import org.eclipse.gmf.runtime.diagram.core.providers.AbstractViewProvider;
import org.eclipse.gmf.runtime.diagram.ui.view.factories.ConnectionViewFactory;
import org.eclipse.gmf.runtime.diagram.ui.view.factories.DiagramViewFactory;
import org.eclipse.gmf.runtime.notation.View;
public class MindmapViewProvider extends AbstractViewProvider {
private final Map<String, Class<?>> diagramMap = new HashMap<String, Class<?>>();
{
diagramMap.put(MindmapDiagramEditor.ID, DiagramViewFactory.class);
}
private final Map<String, Class<?>> nodeMap = new HashMap<String, Class<?>>();
{
nodeMap.put("Topic", TopicViewFactory.class);
}
private final Map<String, Class<?>> edgeMap = new HashMap<String, Class<?>>();
{
edgeMap.put("Subtopic", ConnectionViewFactory.class);
}
@Override
protected Class getDiagramViewClass(IAdaptable semanticAdapter,
String diagramKind) {
return diagramMap.get(diagramKind);
}
@Override
protected Class getNodeViewClass(IAdaptable semanticAdapter,
View containerView, String semanticHint) {
Class clazz = null;
if (semanticHint != null && semanticHint.length() > 0) {
clazz = nodeMap.get(semanticHint);
}
return clazz;
}
@Override
protected Class getEdgeViewClass(IAdaptable semanticAdapter,
View containerView, String semanticHint) {
Class clazz = null;
if (semanticHint != null && semanticHint.length() > 0) {
clazz = edgeMap.get(semanticHint);
}
return clazz;
}
}