Search in sources :

Example 1 with EPosition

use of org.talend.commons.ui.runtime.image.OverlayImage.EPosition in project tdi-studio-se by Talend.

the class UpdateLabelProvider method getColumnImage.

@Override
public Image getColumnImage(Object element, int columnIndex) {
    // try to use extension first.
    Object image = UpdateManagerProviderDetector.INSTANCE.getDisplayImage(element, columnIndex);
    if (image == null && columnIndex == 0) {
        if (element instanceof Job) {
            Job job = (Job) element;
            if (job.isJoblet()) {
                image = ECoreImage.JOBLET_ICON;
            } else if (job.isSparkJoblet()) {
                image = ECoreImage.PROCESS_BATCH_SPARK_ICON;
            } else if (job.isSparkStreamingJoblet()) {
                image = ECoreImage.PROCESS_STREAMING_SPARK_ICON;
            } else {
                org.talend.core.model.properties.Item item = job.getModelItem();
                if (item != null) {
                    image = CoreImageProvider.getIcon(item);
                } else {
                    if (job.isMR() || job.isStreaming()) {
                        for (ERepositoryObjectType type : (ERepositoryObjectType[]) ERepositoryObjectType.values()) {
                            String alias = type.getAlias();
                            if (alias != null && alias.equals("HC")) {
                                image = CoreImageProvider.getIcon(type);
                            }
                        }
                    } else {
                        image = ECoreImage.PROCESS_ICON;
                    }
                }
            }
        } else if (element instanceof Category) {
            Category category = (Category) element;
            IUpdateItemType type = category.getType();
            if (type != null) {
                if (type instanceof EUpdateItemType) {
                    switch((EUpdateItemType) type) {
                        case JOB_PROPERTY_EXTRA:
                        case JOB_PROPERTY_STATS_LOGS:
                        case JOB_PROPERTY_HEADERFOOTER:
                            image = ECoreImage.PROCESS_ICON;
                            break;
                        case CONTEXT:
                        case CONTEXT_GROUP:
                            // case JOBLET_CONTEXT:
                            image = ECoreImage.CONTEXT_ICON;
                            break;
                        case NODE_PROPERTY:
                        case NODE_SCHEMA:
                        case NODE_QUERY:
                        case NODE_SAP_IDOC:
                        case NODE_SAP_FUNCTION:
                        case NODE_VALIDATION_RULE:
                        case JOBLET_SCHEMA:
                        case JOBLET_RENAMED:
                        case JUNIT_RELOAD:
                        case RELOAD:
                        case MAP_PATH:
                            image = getImageFromNode(category.getNode());
                            break;
                        case JOB_PROPERTY_STORM:
                        case JOB_PROPERTY_MAPREDUCE:
                            for (ERepositoryObjectType etype : (ERepositoryObjectType[]) ERepositoryObjectType.values()) {
                                String alias = etype.getAlias();
                                if (alias != null && alias.equals("HC")) {
                                    image = CoreImageProvider.getImage(etype);
                                }
                            }
                            break;
                        default:
                    }
                } else {
                    // try to git image via type
                    image = UpdateManagerProviderDetector.INSTANCE.getDisplayImage(type, columnIndex);
                }
            }
        } else if (element instanceof Item) {
            Item item = (Item) element;
            IUpdateItemType updateType = item.getResultObject().getUpdateType();
            if (updateType instanceof EUpdateItemType) {
                switch((EUpdateItemType) updateType) {
                    case NODE_QUERY:
                        image = ECoreImage.METADATA_QUERY_ICON;
                        break;
                    case NODE_SCHEMA:
                    case JOBLET_SCHEMA:
                        image = ECoreImage.METADATA_TABLE_ICON;
                        break;
                    case NODE_PROPERTY:
                    case NODE_VALIDATION_RULE:
                    case JOB_PROPERTY_EXTRA:
                    case JOB_PROPERTY_STATS_LOGS:
                    case JOB_PROPERTY_STORM:
                    case JOB_PROPERTY_MAPREDUCE:
                        ERepositoryObjectType type = RepositoryUpdateManager.getTypeFromSource(item.getRemark());
                        if (type != null) {
                            image = CoreImageProvider.getIcon(type);
                        }
                    case JOBLET_RENAMED:
                    case RELOAD:
                    // return ImageProvider.getImage(ECoreImage.TALEND_PICTO);
                    case CONTEXT:
                    case CONTEXT_GROUP:
                    // return ImageProvider.getImage(ECoreImage.CONTEXT_ICON);
                    default:
                }
            } else {
                // try to git image via type
                image = UpdateManagerProviderDetector.INSTANCE.getDisplayImage(updateType, columnIndex);
            }
        }
    }
    if (image != null) {
        ECoreImage warnOverlay = ECoreImage.WARN_OVERLAY;
        EPosition position = EPosition.BOTTOM_RIGHT;
        if (image instanceof IImage) {
            if (checkElementForUpdate(element)) {
                return OverlayImageProvider.getImageForOverlay((IImage) image, warnOverlay, position);
            }
            return ImageProvider.getImage((IImage) image);
        } else if (image instanceof Image) {
            if (checkElementForUpdate(element)) {
                return OverlayImageProvider.getImageForOverlay((Image) image, warnOverlay, position);
            }
            return (Image) image;
        }
    }
    return null;
}
Also used : EUpdateItemType(org.talend.core.model.update.EUpdateItemType) IImage(org.talend.commons.ui.runtime.image.IImage) Image(org.eclipse.swt.graphics.Image) ECoreImage(org.talend.commons.ui.runtime.image.ECoreImage) EPosition(org.talend.commons.ui.runtime.image.OverlayImage.EPosition) ECoreImage(org.talend.commons.ui.runtime.image.ECoreImage) IUpdateItemType(org.talend.core.model.update.IUpdateItemType) IImage(org.talend.commons.ui.runtime.image.IImage) ERepositoryObjectType(org.talend.core.model.repository.ERepositoryObjectType)

Aggregations

Image (org.eclipse.swt.graphics.Image)1 ECoreImage (org.talend.commons.ui.runtime.image.ECoreImage)1 IImage (org.talend.commons.ui.runtime.image.IImage)1 EPosition (org.talend.commons.ui.runtime.image.OverlayImage.EPosition)1 ERepositoryObjectType (org.talend.core.model.repository.ERepositoryObjectType)1 EUpdateItemType (org.talend.core.model.update.EUpdateItemType)1 IUpdateItemType (org.talend.core.model.update.IUpdateItemType)1