/******************************************************************************* * Copyright (c) 2006 Jeff Mesnil * 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 *******************************************************************************/ package net.jmesnil.jmx.ui.internal.views.explorer; import net.jmesnil.jmx.resources.MBeanAttributeInfoWrapper; import net.jmesnil.jmx.resources.MBeanInfoWrapper; import net.jmesnil.jmx.resources.MBeanOperationInfoWrapper; import net.jmesnil.jmx.ui.internal.JMXImages; import net.jmesnil.jmx.ui.internal.MBeanUtils; import net.jmesnil.jmx.ui.internal.tree.DomainNode; import net.jmesnil.jmx.ui.internal.tree.ObjectNameNode; import net.jmesnil.jmx.ui.internal.tree.PropertyNode; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; public class MBeanExplorerLabelProvider extends LabelProvider { private boolean flatLayout; public MBeanExplorerLabelProvider() { } @SuppressWarnings("unchecked")//$NON-NLS-1$ @Override public String getText(Object obj) { if (obj instanceof DomainNode) { DomainNode node = (DomainNode) obj; return node.getDomain(); } if (obj instanceof ObjectNameNode) { ObjectNameNode node = (ObjectNameNode) obj; if (flatLayout) { return node.getObjectName().getKeyPropertyListString(); } else { return node.getValue(); } } if (obj instanceof PropertyNode) { PropertyNode node = (PropertyNode) obj; return node.getValue(); } if (obj instanceof MBeanInfoWrapper) { MBeanInfoWrapper wrapper = (MBeanInfoWrapper) obj; return wrapper.getObjectName().toString(); } if (obj instanceof MBeanOperationInfoWrapper) { MBeanOperationInfoWrapper wrapper = (MBeanOperationInfoWrapper) obj; return MBeanUtils.prettySignature(wrapper.getMBeanOperationInfo()); } if (obj instanceof MBeanAttributeInfoWrapper) { MBeanAttributeInfoWrapper wrapper = (MBeanAttributeInfoWrapper) obj; return wrapper.getMBeanAttributeInfo().getName(); } return obj.toString(); } @Override public Image getImage(Object obj) { if (obj instanceof DomainNode) { return JMXImages.get(JMXImages.IMG_OBJS_LIBRARY); } if (obj instanceof ObjectNameNode) { return JMXImages.get(JMXImages.IMG_OBJS_METHOD); } if (obj instanceof PropertyNode) { return JMXImages.get(JMXImages.IMG_OBJS_PACKAGE); } if (obj instanceof MBeanInfoWrapper) { return JMXImages.get(JMXImages.IMG_OBJS_METHOD); } if (obj instanceof MBeanAttributeInfoWrapper) { return JMXImages.get(JMXImages.IMG_FIELD_PUBLIC); } if (obj instanceof MBeanOperationInfoWrapper) { return JMXImages.get(JMXImages.IMG_MISC_PUBLIC); } String imageKey = ISharedImages.IMG_OBJ_ELEMENT; return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey); } public void setFlatLayout(boolean state) { flatLayout = state; } }