public int compare( DockActionSource a, DockActionSource b ){ int indexA = indexOf( hints, a.getLocationHint().getHint() ); int indexB = indexOf( hints, b.getLocationHint().getHint() ); if( indexA == indexB ){ indexA = indexOf( origins, a.getLocationHint().getOrigin() ); indexB = indexOf( origins, b.getLocationHint().getOrigin() ); } if( indexA < indexB ) return -1; if( indexA > indexB ) return 1; return 0; }