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

Commit

Permalink
Integrate 'Run validate' button to validate against selected TransUni…
Browse files Browse the repository at this point in the history
…t, implement HTML and XML tag validation
  • Loading branch information
Alex Eng committed Dec 6, 2011
1 parent 0e1cc4e commit abc5343
Show file tree
Hide file tree
Showing 22 changed files with 273 additions and 152 deletions.
Expand Up @@ -28,6 +28,7 @@
import org.zanata.webtrans.client.editor.CheckKey;
import org.zanata.webtrans.client.editor.CheckKeyImpl;
import org.zanata.webtrans.client.events.EditTransUnitEvent;
import org.zanata.webtrans.client.events.ValidationEvent;
import org.zanata.webtrans.client.events.NavTransUnitEvent.NavigationType;
import org.zanata.webtrans.client.resources.NavigationMessages;
import org.zanata.webtrans.client.ui.UserConfigConstants;
Expand All @@ -48,6 +49,7 @@
import com.google.gwt.gen2.table.client.CellEditor;
import com.google.gwt.gen2.table.override.client.HTMLTable;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
Expand Down Expand Up @@ -153,7 +155,7 @@ public void onClick(ClickEvent event)

private String saveButtonShortcuts;
private String saveButtonwithEnterShortcuts;
private PushButton saveButton, fuzzyButton, cancelButton;
private PushButton saveButton, fuzzyButton, cancelButton, validateButton;

/*
* The minimum height of the target editor
Expand Down Expand Up @@ -265,6 +267,21 @@ else if (checkKey.isUserTyping())

TableResources images = GWT.create(TableResources.class);

validateButton = new PushButton(new Image(images.cellEditorValidate()));
validateButton.setStyleName("gwt-Button");
validateButton.setTitle(messages.runValidation());
validateButton.addClickHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
if (cellValue != null)
{
eventBus.fireEvent(new ValidationEvent(cellValue.getSource(), textArea.getText()));
}
}
});

saveButton = new PushButton(new Image(images.cellEditorAccept()));
saveButton.setStyleName("gwt-Button");
saveButtonShortcuts = messages.editSaveShortcut();
Expand All @@ -281,14 +298,16 @@ else if (checkKey.isUserTyping())
cancelButton.setStyleName("gwt-Button");
cancelButton.setTitle(messages.editCancelShortcut());
cancelButton.addClickHandler(cancelHandler);
cancelButton.addFocusHandler(new FocusHandler(){
cancelButton.addFocusHandler(new FocusHandler()
{
@Override
public void onFocus(FocusEvent event)
{
isCancelButtonFocused = true;
}
});
cancelButton.addBlurHandler(new BlurHandler(){
cancelButton.addBlurHandler(new BlurHandler()
{

@Override
public void onBlur(BlurEvent event)
Expand All @@ -297,6 +316,7 @@ public void onBlur(BlurEvent event)
}
});

operationsPanel.add(validateButton);
operationsPanel.add(saveButton);
operationsPanel.add(fuzzyButton);
operationsPanel.add(cancelButton);
Expand Down Expand Up @@ -471,7 +491,7 @@ public void saveAndMoveRow(NavigationType nav)
public void saveAndMoveNextState(NavigationType nav)
{
savePendingChange(true);

if (untranslatedMode && fuzzyMode)
{
gotoFuzzyAndNewRow(nav);
Expand Down Expand Up @@ -610,25 +630,35 @@ public void autoSize()

public void setShowOperationButtons(boolean showButtons)
{
operationsPanel.setVisible(showButtons);
operationsPanel.setVisible(showButtons);
}

public void updateKeyBehaviour(Map<String, Boolean> configMap)
{
untranslatedMode = configMap.get(UserConfigConstants.BUTTON_UNTRANSLATED);
fuzzyMode = configMap.get(UserConfigConstants.BUTTON_FUZZY);
if (configMap.containsKey(UserConfigConstants.BUTTON_FUZZY) && configMap.containsKey(UserConfigConstants.BUTTON_UNTRANSLATED))
{
untranslatedMode = configMap.get(UserConfigConstants.BUTTON_UNTRANSLATED);
fuzzyMode = configMap.get(UserConfigConstants.BUTTON_FUZZY);
}

isEnterKeySavesEnabled = configMap.get(UserConfigConstants.BUTTON_ENTER);
if (isEnterKeySavesEnabled)
if (configMap.containsKey(UserConfigConstants.BUTTON_ENTER))
{
saveButton.setTitle(saveButtonwithEnterShortcuts);
isEnterKeySavesEnabled = configMap.get(UserConfigConstants.BUTTON_ENTER);
if (isEnterKeySavesEnabled)
{
saveButton.setTitle(saveButtonwithEnterShortcuts);
}
else
{
saveButton.setTitle(saveButtonShortcuts);
}
}
else

if (configMap.containsKey(UserConfigConstants.BUTTON_ESC))
{
saveButton.setTitle(saveButtonShortcuts);
isEscKeyCloseEditor = configMap.get(UserConfigConstants.BUTTON_ESC);
}

isEscKeyCloseEditor = configMap.get(UserConfigConstants.BUTTON_ESC);
}

public boolean isCancelButtonFocused()
Expand Down
Expand Up @@ -45,4 +45,6 @@ public interface TableResources extends ClientBundle
@Source("org/zanata/webtrans/images/crystal_project/_16x16/actions/2rightarrow.png")
ImageResource copySrcButton();

@Source("org/zanata/webtrans/images/validate.png")
ImageResource cellEditorValidate();
}
Expand Up @@ -20,8 +20,6 @@
*/
package org.zanata.webtrans.client.events;

import org.zanata.webtrans.shared.model.TransUnit;

import com.google.gwt.event.shared.GwtEvent;

/**
Expand All @@ -46,12 +44,12 @@ public static Type<ValidationEventHandler> getType()
return TYPE != null ? TYPE : (TYPE = new Type<ValidationEventHandler>());
}

// TransUnit that to be validate
private TransUnit transUnit;
private String source, target;

public ValidationEvent(TransUnit tu)
public ValidationEvent(String source, String target)
{
this.transUnit = tu;
this.source = source;
this.target = target;
}

@Override
Expand All @@ -67,9 +65,14 @@ protected void dispatch(ValidationEventHandler handler)
handler.onValidate(this);
}

public TransUnit getTransUnit()
public String getSource()
{
return source;
}

public String getTarget()
{
return transUnit;
return target;
}
}

Expand Down
Expand Up @@ -42,6 +42,8 @@
import org.zanata.webtrans.client.presenter.AppPresenter.Display.StatsType;
import org.zanata.webtrans.client.resources.WebTransMessages;
import org.zanata.webtrans.client.rpc.CachingDispatchAsync;
import org.zanata.webtrans.client.ui.ShortcutConfigPanel;
import org.zanata.webtrans.client.ui.UserOptionsPanel;
import org.zanata.webtrans.shared.auth.Identity;
import org.zanata.webtrans.shared.model.DocumentId;
import org.zanata.webtrans.shared.model.DocumentInfo;
Expand Down Expand Up @@ -94,7 +96,9 @@ enum StatsType

HasClickHandlers getDocumentsLink();

HasClickHandlers getEditorButtonsCheckbox();
HasClickHandlers getOptionsLink();

Widget getOptionsLinkObject();

void setUserLabel(String userLabel);

Expand Down Expand Up @@ -142,6 +146,8 @@ enum StatsType
private final TranslationStats selectedDocumentStats = new TranslationStats();
private final TranslationStats projectStats = new TranslationStats();

private final UserOptionsPanel userOptionsPanel = new UserOptionsPanel(true, eventBus);

@Inject
public AppPresenter(Display display, EventBus eventBus, CachingDispatchAsync dispatcher, final TranslationPresenter translationPresenter, final DocumentListPresenter documentListPresenter, final Identity identity, final WorkspaceContext workspaceContext, final WebTransMessages messages)
{
Expand All @@ -154,6 +160,7 @@ public AppPresenter(Display display, EventBus eventBus, CachingDispatchAsync dis
this.workspaceContext = workspaceContext;
}


@Override
protected void onBind()
{
Expand Down Expand Up @@ -240,16 +247,27 @@ public void onClick(ClickEvent event)
}
}));

registerHandler(display.getEditorButtonsCheckbox().addClickHandler(new ClickHandler()
registerHandler(display.getOptionsLink().addClickHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
boolean showButtons = ((CheckBox) display.getEditorButtonsCheckbox()).getValue();
eventBus.fireEvent(new ButtonDisplayChangeEvent(showButtons));
userOptionsPanel.toggleDisplay(display.getOptionsLinkObject());
}
}));

// registerHandler(display.getEditorButtonsCheckbox().addClickHandler(new
// ClickHandler()
// {
// @Override
// public void onClick(ClickEvent event)
// {
// boolean showButtons = ((CheckBox)
// display.getEditorButtonsCheckbox()).getValue();
// eventBus.fireEvent(new ButtonDisplayChangeEvent(showButtons));
// }
// }));

display.setUserLabel(identity.getPerson().getName());

display.setWorkspaceNameLabel(workspaceContext.getWorkspaceName());
Expand Down
Expand Up @@ -24,19 +24,13 @@
import net.customware.gwt.presenter.client.widget.WidgetDisplay;
import net.customware.gwt.presenter.client.widget.WidgetPresenter;

import org.zanata.webtrans.client.events.ButtonDisplayChangeEvent;
import org.zanata.webtrans.client.events.DocumentSelectionEvent;
import org.zanata.webtrans.client.events.DocumentSelectionHandler;
import org.zanata.webtrans.client.events.TransUnitSelectionEvent;
import org.zanata.webtrans.client.events.TransUnitSelectionHandler;
import org.zanata.webtrans.client.events.TransUnitUpdatedEvent;
import org.zanata.webtrans.client.events.TransUnitUpdatedEventHandler;
import org.zanata.webtrans.client.events.ValidationEvent;
import org.zanata.webtrans.client.events.ValidationEventHandler;
import org.zanata.webtrans.client.presenter.AppPresenter.Display.StatsType;
import org.zanata.webtrans.shared.model.TransUnit;

import com.google.gwt.user.client.Window;
import com.google.inject.Inject;

/**
Expand All @@ -48,7 +42,7 @@ public class ValidationDetailsPresenter extends WidgetPresenter<ValidationDetail
{
public interface Display extends WidgetDisplay
{
void validate(TransUnit tu);
void validate(String source, String target);

void clearAllMessage();
}
Expand All @@ -62,30 +56,21 @@ public ValidationDetailsPresenter(Display display, EventBus eventBus)
@Override
protected void onBind()
{
registerHandler(eventBus.addHandler(ValidationEvent.getType(), new ValidationEventHandler()
{
@Override
public void onValidate(ValidationEvent event)
{
display.validate(event.getTransUnit());
}
}));

registerHandler(eventBus.addHandler(TransUnitUpdatedEvent.getType(), new TransUnitUpdatedEventHandler()
registerHandler(eventBus.addHandler(TransUnitSelectionEvent.getType(), new TransUnitSelectionHandler()
{
@Override
public void onTransUnitUpdated(TransUnitUpdatedEvent event)
public void onTransUnitSelected(TransUnitSelectionEvent event)
{
eventBus.fireEvent(new ValidationEvent(event.getTransUnit()));
display.clearAllMessage();
}
}));

registerHandler(eventBus.addHandler(TransUnitSelectionEvent.getType(), new TransUnitSelectionHandler()
registerHandler(eventBus.addHandler(ValidationEvent.getType(), new ValidationEventHandler()
{
@Override
public void onTransUnitSelected(TransUnitSelectionEvent event)
public void onValidate(ValidationEvent event)
{
display.clearAllMessage();
display.validate(event.getSource(), event.getTarget());
}
}));

Expand Down
Expand Up @@ -117,4 +117,10 @@ public interface NavigationMessages extends Messages

@DefaultMessage("Click here to start translating")
String clickHere();

@DefaultMessage("Click here for more info")
String clickHereForMoreInfo();

@DefaultMessage("Run Validation")
String runValidation();
}
Expand Up @@ -45,6 +45,9 @@ public interface Resources extends ClientBundle
@Source("org/zanata/webtrans/images/crystal_project/_16x16/actions/rightArrow.png")
ImageResource rightArrowButton();

@Source("org/zanata/webtrans/images/crystal_project/_16x16/apps/alert.png")
ImageResource alertButton();

@Source("org/zanata/webtrans/images/configure.png")
ImageResource configureButton();

Expand Down
Expand Up @@ -36,8 +36,8 @@ public interface TableEditorMessages extends Messages
@DefaultMessage("Saved change to Translation Unit")
String notifyUpdateSaved();

@DefaultMessage("Validation error: {0}- {1}")
String notifyValidationError(String name, String errorMessage);
@DefaultMessage("Validation error - see Validation details for more info")
String notifyValidationError();

@DefaultMessage("Failed to Stop Editing TransUnit")
String notifyStopFailed();
Expand Down

0 comments on commit abc5343

Please sign in to comment.