com.opcoach.training.rental.diagram.navigator.RentalNavigatorLabelProvider.java Source code

Java tutorial

Introduction

Here is the source code for com.opcoach.training.rental.diagram.navigator.RentalNavigatorLabelProvider.java

Source

package com.opcoach.training.rental.diagram.navigator;

import org.eclipse.gmf.runtime.common.ui.services.parser.CommonParserHint;
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 com.opcoach.training.rental.MyRentalAgency;
import com.opcoach.training.rental.diagram.edit.parts.Address2EditPart;
import com.opcoach.training.rental.diagram.edit.parts.AddressCity2EditPart;
import com.opcoach.training.rental.diagram.edit.parts.AddressCityEditPart;
import com.opcoach.training.rental.diagram.edit.parts.AddressEditPart;
import com.opcoach.training.rental.diagram.edit.parts.CustomerEditPart;
import com.opcoach.training.rental.diagram.edit.parts.CustomerFirstNameLastNameEditPart;
import com.opcoach.training.rental.diagram.edit.parts.LicenseEditPart;
import com.opcoach.training.rental.diagram.edit.parts.LicenseNumberEditPart;
import com.opcoach.training.rental.diagram.edit.parts.RentalAgencyEditPart;
import com.opcoach.training.rental.diagram.edit.parts.RentalCustomerEditPart;
import com.opcoach.training.rental.diagram.edit.parts.RentalEditPart;
import com.opcoach.training.rental.diagram.edit.parts.RentalObjectEditPart;
import com.opcoach.training.rental.diagram.edit.parts.RentalObjectNameEditPart;
import com.opcoach.training.rental.diagram.edit.parts.RentalRentedObjectEditPart;
import com.opcoach.training.rental.diagram.edit.parts.RentalStartDateEditPart;
import com.opcoach.training.rental.diagram.part.RentalDiagramEditorPlugin;
import com.opcoach.training.rental.diagram.part.RentalVisualIDRegistry;
import com.opcoach.training.rental.diagram.providers.RentalElementTypes;
import com.opcoach.training.rental.diagram.providers.RentalParserProvider;

/**
 * @generated
 */
public class RentalNavigatorLabelProvider extends LabelProvider
        implements ICommonLabelProvider, ITreePathLabelProvider {

    /**
     * @generated
     */
    static {
        RentalDiagramEditorPlugin.getInstance().getImageRegistry().put("Navigator?UnknownElement", //$NON-NLS-1$
                ImageDescriptor.getMissingImageDescriptor());
        RentalDiagramEditorPlugin.getInstance().getImageRegistry().put("Navigator?ImageNotFound", //$NON-NLS-1$
                ImageDescriptor.getMissingImageDescriptor());
    }

    /**
     * @generated
     */
    public void updateLabel(ViewerLabel label, TreePath elementPath) {
        Object element = elementPath.getLastSegment();
        if (element instanceof RentalNavigatorItem && !isOwnView(((RentalNavigatorItem) element).getView())) {
            return;
        }
        label.setText(getText(element));
        label.setImage(getImage(element));
    }

    /**
     * @generated
     */
    public Image getImage(Object element) {
        if (element instanceof RentalNavigatorGroup) {
            RentalNavigatorGroup group = (RentalNavigatorGroup) element;
            return RentalDiagramEditorPlugin.getInstance().getBundledImage(group.getIcon());
        }

        if (element instanceof RentalNavigatorItem) {
            RentalNavigatorItem navigatorItem = (RentalNavigatorItem) element;
            if (!isOwnView(navigatorItem.getView())) {
                return super.getImage(element);
            }
            return getImage(navigatorItem.getView());
        }

        return super.getImage(element);
    }

    /**
     * @generated
     */
    public Image getImage(View view) {
        switch (RentalVisualIDRegistry.getVisualID(view)) {
        case RentalCustomerEditPart.VISUAL_ID:
            return getImage("Navigator?Link?http://com.opcoach.training/rental/1.0?Rental?customer", //$NON-NLS-1$
                    RentalElementTypes.RentalCustomer_4001);
        case LicenseEditPart.VISUAL_ID:
            return getImage("Navigator?Node?http://com.opcoach.training/rental/1.0?License", //$NON-NLS-1$
                    RentalElementTypes.License_3002);
        case AddressEditPart.VISUAL_ID:
            return getImage("Navigator?TopLevelNode?http://com.opcoach.training/rental/1.0?Address", //$NON-NLS-1$
                    RentalElementTypes.Address_2001);
        case Address2EditPart.VISUAL_ID:
            return getImage("Navigator?Node?http://com.opcoach.training/rental/1.0?Address", //$NON-NLS-1$
                    RentalElementTypes.Address_3001);
        case RentalRentedObjectEditPart.VISUAL_ID:
            return getImage("Navigator?Link?http://com.opcoach.training/rental/1.0?Rental?rentedObject", //$NON-NLS-1$
                    RentalElementTypes.RentalRentedObject_4002);
        case CustomerEditPart.VISUAL_ID:
            return getImage("Navigator?TopLevelNode?http://com.opcoach.training/rental/1.0?Customer", //$NON-NLS-1$
                    RentalElementTypes.Customer_2003);
        case RentalEditPart.VISUAL_ID:
            return getImage("Navigator?TopLevelNode?http://com.opcoach.training/rental/1.0?Rental", //$NON-NLS-1$
                    RentalElementTypes.Rental_2004);
        case RentalObjectEditPart.VISUAL_ID:
            return getImage("Navigator?TopLevelNode?http://com.opcoach.training/rental/1.0?RentalObject", //$NON-NLS-1$
                    RentalElementTypes.RentalObject_2002);
        case RentalAgencyEditPart.VISUAL_ID:
            return getImage("Navigator?Diagram?http://com.opcoach.training/rental/1.0?RentalAgency", //$NON-NLS-1$
                    RentalElementTypes.RentalAgency_1000);
        }
        return getImage("Navigator?UnknownElement", null); //$NON-NLS-1$
    }

    /**
     * @generated
     */
    private Image getImage(String key, IElementType elementType) {
        ImageRegistry imageRegistry = RentalDiagramEditorPlugin.getInstance().getImageRegistry();
        Image image = imageRegistry.get(key);
        if (image == null && elementType != null && RentalElementTypes.isKnownElementType(elementType)) {
            image = RentalElementTypes.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 RentalNavigatorGroup) {
            RentalNavigatorGroup group = (RentalNavigatorGroup) element;
            return group.getGroupName();
        }

        if (element instanceof RentalNavigatorItem) {
            RentalNavigatorItem navigatorItem = (RentalNavigatorItem) 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 (RentalVisualIDRegistry.getVisualID(view)) {
        case RentalCustomerEditPart.VISUAL_ID:
            return getRentalCustomer_4001Text(view);
        case LicenseEditPart.VISUAL_ID:
            return getLicense_3002Text(view);
        case AddressEditPart.VISUAL_ID:
            return getAddress_2001Text(view);
        case Address2EditPart.VISUAL_ID:
            return getAddress_3001Text(view);
        case RentalRentedObjectEditPart.VISUAL_ID:
            return getRentalRentedObject_4002Text(view);
        case CustomerEditPart.VISUAL_ID:
            return getCustomer_2003Text(view);
        case RentalEditPart.VISUAL_ID:
            return getRental_2004Text(view);
        case RentalObjectEditPart.VISUAL_ID:
            return getRentalObject_2002Text(view);
        case RentalAgencyEditPart.VISUAL_ID:
            return getRentalAgency_1000Text(view);
        }
        return getUnknownElementText(view);
    }

    /**
     * @generated
     */
    private String getRentalAgency_1000Text(View view) {
        MyRentalAgency domainModelElement = (MyRentalAgency) view.getElement();
        if (domainModelElement != null) {
            return domainModelElement.getName();
        } else {
            RentalDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 1000); //$NON-NLS-1$
            return ""; //$NON-NLS-1$
        }
    }

    /**
     * @generated
     */
    private String getAddress_2001Text(View view) {
        IParser parser = RentalParserProvider.getParser(RentalElementTypes.Address_2001,
                view.getElement() != null ? view.getElement() : view,
                RentalVisualIDRegistry.getType(AddressCityEditPart.VISUAL_ID));
        if (parser != null) {
            return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
                    ParserOptions.NONE.intValue());
        } else {
            RentalDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5001); //$NON-NLS-1$
            return ""; //$NON-NLS-1$
        }
    }

    /**
     * @generated
     */
    private String getRentalObject_2002Text(View view) {
        IParser parser = RentalParserProvider.getParser(RentalElementTypes.RentalObject_2002,
                view.getElement() != null ? view.getElement() : view,
                RentalVisualIDRegistry.getType(RentalObjectNameEditPart.VISUAL_ID));
        if (parser != null) {
            return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
                    ParserOptions.NONE.intValue());
        } else {
            RentalDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5002); //$NON-NLS-1$
            return ""; //$NON-NLS-1$
        }
    }

    /**
     * @generated
     */
    private String getCustomer_2003Text(View view) {
        IParser parser = RentalParserProvider.getParser(RentalElementTypes.Customer_2003,
                view.getElement() != null ? view.getElement() : view,
                RentalVisualIDRegistry.getType(CustomerFirstNameLastNameEditPart.VISUAL_ID));
        if (parser != null) {
            return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
                    ParserOptions.NONE.intValue());
        } else {
            RentalDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5005); //$NON-NLS-1$
            return ""; //$NON-NLS-1$
        }
    }

    /**
     * @generated
     */
    private String getRental_2004Text(View view) {
        IParser parser = RentalParserProvider.getParser(RentalElementTypes.Rental_2004,
                view.getElement() != null ? view.getElement() : view,
                RentalVisualIDRegistry.getType(RentalStartDateEditPart.VISUAL_ID));
        if (parser != null) {
            return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
                    ParserOptions.NONE.intValue());
        } else {
            RentalDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5006); //$NON-NLS-1$
            return ""; //$NON-NLS-1$
        }
    }

    /**
     * @generated
     */
    private String getAddress_3001Text(View view) {
        IParser parser = RentalParserProvider.getParser(RentalElementTypes.Address_3001,
                view.getElement() != null ? view.getElement() : view,
                RentalVisualIDRegistry.getType(AddressCity2EditPart.VISUAL_ID));
        if (parser != null) {
            return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
                    ParserOptions.NONE.intValue());
        } else {
            RentalDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5003); //$NON-NLS-1$
            return ""; //$NON-NLS-1$
        }
    }

    /**
     * @generated
     */
    private String getLicense_3002Text(View view) {
        IParser parser = RentalParserProvider.getParser(RentalElementTypes.License_3002,
                view.getElement() != null ? view.getElement() : view,
                RentalVisualIDRegistry.getType(LicenseNumberEditPart.VISUAL_ID));
        if (parser != null) {
            return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
                    ParserOptions.NONE.intValue());
        } else {
            RentalDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5004); //$NON-NLS-1$
            return ""; //$NON-NLS-1$
        }
    }

    /**
     * @generated
     */
    private String getRentalCustomer_4001Text(View view) {
        IParser parser = RentalParserProvider.getParser(RentalElementTypes.RentalCustomer_4001,
                view.getElement() != null ? view.getElement() : view, CommonParserHint.DESCRIPTION);
        if (parser != null) {
            return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
                    ParserOptions.NONE.intValue());
        } else {
            RentalDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 6001); //$NON-NLS-1$
            return ""; //$NON-NLS-1$
        }
    }

    /**
     * @generated
     */
    private String getRentalRentedObject_4002Text(View view) {
        IParser parser = RentalParserProvider.getParser(RentalElementTypes.RentalRentedObject_4002,
                view.getElement() != null ? view.getElement() : view, CommonParserHint.DESCRIPTION);
        if (parser != null) {
            return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
                    ParserOptions.NONE.intValue());
        } else {
            RentalDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 6002); //$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 RentalAgencyEditPart.MODEL_ID.equals(RentalVisualIDRegistry.getModelID(view));
    }

}