/** * Դ�������ƣ�ColumnSelectSorterListener.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�JRES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.metadata.ui * ����˵����Ԫ�����û��༭��UIչ����ع��� * ����ĵ��� * ���ߣ� */ package com.hundsun.ares.studio.ui; import org.apache.commons.lang.StringUtils; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerColumn; import org.eclipse.jface.viewers.ViewerSorter; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; /** * @author wangxh * */ public class ColumnSelectSorterListener extends SelectionAdapter { /** * */ ViewerColumn col; ColumnLabelProvider provider; boolean ASC = true; public ColumnSelectSorterListener(ViewerColumn col,ColumnLabelProvider provider) { super(); this.col=col; this.provider=provider; } @Override public void widgetSelected(SelectionEvent e) { col.getViewer().setSorter(new columnSorter(ASC)); ASC = !ASC; } protected String getObjectText(Object o) { return StringUtils.defaultString(provider.getText(o)); } private class columnSorter extends ViewerSorter{ boolean ASC; public columnSorter(boolean ASC) { super(); this.ASC = ASC; } @Override public int compare(Viewer viewer, Object e1, Object e2) { String text1 = getObjectText(e1); String text2 = getObjectText(e2); if(ASC){ return super.compare(viewer, text1, text2); } else{ return super.compare(viewer, text2, text1); } } } }