Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
Fix sorting issue
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Eng committed Apr 24, 2014
1 parent 0323f24 commit 7de1e51
Show file tree
Hide file tree
Showing 12 changed files with 127 additions and 137 deletions.
2 changes: 1 addition & 1 deletion zanata-war/pom.xml
Expand Up @@ -42,7 +42,7 @@
Waiting for 2.9.0-01. -->
<groovy.eclipse.compiler.version>2.7.0-01</groovy.eclipse.compiler.version>

<zanata.web.assets.version>4</zanata.web.assets.version>
<zanata.web.assets.version>5</zanata.web.assets.version>
</properties>

<build>
Expand Down
39 changes: 13 additions & 26 deletions zanata-war/src/main/java/org/zanata/action/ProjectHomeAction.java
Expand Up @@ -59,6 +59,7 @@
import org.zanata.ui.FilterUtil;
import org.zanata.ui.model.statistic.WordStatistic;
import org.zanata.util.ComparatorUtil;
import org.zanata.util.DateUtil;
import org.zanata.util.StatisticsUtil;
import org.zanata.util.UrlUtil;
import org.zanata.util.ZanataMessages;
Expand Down Expand Up @@ -180,7 +181,6 @@ public WordStatistic getStatisticForVersion(String versionSlug) {
*/
public void sortVersionList() {
Collections.sort(projectVersions, versionComparator);
versionFilter.resetQueryAndPage();
}

private class VersionComparator implements Comparator<HProjectIteration> {
Expand All @@ -191,16 +191,11 @@ public VersionComparator(SortingType sortingType) {
}

@Override
public int compare(HProjectIteration compareFrom,
HProjectIteration compareTo) {
final HProjectIteration item1, item2;

if (sortingType.isDescending()) {
item1 = compareFrom;
item2 = compareTo;
} else {
item1 = compareTo;
item2 = compareFrom;
public int compare(HProjectIteration o1, HProjectIteration o2) {
if (!sortingType.isDescending()) {
HProjectIteration temp = o1;
o1 = o2;
o2 = temp;
}

SortingType.SortOption selectedSortOption =
Expand All @@ -211,9 +206,9 @@ public int compare(HProjectIteration compareFrom,
.equals(SortingType.SortOption.LAST_ACTIVITY)) {

WordStatistic wordStatistic1 =
getStatisticForVersion(item1.getSlug());
getStatisticForVersion(o1.getSlug());
WordStatistic wordStatistic2 =
getStatisticForVersion(item2.getSlug());
getStatisticForVersion(o2.getSlug());

if (selectedSortOption
.equals(SortingType.SortOption.PERCENTAGE)) {
Expand All @@ -234,22 +229,14 @@ public int compare(HProjectIteration compareFrom,
}
} else if (selectedSortOption
.equals(SortingType.SortOption.ALPHABETICAL)) {
return item1.getSlug().toLowerCase()
.compareTo(item2.getSlug().toLowerCase());
return o1.getSlug().toLowerCase()
.compareTo(o2.getSlug().toLowerCase());
} else if (selectedSortOption
.equals(SortingType.SortOption.LAST_ACTIVITY)) {

Date date1 = getVersionLastActivityDate(item1.getId());
Date date2 = getVersionLastActivityDate(item2.getId());

if (date1 == date2) {
return 0;
} else if (date1 == null) {
return -1;
} else if (date2 == null) {
return 1;
}
return date1.compareTo(date2);
Date date1 = getVersionLastActivityDate(o1.getId());
Date date2 = getVersionLastActivityDate(o2.getId());
return DateUtil.compareDate(date1, date2);
}
return 0;
}
Expand Down
Expand Up @@ -197,15 +197,11 @@ public LanguageComparator(SortingType sortingType) {
}

@Override
public int compare(HLocale compareFrom, HLocale compareTo) {
final HLocale item1, item2;

if (sortingType.isDescending()) {
item1 = compareFrom;
item2 = compareTo;
} else {
item1 = compareTo;
item2 = compareFrom;
public int compare(HLocale o1, HLocale o2) {
if (!sortingType.isDescending()) {
HLocale temp = o1;
o1 = o2;
o2 = temp;
}

SortingType.SortOption selectedSortOption =
Expand All @@ -217,19 +213,16 @@ public int compare(HLocale compareFrom, HLocale compareTo) {
WordStatistic wordStatistic2;

if (selectedVersionId == null) {
wordStatistic1 =
getStatisticsForLocale(item1.getLocaleId());
wordStatistic2 =
getStatisticsForLocale(item2.getLocaleId());
wordStatistic1 = getStatisticsForLocale(o1.getLocaleId());
wordStatistic2 = getStatisticsForLocale(o2.getLocaleId());
} else {
wordStatistic1 =
statisticMap.get(new VersionLocaleKey(
selectedVersionId, item1.getLocaleId()));
selectedVersionId, o1.getLocaleId()));
wordStatistic2 =
statisticMap.get(new VersionLocaleKey(
selectedVersionId, item2.getLocaleId()));
selectedVersionId, o2.getLocaleId()));
}

switch (selectedSortOption) {
case PERCENTAGE:
return Double.compare(
Expand All @@ -243,8 +236,8 @@ public int compare(HLocale compareFrom, HLocale compareTo) {
wordStatistic2.getUntranslated());
}
} else {
return item1.retrieveDisplayName().compareTo(
item2.retrieveDisplayName());
return o1.retrieveDisplayName().compareTo(
o2.retrieveDisplayName());
}
return 0;
}
Expand All @@ -261,16 +254,11 @@ public VersionComparator(SortingType sortingType) {
}

@Override
public int compare(HProjectIteration compareFrom,
HProjectIteration compareTo) {
final HProjectIteration item1, item2;

if (sortingType.isDescending()) {
item1 = compareFrom;
item2 = compareTo;
} else {
item1 = compareTo;
item2 = compareFrom;
public int compare(HProjectIteration o1, HProjectIteration o2) {
if (!sortingType.isDescending()) {
HProjectIteration temp = o1;
o1 = o2;
o2 = temp;
}

SortingType.SortOption selectedSortOption =
Expand All @@ -281,14 +269,14 @@ public int compare(HProjectIteration compareFrom,
WordStatistic wordStatistic2;
if (selectedLocaleId != null) {
wordStatistic1 =
statisticMap.get(new VersionLocaleKey(
item1.getId(), selectedLocaleId));
statisticMap.get(new VersionLocaleKey(o1.getId(),
selectedLocaleId));
wordStatistic2 =
statisticMap.get(new VersionLocaleKey(
item2.getId(), selectedLocaleId));
statisticMap.get(new VersionLocaleKey(o2.getId(),
selectedLocaleId));
} else {
wordStatistic1 = getStatisticForProject(item1.getId());
wordStatistic2 = getStatisticForProject(item2.getId());
wordStatistic1 = getStatisticForProject(o1.getId());
wordStatistic2 = getStatisticForProject(o2.getId());
}

switch (selectedSortOption) {
Expand All @@ -304,8 +292,8 @@ public int compare(HProjectIteration compareFrom,
wordStatistic2.getUntranslated());
}
} else {
return item1.getProject().getName().toLowerCase()
.compareTo(item2.getProject().getName().toLowerCase());
return o1.getProject().getName().toLowerCase()
.compareTo(o2.getProject().getName().toLowerCase());
}
return 0;
}
Expand All @@ -322,7 +310,6 @@ public boolean isUserProjectMaintainer() {
public void sortLanguageList() {
languageComparator.setSelectedVersionId(null);
Collections.sort(activeLocales, languageComparator);
languageTabLanguageFilter.resetQueryAndPage();
}

/**
Expand All @@ -331,18 +318,16 @@ public void sortLanguageList() {
public void sortLanguageList(Long versionId) {
languageComparator.setSelectedVersionId(versionId);
Collections.sort(activeLocales, languageComparator);
projectTabLanguageFilter.resetQueryAndPage();
}

/**
* Sort project list based on selected locale - language tab
*
*
* @pa localeId
*/
public void sortProjectList(LocaleId localeId) {
versionComparator.setSelectedLocaleId(localeId);
Collections.sort(projectIterations, versionComparator);
languageTabVersionFilter.resetQueryAndPage();
}

/**
Expand All @@ -351,7 +336,6 @@ public void sortProjectList(LocaleId localeId) {
public void sortProjectList() {
versionComparator.setSelectedLocaleId(null);
Collections.sort(projectIterations, versionComparator);
projectTabVersionFilter.resetQueryAndPage();
}

public List<HLocale> getActiveLocales() {
Expand Down Expand Up @@ -447,7 +431,7 @@ private Map<LocaleId, List<HProjectIteration>> getMissingLocaleVersionMap() {

/**
* Search for locale that is not activated in given version
*
*
* @param version
*/
public List<LocaleId> getMissingLocale(HProjectIteration version) {
Expand All @@ -472,7 +456,7 @@ public String getMissingLocaleTitle(HProjectIteration version) {

/**
* Search for version that doesn't activate given locale
*
*
* @param localeId
*/
public List<HProjectIteration> getMissingVersion(LocaleId localeId) {
Expand Down

0 comments on commit 7de1e51

Please sign in to comment.