| package people.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.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; |
| |
| import people.diagram.edit.parts.PersonChildrenEditPart; |
| import people.diagram.edit.parts.PersonEditPart; |
| import people.diagram.edit.parts.PersonNameEditPart; |
| import people.diagram.edit.parts.UniverseEditPart; |
| import people.diagram.part.PeopleDiagramEditorPlugin; |
| import people.diagram.part.PeopleVisualIDRegistry; |
| import people.diagram.providers.PeopleElementTypes; |
| import people.diagram.providers.PeopleParserProvider; |
| |
| /** |
| * @generated |
| */ |
| public class PeopleNavigatorLabelProvider extends LabelProvider implements |
| ICommonLabelProvider, ITreePathLabelProvider { |
| |
| /** |
| * @generated |
| */ |
| static { |
| PeopleDiagramEditorPlugin |
| .getInstance() |
| .getImageRegistry() |
| .put("Navigator?UnknownElement", ImageDescriptor.getMissingImageDescriptor()); //$NON-NLS-1$ |
| PeopleDiagramEditorPlugin |
| .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 PeopleNavigatorItem |
| && !isOwnView(((PeopleNavigatorItem) element).getView())) { |
| return; |
| } |
| label.setText(getText(element)); |
| label.setImage(getImage(element)); |
| } |
| |
| /** |
| * @generated |
| */ |
| public Image getImage(Object element) { |
| if (element instanceof PeopleNavigatorGroup) { |
| PeopleNavigatorGroup group = (PeopleNavigatorGroup) element; |
| return PeopleDiagramEditorPlugin.getInstance().getBundledImage( |
| group.getIcon()); |
| } |
| |
| if (element instanceof PeopleNavigatorItem) { |
| PeopleNavigatorItem navigatorItem = (PeopleNavigatorItem) element; |
| if (!isOwnView(navigatorItem.getView())) { |
| return super.getImage(element); |
| } |
| return getImage(navigatorItem.getView()); |
| } |
| |
| return super.getImage(element); |
| } |
| |
| /** |
| * @generated |
| */ |
| public Image getImage(View view) { |
| switch (PeopleVisualIDRegistry.getVisualID(view)) { |
| case PersonChildrenEditPart.VISUAL_ID: |
| return getImage( |
| "Navigator?Link?http://www.eclipse.org/examples/tree?Person?children", PeopleElementTypes.PersonChildren_4002); //$NON-NLS-1$ |
| case UniverseEditPart.VISUAL_ID: |
| return getImage( |
| "Navigator?Diagram?http://www.eclipse.org/examples/tree?Universe", PeopleElementTypes.Universe_1000); //$NON-NLS-1$ |
| case PersonEditPart.VISUAL_ID: |
| return getImage( |
| "Navigator?TopLevelNode?http://www.eclipse.org/examples/tree?Person", PeopleElementTypes.Person_2001); //$NON-NLS-1$ |
| } |
| return getImage("Navigator?UnknownElement", null); //$NON-NLS-1$ |
| } |
| |
| /** |
| * @generated |
| */ |
| private Image getImage(String key, IElementType elementType) { |
| ImageRegistry imageRegistry = PeopleDiagramEditorPlugin.getInstance() |
| .getImageRegistry(); |
| Image image = imageRegistry.get(key); |
| if (image == null && elementType != null |
| && PeopleElementTypes.isKnownElementType(elementType)) { |
| image = PeopleElementTypes.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 PeopleNavigatorGroup) { |
| PeopleNavigatorGroup group = (PeopleNavigatorGroup) element; |
| return group.getGroupName(); |
| } |
| |
| if (element instanceof PeopleNavigatorItem) { |
| PeopleNavigatorItem navigatorItem = (PeopleNavigatorItem) 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 (PeopleVisualIDRegistry.getVisualID(view)) { |
| case PersonChildrenEditPart.VISUAL_ID: |
| return getPersonChildren_4002Text(view); |
| case UniverseEditPart.VISUAL_ID: |
| return getUniverse_1000Text(view); |
| case PersonEditPart.VISUAL_ID: |
| return getPerson_2001Text(view); |
| } |
| return getUnknownElementText(view); |
| } |
| |
| /** |
| * @generated |
| */ |
| private String getPerson_2001Text(View view) { |
| IParser parser = PeopleParserProvider.getParser( |
| PeopleElementTypes.Person_2001, |
| view.getElement() != null ? view.getElement() : view, |
| PeopleVisualIDRegistry.getType(PersonNameEditPart.VISUAL_ID)); |
| if (parser != null) { |
| return parser.getPrintString(new EObjectAdapter( |
| view.getElement() != null ? view.getElement() : view), |
| ParserOptions.NONE.intValue()); |
| } else { |
| PeopleDiagramEditorPlugin.getInstance().logError( |
| "Parser was not found for label " + 5001); //$NON-NLS-1$ |
| return ""; //$NON-NLS-1$ |
| } |
| } |
| |
| /** |
| * @generated |
| */ |
| private String getPersonChildren_4002Text(View view) { |
| return ""; //$NON-NLS-1$ |
| } |
| |
| /** |
| * @generated |
| */ |
| private String getUniverse_1000Text(View view) { |
| 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 UniverseEditPart.MODEL_ID.equals(PeopleVisualIDRegistry |
| .getModelID(view)); |
| } |
| |
| } |