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

Commit

Permalink
Refactor documentInfo model
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Eng committed Apr 4, 2013
1 parent c663577 commit 8eff6bc
Show file tree
Hide file tree
Showing 15 changed files with 165 additions and 100 deletions.
Expand Up @@ -198,7 +198,7 @@ public void onSuccess(GetDocumentListResult result)
exceptionHandler.setAppPresenter(appPresenter);
exceptionHandler.setTargetContentsPresenter(injector.getTargetContentsPresenter());

documentListPresenter.queryStats();
documentListPresenter.queryInfo();
documentListPresenter.showLoading(false);

stopwatch.stop();
Expand Down
Expand Up @@ -59,6 +59,7 @@
import org.zanata.webtrans.client.ui.DocumentListTable.DocValidationStatus;
import org.zanata.webtrans.client.ui.DocumentNode;
import org.zanata.webtrans.client.view.DocumentListDisplay;
import org.zanata.webtrans.shared.model.AuditInfo;
import org.zanata.webtrans.shared.model.DocumentId;
import org.zanata.webtrans.shared.model.DocumentInfo;
import org.zanata.webtrans.shared.model.TransUnit;
Expand Down Expand Up @@ -288,9 +289,14 @@ public void setDocuments(List<DocumentInfo> sortedList)
updatePageCountAndGotoFirstPage();
}

public void queryStats()
public void queryInfo()
{
int BATCH_SIZE = 1000;
queryStats();
}

private void queryStats()
{
int BATCH_SIZE = 100;

for (int i = 0; i < nodes.size();)
{
Expand Down Expand Up @@ -459,7 +465,8 @@ public void onTransUnitUpdated(TransUnitUpdatedEvent event)
if (row != null)
{
display.updateStats(row.intValue(), updatedDoc.getStats());
display.updateLastTranslatedInfo(row.intValue(), event.getUpdateInfo().getTransUnit());
AuditInfo lastTranslated = new AuditInfo(event.getUpdateInfo().getTransUnit().getLastModifiedTime(), event.getUpdateInfo().getTransUnit().getLastModifiedBy());
display.updateLastTranslated(row.intValue(), lastTranslated);
}

eventBus.fireEvent(new DocumentStatsUpdatedEvent(updatedDoc.getId(), updatedDoc.getStats()));
Expand All @@ -472,8 +479,7 @@ public void onTransUnitUpdated(TransUnitUpdatedEvent event)

private void updateLastTranslatedInfo(DocumentInfo doc, TransUnit updatedTransUnit)
{
doc.setLastTranslatedBy(updatedTransUnit.getLastModifiedBy());
doc.setLastTranslatedDate(updatedTransUnit.getLastModifiedTime());
doc.setLastTranslated(new AuditInfo(updatedTransUnit.getLastModifiedTime(), updatedTransUnit.getLastModifiedBy()));
}

/**
Expand Down Expand Up @@ -834,36 +840,36 @@ private int compareRemaining(DocumentNode o1, DocumentNode o2)

private int compareLastUpload(DocumentNode o1, DocumentNode o2)
{
if (o1.getDocInfo().getLastChanged() == o2.getDocInfo().getLastChanged())
if (o1.getDocInfo().getLastModified().getDate() == o2.getDocInfo().getLastModified().getDate())
{
return 0;
}
if (o1.getDocInfo().getLastChanged() == null)
if (o1.getDocInfo().getLastModified().getDate() == null)
{
return -1;
}
if (o2.getDocInfo().getLastChanged() == null)
if (o2.getDocInfo().getLastModified().getDate() == null)
{
return 1;
}
return o1.getDocInfo().getLastChanged().after(o2.getDocInfo().getLastChanged()) ? 1 : -1;
return o1.getDocInfo().getLastModified().getDate().after(o2.getDocInfo().getLastModified().getDate()) ? 1 : -1;
}

private int compareLastTranslated(DocumentNode o1, DocumentNode o2)
{
if (o1.getDocInfo().getLastChanged() == o2.getDocInfo().getLastChanged())
if (o1.getDocInfo().getLastTranslated().getDate() == o2.getDocInfo().getLastTranslated().getDate())
{
return 0;
}
if (o1.getDocInfo().getLastChanged() == null)
if (o1.getDocInfo().getLastTranslated().getDate() == null)
{
return -1;
}
if (o2.getDocInfo().getLastChanged() == null)
if (o2.getDocInfo().getLastTranslated().getDate() == null)
{
return 1;
}
return o1.getDocInfo().getLastChanged().after(o2.getDocInfo().getLastChanged()) ? 1 : -1;
return o1.getDocInfo().getLastTranslated().getDate().after(o2.getDocInfo().getLastTranslated().getDate()) ? 1 : -1;
}
}

Expand Down
Expand Up @@ -20,7 +20,6 @@
*/
package org.zanata.webtrans.client.ui;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand All @@ -32,9 +31,9 @@
import org.zanata.webtrans.client.ui.HasTranslationStats.LabelFormat;
import org.zanata.webtrans.client.util.DateUtil;
import org.zanata.webtrans.client.view.DocumentListDisplay;
import org.zanata.webtrans.shared.model.AuditInfo;
import org.zanata.webtrans.shared.model.DocumentId;
import org.zanata.webtrans.shared.model.DocumentInfo;
import org.zanata.webtrans.shared.model.TransUnit;
import org.zanata.webtrans.shared.model.UserWorkspaceContext;

import com.google.common.base.Strings;
Expand Down Expand Up @@ -190,8 +189,8 @@ public HashMap<DocumentId, Integer> buildContent(List<DocumentNode> nodes, boole
this.setWidget(i + 1, UNTRANSLATED_COLUMN, getUntranslatedWidget(node.getDocInfo(), statsByWords));
this.setWidget(i + 1, REMAINING_COLUMN, getRemainingWidget(node.getDocInfo()));

this.setWidget(i + 1, LAST_UPLOAD_COLUMN, new InlineLabel(getAuditInfo(node.getDocInfo().getLastModifiedBy(), node.getDocInfo().getLastChanged())));
this.setWidget(i + 1, LAST_TRANSLATED_COLUMN, new InlineLabel(getAuditInfo(node.getDocInfo().getLastTranslatedBy(), node.getDocInfo().getLastTranslatedDate())));
this.setWidget(i + 1, LAST_UPLOAD_COLUMN, new InlineLabel(getAuditInfo(node.getDocInfo().getLastModified())));
this.setWidget(i + 1, LAST_TRANSLATED_COLUMN, new InlineLabel(getAuditInfo(node.getDocInfo().getLastTranslated())));

this.setWidget(i + 1, ACTION_COLUMN, getActionWidget(node.getDocInfo()));

Expand Down Expand Up @@ -406,18 +405,21 @@ public void onClick(ClickEvent event)
return panel;
}

private String getAuditInfo(String by, Date date)
private String getAuditInfo(AuditInfo lastTranslatedInfo)
{
StringBuilder sb = new StringBuilder();

if (date != null)
if (lastTranslatedInfo != null)
{
sb.append(DateUtil.formatShortDate(date));
}
if (!Strings.isNullOrEmpty(by))
{
sb.append(" by ");
sb.append(by);
if (lastTranslatedInfo.getDate() != null)
{
sb.append(DateUtil.formatShortDate(lastTranslatedInfo.getDate()));
}
if (!Strings.isNullOrEmpty(lastTranslatedInfo.getUsername()))
{
sb.append(" by ");
sb.append(lastTranslatedInfo.getUsername());
}
}
return sb.toString();
}
Expand All @@ -428,10 +430,10 @@ public void updateRowHasError(int row, DocValidationStatus status)
panel.setValidationResult(status);
}

public void updateLastTranslatedInfo(int row, TransUnit transUnit)
public void updateLastTranslatedInfo(int row, AuditInfo lastTranslated)
{
HasText label = (HasText) this.getWidget(row, LAST_TRANSLATED_COLUMN);
label.setText(getAuditInfo(transUnit.getLastModifiedBy(), transUnit.getLastModifiedTime()));
label.setText(getAuditInfo(lastTranslated));
}

public void updateStats(int row, TranslationStats stats, boolean statsByWords)
Expand Down
Expand Up @@ -31,9 +31,9 @@
import org.zanata.webtrans.client.ui.HasPager;
import org.zanata.webtrans.client.ui.InlineLink;
import org.zanata.webtrans.client.ui.SearchFieldListener;
import org.zanata.webtrans.shared.model.AuditInfo;
import org.zanata.webtrans.shared.model.DocumentId;
import org.zanata.webtrans.shared.model.DocumentInfo;
import org.zanata.webtrans.shared.model.TransUnit;
import org.zanata.webtrans.shared.model.WorkspaceId;

import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteEvent;
Expand Down Expand Up @@ -128,8 +128,6 @@ interface Listener

HashMap<DocumentId, Integer> buildContent(List<DocumentNode> nodes);

void updateLastTranslatedInfo(int row, TransUnit transUnit);

void updateStats(int row, TranslationStats stats);

void setStatsFilters(Integer row);
Expand All @@ -141,4 +139,6 @@ interface Listener
void showRowLoading(int row);

void updateRowHasError(int row, DocValidationStatus status);

void updateLastTranslated(int intValue, AuditInfo lastTranslated);
}
Expand Up @@ -37,9 +37,9 @@
import org.zanata.webtrans.client.ui.LoadingPanel;
import org.zanata.webtrans.client.ui.Pager;
import org.zanata.webtrans.client.ui.SearchField;
import org.zanata.webtrans.shared.model.AuditInfo;
import org.zanata.webtrans.shared.model.DocumentId;
import org.zanata.webtrans.shared.model.DocumentInfo;
import org.zanata.webtrans.shared.model.TransUnit;
import org.zanata.webtrans.shared.model.UserWorkspaceContext;
import org.zanata.webtrans.shared.model.WorkspaceId;

Expand Down Expand Up @@ -378,9 +378,9 @@ public void updateRowHasError(int row, DocValidationStatus status)
}

@Override
public void updateLastTranslatedInfo(int row, TransUnit transUnit)
public void updateLastTranslated(int row, AuditInfo lastTranslated)
{
documentListTable.updateLastTranslatedInfo(row, transUnit);
documentListTable.updateLastTranslatedInfo(row, lastTranslated);

}

Expand Down
Expand Up @@ -23,6 +23,7 @@
import org.zanata.service.TranslationFileService;
import org.zanata.service.TranslationStateCache;
import org.zanata.webtrans.server.ActionHandlerFor;
import org.zanata.webtrans.shared.model.AuditInfo;
import org.zanata.webtrans.shared.model.DocumentId;
import org.zanata.webtrans.shared.model.DocumentInfo;
import org.zanata.webtrans.shared.model.ProjectIterationId;
Expand Down Expand Up @@ -100,7 +101,7 @@ public GetDocumentListResult execute(GetDocumentList action, ExecutionContext co
downloadExtensions.put(extension, "baked?docId=" + hDoc.getDocId());
}

DocumentInfo doc = new DocumentInfo(docId, hDoc.getName(), hDoc.getPath(), hDoc.getLocale().getLocaleId(), null, lastModifiedBy, hDoc.getLastChanged(), downloadExtensions, lastTranslatedBy, lastTranslatedDate);
DocumentInfo doc = new DocumentInfo(docId, hDoc.getName(), hDoc.getPath(), hDoc.getLocale().getLocaleId(), null, new AuditInfo(hDoc.getLastChanged(), lastModifiedBy), downloadExtensions, new AuditInfo(lastTranslatedDate, lastTranslatedBy));
docs.add(doc);
}
return new GetDocumentListResult(iterationId, docs);
Expand Down
@@ -0,0 +1,69 @@
package org.zanata.webtrans.shared.model;

import java.util.Date;

import com.google.gwt.user.client.rpc.IsSerializable;

public class AuditInfo implements IsSerializable
{
private Date date;
private String username;

private AuditInfo()
{
}

public AuditInfo(Date date, String username)
{
this.date = date;
this.username = username;
}

public Date getDate()
{
return date;
}

public String getUsername()
{
return username;
}

@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((username == null) ? 0 : username.hashCode());
result = prime * result + ((date == null) ? 0 : date.hashCode());
return result;
}

@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
AuditInfo other = (AuditInfo) obj;
if (username == null)
{
if (other.username != null)
return false;
}
else if (!username.equals(other.username))
return false;
if (date == null)
{
if (other.date != null)
return false;
}
else if (!date.equals(other.date))
return false;
return true;
}

}
@@ -1,6 +1,5 @@
package org.zanata.webtrans.shared.model;

import java.util.Date;
import java.util.Map;

import org.zanata.common.LocaleId;
Expand All @@ -15,12 +14,10 @@ public class DocumentInfo implements HasIdentifier<DocumentId>, IsSerializable
private String path;
private LocaleId sourceLocale;
private TranslationStats stats;
private String lastModifiedBy;
private Date lastChanged;
private AuditInfo lastModified;
private AuditInfo lastTranslated;
private Map<String, String> downloadExtensions;

private Date lastTranslatedDate;
private String lastTranslatedBy;

private Boolean hasError = null;

Expand All @@ -30,18 +27,16 @@ private DocumentInfo()
{
}

public DocumentInfo(DocumentId id, String name, String path, LocaleId sourceLocale, TranslationStats stats, String lastModifiedBy, Date lastChanged, Map<String, String> downloadExtensions, String lastTranslatedBy, Date lastTranslatedDate)
public DocumentInfo(DocumentId id, String name, String path, LocaleId sourceLocale, TranslationStats stats, AuditInfo lastModified, Map<String, String> downloadExtensions, AuditInfo lastTranslated)
{
this.id = id;
this.name = name;
this.path = path;
this.stats = stats;
this.sourceLocale = sourceLocale;
this.lastChanged = lastChanged;
this.lastModifiedBy = lastModifiedBy;
this.lastModified = lastModified;
this.downloadExtensions = downloadExtensions;
this.lastTranslatedDate = lastTranslatedDate;
this.lastTranslatedBy = lastTranslatedBy;
this.lastTranslated = lastTranslated;
}

public DocumentId getId()
Expand Down Expand Up @@ -74,39 +69,24 @@ public LocaleId getSourceLocale()
return sourceLocale;
}

public String getLastModifiedBy()
public AuditInfo getLastModified()
{
return lastModifiedBy;
}

public Date getLastChanged()
{
return lastChanged;
return lastModified;
}

public Map<String, String> getDownloadExtensions()
{
return downloadExtensions;
}

public Date getLastTranslatedDate()
{
return lastTranslatedDate;
}

public String getLastTranslatedBy()
{
return lastTranslatedBy;
}

public void setLastTranslatedDate(Date lastTranslatedDate)
public AuditInfo getLastTranslated()
{
this.lastTranslatedDate = lastTranslatedDate;
return lastTranslated;
}

public void setLastTranslatedBy(String lastTranslatedBy)
public void setLastTranslated(AuditInfo lastTranslated)
{
this.lastTranslatedBy = lastTranslatedBy;
this.lastTranslated = lastTranslated;
}

public void setHasError(Boolean hasError)
Expand Down

0 comments on commit 8eff6bc

Please sign in to comment.