/******************************************************************************* * Copyright (c) 2011 Gluster, Inc. * This file is part of Gluster Management Console. * * Gluster Management Console is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License as published * by the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Gluster Management Console is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License * for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see * . *******************************************************************************/ package org.gluster.storage.management.console.views; import org.eclipse.jface.viewers.IDecoration; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ILightweightLabelDecorator; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.gluster.storage.management.console.Application; import org.gluster.storage.management.console.IImageKeys; import org.gluster.storage.management.core.model.EntityGroup; import org.gluster.storage.management.core.model.GlusterServer; import org.gluster.storage.management.core.model.Server; import org.gluster.storage.management.core.model.Volume; public class NavigationTreeLabelDecorator implements ILightweightLabelDecorator { @Override public void addListener(ILabelProviderListener listener) { } @Override public void dispose() { } @Override public boolean isLabelProperty(Object element, String property) { return false; } @Override public void removeListener(ILabelProviderListener listener) { } @SuppressWarnings("rawtypes") @Override public void decorate(Object element, IDecoration decoration) { if (element instanceof Volume) { Volume volume = (Volume) element; if (volume.getStatus() == Volume.VOLUME_STATUS.OFFLINE) { decoration.addOverlay(AbstractUIPlugin.imageDescriptorFromPlugin(Application.PLUGIN_ID, IImageKeys.OVERLAY_OFFLINE_8x8)); } else { decoration.addOverlay(AbstractUIPlugin.imageDescriptorFromPlugin(Application.PLUGIN_ID, IImageKeys.OVERLAY_ONLINE_8x8)); } } if (element instanceof GlusterServer) { GlusterServer server = (GlusterServer) element; if (server.getStatus() == GlusterServer.SERVER_STATUS.OFFLINE) { decoration.addOverlay(AbstractUIPlugin.imageDescriptorFromPlugin(Application.PLUGIN_ID, IImageKeys.OVERLAY_OFFLINE_8x8)); } else { decoration.addOverlay(AbstractUIPlugin.imageDescriptorFromPlugin(Application.PLUGIN_ID, IImageKeys.OVERLAY_ONLINE_8x8)); } } if (element instanceof Server) { decoration.addOverlay(AbstractUIPlugin.imageDescriptorFromPlugin(Application.PLUGIN_ID, IImageKeys.OVERLAY_STAR_8x8)); } if(element instanceof EntityGroup && ((EntityGroup)element).getEntityType() == Server.class) { decoration.addOverlay(AbstractUIPlugin.imageDescriptorFromPlugin(Application.PLUGIN_ID, IImageKeys.OVERLAY_STAR_8x8)); } } }