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

Commit

Permalink
rhbz844820 - refactor the transUnit save to its own service class
Browse files Browse the repository at this point in the history
  • Loading branch information
Patrick Huang committed Aug 23, 2012
1 parent c4707f1 commit 460f793
Show file tree
Hide file tree
Showing 20 changed files with 215 additions and 778 deletions.
Expand Up @@ -35,7 +35,6 @@
import com.google.gwt.gen2.table.client.ColumnDefinition;
import com.google.gwt.gen2.table.client.DefaultTableDefinition;
import com.google.gwt.gen2.table.client.RowRenderer;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.Label;
Expand Down Expand Up @@ -154,7 +153,7 @@ public void renderRowValue(TransUnit rowValue, ColumnDefinition<TransUnit, Trans
view.setStyleName("TableEditorCell TableEditorCell-Target");
final VerticalPanel targetPanel = new VerticalPanel();

TargetContentsDisplay contentsDisplay = targetContentsPresenter.setValue(rowValue, findMessage);
TargetContentsDisplay contentsDisplay = targetContentsPresenter.setValue(rowValue);
targetContentsPresenter.setToViewMode();

targetPanel.add(contentsDisplay.asWidget());
Expand Down
Expand Up @@ -45,6 +45,8 @@ public interface TargetContentsDisplay extends WidgetDisplay, IsWidget

TransUnitId getTransUnitId();

Integer getVerNum();

interface Listener
{
void validate(ToggleEditor editor);
Expand Down
Expand Up @@ -22,6 +22,7 @@

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;

Expand Down Expand Up @@ -73,14 +74,15 @@

import com.allen_sauer.gwt.log.client.Log;
import com.google.common.base.Objects;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;

import net.customware.gwt.presenter.client.EventBus;
import static org.zanata.webtrans.client.events.NavTransUnitEvent.NavigationType.NextEntry;
import static org.zanata.webtrans.client.events.NavTransUnitEvent.NavigationType.NextState;
import static org.zanata.webtrans.client.events.NavTransUnitEvent.NavigationType.PrevEntry;
Expand Down Expand Up @@ -134,6 +136,7 @@ public class TargetContentsPresenter implements

private final KeyShortcut nextStateShortcut;
private final KeyShortcut prevStateShortcut;
private String findMessage;

@Inject
//TODO too many constructor dependencies
Expand Down Expand Up @@ -469,9 +472,9 @@ public void updateTranslators()
}

//This method is used to cancel edited change and set back view
public TargetContentsDisplay setValue(TransUnit transUnit, String findMessages)
public TargetContentsDisplay setValue(TransUnit transUnit)
{
display.setFindMessage(findMessages);
display.setFindMessage(this.findMessage);
display.setValue(transUnit);
return display;
}
Expand Down Expand Up @@ -515,14 +518,25 @@ public void saveAsApprovedAndMoveNext()
else
{
currentEditorIndex = 0;
eventBus.fireEvent(new TransUnitSaveEvent(getNewTargets(), ContentState.Approved).andMoveTo(NextEntry));
eventBus.fireEvent(new TransUnitSaveEvent(getNewTargets(), ContentState.Approved, getCurrentTransUnitIdOrNull(), getCurrentVersionOrNull()));
eventBus.fireEvent(new NavTransUnitEvent(NextEntry));
}
}

@Override
public void saveAsFuzzy()
{
eventBus.fireEvent(new TransUnitSaveEvent(getNewTargets(), ContentState.NeedReview));
eventBus.fireEvent(new TransUnitSaveEvent(getNewTargets(), ContentState.NeedReview, getCurrentTransUnitIdOrNull(), getCurrentVersionOrNull()));
}

private Integer getCurrentVersionOrNull()
{
return display == null ? null : display.getVerNum();
}

private TransUnitId getCurrentTransUnitIdOrNull()
{
return display == null ? null : display.getTransUnitId();
}

@Override
Expand Down Expand Up @@ -721,6 +735,22 @@ public void addUndoLink(int row, UndoLink undoLink)
targetContentsDisplay.addUndo(undoLink);
}

public void addUndoLink(final TransUnitId transUnitId, UndoLink undoLink)
{
Collection<TargetContentsDisplay> matched = Collections2.filter(displayList, new Predicate<TargetContentsDisplay>()
{
@Override
public boolean apply(TargetContentsDisplay input)
{
return Objects.equal(input.getTransUnitId(), transUnitId);
}
});
if (matched.size() == 1)
{
matched.iterator().next().addUndo(undoLink);
}
}

public void showData(List<TransUnit> transUnits)
{
for (int i = 0; i < displayList.size(); i++)
Expand All @@ -737,6 +767,7 @@ public List<TargetContentsDisplay> getDisplays()

public void highlightSearch(String message)
{
findMessage = message;
for (TargetContentsDisplay targetContentsDisplay : displayList)
{
targetContentsDisplay.setFindMessage(message);
Expand Down
Expand Up @@ -77,6 +77,7 @@ interface Binder extends UiBinder<VerticalPanel, TargetContentsView>
private ArrayList<ToggleEditor> editors;
private Listener listener;
private TransUnitId transUnitId;
private Integer verNum;

public TargetContentsView()
{
Expand Down Expand Up @@ -130,6 +131,7 @@ public void postUndoSuccess()
public void setValue(TransUnit transUnit)
{
transUnitId = transUnit.getId();
verNum = transUnit.getVerNum();
List<String> targets = transUnit.getTargets();
editors.clear();
if (targets == null || targets.size() <= 0)
Expand All @@ -147,6 +149,7 @@ public void setValue(TransUnit transUnit)
rowIndex++;
}
editorGrid.setStyleName(resolveStyleName(transUnit.getStatus()));
undoContainer.clear();
}

private static String resolveStyleName(ContentState status)
Expand Down Expand Up @@ -255,6 +258,12 @@ public TransUnitId getTransUnitId()
return transUnitId;
}

@Override
public Integer getVerNum()
{
return verNum;
}

@Override
public Widget asWidget()
{
Expand Down
Expand Up @@ -24,6 +24,8 @@
import java.util.List;

import org.zanata.common.ContentState;
import org.zanata.webtrans.shared.model.TransUnitId;
import com.google.common.base.Objects;
import com.google.common.collect.Lists;
import com.google.gwt.event.shared.GwtEvent;

Expand All @@ -33,16 +35,19 @@
public class TransUnitSaveEvent extends GwtEvent<TransUnitSaveEventHandler>
{
public static Type<TransUnitSaveEventHandler> TYPE = new Type<TransUnitSaveEventHandler>();
public static final TransUnitSaveEvent CANCEL_EDIT_EVENT = new TransUnitSaveEvent(null, null);
public static final TransUnitSaveEvent CANCEL_EDIT_EVENT = new TransUnitSaveEvent(null, null, null, null);

private TransUnitId transUnitId;
private Integer verNum;
private List<String> targets = Lists.newArrayList();
private ContentState status;
private NavTransUnitEvent.NavigationType navigationType;

public TransUnitSaveEvent(List<String> targets, ContentState status)
public TransUnitSaveEvent(List<String> targets, ContentState status, TransUnitId transUnitId, Integer verNum)
{
this.targets = targets;
this.status = status;
this.transUnitId = transUnitId;
this.verNum = verNum;
}

public Type<TransUnitSaveEventHandler> getAssociatedType()
Expand All @@ -65,19 +70,43 @@ public ContentState getStatus()
return status;
}

public TransUnitSaveEvent andMoveTo(NavTransUnitEvent.NavigationType navigationType)
public TransUnitId getTransUnitId()
{
this.navigationType = navigationType;
return this;
return transUnitId;
}

public boolean andMove()
public Integer getVerNum()
{
return navigationType != null;
return verNum;
}

public NavTransUnitEvent.NavigationType getNavigationType()
@Override
public boolean equals(Object o)
{
return navigationType;
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

TransUnitSaveEvent that = (TransUnitSaveEvent) o;
// @formatter:off
return Objects.equal(transUnitId, that.transUnitId)
&& Objects.equal(verNum, that.verNum)
&& Objects.equal(status, that.status)
&& Objects.equal(targets, that.targets);
// @formatter:on
}

@Override
public int hashCode()
{
return Objects.hashCode(transUnitId, verNum, targets, status);
}

@Override
public String toString()
{
return Objects.toStringHelper(this).
add("transUnitId", transUnitId).
add("verNum", verNum).
toString();
}
}
Expand Up @@ -20,11 +20,6 @@
*/
package org.zanata.webtrans.client.gin;

import net.customware.gwt.presenter.client.DefaultEventBus;
import net.customware.gwt.presenter.client.Display;
import net.customware.gwt.presenter.client.EventBus;
import net.customware.gwt.presenter.client.gin.AbstractPresenterModule;

import org.zanata.webtrans.client.Application;
import org.zanata.webtrans.client.EventProcessor;
import org.zanata.webtrans.client.editor.HasPageNavigation;
Expand Down Expand Up @@ -86,21 +81,25 @@
import org.zanata.webtrans.client.view.SearchResultsView;
import org.zanata.webtrans.client.view.TransMemoryDetailsView;
import org.zanata.webtrans.client.view.TransMemoryView;
import org.zanata.webtrans.client.view.TransUnitEditDisplay;
import org.zanata.webtrans.client.view.TransUnitEditView;
import org.zanata.webtrans.client.view.TransUnitEditDisplay2;
import org.zanata.webtrans.client.view.TransUnitEditView2;
import org.zanata.webtrans.client.view.TransUnitNavigationView;
import org.zanata.webtrans.client.view.TranslationEditorView;
import org.zanata.webtrans.client.view.TranslationView;
import org.zanata.webtrans.client.view.ValidationOptionsView;
import org.zanata.webtrans.client.view.WorkspaceUsersView;
import org.zanata.webtrans.shared.auth.Identity;
import org.zanata.webtrans.shared.model.UserWorkspaceContext;

import com.google.gwt.core.client.Scheduler;
import com.google.inject.Provider;
import com.google.inject.Provides;
import com.google.inject.Singleton;

import net.customware.gwt.presenter.client.DefaultEventBus;
import net.customware.gwt.presenter.client.Display;
import net.customware.gwt.presenter.client.EventBus;
import net.customware.gwt.presenter.client.gin.AbstractPresenterModule;

public class WebTransClientModule extends AbstractPresenterModule
{

Expand Down Expand Up @@ -134,7 +133,7 @@ protected void configure()
bindPresenter(TranslationEditorPresenter.class, TranslationEditorPresenter.Display.class, TranslationEditorView.class);
bindPresenter(ValidationOptionsPresenter.class, ValidationOptionsPresenter.Display.class, ValidationOptionsView.class);
bindPresenter(NotificationPresenter.class, NotificationPresenter.Display.class, NotificationView.class);
bindPresenter(TransUnitEditPresenter.class, TransUnitEditDisplay.class, TransUnitEditView.class);
bindPresenter(TransUnitEditPresenter.class, TransUnitEditDisplay2.class, TransUnitEditView2.class);
bindPresenter(LayoutSelectorPresenter.class, LayoutSelectorPresenter.Display.class, LayoutSelectorView.class);

bind(SourceContentsPresenter.class).in(Singleton.class);
Expand Down

0 comments on commit 460f793

Please sign in to comment.