/******************************************************************************* * Copyright (c) 2012 - 2013 Pivotal Software, Inc. * 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: * Pivotal Software, Inc. - initial API and implementation *******************************************************************************/ package com.vmware.vfabric.ide.eclipse.tcserver.livegraph; import java.util.Iterator; import java.util.List; import org.eclipse.core.runtime.CoreException; import org.eclipse.jface.viewers.IColorProvider; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jst.server.tomcat.core.internal.TomcatConfiguration; import org.eclipse.jst.server.tomcat.core.internal.WebModule; import org.eclipse.jst.server.tomcat.ui.internal.TomcatUIPlugin; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import org.eclipse.wst.server.core.IModule; import org.eclipse.wst.server.core.IServer; import org.eclipse.wst.server.ui.ServerUICore; import com.vmware.vfabric.ide.eclipse.tcserver.internal.core.TcServer; /** * @author Leo Dos Santos */ @SuppressWarnings("restriction") public class LiveBeansTableLabelProvider extends LabelProvider implements IColorProvider { private final IServer server; private final ILabelProvider delegate; private final TcServer workingCopy; public LiveBeansTableLabelProvider(IServer server) { super(); this.server = server; delegate = ServerUICore.getLabelProvider(); workingCopy = (TcServer) server.loadAdapter(TcServer.class, null); } @Override public void dispose() { delegate.dispose(); super.dispose(); } public Color getBackground(Object element) { // TODO Auto-generated method stub return null; } public Color getForeground(Object element) { if (element instanceof DeployedApplication) { DeployedApplication application = (DeployedApplication) element; if (!application.isLiveBeansEnabled()) { return Display.getDefault().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND); } } return null; } @Override public Image getImage(Object element) { if (element instanceof DeployedApplication) { String appName = ((DeployedApplication) element).getName(); IModule[] modules = server.getModules(); for (IModule module : modules) { if (module.getName().equals(appName)) { return delegate.getImage(module); } } return TomcatUIPlugin.getImage(TomcatUIPlugin.IMG_WEB_MODULE); } return super.getImage(element); } @Override public String getText(Object element) { if (element instanceof DeployedApplication) { DeployedApplication application = (DeployedApplication) element; try { TomcatConfiguration configuration = workingCopy.getTomcatConfiguration(); if (configuration != null) { List modules = configuration.getWebModules(); Iterator iter = modules.iterator(); while (iter.hasNext()) { WebModule module = (WebModule) iter.next(); if (application.getPath().equals(module.getPath())) { return module.getDocumentBase(); } } } } catch (CoreException e) { // ignore } return application.getName(); } return super.getText(element); } }