Java tutorial
/******************************************************************************* * Copyright (c) 2011 Subgraph. * 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: * Subgraph - initial API and implementation ******************************************************************************/ package com.subgraph.vega.ui.scanner.alerts; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; import com.subgraph.vega.api.model.alerts.IScanAlert; import com.subgraph.vega.api.model.alerts.IScanInstance; import com.subgraph.vega.ui.scanner.Activator; import com.subgraph.vega.ui.scanner.alerts.tree.AlertScanNode; import com.subgraph.vega.ui.util.ImageCache; public class AlertTreeLabelProvider extends LabelProvider { private final static String ALERT_ITEM = "icons/alert_item.png"; private final ImageCache imageCache = new ImageCache(Activator.PLUGIN_ID); private boolean activeBlinkState; public String getText(Object element) { if (element instanceof IAlertTreeNode) { final IAlertTreeNode node = (IAlertTreeNode) element; final int childCount = node.getAlertCount(); if (childCount <= 1) { return node.getLabel(); } else { return node.getLabel() + " (" + childCount + ")"; } } else if (element instanceof IScanAlert) { return ((IScanAlert) element).getResource(); } else { return "???"; } } public Image getImage(Object element) { if (element instanceof AlertScanNode) { AlertScanNode node = (AlertScanNode) element; if (node.getScanInstance() != null && node.getScanInstance().getScanStatus() == IScanInstance.SCAN_AUDITING) { activeBlinkState = !activeBlinkState; if (activeBlinkState) { return imageCache.get(node.getImage()); } else { return imageCache.getDisabled(node.getImage()); } } else { return imageCache.get(node.getImage()); } } else if (element instanceof IAlertTreeNode) { final String imageKey = ((IAlertTreeNode) element).getImage(); if (imageKey != null) { return imageCache.get(imageKey); } } else if (element instanceof IScanAlert) { return imageCache.get(ALERT_ITEM); } return null; } }