sysmodelmgr/com.symbian.smt.gui/src/com/symbian/smt/gui/OutOfSyncDecorator.java
changeset 0 522a326673b6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysmodelmgr/com.symbian.smt.gui/src/com/symbian/smt/gui/OutOfSyncDecorator.java	Thu Mar 11 19:08:43 2010 +0200
@@ -0,0 +1,104 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+package com.symbian.smt.gui;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.IDecoration;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ILightweightLabelDecorator;
+import org.osgi.framework.Bundle;
+
+public class OutOfSyncDecorator implements ILightweightLabelDecorator {
+	private static final Bundle bundle = Platform
+			.getBundle("com.symbian.smt.gui");
+	private static final Path path = new Path("icons/SITK_Decorator_error.gif");
+	private SmmPartListener temp = new SmmPartListener();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.
+	 * jface.viewers.ILabelProviderListener)
+	 */
+	public void addListener(ILabelProviderListener listener) {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang
+	 * .Object, org.eclipse.jface.viewers.IDecoration)
+	 */
+	public void decorate(Object element, IDecoration decoration) {
+
+		String projectName = null;
+
+		if (element instanceof IFile || element instanceof IProject) {
+			IResource aResource = (IResource) element;
+			projectName = aResource.getProject().getName();
+
+			if (aResource.isDerived() || aResource instanceof IProject) {
+				decorateProject(projectName, decoration);
+			}
+		}
+	}
+
+	public void decorateProject(String projectName, IDecoration decoration) {
+		if (!temp.isInSync(projectName)) {
+			decoration.addOverlay(ImageDescriptor.createFromURL(FileLocator
+					.find(bundle, path, null)));
+		} else {
+			decoration.addOverlay(null);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
+	 */
+	public void dispose() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang
+	 * .Object, java.lang.String)
+	 */
+	public boolean isLabelProperty(Object element, String property) {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse
+	 * .jface.viewers.ILabelProviderListener)
+	 */
+	public void removeListener(ILabelProviderListener listener) {
+	}
+}