Search in sources :

Example 11 with IUpdateItemType

use of org.talend.core.model.update.IUpdateItemType 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)

Example 12 with IUpdateItemType

use of org.talend.core.model.update.IUpdateItemType in project tdi-studio-se by Talend.

the class UpdateJunitNodeCommand method execute.

/*
     * (non-Javadoc)
     * 
     * @see org.eclipse.gef.commands.Command#execute()
     */
@Override
public void execute() {
    Object job = result.getJob();
    if (job == null) {
        return;
    }
    if (job instanceof IProcess2) {
        Item item = ((IProcess2) job).getProperty().getItem();
        if (GlobalServiceRegister.getDefault().isServiceRegistered(ITestContainerProviderService.class)) {
            ITestContainerProviderService testContainerService = (ITestContainerProviderService) GlobalServiceRegister.getDefault().getService(ITestContainerProviderService.class);
            if (testContainerService != null) {
                boolean isTestContainer = testContainerService.isTestContainerItem(item);
                if (!isTestContainer) {
                    return;
                }
                IUpdateItemType updateType = result.getUpdateType();
                if (updateType instanceof EUpdateItemType) {
                    switch((EUpdateItemType) updateType) {
                        case JUNIT_RELOAD:
                            List<Node> junitsNodes = (List<Node>) result.getUpdateObject();
                            if (junitsNodes != null && !junitsNodes.isEmpty()) {
                                for (Node node : junitsNodes) {
                                    testContainerService.reloadJunitsNodes(node);
                                }
                            }
                        default:
                    }
                }
            }
        }
    }
}
Also used : Item(org.talend.core.model.properties.Item) Node(org.talend.designer.core.ui.editor.nodes.Node) IProcess2(org.talend.core.model.process.IProcess2) IUpdateItemType(org.talend.core.model.update.IUpdateItemType) List(java.util.List) EUpdateItemType(org.talend.core.model.update.EUpdateItemType) ITestContainerProviderService(org.talend.core.ui.ITestContainerProviderService)

Aggregations

IUpdateItemType (org.talend.core.model.update.IUpdateItemType)12 EUpdateItemType (org.talend.core.model.update.EUpdateItemType)8 List (java.util.List)7 IProcess2 (org.talend.core.model.process.IProcess2)6 IProcess (org.talend.core.model.process.IProcess)5 Node (org.talend.designer.core.ui.editor.nodes.Node)5 ArrayList (java.util.ArrayList)4 IElementParameter (org.talend.core.model.process.IElementParameter)4 INode (org.talend.core.model.process.INode)4 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)4 Item (org.talend.core.model.properties.Item)3 IGEFProcess (org.talend.core.ui.process.IGEFProcess)3 IDesignerCoreUIService (org.talend.core.ui.services.IDesignerCoreUIService)3 PropertyChangeEvent (java.beans.PropertyChangeEvent)2 IContext (org.talend.core.model.process.IContext)2 EUpdateResult (org.talend.core.model.update.EUpdateResult)2 UpdateResult (org.talend.core.model.update.UpdateResult)2 ITestContainerProviderService (org.talend.core.ui.ITestContainerProviderService)2 Process (org.talend.designer.core.ui.editor.process.Process)2 IOException (java.io.IOException)1