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

Commit

Permalink
Merge branch 'trans-presenter-test'
Browse files Browse the repository at this point in the history
  • Loading branch information
davidmason committed Mar 12, 2012
2 parents e8afa8a + e091c3d commit 386fea9
Show file tree
Hide file tree
Showing 4 changed files with 189 additions and 69 deletions.
@@ -1,7 +1,5 @@
package org.zanata.webtrans.client.presenter;

import java.util.ArrayList;

import net.customware.gwt.presenter.client.EventBus;
import net.customware.gwt.presenter.client.widget.WidgetDisplay;
import net.customware.gwt.presenter.client.widget.WidgetPresenter;
Expand Down Expand Up @@ -29,53 +27,56 @@
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.HasValue;
import com.google.gwt.view.client.ListDataProvider;
import com.google.inject.Inject;

public class TransMemoryPresenter extends WidgetPresenter<TransMemoryPresenter.Display>
{
private final WorkspaceContext workspaceContext;
private final CachingDispatchAsync dispatcher;
private GetTranslationMemory submittedRequest = null;
private GetTranslationMemory lastRequest = null;

@Inject
private TransMemoryDetailsPresenter tmInfoPresenter;

public interface Display extends WidgetDisplay
{
HasClickHandlers getSearchButton();

HasClickHandlers getClearButton();

HasValue<SearchType> getSearchType();

HasText getTmTextBox();

void reloadData(String query, ArrayList<TranslationMemoryGlossaryItem> memories);
void setDiffText(String query);

void startProcessing();

void stopProcessing();

boolean isFocused();

String getSource(int index);
void setPageSize(int size);

String getTarget(int index);
boolean isFocused();

Column<TranslationMemoryGlossaryItem, ImageResource> getDetailsColumn();

Column<TranslationMemoryGlossaryItem, String> getCopyColumn();

void renderTable();
void setDataProvider(ListDataProvider<TranslationMemoryGlossaryItem> dataProvider);
}

private final WorkspaceContext workspaceContext;
private final CachingDispatchAsync dispatcher;
private GetTranslationMemory submittedRequest = null;
private GetTranslationMemory lastRequest = null;
private TransMemoryDetailsPresenter tmInfoPresenter;
private ListDataProvider<TranslationMemoryGlossaryItem> dataProvider;

@Inject
public TransMemoryPresenter(Display display, EventBus eventBus, CachingDispatchAsync dispatcher, WorkspaceContext workspaceContext)
public TransMemoryPresenter(Display display, EventBus eventBus, CachingDispatchAsync dispatcher, TransMemoryDetailsPresenter tmInfoPresenter, WorkspaceContext workspaceContext)
{
super(display, eventBus);
this.dispatcher = dispatcher;
this.workspaceContext = workspaceContext;
this.tmInfoPresenter = tmInfoPresenter;

display.renderTable();
dataProvider = new ListDataProvider<TranslationMemoryGlossaryItem>();
display.setDataProvider(dataProvider);
}

@Override
Expand All @@ -92,6 +93,16 @@ public void onClick(ClickEvent event)
}
});

display.getClearButton().addClickHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
display.getTmTextBox().setText("");
dataProvider.getList().clear();
}
});

registerHandler(eventBus.addHandler(TransUnitSelectionEvent.getType(), new TransUnitSelectionHandler()
{
@Override
Expand All @@ -108,11 +119,18 @@ public void onTransMemoryCopy(TransMemoryShortcutCopyEvent event)
{
if (!workspaceContext.isReadOnly())
{
String source = display.getSource(event.getIndex());
String target = display.getTarget(event.getIndex());
if (source != null && target != null)
TranslationMemoryGlossaryItem item;
try
{
item = dataProvider.getList().get(event.getIndex());
}
catch (IndexOutOfBoundsException ex)
{
item = null;
}
if (item != null)
{
eventBus.fireEvent(new TransMemoryCopyEvent(source, target));
eventBus.fireEvent(new TransMemoryCopyEvent(item.getSource(), item.getTarget()));
}
}
}
Expand Down Expand Up @@ -148,6 +166,7 @@ public void createTMRequestForTransUnit(TransUnit transUnit)

private void createTMRequest(final String query, GetTranslationMemory.SearchType searchType)
{
dataProvider.getList().clear();
display.startProcessing();
final GetTranslationMemory action = new GetTranslationMemory(query, workspaceContext.getWorkspaceId().getLocaleId(), searchType);
scheduleTMRequest(action);
Expand Down Expand Up @@ -213,9 +232,16 @@ private void displayTMResult(GetTranslationMemoryResult result)
{
String query = submittedRequest.getQuery();
display.getTmTextBox().setText(query);
display.setDiffText(query);
display.getSearchType().setValue(submittedRequest.getSearchType());
ArrayList<TranslationMemoryGlossaryItem> memories = result.getMemories();
display.reloadData(query, memories);

dataProvider.getList().clear();
for (final TranslationMemoryGlossaryItem memory : result.getMemories())
{
dataProvider.getList().add(memory);
}
display.setPageSize(dataProvider.getList().size());
dataProvider.refresh();
}

@Override
Expand Down
@@ -1,6 +1,5 @@
package org.zanata.webtrans.client.view;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;

Expand All @@ -22,8 +21,8 @@
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.event.dom.client.BlurEvent;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.FocusEvent;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.resources.client.ImageResource;
Expand Down Expand Up @@ -73,8 +72,8 @@ interface TransMemoryViewUiBinder extends UiBinder<Widget, TransMemoryView>

CellTable<TranslationMemoryGlossaryItem> tmTable;

private static Resources resources;
private static String query;
private Resources resources;
private String query;

private boolean isFocused;

Expand Down Expand Up @@ -180,7 +179,6 @@ public TransMemoryView(final UiMessages messages, SearchTypeRenderer searchTypeR
this.messages = messages;

searchType = new EnumListBox<SearchType>(SearchType.class, searchTypeRenderer);
dataProvider = new ListDataProvider<TranslationMemoryGlossaryItem>();
initWidget(uiBinder.createAndBindUi(this));

clearButton.setText(messages.clearButtonLabel());
Expand Down Expand Up @@ -208,15 +206,14 @@ public void onTmTextBoxBlur(BlurEvent event)
isFocused = false;
}

@UiHandler("clearButton")
void onClearButtonClicked(ClickEvent event)
@Override
public HasClickHandlers getClearButton()
{
tmTextBox.setText("");
dataProvider.getList().clear();
return clearButton;
}

@Override
public Button getSearchButton()
public HasClickHandlers getSearchButton()
{
return searchButton;
}
Expand All @@ -241,58 +238,32 @@ public Widget asWidget()
@Override
public void startProcessing()
{
dataProvider.getList().clear();
//TODO show waiting indicator
}

@Override
public void stopProcessing()
{
//TODO hide waiting indicator
//TODO add test for start and stop processing at appropriate times
}

@Override
public void reloadData(String query, ArrayList<TranslationMemoryGlossaryItem> memories)
public void setDiffText(String query)
{
this.query = query;
tmTable.setVisibleRangeAndClearData(tmTable.getVisibleRange(), true);
dataProvider.getList().clear();
for (final TranslationMemoryGlossaryItem memory : memories)
{
dataProvider.getList().add(memory);
}
tmTable.setPageSize(dataProvider.getList().size());
dataProvider.refresh();
}

@Override
public boolean isFocused()
public void setPageSize(int size)
{
return isFocused;
}

@Override
public String getSource(int index)
{
try
{
return dataProvider.getList().get(index).getSource();
}
catch (IndexOutOfBoundsException e)
{
return null;
}
tmTable.setPageSize(size);
}

@Override
public String getTarget(int index)
public boolean isFocused()
{
try
{
return dataProvider.getList().get(index).getTarget();
}
catch (IndexOutOfBoundsException e)
{
return null;
}
return isFocused;
}

@Override
Expand All @@ -308,7 +279,13 @@ public Column<TranslationMemoryGlossaryItem, String> getCopyColumn()
}

@Override
public void renderTable()
public void setDataProvider(ListDataProvider<TranslationMemoryGlossaryItem> dataProvider)
{
this.dataProvider = dataProvider;
renderTable();
}

private void renderTable()
{
tmTable = new CellTable<TranslationMemoryGlossaryItem>();
tmTable.addStyleName("tmTable");
Expand Down
Expand Up @@ -16,7 +16,7 @@
<g:layer top="0px" height="30px">
<g:HorizontalPanel>
<g:TextBox ui:field="tmTextBox" />
<g:ValueListBox ui:field="searchType"/>
<g:ValueListBox ui:field="searchType"/>
<g:Button ui:field="searchButton"/>
<g:Button ui:field="clearButton"/>
</g:HorizontalPanel>
Expand Down

0 comments on commit 386fea9

Please sign in to comment.