| /******************************************************************************* |
| * Copyright (c) 2011 University of Illinois 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: |
| * Albert L. Rossi - design and implementation |
| ******************************************************************************/ |
| package org.eclipse.ptp.rm.jaxb.ui.sorters; |
| |
| import org.eclipse.jface.viewers.Viewer; |
| import org.eclipse.jface.viewers.ViewerSorter; |
| import org.eclipse.ptp.rm.jaxb.ui.ICellEditorUpdateModel; |
| import org.eclipse.ptp.rm.jaxb.ui.IJAXBUINonNLSConstants; |
| |
| /** |
| * Sorts the viewer on the name column. Clicking a second time on the column |
| * reverses the direction of the sort. |
| * |
| * @author arossi |
| * |
| */ |
| public class AttributeViewerSorter extends ViewerSorter implements IJAXBUINonNLSConstants { |
| protected int toggle = 1; |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface. |
| * viewers.Viewer, java.lang.Object, java.lang.Object) |
| */ |
| @Override |
| public int compare(Viewer viewer, Object o1, Object o2) { |
| int result = 0; |
| |
| if (o1 instanceof ICellEditorUpdateModel && o2 instanceof ICellEditorUpdateModel) { |
| ICellEditorUpdateModel c1 = (ICellEditorUpdateModel) o1; |
| ICellEditorUpdateModel c2 = (ICellEditorUpdateModel) o2; |
| String name1 = c1.getDisplayValue(COLUMN_NAME); |
| String name2 = c2.getDisplayValue(COLUMN_NAME); |
| result = name1.compareTo(name2); |
| } |
| |
| return result * toggle; |
| } |
| |
| public void toggle() { |
| toggle *= -1; |
| } |
| } |