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

Commit

Permalink
Merge branch 'master' into EnableChat
Browse files Browse the repository at this point in the history
Conflicts:
	zanata-war/src/main/java/org/zanata/webtrans/client/resources/WebTransMessages.java
  • Loading branch information
Alex Eng committed Jun 11, 2012
2 parents 67ca476 + f803d87 commit 4f6ff68
Show file tree
Hide file tree
Showing 6 changed files with 499 additions and 172 deletions.
Expand Up @@ -71,7 +71,6 @@
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.HasData;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.MultiSelectionModel;
import com.google.gwt.view.client.SelectionChangeEvent;
Expand Down Expand Up @@ -112,14 +111,16 @@ public interface Display extends WidgetDisplay

void focusReplacementTextBox();

HasText getSelectionInfoLabel();

HasValue<Boolean> getCaseSensitiveChk();

HasValue<Boolean> getSelectAllChk();

HasChangeHandlers getSearchFieldSelector();

static String SEARCH_FIELD_TARGET = "target";
static String SEARCH_FIELD_SOURCE = "source";
static String SEARCH_FIELD_BOTH = "both";

String getSelectedSearchField();

void setSearching(boolean searching);
Expand All @@ -134,8 +135,6 @@ public interface Display extends WidgetDisplay

void setRequirePreview(boolean required);

HasClickHandlers getSelectAllButton();

void clearAll();

/**
Expand Down Expand Up @@ -166,10 +165,10 @@ public interface Display extends WidgetDisplay
*
* @see SearchResultsDocumentTable#SearchResultsDocumentTable(SelectionModel, ValueChangeHandler, WebTransMessages)
*/
HasData<TransUnitReplaceInfo> addDocument(String docName,
ListDataProvider<TransUnitReplaceInfo> addDocument(String docName,
ClickHandler viewDocClickHandler,
ClickHandler searchDocClickHandler,
SelectionModel<TransUnitReplaceInfo> selectionModel,
MultiSelectionModel<TransUnitReplaceInfo> selectionModel,
ValueChangeHandler<Boolean> selectAllHandler);

/**
Expand All @@ -181,15 +180,22 @@ HasData<TransUnitReplaceInfo> addDocument(String docName,
* @see #addDocument(String, ClickHandler, ClickHandler, SelectionModel, ValueChangeHandler)
* @see SearchResultsDocumentTable#SearchResultsDocumentTable(Delegate, Delegate, Delegate, SelectionModel, ValueChangeHandler, WebTransMessages, org.zanata.webtrans.client.resources.Resources)
*/
HasData<TransUnitReplaceInfo> addDocument(
ListDataProvider<TransUnitReplaceInfo> addDocument(
String docName,
ClickHandler viewDocClickHandler,
ClickHandler searchDocClickHandler,
SelectionModel<TransUnitReplaceInfo> selectionModel,
MultiSelectionModel<TransUnitReplaceInfo> selectionModel,
ValueChangeHandler<Boolean> selectAllHandler,
Delegate<TransUnitReplaceInfo> previewDelegate,
Delegate<TransUnitReplaceInfo> replaceDelegate,
Delegate<TransUnitReplaceInfo> undoDelegate);

/**
* Required to avoid instantiating a component that calls client-only code in the presenter
*
* @return a new selection model for use with table
*/
MultiSelectionModel<TransUnitReplaceInfo> createMultiSelectionModel();
}

private final WebTransMessages messages;
Expand Down Expand Up @@ -276,11 +282,11 @@ public void onClick(ClickEvent event)
@Override
public void onValueChange(ValueChangeEvent<String> event)
{
HistoryToken token = HistoryToken.fromTokenString(history.getToken());
HistoryToken token = history.getHistoryToken();
if (!event.getValue().equals(token.getProjectSearchReplacement()))
{
token.setProjectSearchReplacement(event.getValue());
history.newItem(token.toTokenString());
history.newItem(token);
}
}
}));
Expand Down Expand Up @@ -330,19 +336,6 @@ public void onClick(ClickEvent event)
}
}));


// TODO check "select entire document" checkbox if all rows individually
// selected (and clear for none selected)
registerHandler(display.getSelectAllButton().addClickHandler(new ClickHandler()
{

@Override
public void onClick(ClickEvent event)
{
selectAllTextFlows();
}
}));

history.addValueChangeHandler(new ValueChangeHandler<String>()
{

Expand Down Expand Up @@ -508,7 +501,7 @@ private void showDocInEditor(String doc, boolean runSearch)
{
token.setSearchText("");
}
history.newItem(token.toTokenString());
history.newItem(token);
}

@Override
Expand Down Expand Up @@ -548,7 +541,8 @@ public void onSuccess(GetProjectTransUnitListsResult result)
int textFlowCount = displaySearchResults(result);
if (result.getDocumentIds().size() == 0)
{
display.getSearchResponseLabel().setText("");
// TODO add case sensitivity and scope
display.getSearchResponseLabel().setText(messages.searchForPhraseReturnedNoResults(result.getSearchAction().getSearchString()));
}
else
{
Expand Down Expand Up @@ -663,7 +657,6 @@ public void onSelectionChange(SelectionChangeEvent event)
}
else
{
display.getSelectionInfoLabel().setText(messages.numTextFlowsSelected(selectedFlows));
refreshReplaceAllButton();
}
}
Expand Down Expand Up @@ -1057,25 +1050,22 @@ private int displaySearchResults(GetProjectTransUnitListsResult result)
*/
private void displayDocumentResults(Long docId, final String docPathName, List<TransUnit> transUnits)
{
final MultiSelectionModel<TransUnitReplaceInfo> selectionModel = new MultiSelectionModel<TransUnitReplaceInfo>();
final ListDataProvider<TransUnitReplaceInfo> dataProvider = new ListDataProvider<TransUnitReplaceInfo>();
documentDataProviders.put(docId, dataProvider);
ListDataProvider<TransUnitReplaceInfo> dataProvider;
final MultiSelectionModel<TransUnitReplaceInfo> selectionModel = display.createMultiSelectionModel();
documentSelectionModels.put(docId, selectionModel);

HasData<TransUnitReplaceInfo> table;
ClickHandler showDocHandler = showDocClickHandler(docPathName, false);
ClickHandler searchDocHandler = showDocClickHandler(docPathName, true);
ValueChangeHandler<Boolean> selectDocHandler = selectAllHandler(selectionModel, dataProvider);
ValueChangeHandler<Boolean> selectDocHandler = selectAllHandler(docId, selectionModel);
if (showRowActionButtons)
{
table = display.addDocument(docPathName, showDocHandler, searchDocHandler, selectionModel, selectDocHandler,
dataProvider = display.addDocument(docPathName, showDocHandler, searchDocHandler, selectionModel, selectDocHandler,
ensurePreviewButtonDelegate(), ensureReplaceButtonDelegate(), ensureUndoButtonDelegate());
}
else
{
table = display.addDocument(docPathName, showDocHandler, searchDocHandler, selectionModel, selectDocHandler);
dataProvider = display.addDocument(docPathName, showDocHandler, searchDocHandler, selectionModel, selectDocHandler);
}
dataProvider.addDataDisplay(table);
documentDataProviders.put(docId, dataProvider);

selectionModel.addSelectionChangeHandler(selectionChangeHandler);

Expand Down Expand Up @@ -1116,7 +1106,7 @@ public void onClick(ClickEvent event)
* @param dataProvider
* @return the new handler
*/
private ValueChangeHandler<Boolean> selectAllHandler(final MultiSelectionModel<TransUnitReplaceInfo> selectionModel, final ListDataProvider<TransUnitReplaceInfo> dataProvider)
private ValueChangeHandler<Boolean> selectAllHandler(final Long docId, final MultiSelectionModel<TransUnitReplaceInfo> selectionModel)
{
return new ValueChangeHandler<Boolean>()
{
Expand All @@ -1125,9 +1115,13 @@ public void onValueChange(ValueChangeEvent<Boolean> event)
{
if (event.getValue())
{
for (TransUnitReplaceInfo info : dataProvider.getList())
ListDataProvider<TransUnitReplaceInfo> dataProvider = documentDataProviders.get(docId);
if (dataProvider != null)
{
selectionModel.setSelected(info, true);
for (TransUnitReplaceInfo info : dataProvider.getList())
{
selectionModel.setSelected(info, true);
}
}
}
else
Expand Down Expand Up @@ -1206,7 +1200,6 @@ private void clearAllExistingData()

private void setUiForNothingSelected()
{
display.getSelectionInfoLabel().setText(messages.noTextFlowsSelected());
display.setReplaceAllButtonEnabled(false);
}

Expand Down Expand Up @@ -1319,7 +1312,7 @@ private void refreshReplacementEventInfoList()
private void updateSearch()
{
boolean changed = false;
HistoryToken token = HistoryToken.fromTokenString(history.getToken());
HistoryToken token = history.getHistoryToken();

Boolean caseSensitive = display.getCaseSensitiveChk().getValue();
if (caseSensitive != token.getProjectSearchCaseSensitive())
Expand All @@ -1336,8 +1329,8 @@ private void updateSearch()
}

String selected = display.getSelectedSearchField();
boolean searchSource = selected.equals("source") || selected.equals("both");
boolean searchTarget = selected.equals("target") || selected.equals("both");
boolean searchSource = selected.equals(Display.SEARCH_FIELD_SOURCE) || selected.equals(Display.SEARCH_FIELD_BOTH);
boolean searchTarget = selected.equals(Display.SEARCH_FIELD_TARGET) || selected.equals(Display.SEARCH_FIELD_BOTH);
if (searchSource != token.isProjectSearchInSource())
{
token.setProjectSearchInSource(searchSource);
Expand All @@ -1351,7 +1344,7 @@ private void updateSearch()

if (changed)
{
history.newItem(token.toTokenString());
history.newItem(token);
}
}

Expand Down
Expand Up @@ -147,6 +147,9 @@ public interface WebTransMessages extends Messages
"other|one", "Showing results for search \"{0}\" ({1} text flows in 1 document)"})
String showingResultsForProjectWideSearch(String searchString, @PluralCount int textFlows, @PluralCount int documents);

@DefaultMessage("Search \"{0}\" returned no results")
String searchForPhraseReturnedNoResults(String searchString);

@DefaultMessage("There are no search results to display")
String noSearchResults();

Expand Down Expand Up @@ -335,4 +338,6 @@ public interface WebTransMessages extends Messages
@DefaultMessage("Enter text to filter the document list. Use commas (,) to separate multiple searches")
String docListFilterDescription();

@DefaultMessage("Disable 'Replace' button until previews have been generated for all selected text flows")
String requirePreviewDescription();
}
Expand Up @@ -51,8 +51,8 @@
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.view.client.HasData;
import com.google.gwt.view.client.SelectionModel;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.MultiSelectionModel;
import com.google.inject.Inject;

/**
Expand All @@ -76,7 +76,7 @@ interface SearchResultsViewUiBinder extends UiBinder<LayoutPanel, SearchResultsV
TextBox filterTextBox, replacementTextBox;

@UiField
InlineLabel searchResponseLabel, selectAllLink, selectionInfoLabel;
InlineLabel searchResponseLabel;

@UiField
CheckBox caseSensitiveChk, selectAllChk, requirePreviewChk;
Expand Down Expand Up @@ -108,6 +108,7 @@ public SearchResultsView(Resources resources, final WebTransMessages webTransMes
noResultsLabel.addStyleName("projectWideSearchNoResultsLabel");
searchResultsPanel.add(noResultsLabel);
requirePreviewChk.setValue(true, false);
requirePreviewChk.setTitle(messages.requirePreviewDescription());
}

@Override
Expand Down Expand Up @@ -163,12 +164,6 @@ public void focusReplacementTextBox()
replacementTextBox.setSelectionRange(0, replacementTextBox.getText().length());
}

@Override
public HasText getSelectionInfoLabel()
{
return selectionInfoLabel;
}

@Override
public HasValue<Boolean> getCaseSensitiveChk()
{
Expand Down Expand Up @@ -222,12 +217,6 @@ public void setRequirePreview(boolean required)
SearchResultsDocumentTable.setRequirePreview(required);
}

@Override
public HasClickHandlers getSelectAllButton()
{
return selectAllLink;
}

@Override
public HasText getSearchResponseLabel()
{
Expand Down Expand Up @@ -273,21 +262,21 @@ public void clearReplacementMessages()
}

@Override
public HasData<TransUnitReplaceInfo> addDocument(String docName,
public ListDataProvider<TransUnitReplaceInfo> addDocument(String docName,
ClickHandler viewDocClickHandler,
ClickHandler searchDocClickHandler,
SelectionModel<TransUnitReplaceInfo> selectionModel,
MultiSelectionModel<TransUnitReplaceInfo> selectionModel,
ValueChangeHandler<Boolean> selectAllHandler)
{
SearchResultsDocumentTable table = new SearchResultsDocumentTable(selectionModel, selectAllHandler, messages);
return addDocument(docName, viewDocClickHandler, searchDocClickHandler, table);
}

@Override
public HasData<TransUnitReplaceInfo> addDocument(String docName,
public ListDataProvider<TransUnitReplaceInfo> addDocument(String docName,
ClickHandler viewDocClickHandler,
ClickHandler searchDocClickHandler,
SelectionModel<TransUnitReplaceInfo> selectionModel,
MultiSelectionModel<TransUnitReplaceInfo> selectionModel,
ValueChangeHandler<Boolean> selectAllHandler,
Delegate<TransUnitReplaceInfo> previewDelegate,
Delegate<TransUnitReplaceInfo> replaceDelegate,
Expand All @@ -304,14 +293,17 @@ public HasData<TransUnitReplaceInfo> addDocument(String docName,
* @param table
* @return
*/
private HasData<TransUnitReplaceInfo> addDocument(String docName, ClickHandler viewDocClickHandler, ClickHandler searchDocClickHandler, SearchResultsDocumentTable table)
private ListDataProvider<TransUnitReplaceInfo> addDocument(String docName, ClickHandler viewDocClickHandler, ClickHandler searchDocClickHandler, SearchResultsDocumentTable table)
{
// ensure 'no results' message is no longer visible
noResultsLabel.removeFromParent();
addDocumentLabel(docName, viewDocClickHandler, searchDocClickHandler);
searchResultsPanel.add(table);
table.addStyleName("projectWideSearchResultsDocumentBody");
return table;

ListDataProvider<TransUnitReplaceInfo> dataProvider = new ListDataProvider<TransUnitReplaceInfo>();
dataProvider.addDataDisplay(table);
return dataProvider;
}

private void addDocumentLabel(String docName, ClickHandler viewDocClickHandler, ClickHandler searchDocClickHandler)
Expand Down Expand Up @@ -354,4 +346,10 @@ public void setSearching(boolean searching)
searchingIndicator.hide();
}
}

@Override
public MultiSelectionModel<TransUnitReplaceInfo> createMultiSelectionModel()
{
return new MultiSelectionModel<TransUnitReplaceInfo>();
}
}

0 comments on commit 4f6ff68

Please sign in to comment.