| /******************************************************************************* |
| * Copyright (c) 2003, 2007 IBM Corporation and others. |
| * 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: |
| * IBM Corporation - Initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.wst.server.ui.internal.view.servers; |
| |
| import org.eclipse.core.runtime.IStatus; |
| import org.eclipse.jface.viewers.ILabelProvider; |
| import org.eclipse.ui.ISharedImages; |
| import org.eclipse.ui.PlatformUI; |
| import org.eclipse.wst.server.core.IServer; |
| import org.eclipse.wst.server.core.IServerType; |
| import org.eclipse.wst.server.core.internal.Server; |
| import org.eclipse.wst.server.ui.ServerUICore; |
| import org.eclipse.wst.server.ui.internal.ImageResource; |
| import org.eclipse.wst.server.ui.internal.Messages; |
| import org.eclipse.wst.server.ui.internal.ServerUIPlugin; |
| import org.eclipse.wst.server.ui.internal.provisional.UIDecoratorManager; |
| import org.eclipse.wst.server.ui.internal.viewers.BaseCellLabelProvider; |
| import org.eclipse.wst.server.ui.internal.viewers.ServerTreeContentProvider; |
| import org.eclipse.swt.graphics.Image; |
| /** |
| * Server table label provider. |
| */ |
| public class ServerTableLabelProvider extends BaseCellLabelProvider { |
| public static final String[] syncState = new String[] { |
| Messages.viewSyncOkay, |
| Messages.viewSyncRestart, |
| Messages.viewSyncPublish, |
| Messages.viewSyncRestartPublish, |
| Messages.viewSyncPublishing}; |
| |
| public static final String[] syncStateUnmanaged = new String[] { |
| Messages.viewSyncOkay2, |
| Messages.viewSyncRestart2, |
| Messages.viewSyncPublish2, |
| Messages.viewSyncRestartPublish2, |
| Messages.viewSyncPublishing2}; |
| |
| private static final String[] modulePublishState = new String[] { |
| "", |
| Messages.viewSyncOkay, |
| Messages.viewSyncPublish, |
| Messages.viewSyncPublish}; |
| |
| private int count = 0; |
| |
| protected IServer defaultServer; |
| |
| /** |
| * ServerTableLabelProvider constructor comment. |
| */ |
| public ServerTableLabelProvider() { |
| // Ensure decorator is initialized. |
| super(null); |
| } |
| |
| public void setDefaultServer(IServer ds) { |
| defaultServer = ds; |
| } |
| |
| public IServer getDefaultServer() { |
| return defaultServer; |
| } |
| |
| public Image getColumnImage(Object element, int columnIndex) { |
| if (element instanceof ServerTreeContentProvider.TreeElement) { |
| if (columnIndex == 0) { |
| ISharedImages sharedImages = PlatformUI.getWorkbench().getSharedImages(); |
| return sharedImages.getImage(ISharedImages.IMG_OBJ_FOLDER); |
| } |
| return null; |
| } |
| if (element instanceof ModuleServer) { |
| ModuleServer ms = (ModuleServer) element; |
| if (columnIndex == 0) { |
| //return ServerUICore.getLabelProvider().getImage(ms.module[ms.module.length - 1]); |
| ILabelProvider labelProvider = ServerUICore.getLabelProvider(); |
| Image image = labelProvider.getImage(ms.module[ms.module.length - 1]); |
| labelProvider.dispose(); |
| if (decorator != null) { |
| Image dec = decorator.decorateImage(image, ms); |
| if (dec != null) |
| return dec; |
| } |
| return image; |
| } else if (columnIndex == 1) { |
| if (ms.server == null) |
| return null; |
| |
| /*int state = ms.server.getModuleState(ms.module); |
| if (state == IServer.STATE_STARTED) |
| return ImageResource.getImage(ImageResource.IMG_STATE_STARTED); |
| else if (state == IServer.STATE_STOPPED) |
| return ImageResource.getImage(ImageResource.IMG_STATE_STOPPED); |
| */ |
| return getStateImage(ms.server.getServerType(), ms.server.getModuleState(ms.module), null); |
| } else if (columnIndex == 2) { |
| IStatus status = ((Server) ms.server).getModuleStatus(ms.module); |
| if (status != null) { |
| ISharedImages sharedImages = ServerUIPlugin.getInstance().getWorkbench().getSharedImages(); |
| if (status.getSeverity() == IStatus.ERROR) |
| return sharedImages.getImage(ISharedImages.IMG_OBJS_ERROR_TSK); |
| else if (status.getSeverity() == IStatus.WARNING) |
| return sharedImages.getImage(ISharedImages.IMG_OBJS_WARN_TSK); |
| else if (status.getSeverity() == IStatus.INFO) |
| return sharedImages.getImage(ISharedImages.IMG_OBJS_INFO_TSK); |
| } |
| } |
| return null; |
| } |
| IServer server = (IServer) element; |
| if (columnIndex == 0) { |
| if (server.getServerType() != null) { |
| Image image = ImageResource.getImage(server.getServerType().getId()); |
| /*IStatus status = ((Server) server).getServerStatus(); |
| if (defaultServer != null && defaultServer.equals(server) || status != null) { |
| Image decorated = decorator.decorateImage(image, element); |
| if (decorated != null) |
| return decorated; |
| }*/ |
| //return image; |
| if (decorator != null) { |
| Image dec = decorator.decorateImage(image, server); |
| if (dec != null) |
| return dec; |
| } |
| return image; |
| } |
| return null; |
| } else if (columnIndex == 1) { |
| IServerType serverType = server.getServerType(); |
| if (serverType == null) |
| return null; |
| //if (serverType.getServerStateSet() == IServerType.SERVER_STATE_SET_PUBLISHED) |
| // return null; |
| return getServerStateImage(server); |
| } else |
| return null; |
| } |
| |
| public String getText(Object element) { |
| return getColumnText(element, 0); |
| } |
| |
| public String getColumnText(Object element, int columnIndex) { |
| if (element instanceof ServerTreeContentProvider.TreeElement) { |
| if (columnIndex == 0) |
| return ((ServerTreeContentProvider.TreeElement) element).text; |
| return ""; |
| } |
| if (element instanceof ModuleServer) { |
| ModuleServer ms = (ModuleServer) element; |
| if (columnIndex == 0) { |
| if (ms.module == null) |
| return ""; |
| int size = ms.module.length; |
| String name = ms.module[size - 1].getName(); |
| if (decorator != null) { |
| String dec = decorator.decorateText(name, ms); |
| if (dec != null) |
| return dec; |
| } |
| return name; |
| } else if (columnIndex == 1) { |
| if (ms.server == null) |
| return ""; |
| return getStateLabel(ms.server.getServerType(), ms.server.getModuleState(ms.module), null); |
| } else if (columnIndex == 2) { |
| IStatus status = ((Server) ms.server).getModuleStatus(ms.module); |
| if (status != null) |
| return status.getMessage(); |
| |
| return modulePublishState[ms.server.getModulePublishState(ms.module)]; |
| } |
| } |
| IServer server = (IServer) element; |
| if (columnIndex == 0) |
| return notNull(server.getName()); |
| else if (columnIndex == 1) { |
| IServerType serverType = server.getServerType(); |
| if (serverType != null) |
| return getServerStateLabel(server); |
| |
| return ""; |
| } else if (columnIndex == 2) { |
| IStatus status = ((Server) server).getServerStatus(); |
| if (status != null) |
| return status.getMessage(); |
| |
| if (server.getServerType() == null) |
| return ""; |
| |
| //if (server.getServerType().hasServerConfiguration() && server.getServerConfiguration() == null) |
| // return Messages.viewNoConfiguration"); |
| |
| if (server.getServerState() == IServer.STATE_UNKNOWN) |
| return ""; |
| |
| String serverId = server.getId(); |
| if (ServerTableViewer.publishing.contains(serverId)) |
| return syncState[4]; |
| |
| // republish |
| int i = 0; |
| if (server.shouldPublish()) { |
| if (((Server)server).isPublishUnknown()) |
| return ""; |
| i += 2; |
| } |
| |
| if (server.shouldRestart()) |
| i = 1; |
| |
| //IServerType serverType = server.getServerType(); |
| // TODO: state set |
| //if (serverType.getServerStateSet() == IServerType.SERVER_STATE_SET_MANAGED) |
| return syncState[i]; |
| //return syncStateUnmanaged[i]; |
| } else |
| return "-"; |
| } |
| |
| protected String notNull(String s) { |
| if (s == null) |
| return ""; |
| return s; |
| } |
| |
| public boolean isLabelProperty(Object element, String property) { |
| return false; |
| } |
| |
| /** |
| * Returns an image representing the server's state. |
| * |
| * @return org.eclipse.jface.parts.IImage |
| * @param server org.eclipse.wst.server.core.IServer |
| */ |
| protected Image getServerStateImage(IServer server) { |
| return getStateImage(server.getServerType(), server.getServerState(), server.getMode()); |
| } |
| |
| /** |
| * Returns an image representing the given state. |
| * |
| * @return org.eclipse.jface.parts.IImage |
| */ |
| protected Image getStateImage(IServerType serverType, int state, String mode) { |
| return UIDecoratorManager.getUIDecorator(serverType).getStateImage(state, mode, count); |
| /*if (state == IServer.STATE_UNKNOWN) |
| return null; |
| else if (state == IServer.STATE_STARTING) |
| return startingImages[count]; |
| else if (state == IServer.STATE_STOPPING) |
| return stoppingImages[count]; |
| else if (state == IServer.STATE_STOPPED) |
| return ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPED); |
| else { //if (state == IServer.STATE_STARTED) { |
| //String mode = server.getMode(); |
| if (ILaunchManager.DEBUG_MODE.equals(mode)) |
| return ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTED_DEBUG); |
| else if (ILaunchManager.PROFILE_MODE.equals(mode)) |
| return ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTED_PROFILE); |
| else |
| return ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTED); |
| }*/ |
| } |
| |
| /** |
| * Returns a string representing the server's state. |
| * |
| * @return java.lang.String |
| * @param server org.eclipse.wst.server.core.IServer |
| */ |
| protected String getServerStateLabel(IServer server) { |
| return getStateLabel(server.getServerType(), server.getServerState(), server.getMode()); |
| } |
| |
| /** |
| * Returns a string representing the given state. |
| * |
| * @return java.lang.String |
| */ |
| protected String getStateLabel(IServerType serverType, int state, String mode) { |
| return UIDecoratorManager.getUIDecorator(serverType).getStateLabel(state, mode, count); |
| /*if (stateSet == IServerType.SERVER_STATE_SET_PUBLISHED) |
| return ""; |
| |
| if (stateSet == IServerType.SERVER_STATE_SET_MANAGED) { |
| if (state == IServer.STATE_UNKNOWN) |
| return ""; |
| else if (state == IServer.STATE_STARTING) |
| return startingText[count]; |
| else if (state == IServer.STATE_STOPPING) |
| return stoppingText[count]; |
| else if (state == IServer.STATE_STARTED) { |
| if (ILaunchManager.DEBUG_MODE.equals(mode)) |
| return Messages.viewStatusStartedDebug"); |
| else if (ILaunchManager.PROFILE_MODE.equals(mode)) |
| return Messages.viewStatusStartedProfile"); |
| else |
| return Messages.viewStatusStarted"); |
| } else if (state == IServer.STATE_STOPPED) |
| return Messages.viewStatusStopped"); |
| } |
| |
| return serverStateUnmanaged[state];*/ |
| } |
| |
| protected void animate() { |
| count ++; |
| if (count > 2) |
| count = 0; |
| } |
| } |