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

Commit

Permalink
fully unit test of TranslationPresenter
Browse files Browse the repository at this point in the history
  • Loading branch information
Patrick Huang committed Sep 27, 2012
1 parent eafecd8 commit a65f9b2
Show file tree
Hide file tree
Showing 5 changed files with 203 additions and 251 deletions.
Expand Up @@ -50,4 +50,22 @@ public NavigationType getRowType()
{
return rowType;
}

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

NavTransUnitEvent that = (NavTransUnitEvent) o;

return rowType == that.rowType;

}

@Override
public int hashCode()
{
return rowType.hashCode();
}
}
Expand Up @@ -29,6 +29,8 @@
import org.zanata.common.ContentState;
import org.zanata.webtrans.client.events.CopyDataToEditorEvent;
import org.zanata.webtrans.client.events.CopyDataToEditorHandler;
import org.zanata.webtrans.client.events.ExitWorkspaceEvent;
import org.zanata.webtrans.client.events.ExitWorkspaceEventHandler;
import org.zanata.webtrans.client.events.InsertStringInEditorEvent;
import org.zanata.webtrans.client.events.InsertStringInEditorHandler;
import org.zanata.webtrans.client.events.KeyShortcutEvent;
Expand Down Expand Up @@ -91,7 +93,8 @@ public class TargetContentsPresenter implements
RequestValidationEventHandler,
InsertStringInEditorHandler,
CopyDataToEditorHandler,
WorkspaceContextUpdateEventHandler
WorkspaceContextUpdateEventHandler,
ExitWorkspaceEventHandler
// @formatter:on
{
private static final int LAST_INDEX = -2;
Expand Down Expand Up @@ -319,6 +322,7 @@ private void bindEventHandlers()
eventBus.addHandler(CopyDataToEditorEvent.getType(), this);
eventBus.addHandler(TransUnitEditEvent.getType(), this);
eventBus.addHandler(WorkspaceContextUpdateEvent.getType(), this);
eventBus.addHandler(ExitWorkspaceEvent.getType(), this);
}

public void savePendingChangesIfApplicable()
Expand Down Expand Up @@ -430,7 +434,13 @@ private void updateEditorTranslatorList(TransUnitId selectedTransUnitId, Person
}
}

public void updateTranslators()
@Override
public void onExitWorkspace(ExitWorkspaceEvent event)
{
updateTranslators();
}

private void updateTranslators()
{
clearTranslatorList(currentEditors);

Expand Down
Expand Up @@ -44,16 +44,10 @@
import com.google.inject.Inject;


public class TranslationPresenter extends WidgetPresenter<TranslationPresenter.Display>
public class TranslationPresenter extends WidgetPresenter<TranslationPresenter.Display> implements WorkspaceContextUpdateEventHandler
{
public interface Display extends WidgetDisplay
{
/**
* expand to previous size or collapse to show just tabs on the south
* panel
*
* @param expanded
*/
void setSouthPanelExpanded(boolean expanded);
}

Expand All @@ -63,15 +57,15 @@ public interface Display extends WidgetDisplay
private final TargetContentsPresenter targetContentsPresenter;
private final KeyShortcutPresenter keyShortcutPresenter;

private UserWorkspaceContext userWorkspaceContext;
private final UserWorkspaceContext userWorkspaceContext;
private final NavigationService navigationService;

private final WebTransMessages messages;

private boolean southPanelExpanded = true;

@Inject
public TranslationPresenter(Display display, EventBus eventBus, final TargetContentsPresenter targetContentsPresenter, final TranslationEditorPresenter translationEditorPresenter, final TransMemoryPresenter transMemoryPresenter, final GlossaryPresenter glossaryPresenter, final WebTransMessages messages, final UserWorkspaceContext userWorkspaceContext, final KeyShortcutPresenter keyShortcutPresenter, NavigationService navigationService)
public TranslationPresenter(Display display, EventBus eventBus, TargetContentsPresenter targetContentsPresenter, TranslationEditorPresenter translationEditorPresenter, TransMemoryPresenter transMemoryPresenter, GlossaryPresenter glossaryPresenter, WebTransMessages messages, UserWorkspaceContext userWorkspaceContext, KeyShortcutPresenter keyShortcutPresenter, NavigationService navigationService)
{
super(display, eventBus);
this.messages = messages;
Expand All @@ -97,25 +91,7 @@ protected void onBind()
bindSouthPanelPresenters();
translationEditorPresenter.bind();

registerHandler(eventBus.addHandler(ExitWorkspaceEvent.getType(), new ExitWorkspaceEventHandler()
{
@Override
public void onExitWorkspace(ExitWorkspaceEvent event)
{
targetContentsPresenter.updateTranslators();
}
}));

registerHandler(eventBus.addHandler(WorkspaceContextUpdateEvent.getType(), new WorkspaceContextUpdateEventHandler()
{
@Override
public void onWorkspaceContextUpdated(WorkspaceContextUpdateEvent event)
{
userWorkspaceContext.setProjectActive(event.isProjectActive());
setSouthPanelReadOnly(userWorkspaceContext.hasReadOnlyAccess());
}
}));

registerHandler(eventBus.addHandler(WorkspaceContextUpdateEvent.getType(), this));
setSouthPanelReadOnly(userWorkspaceContext.hasReadOnlyAccess());

KeyShortcutEventHandler gotoPreRowHandler = new KeyShortcutEventHandler()
Expand All @@ -142,11 +118,11 @@ public void onKeyShortcut(KeyShortcutEvent event)

keyShortcutPresenter.register(new KeyShortcut(Keys.setOf(
new Keys(Keys.ALT_KEY, KeyCodes.KEY_UP), new Keys(Keys.ALT_KEY, 'J')),
ShortcutContext.Navigation, messages.navigateToNextRow(), KeyEvent.KEY_DOWN, true, true, gotoPreRowHandler));
ShortcutContext.Navigation, messages.navigateToPreviousRow(), KeyEvent.KEY_DOWN, true, true, gotoPreRowHandler));

keyShortcutPresenter.register(new KeyShortcut(Keys.setOf(
new Keys(Keys.ALT_KEY, KeyCodes.KEY_DOWN), new Keys(Keys.ALT_KEY, 'K')),
ShortcutContext.Navigation, messages.navigateToPreviousRow(), KeyEvent.KEY_DOWN, true, true, gotoNextRowHandler));
ShortcutContext.Navigation, messages.navigateToNextRow(), KeyEvent.KEY_DOWN, true, true, gotoNextRowHandler));

// Register shortcut Enter to open editor in selected row - if no other input field is in focus
keyShortcutPresenter.register(new KeyShortcut(new Keys(Keys.NO_MODIFIER, KeyCodes.KEY_ENTER), ShortcutContext.Navigation, messages.openEditorInSelectedRow(), KeyEvent.KEY_UP, true, true, new KeyShortcutEventHandler()
Expand Down Expand Up @@ -186,7 +162,7 @@ public void saveEditorPendingChange()
* Handle all changes required to completely hide and unbind the south panel
* for read-only mode, or to undo said changes.
*
* @param readOnly
* @param readOnly read only
*/
private void setSouthPanelReadOnly(boolean readOnly)
{
Expand All @@ -206,7 +182,7 @@ private void setSouthPanelReadOnly(boolean readOnly)
* appropriate. Will have no effect if the panel is already in the state of
* expansion or contraction that is specified.
*
* @param expanded
* @param expanded expand
*/
public void setSouthPanelExpanded(boolean expanded)
{
Expand Down Expand Up @@ -251,4 +227,10 @@ public void concealDisplay()
keyShortcutPresenter.setContextActive(ShortcutContext.Navigation, false);
}

@Override
public void onWorkspaceContextUpdated(WorkspaceContextUpdateEvent event)
{
userWorkspaceContext.setProjectActive(event.isProjectActive());
setSouthPanelReadOnly(userWorkspaceContext.hasReadOnlyAccess());
}
}
Expand Up @@ -34,6 +34,7 @@
import org.testng.annotations.Test;
import org.zanata.common.ContentState;
import org.zanata.webtrans.client.events.CopyDataToEditorEvent;
import org.zanata.webtrans.client.events.ExitWorkspaceEvent;
import org.zanata.webtrans.client.events.InsertStringInEditorEvent;
import org.zanata.webtrans.client.events.NavTransUnitEvent;
import org.zanata.webtrans.client.events.NotificationEvent;
Expand Down Expand Up @@ -122,6 +123,7 @@ public void beforeMethod()
verify(eventBus).addHandler(TransUnitEditEvent.getType(), presenter);
verify(eventBus).addHandler(TransUnitEditEvent.getType(), presenter);
verify(eventBus).addHandler(WorkspaceContextUpdateEvent.getType(), presenter);
verify(eventBus).addHandler(ExitWorkspaceEvent.getType(), presenter);

when(displayProvider.get()).thenReturn(display);
presenter.showData(currentPageRows);
Expand Down

0 comments on commit a65f9b2

Please sign in to comment.