Skip to content

Commit

Permalink
ZNTA-1705 - update UI
Browse files Browse the repository at this point in the history
  • Loading branch information
Patrick Huang committed Mar 6, 2017
1 parent d436936 commit 18fd525
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 131 deletions.
Expand Up @@ -96,11 +96,14 @@ public interface UiMessages extends Messages {
@DefaultMessage("TM merge")
String mergeTMButtonLabel();

@DefaultMessage("Merge translation from Translation Memory for untranslated and fuzzy text flows on current page")
@DefaultMessage("Merge translation from Translation Memory for untranslated text flows in this document")
String mergeTMTooltip();

@DefaultMessage("Select TM match percentage to pre-fill translations. All the conditions will be checked to determine final state.")
String mergeTMCaption();
@DefaultMessage("Select TM match percentage to pre-fill translations. All the conditions will be checked to determine final state. This will apply to the entire document")
String mergeTMHeading();

@DefaultMessage("Auto-fill Translation Memory")
String mergeTMCaption();

@DefaultMessage("No text can be TM merged")
String noTranslationToMerge();
Expand Down Expand Up @@ -136,27 +139,24 @@ public interface UiMessages extends Messages {
@DefaultMessage("Match percentage threshold")
String matchThreshold();

@DefaultMessage("On Content mismatch:")
@DefaultMessage("Different Content:")
String differentContent();

@DefaultMessage("On Project Name mismatch:")
@DefaultMessage("Different Project:")
String differentProjectSlug();

@DefaultMessage("On Document Id mismatch (Document name and path):")
@DefaultMessage("Copy as Fuzzy")
String copyAsFuzzy();

@DefaultMessage("Different Document Id (Document name and path):")
String differentDocument();

@DefaultMessage("On Context mismatch (resId, msgctxt):")
@DefaultMessage("Different Context (resId, msgctxt):")
String differentContext();

@DefaultMessage("On match from Imported Translation Memory:")
String importedMatch();

@DefaultMessage("If not Rejected or downgraded to Fuzzy:")
String otherwise();

@DefaultMessage("Review required and match is Translated:")
String approval();

@DefaultMessage("Condition")
String condition();

Expand Down

This file was deleted.

Expand Up @@ -21,27 +21,26 @@

package org.zanata.webtrans.client.ui;

import com.google.gwt.user.client.ui.Widget;
import org.zanata.webtrans.client.resources.EnumMessages;
import org.zanata.webtrans.client.resources.UiMessages;
import org.zanata.webtrans.shared.rpc.MergeRule;
import org.zanata.webtrans.shared.rpc.MergeOptions;
import org.zanata.webtrans.shared.rpc.MergeRule;

import com.google.common.base.Preconditions;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;

/**
Expand Down Expand Up @@ -75,53 +74,58 @@ public class TMMergeForm extends Composite implements
@UiField
UiMessages messages;

private final EnumRadioButtonGroup<MergeRule> projectOptionGroup;
private final EnumRadioButtonGroup<MergeRule> docIdOptionGroup;
private final EnumRadioButtonGroup<MergeRule> contextOptionGroup;
private final EnumRadioButtonGroup<MergeRule> importedMatchOptionGroup;
private final CheckBox projectOption;
private final CheckBox docOption;
private final CheckBox contextOption;
private final CheckBox importedTMOption;

private final MergeStatusRenderer mergeStatusRenderer;

private TransMemoryMergePopupPanelDisplay.Listener listener;

@Inject
public TMMergeForm(MergeRuleRenderer mergeOptionRenderer,
MergeStatusRenderer mergeStatusRenderer) {
public TMMergeForm(MergeStatusRenderer mergeStatusRenderer) {
this.mergeStatusRenderer = mergeStatusRenderer;
initWidget(uiBinder.createAndBindUi(this));

matchThreshold.setItemText(0, messages.identical());

projectOptionGroup =
new EnumRadioButtonGroup<MergeRule>(
OptionType.PROJECT_MISMATCH.name(), MergeRule.class,
mergeOptionRenderer);
projectOptionGroup.setSelectionChangeListener(this);
projectOptionGroup.addToContainer(differentProject).setDefaultSelected(
MergeRule.FUZZY);

docIdOptionGroup =
new EnumRadioButtonGroup<MergeRule>(
OptionType.DOC_ID_MISMATCH.name(), MergeRule.class,
mergeOptionRenderer);
docIdOptionGroup.setSelectionChangeListener(this);
docIdOptionGroup.addToContainer(differentDocument).setDefaultSelected(
MergeRule.FUZZY);

contextOptionGroup =
new EnumRadioButtonGroup<MergeRule>(
OptionType.CTX_MISMATCH.name(), MergeRule.class,
mergeOptionRenderer);
contextOptionGroup.setSelectionChangeListener(this);
contextOptionGroup.addToContainer(differentContext).setDefaultSelected(
MergeRule.FUZZY);

importedMatchOptionGroup =
new EnumRadioButtonGroup<MergeRule>(
OptionType.IMPORTED_MATCH.name(), MergeRule.class,
mergeOptionRenderer);
importedMatchOptionGroup.setSelectionChangeListener(this);
importedMatchOptionGroup.addToContainer(importedMatchPanel)
.setDefaultSelected(MergeRule.FUZZY);
projectOption = new CheckBox(messages.copyAsFuzzy());
changeStatusLabelFor(MergeRule.fromSelection(projectOption.getValue()),
OptionType.PROJECT_MISMATCH);
projectOption.addValueChangeHandler(event -> {
changeStatusLabelFor(MergeRule.fromSelection(event.getValue()),
OptionType.PROJECT_MISMATCH);
});
differentProject.add(projectOption);

docOption = new CheckBox(messages.copyAsFuzzy());
changeStatusLabelFor(MergeRule.fromSelection(docOption.getValue()),
OptionType.DOC_ID_MISMATCH);
docOption.addValueChangeHandler(event -> {
changeStatusLabelFor(MergeRule.fromSelection(event.getValue()),
OptionType.DOC_ID_MISMATCH);
});
differentDocument.add(docOption);

contextOption = new CheckBox(messages.copyAsFuzzy());
changeStatusLabelFor(MergeRule.fromSelection(contextOption.getValue()),
OptionType.CTX_MISMATCH);
contextOption.addValueChangeHandler(event -> {
changeStatusLabelFor(MergeRule.fromSelection(event.getValue()),
OptionType.CTX_MISMATCH);
});
differentContext.add(contextOption);

importedTMOption = new CheckBox(messages.copyAsFuzzy());
changeStatusLabelFor(
MergeRule.fromSelection(importedTMOption.getValue()),
OptionType.IMPORTED_MATCH);
importedTMOption.addValueChangeHandler(event -> {
changeStatusLabelFor(MergeRule.fromSelection(event.getValue()),
OptionType.IMPORTED_MATCH);
});
importedMatchPanel.add(importedTMOption);
}

public void
Expand All @@ -140,10 +144,11 @@ public void onConfirmButtonClick(ClickEvent event) {
private MergeOptions getSelectedMergeOptions() {
// default to most conservative option
MergeOptions opts = MergeOptions.allReject();
opts.setDifferentDocument(docIdOptionGroup.getSelected());
opts.setDifferentProject(projectOptionGroup.getSelected());
opts.setDifferentResId(contextOptionGroup.getSelected());
opts.setImportedMatch(importedMatchOptionGroup.getSelected());

opts.setDifferentDocument(MergeRule.fromSelection(docOption.getValue()));
opts.setDifferentProject(MergeRule.fromSelection(projectOption.getValue()));
opts.setDifferentResId(MergeRule.fromSelection(contextOption.getValue()));
opts.setImportedMatch(MergeRule.fromSelection(importedTMOption.getValue()));
return opts;
}

Expand Down Expand Up @@ -174,6 +179,11 @@ public void onThresholdPercentChange(ChangeEvent event) {
@Override
public void onSelectionChange(String groupName, MergeRule option) {
OptionType optionType = OptionType.valueOf(groupName);
changeStatusLabelFor(option, optionType);
}

private void changeStatusLabelFor(MergeRule option,
OptionType optionType) {
InlineLabel statusLabel = getStatusLabelFor(optionType);
statusLabel.setText(mergeStatusRenderer.render(option));
statusLabel.setStyleName(resolveStyle(option));
Expand Down
Expand Up @@ -92,25 +92,6 @@
</td>
</tr>

<tr>
<td>
<ui:text from="{messages.otherwise}" />
</td>
<td>
<g:InlineLabel styleName="label--success l--pad-v-quarter l--pad-h-half"
text="{enumMessages.translatedStatus}" />
</td>
</tr>
<tr>
<td>
<ui:text from="{messages.approval}" />
</td>
<td>
<g:InlineLabel
styleName="label--approved l--pad-v-quarter l--pad-h-half"
text="{enumMessages.approvedStatus}" />
</td>
</tr>
</tbody>
</table>
<div class="l--float-right">
Expand Down
Expand Up @@ -32,6 +32,8 @@
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.HeaderPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
Expand Down Expand Up @@ -77,6 +79,8 @@ public TransMemoryMergePopupPanelView(TMMergeForm TMMergeForm,
dialogBox.setModal(true);

VerticalPanel main = new VerticalPanel();
HTMLPanel heading = new HTMLPanel(messages.mergeTMHeading());
main.add(heading);
main.add(TMMergeForm);

processingLabel = new Label(messages.processing());
Expand Down
Expand Up @@ -31,5 +31,9 @@ public enum MergeRule implements IsSerializable {
/**
* Use the match, but mark as fuzzy.
*/
FUZZY
FUZZY;

public static MergeRule fromSelection(boolean selected) {
return selected ? MergeRule.FUZZY : MergeRule.REJECT;
}
}

0 comments on commit 18fd525

Please sign in to comment.