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

Commit

Permalink
Refactor and fixes on review
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Eng authored and definite committed Apr 30, 2014
1 parent ebd2350 commit 7bb4fd2
Show file tree
Hide file tree
Showing 18 changed files with 548 additions and 478 deletions.
23 changes: 14 additions & 9 deletions zanata-war/src/main/java/org/zanata/action/CopyTransAction.java
Expand Up @@ -21,14 +21,12 @@
package org.zanata.action;

import java.io.Serializable;
import java.util.Map;

import javax.faces.application.FacesMessage;

import lombok.Getter;
import lombok.Setter;

import org.jboss.seam.Component;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.security.Restrict;
Expand All @@ -40,6 +38,7 @@
import org.zanata.seam.scope.FlashScopeMessage;
import org.zanata.ui.ProgressBar;
import org.zanata.util.DateUtil;
import org.zanata.util.ZanataMessages;

import com.google.common.base.Optional;

Expand All @@ -63,7 +62,7 @@ public class CopyTransAction implements Serializable, ProgressBar {
private FlashScopeMessage flashScopeMessage;

@In
private Map<String, String> messages;
private ZanataMessages zanataMessages;

@Getter
@Setter
Expand Down Expand Up @@ -91,8 +90,12 @@ public int getCompletedPercentage() {
int completedPercent =
handle.getCurrentProgress() * 100 / handle.getMaxProgress();
if (completedPercent == 100) {
flashScopeMessage.putMessage(FacesMessage.SEVERITY_INFO,
messages.get("jsf.iteration.CopyTrans.Completed"));
flashScopeMessage
.putMessage(
FacesMessage.SEVERITY_INFO,
zanataMessages
.getMessage(
"jsf.iteration.CopyTrans.Completed"));
}
return completedPercent;
} else {
Expand Down Expand Up @@ -123,20 +126,22 @@ void startCopyTrans() {
if (isInProgress()) {
return;
} else if (getProjectIteration().getDocuments().size() <= 0) {
getFlashScopeMessage().putMessage(FacesMessage.SEVERITY_INFO,
messages.get("jsf.iteration.CopyTrans.NoDocuments"));
getFlashScopeMessage().putMessage(
FacesMessage.SEVERITY_INFO,
zanataMessages
.getMessage("jsf.iteration.CopyTrans.NoDocuments"));
return;
}

copyTransManager.startCopyTrans(getProjectIteration(), options);
getFlashScopeMessage().putMessage(FacesMessage.SEVERITY_INFO,
messages.get("jsf.iteration.CopyTrans.Started"));
zanataMessages.getMessage("jsf.iteration.CopyTrans.Started"));
}

public void cancel() {
copyTransManager.cancelCopyTrans(getProjectIteration());
getFlashScopeMessage().putMessage(FacesMessage.SEVERITY_INFO,
messages.get("jsf.iteration.CopyTrans.Cancelled"));
zanataMessages.getMessage("jsf.iteration.CopyTrans.Cancelled"));
}

public String getDocumentsProcessed() {
Expand Down
Expand Up @@ -136,7 +136,7 @@ public void save() {
@Getter
public class RuleAction {
private HCopyTransOptions.ConditionRuleAction action;
private String css;
private String cssClass;
private String displayText;
}
}
238 changes: 123 additions & 115 deletions zanata-war/src/main/java/org/zanata/action/ProjectHome.java
Expand Up @@ -126,6 +126,13 @@ public class ProjectHome extends SlugHome<HProject> {
private Map<ValidationId, ValidationAction> availableValidations = Maps
.newHashMap();

@Getter
private MaintainersAutocomplete maintainerAutocomplete =
new MaintainersAutocomplete();

@Getter
private LocaleAutocomplete localeAutocomplete = new LocaleAutocomplete();

@Getter
private AbstractListFilter<HPerson> maintainerFilter =
new AbstractListFilter<HPerson>() {
Expand All @@ -136,78 +143,6 @@ protected List<HPerson> getFilteredList() {
}
};

@Getter
private AbstractAutocomplete<HLocale> localeAutocomplete =
new AbstractAutocomplete<HLocale>() {

private LocaleService localeServiceImpl =
(LocaleService) Component
.getInstance(LocaleServiceImpl.class);

private ZanataMessages zanataMessages =
(ZanataMessages) Component
.getInstance(ZanataMessages.class);

/**
* if project is not overriding locales, then autocomplete
* should not return anything as all available locales is
* already on screen
*
* @return
*/
@Override
public List<HLocale> suggest() {
if (!getInstance().isOverrideLocales()) {
return Lists.newArrayList();
} else {
List<HLocale> localeList =
localeServiceImpl.getSupportedLocales();

Collection<HLocale> filtered =
Collections2.filter(localeList,
new Predicate<HLocale>() {
@Override
public boolean apply(
@Nullable HLocale input) {
return FilterUtil
.isIncludeLocale(
getInstance()
.getCustomizedLocales(),
input,
getQuery());
}
});
return Lists.newArrayList(filtered);
}
}

@Override
@Restrict("#{s:hasPermission(projectHome.instance, 'update')}")
public void onSelectItemAction() {
if (StringUtils.isEmpty(getSelectedItem())) {
return;
}

HLocale locale =
localeServiceImpl.getByLocaleId(getSelectedItem());

if (!getInstance().isOverrideLocales()) {
getInstance().setOverrideLocales(true);
getInstance().getCustomizedLocales().clear();
}
getInstance().getCustomizedLocales().add(locale);

update();
reset();

getFlashScopeMessage().putMessage(
FacesMessage.SEVERITY_INFO,
zanataMessages.getMessage(
"jsf.project.LanguageAdded",
locale.retrieveDisplayName()));
}
};

public void setSelectedProjectType(String selectedProjectType) {
if (!StringUtils.isEmpty(selectedProjectType)
&& !selectedProjectType.equals("null")) {
Expand Down Expand Up @@ -265,45 +200,6 @@ protected HProject loadInstance() {
.using("slug", getSlug()).load();
}

@Getter
private final AbstractAutocomplete<HPerson> maintainerAutocomplete =
new AbstractAutocomplete<HPerson>() {

private PersonDAO personDAO = (PersonDAO) Component
.getInstance(PersonDAO.class);

private ZanataMessages zanataMessages =
(ZanataMessages) Component
.getInstance(ZanataMessages.class);

public List<HPerson> suggest() {
List<HPerson> personList =
personDAO.findAllContainingName(getQuery());
return FilterUtil.filterOutPersonList(
getInstanceMaintainers(), personList);
}

@Override
@Restrict("#{s:hasPermission(projectHome.instance, 'update')}")
public void onSelectItemAction() {
if (StringUtils.isEmpty(getSelectedItem())) {
return;
}

HPerson maintainer =
personDAO.findByUsername(getSelectedItem());
getInstance().addMaintainer(maintainer);
update();
reset();

getFlashScopeMessage().putMessage(
FacesMessage.SEVERITY_INFO,
zanataMessages.getMessage(
"jsf.project.MaintainerAdded",
maintainer.getName()));
}
};

public void validateSuppliedId() {
HProject ip = getInstance(); // this will raise an EntityNotFound
// exception
Expand Down Expand Up @@ -393,8 +289,7 @@ public String removeMaintainer(HPerson person) {
.putMessage(
FacesMessage.SEVERITY_INFO,
zanataMessages
.getMessage(
"jsf.project.NeedAtLeastOneMaintainer"));
.getMessage("jsf.project.NeedAtLeastOneMaintainer"));
} else {
getInstance().getMaintainers().remove(person);

Expand Down Expand Up @@ -461,7 +356,7 @@ public void updateStatus(char initial) {
getFlashScopeMessage().putMessage(
FacesMessage.SEVERITY_INFO,
zanataMessages.getMessage("jsf.project.status.updated",
EntityStatus.valueOf(initial)));
EntityStatus.valueOf(initial)));
}

public Map<String, Boolean> getRoleRestrictions() {
Expand Down Expand Up @@ -581,7 +476,7 @@ public void updateValidationOption(String name, String state) {
getFlashScopeMessage().putMessage(
FacesMessage.SEVERITY_INFO,
zanataMessages.getMessage("jsf.validation.updated",
validatationId.getDisplayName(), state));
validatationId.getDisplayName(), state));
}

public List<ValidationAction> getValidationList() {
Expand Down Expand Up @@ -635,4 +530,117 @@ private boolean checkViewObsolete() {
return identity != null
&& identity.hasPermission("HProject", "view-obsolete");
}

private class MaintainersAutocomplete extends AbstractAutocomplete<HPerson> {

private PersonDAO personDAO = (PersonDAO) Component
.getInstance(PersonDAO.class);

private ZanataMessages zanataMessages = (ZanataMessages) Component
.getInstance(ZanataMessages.class);

/**
* Return results on search
*/
@Override
public List<HPerson> suggest() {
List<HPerson> personList =
personDAO.findAllContainingName(getQuery());
return FilterUtil.filterOutPersonList(getInstanceMaintainers(),
personList);

}

/**
* Action when an item is selected
*/
@Override
public void onSelectItemAction() {
if (StringUtils.isEmpty(getSelectedItem())) {
return;
}

HPerson maintainer = personDAO.findByUsername(getSelectedItem());
getInstance().addMaintainer(maintainer);
update();
reset();

getFlashScopeMessage().putMessage(
FacesMessage.SEVERITY_INFO,
zanataMessages.getMessage("jsf.project.MaintainerAdded",
maintainer.getName()));

}
}

private class LocaleAutocomplete extends AbstractAutocomplete<HLocale> {
private LocaleService localeServiceImpl = (LocaleService) Component
.getInstance(LocaleServiceImpl.class);

private ZanataMessages zanataMessages = (ZanataMessages) Component
.getInstance(ZanataMessages.class);

/**
* if project is not overriding locales, then autocomplete should not
* return anything as all available locales is already on screen
*
* @return
*/
@Override
public List<HLocale> suggest() {
if (!getInstance().isOverrideLocales()) {
return Lists.newArrayList();
} else {
List<HLocale> localeList =
localeServiceImpl.getSupportedLocales();

Collection<HLocale> filtered =
Collections2.filter(localeList,
new Predicate<HLocale>() {
@Override
public boolean
apply(@Nullable HLocale input) {
return FilterUtil
.isIncludeLocale(
getInstance()
.getCustomizedLocales(),
input, getQuery());
}
});
return Lists.newArrayList(filtered);
}
}

/**
* Action when an item is selected
*/
@Override
public void onSelectItemAction() {
if (StringUtils.isEmpty(getSelectedItem())) {
return;
}

HLocale locale = localeServiceImpl.getByLocaleId(getSelectedItem());

if (!getInstance().isOverrideLocales()) {
getInstance().setOverrideLocales(true);
getInstance().getCustomizedLocales().clear();
}
getInstance().getCustomizedLocales().add(locale);

update();
reset();

getFlashScopeMessage().putMessage(
FacesMessage.SEVERITY_INFO,
zanataMessages.getMessage("jsf.project.LanguageAdded",
locale.retrieveDisplayName()));
}
}

public List<ProjectType> getProjectTypeList() {
List<ProjectType> projectTypes = Arrays.asList(ProjectType.values());
Collections.sort(projectTypes, ComparatorUtil.PROJECT_TYPE_COMPARATOR);
return projectTypes;
}
}

0 comments on commit 7bb4fd2

Please sign in to comment.