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

Commit

Permalink
WIP: sorting of the list
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Eng committed Nov 1, 2013
1 parent 411847b commit 47334a1
Show file tree
Hide file tree
Showing 6 changed files with 523 additions and 234 deletions.
22 changes: 16 additions & 6 deletions zanata-war/src/main/java/org/zanata/action/LocaleItem.java
@@ -1,5 +1,7 @@
package org.zanata.action;

import java.util.Comparator;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
Expand All @@ -10,7 +12,7 @@
* @author Alex Eng <a href="mailto:aeng@redhat.com">aeng@redhat.com</a>
*/
@AllArgsConstructor
public class LocaleItem implements Comparable<LocaleItem> {
public class LocaleItem {
@Getter
@Setter
private boolean selected;
Expand All @@ -19,9 +21,17 @@ public class LocaleItem implements Comparable<LocaleItem> {
@Setter
private HLocale locale;

@Override
public int compareTo(LocaleItem localeItem) {
return this.getLocale().retrieveDisplayName()
.compareTo(localeItem.getLocale().retrieveDisplayName());
}
public static final Comparator<LocaleItem> Comparator =
new Comparator<LocaleItem>() {
@Override
public int
compare(LocaleItem localeItem, LocaleItem localeItem2) {
return localeItem
.getLocale()
.retrieveDisplayName()
.compareTo(
localeItem2.getLocale()
.retrieveDisplayName());
}
};
}
59 changes: 59 additions & 0 deletions zanata-war/src/main/java/org/zanata/action/SortingType.java
@@ -0,0 +1,59 @@
package org.zanata.action;

import java.io.Serializable;

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

/**
* @author Alex Eng <a href="mailto:aeng@redhat.com">aeng@redhat.com</a>
*/
@EqualsAndHashCode(of = { "displayString" })
public class SortingType implements Serializable {

public static final SortingType PERCENTAGE = new SortingType("%");

public static final SortingType HOURS = new SortingType("hours");

public static final SortingType WORDS = new SortingType("words");

public static final SortingType ALPHABETICAL = new SortingType(
"alphabetical");

@Getter
private String displayString;

@Getter
@Setter
private boolean descending = true;

@Getter
@Setter
private boolean active = false;

public SortingType(SortingType sortingType) {
this.displayString = sortingType.displayString;
this.descending = sortingType.descending;
}

private SortingType(String displayString) {
this.displayString = displayString;
}

public static SortingType getPercentageType() {
return new SortingType(PERCENTAGE);
}

public static SortingType getHoursType() {
return new SortingType(HOURS);
}

public static SortingType getWordsType() {
return new SortingType(WORDS);
}

public static SortingType getAlphabeticalType() {
return new SortingType(ALPHABETICAL);
}
}
70 changes: 34 additions & 36 deletions zanata-war/src/main/java/org/zanata/action/VersionGroupHome.java
Expand Up @@ -34,10 +34,8 @@
import org.hibernate.Session;
import org.hibernate.criterion.NaturalIdentifier;
import org.hibernate.criterion.Restrictions;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.faces.FacesMessages;
import org.jboss.seam.security.management.JpaIdentityStore;
import org.zanata.common.EntityStatus;
Expand Down Expand Up @@ -78,39 +76,6 @@ public class VersionGroupHome extends SlugHome<HIterationGroup> {

private List<LocaleItem> activeLocales;

@Override
protected HIterationGroup loadInstance() {
Session session = (Session) getEntityManager().getDelegate();
return (HIterationGroup) session.byNaturalId(HIterationGroup.class)
.using("slug", getSlug()).load();
}

public List<HProjectIteration> getInstanceProjectIterations() {
return new ArrayList<HProjectIteration>(getInstance()
.getProjectIterations());
}

@Override
public NaturalIdentifier getNaturalId() {
return Restrictions.naturalId().set("slug", slug);
}

@Override
public boolean isIdDefined() {
return slug != null;
}

@Override
public Object getId() {
return slug;
}

public void validateSuppliedId() {
getInstance(); // this will raise an EntityNotFound exception
// when id is invalid and conversation will not
// start
}

public void verifySlugAvailable(ValueChangeEvent e) {
String slug = (String) e.getNewValue();
validateSlug(slug, e.getComponent().getId());
Expand Down Expand Up @@ -176,7 +141,7 @@ public List<LocaleItem> getLocales() {
}
}
}
Collections.sort(activeLocales);
Collections.sort(activeLocales, LocaleItem.Comparator);
return activeLocales;
}

Expand Down Expand Up @@ -206,4 +171,37 @@ public boolean apply(SelectItem input) {
}
return statusList;
}

@Override
protected HIterationGroup loadInstance() {
Session session = (Session) getEntityManager().getDelegate();
return (HIterationGroup) session.byNaturalId(HIterationGroup.class)
.using("slug", getSlug()).load();
}

public List<HProjectIteration> getInstanceProjectIterations() {
return new ArrayList<HProjectIteration>(getInstance()
.getProjectIterations());
}

@Override
public NaturalIdentifier getNaturalId() {
return Restrictions.naturalId().set("slug", slug);
}

@Override
public boolean isIdDefined() {
return slug != null;
}

@Override
public Object getId() {
return slug;
}

public void validateSuppliedId() {
getInstance(); // this will raise an EntityNotFound exception
// when id is invalid and conversation will not
// start
}
}

0 comments on commit 47334a1

Please sign in to comment.