X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.client.ui%2Fsrc%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdecorators%2FResultFailedDecorator.java;fp=org.argeo.slc.client.ui%2Fsrc%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdecorators%2FResultFailedDecorator.java;h=0000000000000000000000000000000000000000;hb=ecc22e604e47533c79de9cecdcdeacbc752cbff1;hp=9d91cc5449aa84416a888207819987c024d96299;hpb=e07ded4632e53f8b8869763bc1f1f4091361e76e;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/decorators/ResultFailedDecorator.java b/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/decorators/ResultFailedDecorator.java deleted file mode 100644 index 9d91cc544..000000000 --- a/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/decorators/ResultFailedDecorator.java +++ /dev/null @@ -1,139 +0,0 @@ -package org.argeo.slc.client.ui.decorators; - -import java.text.DateFormat; -import java.text.SimpleDateFormat; - -import javax.jcr.Node; -import javax.jcr.RepositoryException; - -import org.argeo.slc.SlcException; -import org.argeo.slc.SlcNames; -import org.argeo.slc.client.ui.ClientUiPlugin; -import org.argeo.slc.client.ui.SlcImages; -import org.argeo.slc.client.ui.SlcUiConstants; -import org.argeo.slc.client.ui.model.ResultFolder; -import org.argeo.slc.client.ui.model.ResultParent; -import org.argeo.slc.client.ui.model.SingleResultNode; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.viewers.DecorationOverlayIcon; -import org.eclipse.jface.viewers.IDecoration; -import org.eclipse.jface.viewers.ILabelDecorator; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.swt.graphics.Image; -import org.eclipse.ui.ISharedImages; - -/** Dynamically decorates the results tree. */ -public class ResultFailedDecorator extends LabelProvider implements - ILabelDecorator { - - // FIXME why not use? org.eclipse.jface.viewers.DecoratingLabelProvider - - // private final static Log log = LogFactory - // .getLog(ResultFailedDecorator.class); - - private final static DateFormat dateFormat = new SimpleDateFormat( - SlcUiConstants.DEFAULT_DISPLAY_DATE_TIME_FORMAT); - - // hack for SWT resource leak - // see http://www.eclipse.org/articles/swt-design-2/swt-design-2.html - // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=181215 - private final Image passedFolder; - private final Image failedFolder; - private final Image failedSingleResult; - private final Image errorSingleResult; - private final Image passedSingleResult; - - public ResultFailedDecorator() { - super(); - ImageDescriptor failedDesc = ClientUiPlugin.getDefault().getWorkbench() - .getSharedImages() - .getImageDescriptor(ISharedImages.IMG_DEC_FIELD_ERROR); - failedFolder = new DecorationOverlayIcon(SlcImages.FOLDER, failedDesc, - IDecoration.TOP_LEFT).createImage(); - passedFolder = new DecorationOverlayIcon(SlcImages.FOLDER, - SlcImages.EXECUTION_PASSED, IDecoration.TOP_LEFT).createImage(); - failedSingleResult = new DecorationOverlayIcon( - SlcImages.PROCESS_COMPLETED, failedDesc, IDecoration.TOP_LEFT) - .createImage(); - errorSingleResult = new DecorationOverlayIcon( - SlcImages.PROCESS_COMPLETED, SlcImages.EXECUTION_ERROR, - IDecoration.TOP_LEFT).createImage(); - passedSingleResult = new DecorationOverlayIcon( - SlcImages.PROCESS_COMPLETED, SlcImages.EXECUTION_PASSED, - IDecoration.TOP_LEFT).createImage(); - } - - // Method to decorate Image - public Image decorateImage(Image image, Object object) { - - // This method returns an annotated image or null if the - // image need not be decorated. Returning a null image - // decorates resource icon with basic decorations provided - // by Eclipse - if (object instanceof ResultParent) { - if (((ResultParent) object).isPassed()) { - if (object instanceof SingleResultNode) - return passedSingleResult; - else if (object instanceof ResultFolder) - return passedFolder; - else - return null; - } else { - // ImageDescriptor desc = ClientUiPlugin.getDefault() - // .getWorkbench().getSharedImages() - // .getImageDescriptor(ISharedImages.IMG_DEC_FIELD_ERROR); - // DecorationOverlayIcon decoratedImage = new - // DecorationOverlayIcon( - // image, desc, IDecoration.TOP_LEFT); - // return decoratedImage.createImage(); - if (object instanceof SingleResultNode) { - SingleResultNode srn = (SingleResultNode) object; - boolean isError = false; - try { - isError = srn.getNode() - .getNode(SlcNames.SLC_AGGREGATED_STATUS) - .hasProperty(SlcNames.SLC_ERROR_MESSAGE); - } catch (RepositoryException re) { - // Silent node might not exist - } - if (isError) - return errorSingleResult; - else - return failedSingleResult; - - } else - return failedFolder; - } - } - return null; - } - - // Method to decorate Text - public String decorateText(String label, Object object) { - if (object instanceof SingleResultNode) { - SingleResultNode srNode = (SingleResultNode) object; - Node node = srNode.getNode(); - String decoration = null; - try { - if (node.hasProperty(SlcNames.SLC_COMPLETED)) - decoration = dateFormat.format(node - .getProperty(SlcNames.SLC_COMPLETED).getDate() - .getTime()); - } catch (RepositoryException re) { - throw new SlcException( - "Unexpected error defining text decoration for result", - re); - } - return label + " [" + decoration + "]"; - } else - return null; - } - - @Override - public void dispose() { - failedFolder.dispose(); - failedSingleResult.dispose(); - super.dispose(); - } - -}