Search in sources :

Example 6 with SQLPattern

use of org.talend.designer.business.model.business.SQLPattern in project tdi-studio-se by Talend.

the class ElementHelper method updateTooltipFigure.

/**
     * DOC Administrator Comment method "getTooltipFigure".
     * 
     * @param figure
     */
public void updateTooltipFigure(Figure figure, BusinessTooltipFigure tooltipFigure, EditPart editPart) {
    EObject element = ((View) editPart.getModel()).getElement();
    if (element instanceof BusinessItem) {
        List assignements = ((BusinessItem) element).getAssignments();
        BusinessItemProviderAdapterFactory adapterFactory = new BusinessItemProviderAdapterFactory();
        BusinessAssignmentItemProvider provider = (BusinessAssignmentItemProvider) adapterFactory.createBusinessAssignmentAdapter();
        Image img = null;
        Label label = null;
        List<Label> labels = new ArrayList();
        try {
            for (Object assignment : assignements) {
                if (assignment instanceof BusinessAssignment) {
                    TalendItem talendItem = ((BusinessAssignment) assignment).getTalendItem();
                    if (talendItem != null) {
                        IRepositoryViewObject obj = CorePlugin.getDefault().getProxyRepositoryFactory().getLastVersion(talendItem.getId());
                        if (obj != null) {
                            ERepositoryObjectType type = obj.getRepositoryObjectType();
                            Item item = obj.getProperty().getItem();
                            if (item instanceof JobletProcessItem) {
                                JobletProcessItem jobletItem = (JobletProcessItem) item;
                                Image jobletCustomIcon = RepositoryLabelProvider.getJobletCustomIcon(jobletItem.getProperty());
                                if (jobletCustomIcon != null) {
                                    img = ImageUtils.scale(jobletCustomIcon, ICON_SIZE.ICON_16);
                                }
                            } else {
                                img = CoreImageProvider.getImage(type);
                            }
                            //$NON-NLS-1$ //$NON-NLS-2$
                            label = new Label(obj.getLabel() + " (" + provider.getColumnText(assignment, 0) + ")", img);
                            labels.add(label);
                        } else {
                            MetadataTable table = MetadataToolHelper.getMetadataTableFromRepository(talendItem.getId());
                            Query query = MetadataToolHelper.getQueryFromRepository(talendItem.getId());
                            SAPFunctionUnit function = MetadataToolHelper.getSAPFunctionFromRepository(talendItem.getId());
                            if (table != null) {
                                img = ImageDescriptor.createFromFile(ECoreImage.class, ECoreImage.METADATA_TABLE_ICON.getPath()).createImage();
                                label = new Label(talendItem.getLabel() + " (" + provider.getColumnText(assignment, 0) + ")", //$NON-NLS-1$ //$NON-NLS-2$
                                img);
                                labels.add(label);
                            } else if (query != null) {
                                img = ImageDescriptor.createFromFile(ECoreImage.class, ECoreImage.METADATA_QUERY_ICON.getPath()).createImage();
                                label = new Label(talendItem.getLabel() + " (" + provider.getColumnText(assignment, 0) + ")", //$NON-NLS-1$ //$NON-NLS-2$
                                img);
                                labels.add(label);
                            } else if (talendItem instanceof SQLPattern) {
                                List<IRepositoryViewObject> list = ProxyRepositoryFactory.getInstance().getAll(ERepositoryObjectType.SQLPATTERNS);
                                for (IRepositoryViewObject object : list) {
                                    if (talendItem.getLabel().equals(object.getLabel())) {
                                        img = ImageDescriptor.createFromFile(ECoreImage.class, ECoreImage.METADATA_SQLPATTERN_ICON.getPath()).createImage();
                                        label = new Label(//$NON-NLS-1$
                                        talendItem.getLabel() + " (" + provider.getColumnText(assignment, 0) + ")", //$NON-NLS-1$
                                        img);
                                        labels.add(label);
                                    }
                                }
                            } else if (talendItem instanceof Routine) {
                                List<IRepositoryViewObject> list = ProxyRepositoryFactory.getInstance().getAll(ERepositoryObjectType.ROUTINES);
                                for (IRepositoryViewObject object : list) {
                                    if (talendItem.getLabel().equals(object.getLabel())) {
                                        img = ImageDescriptor.createFromFile(ECoreImage.class, ECoreImage.ROUTINE_ICON.getPath()).createImage();
                                        label = new Label(//$NON-NLS-1$
                                        talendItem.getLabel() + " (" + provider.getColumnText(assignment, 0) + ")", //$NON-NLS-1$
                                        img);
                                        labels.add(label);
                                    }
                                }
                            } else if (function != null) {
                                img = ImageDescriptor.createFromFile(ECoreImage.class, ECoreImage.METADATA_SAPCONNECTION_ICON.getPath()).createImage();
                                label = new Label(talendItem.getLabel() + " (" + provider.getColumnText(assignment, 0) + ")", //$NON-NLS-1$ //$NON-NLS-2$
                                img);
                                labels.add(label);
                            } else {
                                img = (Image) provider.getImage(assignment);
                                img = new OverlayImage(img, ImageProvider.getImageDesc(ECoreImage.DELETED_OVERLAY), EPosition.BOTTOM_RIGHT).createImage();
                                String text = provider.getText(assignment) + " (" + provider.getColumnText(assignment, 0) + //$NON-NLS-1$ //$NON-NLS-2$
                                ")";
                                label = new Label(text, img);
                                labels.add(label);
                            }
                        }
                    }
                }
            }
            if (tooltipFigure == null) {
                tooltipFigure = new BusinessTooltipFigure();
            }
            if (labels.size() == 0) {
                figure.setToolTip(null);
            } else {
                tooltipFigure.buildFigures(labels);
                figure.setToolTip(tooltipFigure);
            }
        } catch (PersistenceException e) {
            ExceptionHandler.process(e);
        }
    }
}
Also used : BusinessAssignment(org.talend.designer.business.model.business.BusinessAssignment) Query(org.talend.core.model.metadata.builder.connection.Query) SAPFunctionUnit(org.talend.core.model.metadata.builder.connection.SAPFunctionUnit) Label(org.eclipse.draw2d.Label) ArrayList(java.util.ArrayList) Image(org.eclipse.swt.graphics.Image) OverlayImage(org.talend.commons.ui.runtime.image.OverlayImage) ECoreImage(org.talend.commons.ui.runtime.image.ECoreImage) BusinessItem(org.talend.designer.business.model.business.BusinessItem) Item(org.talend.core.model.properties.Item) TalendItem(org.talend.designer.business.model.business.TalendItem) JobletProcessItem(org.talend.core.model.properties.JobletProcessItem) BusinessItemProviderAdapterFactory(org.talend.designer.business.model.business.provider.BusinessItemProviderAdapterFactory) BusinessAssignmentItemProvider(org.talend.designer.business.model.business.provider.BusinessAssignmentItemProvider) EObject(org.eclipse.emf.ecore.EObject) OverlayImage(org.talend.commons.ui.runtime.image.OverlayImage) MetadataTable(org.talend.core.model.metadata.builder.connection.MetadataTable) ECoreImage(org.talend.commons.ui.runtime.image.ECoreImage) ArrayList(java.util.ArrayList) List(java.util.List) TalendItem(org.talend.designer.business.model.business.TalendItem) ERepositoryObjectType(org.talend.core.model.repository.ERepositoryObjectType) SQLPattern(org.talend.designer.business.model.business.SQLPattern) BusinessTooltipFigure(org.talend.designer.business.diagram.custom.figures.BusinessTooltipFigure) Routine(org.talend.designer.business.model.business.Routine) View(org.eclipse.gmf.runtime.notation.View) JobletProcessItem(org.talend.core.model.properties.JobletProcessItem) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) PersistenceException(org.talend.commons.exception.PersistenceException) EObject(org.eclipse.emf.ecore.EObject) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) BusinessItem(org.talend.designer.business.model.business.BusinessItem)

Aggregations

IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)6 Routine (org.talend.designer.business.model.business.Routine)6 SQLPattern (org.talend.designer.business.model.business.SQLPattern)6 TalendItem (org.talend.designer.business.model.business.TalendItem)6 PersistenceException (org.talend.commons.exception.PersistenceException)5 MetadataTable (org.talend.core.model.metadata.builder.connection.MetadataTable)5 SAPFunctionUnit (org.talend.core.model.metadata.builder.connection.SAPFunctionUnit)5 BusinessAssignment (org.talend.designer.business.model.business.BusinessAssignment)5 List (java.util.List)4 Query (org.talend.core.model.metadata.builder.connection.Query)3 Query (org.talend.designer.business.model.business.Query)3 TableMetadata (org.talend.designer.business.model.business.TableMetadata)3 RepositoryNode (org.talend.repository.model.RepositoryNode)3 ArrayList (java.util.ArrayList)2 Image (org.eclipse.swt.graphics.Image)2 ECoreImage (org.talend.commons.ui.runtime.image.ECoreImage)2 OverlayImage (org.talend.commons.ui.runtime.image.OverlayImage)2 ERepositoryObjectType (org.talend.core.model.repository.ERepositoryObjectType)2 ProjectRepositoryNode (org.talend.core.repository.model.ProjectRepositoryNode)2 BusinessItem (org.talend.designer.business.model.business.BusinessItem)2