/******************************************************************************* * Copyright (c) 2009, 2012 SpringSource, a divison of VMware, 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: * SpringSource, a division of VMware, Inc. - initial API and implementation *******************************************************************************/ package org.eclipse.virgo.ide.runtime.internal.ui.providers; import java.io.File; import org.eclipse.core.resources.IFile; import org.eclipse.debug.internal.ui.DebugPluginImages; import org.eclipse.debug.ui.IDebugUIConstants; import org.eclipse.jface.viewers.IDecoration; import org.eclipse.jface.viewers.ILightweightLabelDecorator; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.model.WorkbenchLabelProvider; import org.eclipse.virgo.ide.runtime.internal.ui.ServerUiImages; /** * * @author Miles Parker * */ public class ServerFileLabelProvider extends LabelProvider implements ILightweightLabelDecorator { private static final String REMOVE_REGEXP = "org\\.eclipse\\.virgo\\.|\\.properties"; WorkbenchLabelProvider delegate = new WorkbenchLabelProvider(); /** * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object) */ @Override public String getText(Object element) { if (element instanceof IFile) { IFile file = (IFile) element; return file.getName().replaceAll(REMOVE_REGEXP, ""); } if (element instanceof File) { File file = (File) element; return file.getName().replaceAll(REMOVE_REGEXP, ""); } if (element instanceof ServerFileSelection) { IFile workspaceFile = ((ServerFile) element).getFile(); String line = ((ServerFileSelection) element).getLine(); if (workspaceFile.getFileExtension() != null && workspaceFile.getFileExtension().equals("properties")) { workspaceFile.getName(); if (workspaceFile.getLocation().toPortableString().contains("repository")) { line += " [User]"; } } return line; } if (element instanceof ServerFile) { IFile workspaceFile = ((ServerFile) element).getFile(); String serverName = workspaceFile.getLocation().lastSegment(); if (workspaceFile.getFileExtension() != null && workspaceFile.getFileExtension().equals("properties")) { if (workspaceFile.getLocation().toPortableString().contains("repository")) { serverName += " [User]"; } } return serverName.replaceAll(REMOVE_REGEXP, ""); } return this.delegate.getText(element); } /** * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object) */ @Override public Image getImage(Object element) { if (element instanceof ServerFileSelection) { return DebugPluginImages.getImage(IDebugUIConstants.IMG_OBJS_VARIABLE); } if (element instanceof ServerFile) { return getImage(((ServerFile) element).getFile()); } return this.delegate.getImage(element); } public void decorate(Object element, IDecoration decoration) { if (element instanceof ServerFile) { ServerFile serverFile = (ServerFile) element; String suffix = " [" + serverFile.getServer() + "] - " + serverFile.getFile().getLocation(); if (element instanceof ServerFileSelection) { suffix += " #" + ((ServerFileSelection) element).getItem(); } decoration.addSuffix(suffix); if (!(element instanceof ServerFileSelection)) { decoration.addOverlay(ServerUiImages.DESC_OBJ_VIRGO_OVER, IDecoration.TOP_LEFT); } } } }