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

Commit

Permalink
Add enable/disable the referenceList in the EditorOptionsView. The se…
Browse files Browse the repository at this point in the history
…lection is saved to the database via UserOptions.java
  • Loading branch information
HannesEskebaek committed Aug 13, 2013
1 parent 1f6f082 commit 7aafb79
Show file tree
Hide file tree
Showing 19 changed files with 917 additions and 693 deletions.

Large diffs are not rendered by default.

Expand Up @@ -18,72 +18,107 @@
*/
package org.zanata.webtrans.client.presenter;

import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.inject.Inject;
import net.customware.gwt.presenter.client.EventBus;
import net.customware.gwt.presenter.client.widget.WidgetPresenter;
import org.zanata.webtrans.client.events.HideReferenceEvent;
import org.zanata.webtrans.client.events.NotificationEvent;
import org.zanata.webtrans.client.events.ShowReferenceEvent;
import org.zanata.webtrans.client.events.UserConfigChangeEvent;
import org.zanata.webtrans.client.events.UserConfigChangeHandler;
import org.zanata.webtrans.client.rpc.CachingDispatchAsync;
import org.zanata.webtrans.client.view.TransUnitChangeSourceLangDisplay;
import org.zanata.webtrans.shared.model.Locale;
import org.zanata.webtrans.shared.rpc.GetLocaleList;
import org.zanata.webtrans.shared.rpc.GetLocaleListResult;

/**
*
* @author hannes
*
* @author Hannes Eskebaek <hannes.eskebaek@databyran.se>
*/
public class TransUnitChangeSourceLangPresenter extends WidgetPresenter<TransUnitChangeSourceLangDisplay> implements TransUnitChangeSourceLangDisplay.Listener {

public class TransUnitChangeSourceLangPresenter extends WidgetPresenter<TransUnitChangeSourceLangDisplay> implements TransUnitChangeSourceLangDisplay.Listener, UserConfigChangeHandler
{
private final CachingDispatchAsync dispatcher;

private final UserConfigHolder configHolder;

@Inject
public TransUnitChangeSourceLangPresenter(TransUnitChangeSourceLangDisplay display, EventBus eventBus, CachingDispatchAsync dispatcher) {
public TransUnitChangeSourceLangPresenter(TransUnitChangeSourceLangDisplay display, EventBus eventBus, CachingDispatchAsync dispatcher, UserConfigHolder configHolder)
{
super(display, eventBus);
this.dispatcher = dispatcher;
this.configHolder = configHolder;
display.setListener(this);

setDisplayMode();
}

@Override
protected void onBind() {
protected void onBind()
{
buildListBox();
registerHandler(eventBus.addHandler(UserConfigChangeEvent.TYPE, this));
}

@Override
protected void onUnbind() {
protected void onUnbind()
{
}

@Override
protected void onRevealDisplay() {
protected void onRevealDisplay()
{
}

private void buildListBox() {
private void buildListBox()
{
GetLocaleList action = new GetLocaleList();


dispatcher.execute(action, new AsyncCallback<GetLocaleListResult>() {

dispatcher.execute(action, new AsyncCallback<GetLocaleListResult>()
{
@Override
public void onFailure(Throwable caught) {
public void onFailure(Throwable caught)
{
eventBus.fireEvent(new NotificationEvent(NotificationEvent.Severity.Error, "Failed to fetch locales"));
}

@Override
public void onSuccess(GetLocaleListResult result) {
public void onSuccess(GetLocaleListResult result)
{
display.buildListBox(result.getLocales());
}
});
}

@Override
public void onShowButtonClick(Locale selectedLocale) {
public void onShowReference(Locale selectedLocale)
{
eventBus.fireEvent(new ShowReferenceEvent(selectedLocale));
}

@Override
public void onHideButtonClick() {
public void onHideReference()
{
eventBus.fireEvent(new HideReferenceEvent());
}

@Override
public void onUserConfigChanged(UserConfigChangeEvent event)
{
if (event == UserConfigChangeEvent.EDITOR_CONFIG_CHANGE_EVENT) {
setDisplayMode();
}
}

private void setDisplayMode()
{
if (configHolder.getState().isEnabledReferenceForSourceLang()) {
display.showReferenceList();
} else {
eventBus.fireEvent(new HideReferenceEvent());
display.hideReferenceList();
}
}
}
Expand Up @@ -101,6 +101,7 @@ public UserConfigHolder()
state.showTMPanel = DEFAULT_SHOW_PANEL;
state.showGlossaryPanel = DEFAULT_SHOW_PANEL;
state.showOptionalTransUnitDetails = DEFAULT_SHOW_PANEL;
state.enableReferenceForSourceLang = DEFAULT_SHOW_PANEL;
state.displayTheme = ThemesOption.THEMES_DEFAULT;
state.enabledValidationIds = new ArrayList<ValidationId>();
}
Expand Down Expand Up @@ -255,6 +256,12 @@ public void setShowOptionalTransUnitDetails(boolean show)
state = new ConfigurationState(state);
state.showOptionalTransUnitDetails = show;
}

public void setEnableReferenceForSourceLang(boolean show)
{
state = new ConfigurationState(state);
state.enableReferenceForSourceLang = show;
}

public void setEnabledValidationIds(List<ValidationId> enabledValidationIds)
{
Expand Down Expand Up @@ -299,6 +306,7 @@ public static class ConfigurationState implements IsSerializable
private boolean showTMPanel;
private boolean showGlossaryPanel;
private boolean showOptionalTransUnitDetails;
private boolean enableReferenceForSourceLang;

private List<ValidationId> enabledValidationIds;

Expand Down Expand Up @@ -330,6 +338,7 @@ private ConfigurationState(ConfigurationState old)
this.showGlossaryPanel = old.isShowGlossaryPanel();
this.showOptionalTransUnitDetails = old.isShowOptionalTransUnitDetails();
this.enabledValidationIds = old.getEnabledValidationIds();
this.enableReferenceForSourceLang = old.isEnabledReferenceForSourceLang();
}

public boolean isEnterSavesApproved()
Expand Down Expand Up @@ -431,6 +440,11 @@ public boolean isShowOptionalTransUnitDetails()
{
return showOptionalTransUnitDetails;
}

public boolean isEnabledReferenceForSourceLang()
{
return enableReferenceForSourceLang;
}

public List<ValidationId> getEnabledValidationIds()
{
Expand Down
Expand Up @@ -505,6 +505,12 @@ public interface WebTransMessages extends Messages

@DefaultMessage("Only display Translation Unit Details when there is meta data otherwise hide it")
String showTransUnitDetailsTooltip();

@DefaultMessage("Enable Reference for Source Language")
String enableReferenceForSourceLang();

@DefaultMessage("Enable the drop-down list where a reference in another language can be selected")
String enableReferenceForSourceLangTooltip();

@DefaultMessage("Download All Files")
String downloadAllFiles();
Expand Down
Expand Up @@ -119,6 +119,7 @@ public HashMap<UserOptions, String> getEditorOptions()
configMap.put(UserOptions.RejectedMessageFilter, Boolean.toString(configHolder.getState().isFilterByRejected()));
configMap.put(UserOptions.Navigation, configHolder.getState().getNavOption().toString());
configMap.put(UserOptions.ShowSaveApprovedWarning, Boolean.toString(configHolder.getState().isShowSaveApprovedWarning()));
configMap.put(UserOptions.EnableReferenceLang, Boolean.toString(configHolder.getState().isEnabledReferenceForSourceLang()));

return configMap;
}
Expand Down Expand Up @@ -160,6 +161,7 @@ public void loadEditorDefaultOptions()
configHolder.setTMDisplayMode(UserConfigHolder.DEFAULT_TM_DISPLAY_MODE);
configHolder.setShowTMPanel(UserConfigHolder.DEFAULT_SHOW_PANEL);
configHolder.setShowGlossaryPanel(UserConfigHolder.DEFAULT_SHOW_PANEL);
configHolder.setEnableReferenceForSourceLang(UserConfigHolder.DEFAULT_SHOW_PANEL);
}

public UserConfigHolder getConfigHolder()
Expand Down

0 comments on commit 7aafb79

Please sign in to comment.