/**
* Copyright (c) 2013 by JP Moresmau
* This code is made available under the terms of the Eclipse Public License,
* version 1.0 (EPL). See http://www.eclipse.org/legal/epl-v10.html
*/
package net.sf.eclipsefp.haskell.ui.views;
import net.sf.eclipsefp.haskell.core.cabal.CabalPackageRef;
import net.sf.eclipsefp.haskell.core.cabal.CabalPackageVersion;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.ui.model.WorkbenchViewerComparator;
/**
* Comparator for cabal packages view objects
*
* @author JP Moresmau
*
*/
public class CabalPackageViewerComparator extends WorkbenchViewerComparator {
@Override
public int compare( final Viewer viewer, final Object e1, final Object e2 ) {
if (e1 instanceof CabalPackageRef && e2 instanceof CabalPackageRef){
return ((CabalPackageRef)e1).getName().compareToIgnoreCase( ((CabalPackageRef)e2).getName() );
}
if (e1 instanceof CabalPackageVersion && e2 instanceof CabalPackageVersion){
return ((CabalPackageVersion)e1).compareTo( (CabalPackageVersion)e2);
}
return super.compare( viewer, e1, e2 );
}
}