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

Commit

Permalink
Browse files Browse the repository at this point in the history
US42: option to enable 'Enter' to save and move to the next string an…
…d use Shift+Enter to add a new line
  • Loading branch information
jamesni committed Oct 10, 2011
1 parent 5f84d3f commit a056bda
Show file tree
Hide file tree
Showing 6 changed files with 145 additions and 9 deletions.
Expand Up @@ -144,6 +144,12 @@ public void onClick(ClickEvent event)
private int curRow;
private int curCol;
private HTMLTable table;
private boolean newMode = true, fuzzyMode = true;

private Boolean isEnterKeyEnabled = false;
private String saveButtonShortcuts;
private String saveButtonwithEnterShortcuts;
private Image saveButton;

/*
* The minimum height of the target editor
Expand Down Expand Up @@ -207,6 +213,25 @@ public void onKeyDown(KeyDownEvent event)
event.preventDefault(); // stop browser save
acceptFuzzyEdit();
}

if (isEnterKeyEnabled)
{
if (!event.isShiftKeyDown() && keyCode == KeyCodes.KEY_ENTER)
{
event.stopPropagation();
event.preventDefault();
saveApprovedAndMoveRow(NavigationType.NextEntry);
}
}
else
{
if (event.isShiftKeyDown() && keyCode == KeyCodes.KEY_ENTER)
{
event.stopPropagation();
event.preventDefault();
saveApprovedAndMoveRow(NavigationType.NextEntry);
}
}
}

});
Expand All @@ -220,10 +245,7 @@ public void onKeyUp(KeyUpEvent event)
int keyCode = event.getNativeKeyCode();

// NB: if you change these, please change NavigationConsts too!
if (event.isControlKeyDown() && keyCode == KeyCodes.KEY_ENTER)
{
saveApprovedAndMoveRow(NavigationType.NextEntry);
}

// else if (event.isControlKeyDown() && event.isShiftKeyDown() &&
// event.getNativeKeyCode() == KeyCodes.KEY_PAGEDOWN)
// { // was alt-e
Expand All @@ -236,7 +258,7 @@ public void onKeyUp(KeyUpEvent event)
// // } else if(event.isControlKeyDown() && event.getNativeKeyCode()
// // == KeyCodes.KEY_PAGEDOWN) { // bad in Firefox
// }
else if (event.isAltKeyDown() && keyCode == TableConstants.KEY_G)
if (event.isAltKeyDown() && keyCode == TableConstants.KEY_G)
{
Log.info("InlineTargetCellEditor.java: Clone action.");
textArea.setValue(cellValue.getSource(), true);
Expand Down Expand Up @@ -305,11 +327,13 @@ else if (!event.isAltKeyDown() && !event.isControlKeyDown())
cancelButton.setTitle(messages.editCancelShortcut());
cancelButton.addClickHandler(cancelHandler);

Image saveButton = new Image(images.cellEditorAccept());
saveButton = new Image(images.cellEditorAccept());
// saveButton.setText(messages.editSave());
saveButton.setStyleName("gwt-Button");
saveButtonShortcuts = messages.editSaveShortcut();
saveButton.setTitle(messages.editSaveShortcut());
saveButton.addClickHandler(acceptHandler);
saveButtonwithEnterShortcuts = messages.editSavewithEnterShortcut();

Image fuzzyButton = new Image(images.cellEditorFuzzy());
fuzzyButton.setStyleName("gwt-Button");
Expand Down Expand Up @@ -466,8 +490,6 @@ public void savePendingChange(boolean cancelIfUnchanged)
}
}

private boolean newMode = true, fuzzyMode = true;

public void saveAndMoveNextState(NavigationType nav)
{
savePendingChange(true);
Expand Down Expand Up @@ -615,4 +637,13 @@ public void setNavMode(Map<ContentState, Boolean> configMap)
newMode = configMap.get(ContentState.New);
fuzzyMode = configMap.get(ContentState.NeedReview);
}

public void setEnterKeyEnabled(Boolean enabled)
{
isEnterKeyEnabled = enabled;
if (enabled)
saveButton.setTitle(saveButtonwithEnterShortcuts);
else
saveButton.setTitle(saveButtonShortcuts);
}
}
Expand Up @@ -65,9 +65,12 @@ public interface NavigationMessages extends Messages
@DefaultMessage("Alt+PageUp")
String prevFuzzyOrUntranslatedShortcut();

@DefaultMessage("Save as Approved (Ctrl+Enter)")
@DefaultMessage("Save as Approved (Shift+Enter)")
String editSaveShortcut();

@DefaultMessage("Save as Approved (Enter)")
String editSavewithEnterShortcut();

@DefaultMessage("Cancel")
String editCancelShortcut();

Expand Down
Expand Up @@ -45,6 +45,8 @@
import org.zanata.webtrans.client.events.NavTransUnitHandler;
import org.zanata.webtrans.client.events.NotificationEvent;
import org.zanata.webtrans.client.events.NotificationEvent.Severity;
import org.zanata.webtrans.client.events.EnterKeyEnabledEvent;
import org.zanata.webtrans.client.events.EnterKeyEnabledEventHandler;
import org.zanata.webtrans.client.events.RedoFailureEvent;
import org.zanata.webtrans.client.events.TransMemoryCopyEvent;
import org.zanata.webtrans.client.events.TransMemoryCopyHandler;
Expand Down Expand Up @@ -458,6 +460,28 @@ public void onCopySource(CopySourceEvent event)

}));

registerHandler(eventBus.addHandler(ButtonDisplayChangeEvent.getType(), new ButtonDisplayChangeEventHandler()
{

@Override
public void onButtonDisplayChange(ButtonDisplayChangeEvent event)
{
display.getTargetCellEditor().setShowOperationButtons(event.isShowButtons());
display.setShowCopyButtons(event.isShowButtons());
}
}));

registerHandler(eventBus.addHandler(EnterKeyEnabledEvent.getType(), new EnterKeyEnabledEventHandler()
{

@Override
public void onValueChanged(EnterKeyEnabledEvent event)
{
display.getTargetCellEditor().setEnterKeyEnabled(event.isEnabled());
}

}));

Event.addNativePreviewHandler(new NativePreviewHandler()
{
@Override
Expand Down
@@ -0,0 +1,51 @@
package org.zanata.webtrans.client.events;

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

public class EnterKeyEnabledEvent extends GwtEvent<EnterKeyEnabledEventHandler>
{

/**
* Handler type.
*/
private static Type<EnterKeyEnabledEventHandler> TYPE;

/**
* Gets the type associated with this event.
*
* @return returns the handler type
*/
public static Type<EnterKeyEnabledEventHandler> getType()
{
if (TYPE == null)
{
TYPE = new Type<EnterKeyEnabledEventHandler>();
}
return TYPE;
}

private Boolean enterkeyEnabled;

public EnterKeyEnabledEvent(Boolean value)
{
enterkeyEnabled = value;
}

public Boolean isEnabled()
{
return enterkeyEnabled;
}

@Override
protected void dispatch(EnterKeyEnabledEventHandler handler)
{
handler.onValueChanged(this);
}

@Override
public Type<EnterKeyEnabledEventHandler> getAssociatedType()
{
return getType();
}

}
@@ -0,0 +1,8 @@
package org.zanata.webtrans.client.events;

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

public interface EnterKeyEnabledEventHandler extends EventHandler
{
void onValueChanged(EnterKeyEnabledEvent enterKeyEnabledEvent);
}
Expand Up @@ -26,6 +26,7 @@
import net.customware.gwt.presenter.client.EventBus;

import org.zanata.common.ContentState;
import org.zanata.webtrans.client.events.EnterKeyEnabledEvent;
import org.zanata.webtrans.client.events.NavConfigChangeEvent;

import com.allen_sauer.gwt.log.client.Log;
Expand All @@ -47,6 +48,7 @@ public class ShortcutConfigPanel extends DecoratedPopupPanel
{
private final CheckBox fuzzyChk = new CheckBox("Fuzzy");
private final CheckBox untranslatedChk = new CheckBox("Untranslated");
private final CheckBox enterChk = new CheckBox("Enter");

private Map<ContentState, Boolean> configMap = new HashMap<ContentState, Boolean>();

Expand All @@ -60,6 +62,7 @@ public ShortcutConfigPanel(boolean autoHide, EventBus eventBus)
init();
bindEvent();
setDefaultValue();
enterChk.setValue(false);
}

private void init()
Expand All @@ -73,6 +76,13 @@ private void init()
optionsHP.add(untranslatedChk);
mainPanel.add(optionsHP);

mainPanel.add(new Label("Enable 'Enter' Key to save"));

HorizontalPanel enteroptHP = new HorizontalPanel();
enteroptHP.setSpacing(5);
enteroptHP.add(enterChk);
mainPanel.add(enteroptHP);

this.add(mainPanel);
}

Expand Down Expand Up @@ -114,6 +124,15 @@ public void onValueChange(ValueChangeEvent<Boolean> event)
}
});

enterChk.addValueChangeHandler(new ValueChangeHandler<Boolean>()
{
@Override
public void onValueChange(ValueChangeEvent<Boolean> event)
{
Log.info("Enable 'Enter' Key to save and move to next string: " + event.getValue());
eventBus.fireEvent(new EnterKeyEnabledEvent(event.getValue()));
}
});
}

private void setDefaultValue()
Expand Down

0 comments on commit a056bda

Please sign in to comment.