/*******************************************************************************
* 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.tables;
import javax.management.MBeanAttributeInfo;
import net.jmesnil.jmx.resources.MBeanAttributeInfoWrapper;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.swt.SWT;
class AttributesViewerSorter extends ViewerSorter {
int direction, index;
protected AttributesViewerSorter(int direction, int index) {
this.direction = (direction == SWT.UP ? -1 : 1);
this.index = index;
}
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
if (e1 instanceof MBeanAttributeInfoWrapper
&& e2 instanceof MBeanAttributeInfoWrapper) {
MBeanAttributeInfo attrInfo1 = ((MBeanAttributeInfoWrapper) e1)
.getMBeanAttributeInfo();
MBeanAttributeInfo attrInfo2 = ((MBeanAttributeInfoWrapper) e2)
.getMBeanAttributeInfo();
if (index == 0)
return direction
* attrInfo1.getName().compareTo(attrInfo2.getName());
}
return direction * super.compare(viewer, e1, e2);
}
}