/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.datamanagement.browser; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import de.rcenvironment.core.gui.datamanagement.browser.spi.DMBrowserNode; import de.rcenvironment.core.gui.datamanagement.browser.spi.DMBrowserNodeType; import de.rcenvironment.core.gui.resources.api.ImageManager; import de.rcenvironment.core.gui.resources.api.StandardImages; /** * Label provider for the {@link DataManagementBrowser}. * * @author Markus Litz * @author Robert Mischke * */ public class DMLabelProvider extends ColumnLabelProvider { @Override public Image getImage(Object element) { ImageManager imageManager = ImageManager.getInstance(); Image result = DMBrowserImages.IMG_DEFAULT; DMBrowserNode node = (DMBrowserNode) element; if (node.getType() == DMBrowserNodeType.Workflow && node.getIcon() == null) { result = ImageManager.getInstance().getSharedImage(StandardImages.WORKFLOW_16); } else if (node.getType() == DMBrowserNodeType.Workflow && node.getIcon() != null) { result = node.getIcon(); } else if (node.getType() == DMBrowserNodeType.Workflow_Disabled) { result = ImageManager.getInstance().getSharedImage(StandardImages.WORKFLOW_DISABLED_16); } else if (node.getType() == DMBrowserNodeType.Timeline) { result = DMBrowserImages.IMG_TIMELINE; } else if (node.getType() == DMBrowserNodeType.Components) { result = DMBrowserImages.IMG_COMPONENTS; } else if ((node.getType() == DMBrowserNodeType.Component || node.getType() == DMBrowserNodeType.HistoryObject) && node.getIcon() != null) { result = node.getIcon(); } else if (node.getType() == DMBrowserNodeType.DMDirectoryReference) { result = ImageManager.getInstance().getSharedImage(StandardImages.FOLDER_16); } else if (node.getType() == DMBrowserNodeType.DMFileResource) { result = ImageManager.getInstance().getSharedImage(StandardImages.FILE_16); //Check if the file is a workflow file. The null check is necessary because the node can also be a parent //node if several files are sent to the same output, in this case the associatedFilename of the parent //node is null. if (node.getAssociatedFilename() != null && node.getAssociatedFilename().matches(".*\\.wf")) { result = imageManager.getSharedImage(StandardImages.WORKFLOW_16); } } else if (node.getType() == DMBrowserNodeType.InformationText) { result = ImageManager.getInstance().getSharedImage(StandardImages.INFORMATION_16); } else if (node.getType() == DMBrowserNodeType.ComponentHostInformation) { result = DMBrowserImages.IMG_COMPONENTS; } else if (node.getType() == DMBrowserNodeType.WarningText) { result = ImageManager.getInstance().getSharedImage(StandardImages.WARNING_16); } else if (node.getType() == DMBrowserNodeType.HistoryRoot) { result = DMBrowserImages.IMG_DEFAULT; // return DMBrowserImages.IMG_DATA_MANAGEMENT; // } else if (file.type == DMBrowserNodeType.Resource) { // return DMBrowserImages.IMG_FILE; // } else if (file.type == DMBrowserNodeType.VersionizedResource) { // return DMBrowserImages.imageRevision; // } else if (file.type == DMBrowserNodeType.Component) { // return DMBrowserImages.imageComponent; } else if (node.getType() == DMBrowserNodeType.WorkflowRunInformation) { result = DMBrowserImages.IMG_WF_RUN_INFO; } else if (node.getType() == DMBrowserNodeType.Loading) { result = ImageManager.getInstance().getSharedImage(StandardImages.REFRESH_16); } else if (node.getType() == DMBrowserNodeType.ShortText) { result = imageManager.getSharedImage(StandardImages.DATATYPE_SHORTTEXT_16); } else if (node.getType() == DMBrowserNodeType.Boolean) { result = imageManager.getSharedImage(StandardImages.DATATYPE_BOOLEAN_16); } else if (node.getType() == DMBrowserNodeType.Integer) { result = imageManager.getSharedImage(StandardImages.DATATYPE_INTEGER_16); } else if (node.getType() == DMBrowserNodeType.Float) { result = imageManager.getSharedImage(StandardImages.DATATYPE_FLOAT_16); } else if (node.getType() == DMBrowserNodeType.Vector) { result = imageManager.getSharedImage(StandardImages.DATATYPE_VECTOR_16); } else if (node.getType() == DMBrowserNodeType.SmallTable) { result = imageManager.getSharedImage(StandardImages.DATATYPE_SMALLTABLE_16); } else if (node.getType() == DMBrowserNodeType.Indefinite) { result = imageManager.getSharedImage(StandardImages.DATATYPE_INDEFINITE_16); } else if (node.getType() == DMBrowserNodeType.File) { result = imageManager.getSharedImage(StandardImages.DATATYPE_FILE_16); } else if (node.getType() == DMBrowserNodeType.Directory) { result = imageManager.getSharedImage(StandardImages.DATATYPE_DIRECTORY_16); } else if (node.getType() == DMBrowserNodeType.Matrix) { result = imageManager.getSharedImage(StandardImages.DATATYPE_MATRIX_16); } else if (node.getType() == DMBrowserNodeType.Input) { result = imageManager.getSharedImage(StandardImages.INPUT_16); } else if (node.getType() == DMBrowserNodeType.Output) { result = imageManager.getSharedImage(StandardImages.OUTPUT_16); } else if (node.getType() == DMBrowserNodeType.LogFolder) { result = imageManager.getSharedImage(StandardImages.FILES_16); } else if (node.getType() == DMBrowserNodeType.ToolInputOutputFolder) { result = imageManager.getSharedImage(StandardImages.TOOL_INPUT_OUTPUT_16); } else if (node.getType() == DMBrowserNodeType.IntermediateInputsFolder) { result = imageManager.getSharedImage(StandardImages.INTERMEDIATE_INPUT_16); } else if (node.getType() == DMBrowserNodeType.CommonText) { result = imageManager.getSharedImage(StandardImages.COMMON_TEXT_16); } else if (node.getType() == DMBrowserNodeType.Custom && node.getIcon() != null) { result = node.getIcon(); } else if (node.getType() == DMBrowserNodeType.SqlFolder) { result = imageManager.getSharedImage(StandardImages.SQL_STATEMENTS); } return result; } @Override public String getText(Object element) { DMBrowserNode node = (DMBrowserNode) element; return node.getTitle(); } @Override public String getToolTipText(Object element) { DMBrowserNode node = (DMBrowserNode) element; return node.getToolTip(); } @Override public Color getForeground(Object element) { DMBrowserNode node = (DMBrowserNode) element; if (!node.isEnabled()) { return Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND); } return super.getForeground(element); } }