org.jboss.tools.batch.ui.JobImages.java Source code

Java tutorial

Introduction

Here is the source code for org.jboss.tools.batch.ui.JobImages.java

Source

/*************************************************************************************
 * Copyright (c) 2015 Red Hat, Inc. and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     JBoss by Red Hat - Initial implementation.
 ************************************************************************************/
package org.jboss.tools.batch.ui;

import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;
import org.jboss.tools.batch.core.BatchArtifactType;
import org.jboss.tools.batch.core.BatchConstants;
import org.jboss.tools.batch.ui.editor.internal.model.Job;
import org.jboss.tools.common.ui.CommonUIImages;

/**
 * Builds images for Sapphire model of Batch Job XML. 
 * 
 * @author Viacheslav Kabanovich
 *
 */
public class JobImages {
    public static final String ANALYZER_IMAGE = "partition.png"; //$NON-NLS-1$
    public static final String BATCHLET_IMAGE = "batchlet.png"; //$NON-NLS-1$
    public static final String CHECKPOINT_ALGORITHM_IMAGE = "checkpoint-algorithm.png"; //$NON-NLS-1$
    public static final String COLLECTOR_IMAGE = "partition.png"; //$NON-NLS-1$
    public static final String DECISION_IMAGE = "decision.png"; //$NON-NLS-1$
    public static final String FLOW_IMAGE = "flow.png"; //$NON-NLS-1$
    public static final String JOB_LISTENER_IMAGE = "listener.png"; //$NON-NLS-1$
    public static final String JOB_IMAGE = "job.png"; //$NON-NLS-1$
    public static final String MAPPER_IMAGE = "partition.png"; //$NON-NLS-1$
    public static final String PROCESSOR_IMAGE = "processor.png"; //$NON-NLS-1$
    public static final String PROPERTY_IMAGE = "property.png"; //$NON-NLS-1$
    public static final String READER_IMAGE = "reader.png"; //$NON-NLS-1$
    public static final String REDUCER_IMAGE = "partition.png"; //$NON-NLS-1$
    public static final String STEP_LISTENER_IMAGE = "listener.png"; //$NON-NLS-1$
    public static final String WRITER_IMAGE = "writer.png"; //$NON-NLS-1$

    public static final String NEW_JOB_XML_IMAGE = "BatchXMLWizBan.png"; //$NON-NLS-1$
    public static final String NEW_ARTIFACT_IMAGE = "BatchArtifactWizBan.png"; //$NON-NLS-1$

    public static final String QUICKFIX_EDIT_IMAGE = "batch_edit.png"; //$NON-NLS-1$

    private JobImages() {
    }

    /**
     * Returns image by short name. Works only for images placed with Sapphire model interface Job.
     * @see Job
     * 
     * @param key
     * @return
     */
    public static Image getImage(String key) {
        return getImage(getImageDescriptor(key));
    }

    public static ImageDescriptor getImageDescriptor(String key) {
        ImageDescriptor descriptor = getImageRegistry().getDescriptor(key);
        if (descriptor == null) {
            descriptor = ImageDescriptor.createFromFile(Job.class, key);
            getImageRegistry().put(key, descriptor);
        }
        return descriptor;
    }

    static ImageRegistry getImageRegistry() {
        return BatchUIPlugin.getDefault().getImageRegistry();
    }

    static Image getImage(ImageDescriptor descriptor) {
        return CommonUIImages.getImage(descriptor);
    }

    /**
     * Returns image by batch artifact type.
     * 
     * @param element
     * @return
     */
    public static Image getImageByElement(BatchArtifactType element) {
        return getImage(getImageDescriptorByElement(element));
    }

    /**
     * Returns image descriptor by batch artifact type.
     * 
     * @param element
     * @return
     */
    public static ImageDescriptor getImageDescriptorByElement(BatchArtifactType element) {
        if (element == BatchArtifactType.BATCHLET) {
            return getImageDescriptor(BATCHLET_IMAGE);
        } else if (element == BatchArtifactType.CHECKPOINT_ALGORITHM) {
            return getImageDescriptor(CHECKPOINT_ALGORITHM_IMAGE);
        } else if (element == BatchArtifactType.DECIDER) {
            return getImageDescriptor(DECISION_IMAGE);
        } else if (element == BatchArtifactType.ITEM_READER) {
            return getImageDescriptor(READER_IMAGE);
        } else if (element == BatchArtifactType.ITEM_WRITER) {
            return getImageDescriptor(WRITER_IMAGE);
        } else if (element == BatchArtifactType.ITEM_PROCESSOR) {
            return getImageDescriptor(PROCESSOR_IMAGE);
        } else if (element == BatchArtifactType.PARTITION_MAPPER) {
            return getImageDescriptor(MAPPER_IMAGE);
        } else if (element == BatchArtifactType.PARTITION_COLLECTOR) {
            return getImageDescriptor(COLLECTOR_IMAGE);
        } else if (element == BatchArtifactType.PARTITION_ANALYZER) {
            return getImageDescriptor(ANALYZER_IMAGE);
        } else if (element == BatchArtifactType.PARTITION_REDUCER) {
            return getImageDescriptor(REDUCER_IMAGE);
        } else if (element == BatchArtifactType.JOB_LISTENER) {
            return getImageDescriptor(JOB_LISTENER_IMAGE);
        } else if (element.getTag().equals(BatchConstants.TAG_STEP)) {
            return getImageDescriptor(STEP_LISTENER_IMAGE);
        }
        return null;
    }
}