if (o1 instanceof RepositoryRoot && o2 instanceof RepositoryRoot) { RepositoryRoot rr1 = (RepositoryRoot) o1; RepositoryRoot rr2 = (RepositoryRoot) o2; // use repository location strings to compare RepositoryRoots ICVSRepositoryLocation rl1 = rr1.getRoot(); ICVSRepositoryLocation rl2 = rr2.getRoot(); switch (Math.abs(order)) { case ORDER_HOST: if (rl1.getHost().compareTo(rl2.getHost()) != 0) return (order / Math.abs(order)) * rl1.getHost().compareTo(rl2.getHost()); case ORDER_LOCATION: if (rl1.getLocation(false).compareTo(rl2.getLocation(false)) != 0) return (order / Math.abs(order)) * (rl1.getLocation(false).compareTo(rl2 .getLocation(false))); // default and any other default: // to jest wywolanie super tylko dla reposow, z przodu ma ten myk z odwracaniem kolejnosci return (order / Math.abs(order)) * super.compare(viewer, o1, o2); } } // tutaj zostaje po staremu -- ten super jest domyslny dla wszystkich typow elementow return super.compare(viewer, o1, o2);