From e502d3c7be5c1e1047e4498ccb0bc2ac989ee9c1 Mon Sep 17 00:00:00 2001 From: Alex Eng Date: Wed, 21 Dec 2011 10:16:01 +1000 Subject: [PATCH 01/10] Implement variable validation: https://bugzilla.redhat.com/show_bug.cgi?id=769471 --- .../client/validation/ValidationService.java | 4 + .../action/HtmlXmlTagValidation.java | 2 +- .../action/NewlineLeadTrailValidation.java | 4 +- .../action/VariablesValidation.java | 69 ++++++++++++++ .../client/rpc/DummyGetTransUnitCommand.java | 2 +- .../validation/VariablesValidationTests.java | 94 +++++++++++++++++++ 6 files changed, 171 insertions(+), 4 deletions(-) create mode 100644 server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/VariablesValidation.java create mode 100644 server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/VariablesValidationTests.java diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/validation/ValidationService.java b/server/zanata-war/src/main/java/org/zanata/webtrans/client/validation/ValidationService.java index ba1b2d020f..63424a43a6 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/validation/ValidationService.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/validation/ValidationService.java @@ -36,6 +36,7 @@ import org.zanata.webtrans.shared.validation.action.HtmlXmlTagValidation; import org.zanata.webtrans.shared.validation.action.NewlineLeadTrailValidation; import org.zanata.webtrans.shared.validation.action.ValidationAction; +import org.zanata.webtrans.shared.validation.action.VariablesValidation; import com.google.inject.Inject; @@ -57,11 +58,14 @@ public ValidationService(final EventBus eventBus, final TableEditorMessages mess this.eventBus = eventBus; this.messages = messages; + HtmlXmlTagValidation htmlxmlValidation = new HtmlXmlTagValidation("HTML/XML tag", "Matching HTML/XML tag validation"); NewlineLeadTrailValidation newlineLeadTrailValidation = new NewlineLeadTrailValidation("Newline lead/trail", "Newline lead/trail validation"); + VariablesValidation variablesValidation = new VariablesValidation("Variables check", "Variables check validation"); validationMap.put(htmlxmlValidation.getId(), htmlxmlValidation); validationMap.put(newlineLeadTrailValidation.getId(), newlineLeadTrailValidation); + validationMap.put(variablesValidation.getId(), variablesValidation); } /** diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/HtmlXmlTagValidation.java b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/HtmlXmlTagValidation.java index 7dce103b08..3ae250f050 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/HtmlXmlTagValidation.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/HtmlXmlTagValidation.java @@ -52,7 +52,7 @@ public void validate(String source, String target) Log.debug("Found Node:" + node); if (!tmp.contains(node)) { - addError(getId() + ":" + node + " not found in target"); + addError("Tag " + node + " not found in target"); } else { diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/NewlineLeadTrailValidation.java b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/NewlineLeadTrailValidation.java index 4350ecedee..cbf382de18 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/NewlineLeadTrailValidation.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/NewlineLeadTrailValidation.java @@ -52,7 +52,7 @@ public void validate(String source, String target) MatchResult targetResult = leadRegExp.exec(target); if (targetResult == null) { - addError(getId() + ": Leading newline not found in target"); + addError("Leading newline not found in target"); } } @@ -63,7 +63,7 @@ public void validate(String source, String target) MatchResult targetResult = endRegExp.exec(target); if (targetResult == null) { - addError(getId() + ": Trailing newline not found in target"); + addError("Trailing newline not found in target"); } } } diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/VariablesValidation.java b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/VariablesValidation.java new file mode 100644 index 0000000000..05712dde37 --- /dev/null +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/VariablesValidation.java @@ -0,0 +1,69 @@ +/* + * Copyright 2011, Red Hat, Inc. and individual contributors + * as indicated by the @author tags. See the copyright.txt file in the + * distribution for a full listing of individual contributors. + * + * This is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this software; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. + */ +package org.zanata.webtrans.shared.validation.action; + +import com.allen_sauer.gwt.log.client.Log; + +/** + * + * @author Alex Eng aeng@redhat.com + * + **/ +public class VariablesValidation extends ValidationAction +{ + public VariablesValidation(String id, String description) + { + super(id, description); + } + + private final String[] varList = { "%s", "%d" }; + + @Override + public void validate(String source, String target) + { + for (String var : varList) + { + int srcCount = countMatches(source, var); + int tgtCount = countMatches(target, var); + Log.debug("Variable [" + var + "]: src-" + srcCount + " target-" + tgtCount); + if (srcCount != tgtCount) + { + addError("Variable [" + var + "] count mismatch"); + } + } + } + + private int countMatches(String str, String sub) + { + if ((str == null || str.length() == 0) || (sub == null || sub.length() == 0)) + { + return 0; + } + int count = 0; + int idx = 0; + while ((idx = str.indexOf(sub, idx)) != -1) + { + count++; + idx += sub.length(); + } + return count; + } +} diff --git a/server/zanata-war/src/test/java/org/zanata/webtrans/client/rpc/DummyGetTransUnitCommand.java b/server/zanata-war/src/test/java/org/zanata/webtrans/client/rpc/DummyGetTransUnitCommand.java index 73f2e3973e..4200221044 100644 --- a/server/zanata-war/src/test/java/org/zanata/webtrans/client/rpc/DummyGetTransUnitCommand.java +++ b/server/zanata-war/src/test/java/org/zanata/webtrans/client/rpc/DummyGetTransUnitCommand.java @@ -49,7 +49,7 @@ private ArrayList generateTransUnitSampleData(LocaleId localeId, int { int stateNum = Random.nextInt(ContentState.values().length); ContentState state = ContentState.values()[stateNum]; - String source = "\n\n"; + String source = "\n %s\n"; String sourceComment = "comment " + (i + 1); String target = ""; if (state != ContentState.New) diff --git a/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/VariablesValidationTests.java b/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/VariablesValidationTests.java new file mode 100644 index 0000000000..9b12f91409 --- /dev/null +++ b/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/VariablesValidationTests.java @@ -0,0 +1,94 @@ +/* + * Copyright 2011, Red Hat, Inc. and individual contributors + * as indicated by the @author tags. See the copyright.txt file in the + * distribution for a full listing of individual contributors. + * + * This is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this software; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. + */ +package org.zanata.webtrans.shared.validation; + +import org.junit.Before; +import org.testng.Assert; +import org.testng.annotations.Test; +import org.zanata.webtrans.shared.validation.action.NewlineLeadTrailValidation; +import org.zanata.webtrans.shared.validation.action.VariablesValidation; + +/** + * + * @author Alex Eng aeng@redhat.com + * + **/ +public class VariablesValidationTests +{ + private VariablesValidation variablesValidation; + + @Before + public void init() + { + variablesValidation = null; + } + + @Test + public void VariablesTestWithMismatch() + { + variablesValidation = new VariablesValidation("Variables check", "Variables check validation"); + + String source = "Testing string with variable %s"; + String target = "Testing string with no variables"; + variablesValidation.validate(source, target); + Assert.assertTrue(variablesValidation.hasError()); + Assert.assertEquals(variablesValidation.getError().size(), 1); + } + + @Test + public void VariablesTestWithMismatch2() + { + variablesValidation = new VariablesValidation("Variables check", "Variables check validation"); + + String source = "Testing string with variable %s and %d"; + String target = "Testing string with no variables"; + variablesValidation.validate(source, target); + Assert.assertTrue(variablesValidation.hasError()); + Assert.assertEquals(variablesValidation.getError().size(), 2); + } + + @Test + public void VariablesTestWithMismatch3() + { + variablesValidation = new VariablesValidation("Variables check", "Variables check validation"); + + String source = "Testing string with variable %s and %s and %d"; + String target = "Testing string with no variables"; + variablesValidation.validate(source, target); + Assert.assertTrue(variablesValidation.hasError()); + Assert.assertEquals(variablesValidation.getError().size(), 2); + } + + @Test + public void VariablesTestWithMatch() + { + variablesValidation = new VariablesValidation("Variables check", "Variables check validation"); + + String source = "Testing string with variable %s and %d"; + String target = "Testing string with variable %s and %d"; + variablesValidation.validate(source, target); + Assert.assertFalse(variablesValidation.hasError()); + Assert.assertEquals(variablesValidation.getError().size(), 0); + } +} + + + \ No newline at end of file From c923ff36cc98127cf5a0fb7b120797e8b665bc71 Mon Sep 17 00:00:00 2001 From: Alex Eng Date: Wed, 21 Dec 2011 10:31:20 +1000 Subject: [PATCH 02/10] Skip validation if target string is empty --- .../shared/validation/ValidationUtils.java | 53 +++++++++++++++++++ .../action/HtmlXmlTagValidation.java | 30 ++++++----- .../action/NewlineLeadTrailValidation.java | 33 +++++++----- .../action/VariablesValidation.java | 33 ++++-------- 4 files changed, 101 insertions(+), 48 deletions(-) create mode 100644 server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/ValidationUtils.java diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/ValidationUtils.java b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/ValidationUtils.java new file mode 100644 index 0000000000..bae89a7aad --- /dev/null +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/ValidationUtils.java @@ -0,0 +1,53 @@ +/* + * Copyright 2011, Red Hat, Inc. and individual contributors + * as indicated by the @author tags. See the copyright.txt file in the + * distribution for a full listing of individual contributors. + * + * This is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this software; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. + */ +package org.zanata.webtrans.shared.validation; + +/** + * + * @author Alex Eng aeng@redhat.com + * + **/ +public class ValidationUtils +{ + public static int countMatches(String str, String sub) + { + if (isEmpty(str) || isEmpty(sub)) + { + return 0; + } + int count = 0; + int idx = 0; + while ((idx = str.indexOf(sub, idx)) != -1) + { + count++; + idx += sub.length(); + } + return count; + } + + public static boolean isEmpty(String str) + { + return str == null || str.length() == 0; + } +} + + + \ No newline at end of file diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/HtmlXmlTagValidation.java b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/HtmlXmlTagValidation.java index 3ae250f050..8541b928a1 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/HtmlXmlTagValidation.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/HtmlXmlTagValidation.java @@ -20,6 +20,8 @@ */ package org.zanata.webtrans.shared.validation.action; +import org.zanata.webtrans.shared.validation.ValidationUtils; + import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.regexp.shared.MatchResult; import com.google.gwt.regexp.shared.RegExp; @@ -44,21 +46,25 @@ public HtmlXmlTagValidation(String id, String description) @Override public void validate(String source, String target) { - String tmp = target; - MatchResult result = regExp.exec(source); - while (result != null) + if (!ValidationUtils.isEmpty(target)) { - String node = result.getGroup(0); - Log.debug("Found Node:" + node); - if (!tmp.contains(node)) - { - addError("Tag " + node + " not found in target"); - } - else + String tmp = target; + MatchResult result = regExp.exec(source); + while (result != null) { - tmp = tmp.replaceFirst(node, ""); // remove matched node from target + String node = result.getGroup(0); + Log.debug("Found Node:" + node); + if (!tmp.contains(node)) + { + addError("Tag " + node + " not found in target"); + } + else + { + tmp = tmp.replaceFirst(node, ""); // remove matched node from + // target + } + result = regExp.exec(source); } - result = regExp.exec(source); } } } diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/NewlineLeadTrailValidation.java b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/NewlineLeadTrailValidation.java index cbf382de18..68711174cb 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/NewlineLeadTrailValidation.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/NewlineLeadTrailValidation.java @@ -20,6 +20,8 @@ */ package org.zanata.webtrans.shared.validation.action; +import org.zanata.webtrans.shared.validation.ValidationUtils; + import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.regexp.shared.MatchResult; import com.google.gwt.regexp.shared.RegExp; @@ -45,25 +47,28 @@ public NewlineLeadTrailValidation(String id, String description) @Override public void validate(String source, String target) { - MatchResult sourceResult = leadRegExp.exec(source); - if (sourceResult != null) + if (!ValidationUtils.isEmpty(target)) { - Log.debug("Found leading newline in source"); - MatchResult targetResult = leadRegExp.exec(target); - if (targetResult == null) + MatchResult sourceResult = leadRegExp.exec(source); + if (sourceResult != null) { - addError("Leading newline not found in target"); + Log.debug("Found leading newline in source"); + MatchResult targetResult = leadRegExp.exec(target); + if (targetResult == null) + { + addError("Leading newline not found in target"); + } } - } - sourceResult = endRegExp.exec(source); - if (sourceResult != null) - { - Log.debug("Found trailing newline in source"); - MatchResult targetResult = endRegExp.exec(target); - if (targetResult == null) + sourceResult = endRegExp.exec(source); + if (sourceResult != null) { - addError("Trailing newline not found in target"); + Log.debug("Found trailing newline in source"); + MatchResult targetResult = endRegExp.exec(target); + if (targetResult == null) + { + addError("Trailing newline not found in target"); + } } } } diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/VariablesValidation.java b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/VariablesValidation.java index 05712dde37..5f75114046 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/VariablesValidation.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/VariablesValidation.java @@ -20,6 +20,8 @@ */ package org.zanata.webtrans.shared.validation.action; +import org.zanata.webtrans.shared.validation.ValidationUtils; + import com.allen_sauer.gwt.log.client.Log; /** @@ -39,31 +41,18 @@ public VariablesValidation(String id, String description) @Override public void validate(String source, String target) { - for (String var : varList) + if (!ValidationUtils.isEmpty(target)) { - int srcCount = countMatches(source, var); - int tgtCount = countMatches(target, var); - Log.debug("Variable [" + var + "]: src-" + srcCount + " target-" + tgtCount); - if (srcCount != tgtCount) + for (String var : varList) { - addError("Variable [" + var + "] count mismatch"); + int srcCount = ValidationUtils.countMatches(source, var); + int tgtCount = ValidationUtils.countMatches(target, var); + Log.debug("Variable [" + var + "]: src-" + srcCount + " target-" + tgtCount); + if (srcCount != tgtCount) + { + addError("Variable [" + var + "] count mismatch"); + } } } } - - private int countMatches(String str, String sub) - { - if ((str == null || str.length() == 0) || (sub == null || sub.length() == 0)) - { - return 0; - } - int count = 0; - int idx = 0; - while ((idx = str.indexOf(sub, idx)) != -1) - { - count++; - idx += sub.length(); - } - return count; - } } From bd385af4d80ac947121f70ddaa726906404047ad Mon Sep 17 00:00:00 2001 From: Alex Eng Date: Wed, 21 Dec 2011 12:40:22 +1000 Subject: [PATCH 03/10] Redesign nav button --- .../client/view/TransUnitNavigationView.java | 14 ++++++-- .../view/TransUnitNavigationView.ui.xml | 30 +++++++++++++----- .../client/view/TranslationEditorView.ui.xml | 2 +- .../client/view/TranslationView.ui.xml | 2 +- .../zanata/webtrans/images/first_entry.png | Bin 1184 -> 422 bytes .../org/zanata/webtrans/images/last_entry.png | Bin 1215 -> 432 bytes .../org/zanata/webtrans/images/next_entry.png | Bin 1141 -> 317 bytes .../org/zanata/webtrans/images/next_mode.png | Bin 1248 -> 441 bytes .../org/zanata/webtrans/images/prev_entry.png | Bin 1127 -> 318 bytes .../org/zanata/webtrans/images/prev_mode.png | Bin 1223 -> 434 bytes 10 files changed, 36 insertions(+), 12 deletions(-) diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TransUnitNavigationView.java b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TransUnitNavigationView.java index 6673449370..934fdc58b0 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TransUnitNavigationView.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TransUnitNavigationView.java @@ -22,6 +22,7 @@ import java.util.Map; +import org.zanata.webtrans.client.editor.table.TableResources; import org.zanata.webtrans.client.presenter.TransUnitNavigationPresenter; import org.zanata.webtrans.client.resources.EditorConfigConstants; import org.zanata.webtrans.client.resources.NavigationMessages; @@ -33,6 +34,7 @@ import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Image; +import com.google.gwt.user.client.ui.PushButton; import com.google.gwt.user.client.ui.Widget; import com.google.inject.Inject; @@ -45,8 +47,8 @@ interface TransUnitNavigationViewUiBinder extends UiBinder - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationEditorView.ui.xml b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationEditorView.ui.xml index 1088b9e76c..2e9c2edd05 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationEditorView.ui.xml +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationEditorView.ui.xml @@ -36,7 +36,7 @@ - + diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml index 13d76d1d2f..76d99b8a3a 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml @@ -34,7 +34,7 @@ - + diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/first_entry.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/first_entry.png index c4731cff8415b90c3900a05e857c02b33af3fb46..d193c63f7a782446047fb90b64563d89f51f69dc 100644 GIT binary patch delta 362 zcmV-w0hRus38n*(7YYmr1^@s6=pzKWks%fc{{a60|De66kv|}R3>5++7`R(Exc~qG zCP_p=R5;7+l)p*?K@f+(5v_y>KEOSIjfkCKXB#X3frU1TNJQ;~gA@n$g1$iBK{&4P zD#3>cSX>pbOtQ0>Vk`p38Pr=y5Co@L*!j)O$8VN}|M)s2M09(1eL0!#!2+Zhxln6u!n2`XTAHY`y&JEiaV+j#3EM!g)jCU@oco|LR zFK^;S;85W7t=C&O1S<0-a7{rls!G|v(s_GlZw)wm?RF0Y8fDH5L`u2YEMdGN7?^x= ze9-SN11msd77utXXie%+r>J*$)$%^i(x*I2H-Qb{@poWJoErn__?(P9OJDLVZB7dn z=!`E^74H;PUwo&V7Agov-LUPQ7OINsuwAFGKy3lffARMzT0%Z_s4thJ^gXtUo#1V@W8## zea>^v^L)?uoabDBMM8!r#Xl=o*#IMx5)g&V3VU;ak()9XVL}vn2ooqzuLKHmRgC{Z zRPt~jRFJDC0czH7Ts9WHR--iSxwvKB%UzJxmS*J#a3BmgD_1=;f7-O^Cr5^_<_ANe z*lXM0$f>NV2IZj^yq8kxO_Dm4$C9XYlrqIAtsK5GMB~(G^djX&L|*d%9>p(MmWRW>M7==9iSGY0WqjC#`Ojuu(|OqDyx?gcLCSi z;q<9CY};agV%#EfvWlYu{buq_Le!g3U@=CKx!TYTSg7|S%t z%FbE$;U`}mD9cwV0{sBv(a~CpGcKST+n^>Z7CWD4iYc#0@>2Bk_tVX>OV>ZUXs{Z}$xXVUV{0ItE2sT&UbBU_@k* zh;-)8m|bbww-jH34V9=+L18*DHZeheZ#QG3!~c3qOb5jAzQ>~@1;9C=uYEu?!=7?X z3e2y6fnZkYl`B`tpIw*?4idM+(DgJz1%?CjN-L<_Ucu$QE{-?v=R)VH+k>$|e4bw@ zJKSsPH)jJyro*KbMasyu)e_@Jam&a%_TA?gHdqcAwilIYgQ3UJ^%#a8!-&N^U1ELa z{pCErc?Y%Ic2WFr^*_P59(dD+6))5;01APBcTF3sxkn0a2WB6zvn%owzx~pNnE;d= zwO|+{rladRzF-*B@#@A(0J0pI`9L|(*6(0#<1UI8R!?EZbiAjyVmV8mt_65;&(8Wf z%O-m0yyPTpeE@yE7wn>v(lKB|&za+atm*mW%`L_ih2w%R5aPnw6J&*FQ1QfC^5ztO zV+%NdEnvIgxZnt6 zJ#+NSz0QGiqA7sS&Waz9PhVgCAkYMqg>t6zSj{%(E$}*UW>b@lj+<0w_8oOgs)P(% zfr)EFeDlGk9-tJZqKIs0ZD~H7^4r@Qbe&^~&d4CTVz)aYIlCk2I`}X0H#`LXER~cYJOBUy07*qoM6N<$g4y9B;Q#;t diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/last_entry.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/last_entry.png index 2c8c7177635af0f3e9a195708dd74c0469483fae..7a06f7436f8a094c0de42f1f230db2496338ba0f 100644 GIT binary patch delta 372 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 JPDHLkV1f=5Lcah2 diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_entry.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_entry.png index e4184a860b1dffd5fce2b3fb025cce3187f68cb4..71311b053c118f632959d2492bcff1374def175b 100644 GIT binary patch delta 258 zcmV+d0sa2x2)+W47YYmr1^@s6=pzKWks%fd000000Qp0^e~~~Re+(4@3N5OxY;gbp z0KQ2?K~y-)?bI&|!e9``@$U^y!USK2MZ_l9tTXu!%!-JhQCPMM`cj0k;F92r7?=mf zt)E3?!Sc)pMezFl?!$2${Ofgz&9Lq6PzF3;3Jm=9GBfEf*+J|Z0t-b)qErz9MNM-G zV^$l#0!##EwGg+AV1A9`v4H!WstO|L1ETr?OqQlKpbogU57;qn zh{E6$g+T{s1IMpoa;Qrb2A)ln^KO7mlw)hfIaC)o|NIBO1A{-4<59!7i#s6gZLP`+U_l08?b`F$maMEb7bYie zW~cc5OD{IQoL*8|4$5III1i-~PGUNgQzcP}EG5Y(p_~{Wf1}~(!9Ji6m;w&OD>FPN zo}-8M7cVa_{bZS@@0t1+*irc?nx-W=P6`kM1Ga53GBQNC?>BZL zzFtO#`Y{ayf0V*76}AQ<$yg;2jT(I0b{0d|Nli=N|K7)6G#6&8cz#}hxtXaNpuY5> zN4T$aJBFED0e5z0)F6EIGS_-9GCeVh{H zCOK0tfTn5BiLkJ{sy0iv5@2yL859@ta+RG#MnoPIk>1R8IVHNeN^dBbou6lDppV(9iGQ66!vs95f18_` z3<6hx!LDJ^B4+Xd#K`>OOGyolkKZIaCpVTXxTYg7R7_oCG1mvL(%E{NaPQBn2GmUu zk87%2e_iZP%NWp?Z{+|5y2bU%0u^y%wUze=Q6m!Q_~tVrCKwh(OwcXIxxTWFSP;y= zmnRM%r{>tZY<{5pA7mmHL~I9Rn4sH^PB)?Q$wNgzF7T#qVzl;4(2ex~6l@J$1I($> zKPuL4*hCos0gw2Ajp;@4=|5B$fbxk&bjhnGWIfP;) z>;x%Ozyi_&LAI1su%Y077G}mMDB0zZaS^vyFrvKp(lY7m{+^|UxvK8(nn%~>hAy4| zfBb~id_^<`@abjo0`kdAdp7|sK%qZ<4G&izBd@4Dey_L(C_b_(F?sIG%`M`(pAeXz z9^_ll>JeUtULM2-jGsSt@3!PY%_ZIo%lD^yxrpT sZ&SDUZU=BXc1_)q-qbDW|Ao+B8b08y5Q8sJ_W%F@07*qoM6N<$g4U(`(EtDd diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_mode.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_mode.png index 4c4c7e669402ee79a4162e2bb53e86f93653521a..08a2005fd9c093f51461a1a6ed0c44a8bc1991e0 100644 GIT binary patch delta 374 zcmV-+0g3*{395+*E%)=n+W-Io zGD$>1R5;7+)GG;P@ZkkNb|}zIsnF|Ta-e+OHAX@Zb4ZN;0h6Uk#BmOr#5Z)X3!QfRA*N7OzUc!V88W|*G1Rj(Im)pI zS(-efm*=;46N6E8*p3X3-^8uSem3Po8R(6p)C0&A$R6LtUt;s9gmiU%?h5)!}b>%E%n zbh$>K-1e+HcWxdCi?zhM2@wtw@*ymhqzJ#Ii~@z7y*=H3RBYYY0%QUGz=m;UI)IwD#rZ3+JDdohqy1NQy|@icRdG69<(j7MZK$s^0qg)3(|Nv$L5OX z$<13pzywTx*k84Wrf;&)3aDp z{5XTYeqO35;lkN7EL$BW69{OuT{_Rt7tYY%+l7pOP7jfH;sZ05o+;W!@BFMv;+H&XH1HjGs6;SJfknPmnw{ z10kS)v$KPPZ|uV9ieb^pb*Kgm4h{2LTMNGa-hcg4Gy~9K$k*oqnt{uwJEY>*Bjf{= zAenOxXH0re&s8)7{JIrD(?JcckG{JHRrOQ2We2yVW})dYEi;Fbr(b2m_DVAE%KJw$ zYA}u~Hm(hr45XRP4e@5meicK+o3k{`Z5g&HI@J{r)~ z-ons8uSGDZT1dGN#xs2u4{qAQqZO5;&CZKTlWIVEPCj?vUj(pj@6OT^O~?1iCFu@- z;cNhx+kVm0W@Zio>s!yBbi^bkla!K&f*m14P1i-=b z(hkUXwy&H4)B;&9cOv%|KE?EGs{==HHMNM28*<8st}FhMCP@TV!tg*hM|N*)1u_xB zhm`9Z>g#I8&+TiH%BFe3e7i|bJoMbkOd*tFVY3yOdSKeE_%{{3Qfrk=l~+1$=D^M1 js=U%& Date: Wed, 21 Dec 2011 14:32:58 +1000 Subject: [PATCH 04/10] Resize nav button --- .../view/TransUnitNavigationView.ui.xml | 24 ++++++------------ .../client/view/TranslationEditorView.ui.xml | 2 +- .../client/view/TranslationView.ui.xml | 6 ++++- .../zanata/webtrans/images/first_entry.png | Bin 422 -> 415 bytes .../org/zanata/webtrans/images/last_entry.png | Bin 432 -> 430 bytes .../org/zanata/webtrans/images/next_entry.png | Bin 317 -> 312 bytes .../org/zanata/webtrans/images/next_mode.png | Bin 441 -> 446 bytes .../org/zanata/webtrans/images/prev_entry.png | Bin 318 -> 311 bytes .../org/zanata/webtrans/images/prev_mode.png | Bin 434 -> 429 bytes 9 files changed, 14 insertions(+), 18 deletions(-) diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TransUnitNavigationView.ui.xml b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TransUnitNavigationView.ui.xml index 28f12a93ba..1601c221d2 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TransUnitNavigationView.ui.xml +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TransUnitNavigationView.ui.xml @@ -3,29 +3,21 @@ xmlns:g="urn:import:com.google.gwt.user.client.ui"> - .imageAnchor{ - cursor: pointer; - } - .configButton { - cursor: pointer; - margin-left:40px; - } .nav-button { - width:35px; - height:12px; + width:30px; + height:10px; border-radius:5px; + margin-right:5px; } - .rootContainer{ - } - - .rootContainer td { - padding-right:5px; - + .nav-button img { + padding-bottom:2px; } + + - + diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationEditorView.ui.xml b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationEditorView.ui.xml index 2e9c2edd05..a6ed78ff3a 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationEditorView.ui.xml +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationEditorView.ui.xml @@ -36,7 +36,7 @@ - + diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml index 76d99b8a3a..70a2831564 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml @@ -9,6 +9,10 @@ .imageButton { cursor: pointer; } + + .button { + border-radius:5px; + } @@ -36,7 +40,7 @@ - + diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/first_entry.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/first_entry.png index d193c63f7a782446047fb90b64563d89f51f69dc..a372ea0d312baaf81a9e0ead4b7335f1aca3f1a4 100644 GIT binary patch delta 362 zcmV-w0hRuy1D^vSiBL{Q4GJ0x0000DNk~Le0000U0000A2nGNE0Hb&AFOeZYe*_I6 zpVRue0003WNklUzov;mgn$_d&<}*%6u36*Sd2A9z_3O7AlN$> zRl14h_jix+DsU=r`8gbJ8v+$psLmi*RVlqHF8c>ZTfo)FU~nSPDtBfeQp(Mmg1sUb znEYsMJQ}S78$he+=UNI@tqygHdWTmn@AE8u&9ihD*a2St9_-uOd3k*-OAAXwd`Uv%ng9u|Nma02YcSFJ%^f6aUd%;$1LwdI za2@#THt(`_Z@ zZ8V9LZWlpPo!rkS8=PY|Pe7&BY}|ic zwHZw-OceYra7<$~9XQttlK_6M+Vo;jFa4(y{{?&pY_*z=+n;o2Oi}`=ixPvDvT{EF Xf3A20fhdp1F!=jiBL{Q4GJ0x0000DNk~Le0000Z0000C2nGNE0O%tGx{)D3e*z=` zQ1;1L^e>g76OgRxNDzGG~m!NO;Flq#0wD42LT3Z_o`dDi{ z+qX5BcS3Ykz%J z-*Ee*PYXwAhy|yQ=&x;8E$T$K&Dyq7z;-=1*M@KjrpIx&JB!=3ug=nRTGHO`S{wJD d6fasPy@A8(x23!CLZH(aJYD@<);T3K0RXqmSHl1R delta 234 zcmdnNw3kV-Gr-TCmrII^fq{Y7)59eQNGk&|4+k5Ne4)&;YoekUCy>d&@Y8vB{X_>v zVMc4?DZ5_$1d8nSba4!^IQ{m@#1g%FffTD{9n;@`e;oYofqlRGB(^!*rZX=)zz}gG z?CT%Hp4*>%S~x;OEI4{ZcWn#3o!+BU3(xHXA3F(k#aVp*VA9N79h*>%q z5xPXo;E!1;XQ#e0gzRU-YGAOkfPM zG>Q1$Z9a}IHy4{93S6KsSjf_3FK51v5}svg^6fsrMZli+v7M#KPM%@po`F3*!O0*) n5qKAGvo!fS1uCYmNo0zhD-Fg0{g7^A?lX{0D}CWw>H+L$FM? z;9OQjSyDKh;L#wch_I$IEMgHskh>KZKEv*Xg|Tx7TM&H93Fm#k@8Jy}{Hwo|%TOp) z;=mbD1J3i=jm{u{I^!jP3g7`9f8ZF{vPS>7c1<{G1yQi9MCu@)#ZtLiD3xaiL=J&< z;1qZQHi6ton#tz!lLD>Yh(Z7!rMviOf49)?Y33Vvwni_cGu|}t4%}O#7hStzF2ifH ziBcdTxdmi^$^J_RyE_x#w_s@TVtL7aUKQI^Y3IVB+t$nF&`b zFFbbyHj2(fX(9rOn(~FjyMx~V76PkRlJpdToU6$Bj90{?@w5x9pK&}FaK8ps5J5ju zRm!EAR7TrmFir;5V#j%-(Vm* U1d;g)H~;_u07*qoM6N<$f-~%C-T(jq delta 277 zcmV+w0qXv@0=@zviBL{Q4GJ0x0000DNk~Le0000Z0000C2nGNE0O%tGx{)Ck2><{9 z008+zyMK{DA%6l2Evl|;aR2}SzDYzuR5;7+)GrIdU=YXg?+s1D1Yd?l#3tCRGx-n9 ziin_5ShfrLQiQSKlHiLNmvf6Eu3q?nwR1pD1O>+ukRvW(pOax}PBxxxExnB82R&I>x^@mMhevRX?fcu=P z3L@wOqWS?$mZmkJ4!E`t*fDL0!r&BzK?i69$FE{?s7n+Eo=ueVZh%dcV{64ZR2Mk^ b{0F`Rf=xOEKH6nr00000NkvXXu0mjfusv>i diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_mode.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_mode.png index 08a2005fd9c093f51461a1a6ed0c44a8bc1991e0..ce2301d22b00d31c27dedf9acb078be6c7ebf65d 100644 GIT binary patch delta 376 zcmV-;0f+vw1FZugiBL{Q4GJ0x0000DNk~Le0000U0000A2nGNE0Hb&AFOeZYe*_N~ z6<9qq0003kNklMSS@y1Tg*9&hmBASk+Y7dmxN3LQ))9nK|6kUmWc#aj;U{&)ZHK8|-9A#Y=1s#L%p zN_fB#*0VIZf9uk%oxKi}F^`#zf7O-ROQ!vm^9QJ4AN^Rv9lqrYcZUK?QLKchTL?t) zZ|rO05-zheS)Q0G_2L(%Uy8qc-RQ*Uz{2mFn~^Bc;L5ACJ*Vb?BL38u2I}+e6Z7%Y z>@XI8USH1z3eScZ2|=t&V{Ad3rAfq(dWZoWqlV2VrdF-?U=W3W`CM&HPB4e)LODy5 ztA=nVS(=RF1HS(c@ddWCG&#*_=R8Z3a;pKF5s#wpEvVH1&4`N_YxX4#0VZ*l$2|fG WkX{2lywQgM0000sENY!AA$7r7rFPCx?jOU^3O=x;!L9NM33Y1i$6r_#fYo`;OzjdRHhC zny=Q%*h39h_=nrcl1=Qv)6uGQW>8 z)Uz}>%CQGonmof(e7{Z1FMP<-NyVY b+z Date: Wed, 21 Dec 2011 14:56:21 +1000 Subject: [PATCH 05/10] Change tab header color, resize app view --- .../webtrans/client/view/AppView.ui.xml | 52 +++++++++---------- .../zanata/webtrans/public/Application.css | 4 ++ 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/AppView.ui.xml b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/AppView.ui.xml index ea045eae4e..5d31c43f7d 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/AppView.ui.xml +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/AppView.ui.xml @@ -71,7 +71,7 @@ - + @@ -96,32 +96,32 @@ - - - - - - - - Documents - > - - No document selected - - - - - - - - - - - - - + + + + + + + + Documents + > + + No document selected + + + + + + + + + + + + + - + diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/public/Application.css b/server/zanata-war/src/main/resources/org/zanata/webtrans/public/Application.css index 2a98e5295d..29f64a0e54 100644 --- a/server/zanata-war/src/main/resources/org/zanata/webtrans/public/Application.css +++ b/server/zanata-war/src/main/resources/org/zanata/webtrans/public/Application.css @@ -158,12 +158,16 @@ Removes some of the styling on the page-level splitters cursor:pointer; border-top-left-radius:5px; border-top-right-radius:5px; + background:#4a75b5; + color:#FFFFFF; } .gwt-TabLayoutPanel .gwt-TabLayoutPanelTab-selected { cursor:default; border-top-left-radius:5px; border-top-right-radius:5px; + background:#183c66; + color:#FFFFFF; } .gwt-TabLayoutPanel .gwt-TabLayoutPanelContent { From 8334ca8a4e48b73515d7572630217468b20f1f81 Mon Sep 17 00:00:00 2001 From: Alex Eng Date: Wed, 21 Dec 2011 16:13:51 +1000 Subject: [PATCH 06/10] Resize toggle buttom, clean up unused image --- .../presenter/TranslationPresenter.java | 58 ++++++++----------- .../webtrans/client/resources/Resources.java | 24 -------- .../client/resources/WebTransMessages.java | 10 +++- .../webtrans/client/view/TranslationView.java | 44 +++++--------- .../client/view/TranslationView.ui.xml | 21 +++---- 5 files changed, 54 insertions(+), 103 deletions(-) diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TranslationPresenter.java b/server/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TranslationPresenter.java index db70591146..6912cce071 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TranslationPresenter.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TranslationPresenter.java @@ -65,17 +65,13 @@ public interface Display extends WidgetDisplay void setSouthPanelViewVisible(boolean visible); - HasClickHandlers getHideSouthPanelButton(); - - HasClickHandlers getShowSouthPanelButton(); - - void setShowSouthPanelButtonVisible(boolean visible); - void setSidePanelViewVisible(boolean visible); void updateWorkspaceUsersTitle(String title); ToggleButton getToogleOptionsButton(); + + ToggleButton getToogleSouthButton(); } private final DispatchAsync dispatcher; @@ -177,50 +173,44 @@ public void onClick(ClickEvent event) { display.setSidePanelViewVisible(true); display.getToogleOptionsButton().setTitle(messages.hideEditorOptions()); - display.getToogleOptionsButton().setText(messages.showEditorOptionsLabel()); } else if (!display.getToogleOptionsButton().isDown()) { display.setSidePanelViewVisible(false); display.getToogleOptionsButton().setTitle(messages.showEditorOptions()); - display.getToogleOptionsButton().setText(messages.hideEditorOptionsLabel()); } } })); - registerHandler(display.getHideSouthPanelButton().addClickHandler(new ClickHandler() - { - @Override - public void onClick(ClickEvent event) - { - display.setSouthPanelViewVisible(false); - transMemoryPresenter.unbind(); - glossaryPresenter.unbind(); - workspaceUsersPresenter.unbind(); - display.setShowSouthPanelButtonVisible(true); - } - })); - - display.setShowSouthPanelButtonVisible(false); - display.getShowSouthPanelButton().addClickHandler(new ClickHandler() + registerHandler(display.getToogleSouthButton().addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { - transMemoryPresenter.bind(); - glossaryPresenter.bind(); - workspaceUsersPresenter.bind(); - - display.setSouthPanelViewVisible(true); - display.setShowSouthPanelButtonVisible(false); - TransUnit tu = translationEditorPresenter.getSelectedTransUnit(); - if (tu != null) + if (display.getToogleSouthButton().isDown()) { - transMemoryPresenter.showResultsFor(tu); - // glossaryPresenter.showResultsFor(tu); + display.setSouthPanelViewVisible(false); + transMemoryPresenter.unbind(); + glossaryPresenter.unbind(); + workspaceUsersPresenter.unbind(); + } + else if (!display.getToogleSouthButton().isDown()) + { + transMemoryPresenter.bind(); + glossaryPresenter.bind(); + workspaceUsersPresenter.bind(); + + display.setSouthPanelViewVisible(true); + TransUnit tu = translationEditorPresenter.getSelectedTransUnit(); + if (tu != null) + { + transMemoryPresenter.showResultsFor(tu); + // glossaryPresenter.showResultsFor(tu); + } } } - }); + })); + final CheckKey checkKey = new CheckKeyImpl(CheckKeyImpl.Context.Navigation); diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/resources/Resources.java b/server/zanata-war/src/main/java/org/zanata/webtrans/client/resources/Resources.java index 37381c746b..241badd82e 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/resources/Resources.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/resources/Resources.java @@ -33,18 +33,6 @@ public interface Resources extends ClientBundle @Source("org/zanata/webtrans/WebTransStyles.css") WebTransStyles style(); - @Source("org/zanata/webtrans/images/crystal_project/_16x16/actions/upArrow.png") - ImageResource upArrowButton(); - - @Source("org/zanata/webtrans/images/crystal_project/_16x16/actions/downArrow.png") - ImageResource downArrowButton(); - - @Source("org/zanata/webtrans/images/crystal_project/_16x16/actions/rightArrow.png") - ImageResource rightArrowButton(); - - // @Source("org/zanata/webtrans/images/configure.png") - // ImageResource configureButton(); - @Source("org/zanata/webtrans/images/banner_bg.png") DataResource bannerBackground(); @@ -75,12 +63,6 @@ public interface Resources extends ClientBundle @Source("org/zanata/webtrans/images/prev_entry.png") ImageResource prevEntry(); - @Source("org/zanata/webtrans/images/next_fuzzy.png") - ImageResource nextFuzzy(); - - @Source("org/zanata/webtrans/images/prev_fuzzy.png") - ImageResource prevFuzzy(); - @Source("org/zanata/webtrans/images/next_mode.png") ImageResource nextState(); @@ -93,12 +75,6 @@ public interface Resources extends ClientBundle @Source("org/zanata/webtrans/images/last_entry.png") ImageResource lastEntry(); - @Source("org/zanata/webtrans/images/next_approved.png") - ImageResource nextApproved(); - - @Source("org/zanata/webtrans/images/prev_approved.png") - ImageResource prevApproved(); - @Source("org/zanata/webtrans/images/tm_view.png") ImageResource tmViewButton(); diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/resources/WebTransMessages.java b/server/zanata-war/src/main/java/org/zanata/webtrans/client/resources/WebTransMessages.java index c86776545a..6abd91cea4 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/resources/WebTransMessages.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/resources/WebTransMessages.java @@ -65,12 +65,18 @@ public interface WebTransMessages extends Messages @DefaultMessage("Hide Editor Options") String hideEditorOptions(); - @DefaultMessage("Options >>") + @DefaultMessage("► Options") String showEditorOptionsLabel(); - @DefaultMessage("<< Options") + @DefaultMessage("◄ Options") String hideEditorOptionsLabel(); + @DefaultMessage("▼ Minimise") + String minimiseLabel(); + + @DefaultMessage("▲ Restore") + String restoreLabel(); + @DefaultMessage("Find") String findButton(); diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.java b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.java index f92c3bd05e..5d90acfe28 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.java @@ -47,9 +47,6 @@ interface TranslationViewUiBinder extends UiBinder private static TranslationViewUiBinder uiBinder = GWT.create(TranslationViewUiBinder.class); - @UiField(provided = true) - final Resources resources; - @UiField(provided = true) LayoutPanel sidePanelOuterContainer, southPanelContainer; @@ -59,9 +56,12 @@ interface TranslationViewUiBinder extends UiBinder @UiField LayoutPanel editorContainer, sidePanelContainer; - @UiField + @UiField(provided = true) ToggleButton toogleOptionsButton; + @UiField(provided = true) + ToggleButton toogleSouthButton; + LayoutPanel tmPanel, userPanel; /* @@ -73,12 +73,6 @@ interface TranslationViewUiBinder extends UiBinder @UiField SplitLayoutPanel mainSplitPanel; - @UiField - Image southPanelMinimize; - - @UiField - Image showSouthPanelViewLink; - final WebTransMessages messages; private double panelWidth = 20; @@ -89,7 +83,6 @@ interface TranslationViewUiBinder extends UiBinder @Inject public TranslationView(Resources resources, WebTransMessages messages) { - this.resources = resources; this.messages = messages; StyleInjector.inject(resources.style().getText(), true); @@ -99,14 +92,16 @@ public TranslationView(Resources resources, WebTransMessages messages) tmPanel = new LayoutPanel(); userPanel = new LayoutPanel(); + toogleOptionsButton = new ToggleButton(messages.hideEditorOptionsLabel(), messages.showEditorOptionsLabel()); + toogleOptionsButton.setTitle(messages.hideEditorOptions()); + toogleOptionsButton.setDown(true); + + toogleSouthButton = new ToggleButton(messages.minimiseLabel(), messages.restoreLabel()); + initWidget(uiBinder.createAndBindUi(this)); - southPanelMinimize.setVisible(true); mainSplitPanel.setWidgetMinSize(sidePanelOuterContainer, (int) panelWidth); mainSplitPanel.setWidgetMinSize(southPanelContainer, (int) southHeight); - toogleOptionsButton.setText(messages.showEditorOptionsLabel()); - toogleOptionsButton.setTitle(messages.hideEditorOptions()); - toogleOptionsButton.setDown(true); southPanelTab.add(tmPanel, messages.translationMemoryHeading()); if (!disableGlossary) @@ -114,6 +109,8 @@ public TranslationView(Resources resources, WebTransMessages messages) southPanelTab.add(glossaryPanel, "Glossary"); } southPanelTab.add(userPanel, messages.nUsersOnline(0)); + + } @Override @@ -207,22 +204,9 @@ public ToggleButton getToogleOptionsButton() } @Override - public HasClickHandlers getHideSouthPanelButton() - { - return southPanelMinimize; - } - - @Override - public HasClickHandlers getShowSouthPanelButton() - { - return showSouthPanelViewLink; - } - - @Override - public void setShowSouthPanelButtonVisible(boolean visible) + public ToggleButton getToogleSouthButton() { - showSouthPanelViewLink.setVisible(visible); - southPanelMinimize.setVisible(!visible); + return toogleSouthButton; } @Override diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml index 70a2831564..1fc59c6b85 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml @@ -3,15 +3,11 @@ xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:f="urn:import:org.zanata.webtrans.client" xmlns:fui="urn:import:org.zanata.webtrans.client.ui"> - - - .imageButton { - cursor: pointer; - } - - .button { - border-radius:5px; + .small-button { + height:10px; + font-size:10px; + border-radius:5px; } @@ -24,10 +20,9 @@ - + - - + @@ -38,9 +33,9 @@ - + - + From f768a0d1d109fba0329b04645c28666de5366872 Mon Sep 17 00:00:00 2001 From: Alex Eng Date: Wed, 21 Dec 2011 16:17:07 +1000 Subject: [PATCH 07/10] Remove unused icon --- .../crystal_project/_16x16/actions/downArrow.png | Bin 731 -> 0 bytes .../_16x16/actions/rightArrow.png | Bin 769 -> 0 bytes .../crystal_project/_16x16/actions/upArrow.png | Bin 737 -> 0 bytes .../images/crystal_project/_16x16/apps/alert.png | Bin 3575 -> 0 bytes .../org/zanata/webtrans/images/next_approved.png | Bin 999 -> 0 bytes .../org/zanata/webtrans/images/next_fuzzy.png | Bin 1086 -> 0 bytes .../zanata/webtrans/images/next_untranslated.png | Bin 646 -> 0 bytes .../org/zanata/webtrans/images/prev_approved.png | Bin 1058 -> 0 bytes .../org/zanata/webtrans/images/prev_fuzzy.png | Bin 1193 -> 0 bytes .../zanata/webtrans/images/prev_untranslated.png | Bin 718 -> 0 bytes 10 files changed, 0 insertions(+), 0 deletions(-) delete mode 100755 server/zanata-war/src/main/resources/org/zanata/webtrans/images/crystal_project/_16x16/actions/downArrow.png delete mode 100644 server/zanata-war/src/main/resources/org/zanata/webtrans/images/crystal_project/_16x16/actions/rightArrow.png delete mode 100644 server/zanata-war/src/main/resources/org/zanata/webtrans/images/crystal_project/_16x16/actions/upArrow.png delete mode 100755 server/zanata-war/src/main/resources/org/zanata/webtrans/images/crystal_project/_16x16/apps/alert.png delete mode 100644 server/zanata-war/src/main/resources/org/zanata/webtrans/images/next_approved.png delete mode 100644 server/zanata-war/src/main/resources/org/zanata/webtrans/images/next_fuzzy.png delete mode 100644 server/zanata-war/src/main/resources/org/zanata/webtrans/images/next_untranslated.png delete mode 100644 server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_approved.png delete mode 100644 server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_fuzzy.png delete mode 100644 server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_untranslated.png diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/crystal_project/_16x16/actions/downArrow.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/crystal_project/_16x16/actions/downArrow.png deleted file mode 100755 index 76ab8c1fa82b9c93d895c7bd48d187500b538c8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 731 zcmV<10wn#3P)Dd_U)W=WWrp7U8pf;MqM&M0gg0{}NMYx4tcj z+Sx0&nH-+Hetv3Z=6?mA-X0wLVE^u2kM%5n{5Utw6z~6Q;Kjoy4(;84@Jpj1G={)s zxHx5O_>Jn8u~)P%S(evSc762S%@v6D*z9v|=?QlUc@PCuQbj3) zoSZ<13}Q#@5>`7Yi;HcDV!%S~UEl?-wjHy1l|L6xF_bQl2ZmZPV>MZ(UYMu3atA+j z6qhEH{V=iYgCqiL3HrJ$lg|~o^xg;)U%$YP19gfXe93T2ZV4_$Fv=&zR{P!L-nxxIGoIjb7x&p2FHc`Dx?=Q`@Z(hQOAA(ZgJUEM>MANhK&P0iG zAMfC`Y6#61nSYZj->#=zSVs_7xqiBeOE*K7KyE=YkQ{W8097D*8gb#bMeg0HLukNk zBpX2U^H3-T7!7VEXq3Y7UezUnK#zvt})kD7k;`} zs*Y~hEXZ15Es6@L5D|lj;-6auMUG$<5(AM^y3_Bh%&KSEd3yQ^e*<$fQ)5OOKE?n5 N002ovPDHLkV1nLORT}^R diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/crystal_project/_16x16/actions/rightArrow.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/crystal_project/_16x16/actions/rightArrow.png deleted file mode 100644 index a61d48b7e65c2acbb2f925395445f5138a4e6484..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmV+c1OEJpP)1w!KestENls2Klbg8^YGa~OQ4vi+Dy4-|FQ7Bf!Sv~JvssNlwR3+}pe;bq~%YO&SQwAf7%OR?4}XcBa$j>(M4%$)z$Md+Z+yZKh% z^Sv+cC!BNqul(+#hw3Y}L5$TXg@|HkymAiVkP!$Ea(OwsWu|uKvu&4whRB5!I7HkI2z``;{v^WB=NO*sW%rj0`0_f4#kK4CJjeh9 zK`X*XbF;Hgek`5pDQxOC*2gK0Tz-lR6LNh`b{_eQU%z>dVLL>daDfjFuLW4BEbN*- zIJIYDT~WRrPvgsg2WFVZl}9L}XzCg}KG)nie*>#$APfLRD?&#-Wz4SUt;S}OW#?d0fi^Uy$9ES-$;3ObRDs|XcpYFY;8a_U+7H>-8!*+SS&r6m^Xg`r z>BrC=vvJ!52p^O|SO<>PHh?mQvjZ diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/crystal_project/_16x16/actions/upArrow.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/crystal_project/_16x16/actions/upArrow.png deleted file mode 100644 index 14638537fbdcc579c185d23c50381f20dba6a7fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`Q|P)^IzIZm04*Ts<>U6~eSi>MZE3Nc7< zqk@-(wF^X|mbD0Xu5=Zo3&A2cWwntK)5=svQDH`GuFP?C=3Kt-ecu*tosfR;te$7_ z@W8{xi$4=W_}?->a{215^&$8wPzgwiUolmcZ5)<9%I6nKyKfb)nCNann9&h=)-_nAw7+$0s_ ze!$lCDa=oLMQ~56rbVdKp<07@4jo-#>jBSehx>>M6X3=nb8LKNn0Ge6NTsg=p@+hE zK{QAN+Cr3I;yY|R*dk9`w0l#$vG*S$bq(q@ZnQFXp1RC04?9q@qJ$tA3r0Z*sO&ti z@4rWBg{LxHrZ&<~Y}gKm-}W#+pHy74L9 z*s`UPbAWq%AJ;h}V9?5lwhWI9(R{gvH9{6(v2DnGhDMV{u%a07WzEKV!p_D^jLj8E ztr(LQ%agB;uAFWRR7JF)45-L(znk~nZr`%&ItHV&Y;`rXOzP<5nj_;SoX;>KQ_G&D z`T5!(-oNpd`{?>1*ZgeVPycnMXR_+eq2ssjj%|C`o~CcK@Y`}Z2_Y=!Js1B1CpSRk Tu*=e}00000NkvXXu0mjfEf87z diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/crystal_project/_16x16/apps/alert.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/crystal_project/_16x16/apps/alert.png deleted file mode 100755 index b5b93b7518d27538045d4084a9956b10c00372f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3575 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 diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/next_approved.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/next_approved.png deleted file mode 100644 index b0a84d85662b316af061832fe5db966a1c81f7b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 999 zcmV zlK1Yr$3?L<$y5`;Z+Xu>=YHoq-@TWZ84F)5j%$7+f&Uqv={j5K$vQ4vP^D5yb;pUB zv2gb6rxejE(r(q1VE(U%F*77f0yA`BFcEdcHA#{}-Gicc*V5U~O0%=FhfKL#)*8Bg zM8?7onq$>bX6~%g4+$mlN7F^ctw2Cv*H|8gW^{H=#9)F^8>*Y0eN_vi7hfwDZ!+H% zfcU-;wD9?v6RnJUGPIip`UEq>4}4r%zl`s$d<(Db;lSh+4j-69!hFEw8PKG`iOtM! zW@yg6T6pPq01$uQ(h8&ZV~$lBl*py)7xDGQudwNCAeYSHV161gGxp#_0wN1b9=Er)>wH<;ez~vh&IDhFII9?5-!((`E>UrdnIf%~E+al5> zwX^lfM9eteLk0j4s(0e`)JFF*Gb2(GUdw~m@(@NL*0xr${PPl=rh|-~!QuULcqlso zP1F171ppwemZ3<_e_SpP_hi{Xy)MynqZBKwR#&mKvIt%1nA!UjmR8Q=wtEY9+{QEe z4k16b8;0oHZue`0VFfn#kg1a~6Iouedp(LGY}Ph#?bbDfGQgI%g_}+VhGyX4u4(Ll zcnWbdj_&LHZxDe2ip2Nx^Dnp^VO{w*_ujd4R>p69)E;(U4w8)?zuc?A3_on*j&}#icoIV~ z3%bzzR)vU|LJjfT>2(o`g_Klp7Yc>wuec5XSr%BUC%=&P)iEF=`@-4i}S7W@em@IaU%i5jUN?^lT1#v07SYxt#X& zwCA+v?}LtPtyEw7d;IWqq90v<&TLZ!{7%BHQw#YKH`a#GJ9 zrxd5oo|#oO@?2AGV#8?EDJc?0Nf|SV6qiV;^sRbJ%_oC{gPA;x+wC@LJbAX#qD?>E z8`@1skvxP@Jxg%QSGna23oEjWr;d$}M=7Or8*^{!r(e#!+S3tzt))(4|Iga0sv#a% zAj=9&CLUE)T_a1&U(74k=x~^ks z=@zbD{S`i6828r`LSVD)!hwT!^g8x}=edF?S>dSX#|B?Cfu5I~&V+GlYHE9Me^-}! z{kGU_F{k^=&05}8WivWX&Ys7eJ0T1Y@5kt9KZc*^LqkIi1WPGm8xq>u8X$Uu@OXYk zTU$LW7W0l6j?EID&6LOE7Gu|*&WncJ2?-f*ivH?wZeG)}_~_$vC^2z3etZla9gPr# zGVmOO)2A=ND+X}*&;h8bh7%{8a5(m0dU_6lK%`)Inrv~FV=@yTxZOe?rVQB9G(vOp zv$J1=<5;*{Ltt43mlm$T>kZ)i{1SFq1;kChw`~r4+3kC+dcZ5(1cvq~EM3Q?Q$hl3Y=FT-+ z1nK+XgTcCgFQ&M8!;fzkE&~(@hyR4h#G$p-hSf+6n;Qufb z)=hu7;=S?FBd<_O={CmW@i0;O?pFi*!oyWUs$gpYKoo-zML&|sG!!L`l9IpQ8Jo?D z?(TLN40$JDJ9G+&eyg7S7-n?F3tnUDX(1gt5 zhwHU}#FN|%lhWU~2LS*E0H~b&g)(~eMx2)}->^x=vPcS}DhhjBRtzs69UEH#@W5xu z06->fcr2S?D|{iLSPlRHUn;M%Nl3@WkLXA5Kdk@6Ura-&I-SkVOaK4?07*qoM6N<$ Ef@8Djf&c&j diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/next_untranslated.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/next_untranslated.png deleted file mode 100644 index 8c3a777025c097f071838efb026d14f0382f5511..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmV;10(t$3P)6Hycf;P=dz$xN&hX=v=Ci1;4_7gARuCcjZqkK6z@=gd1wWdm(99&0OlI!A$5o1L+)m!@ zdlnCua}O~yRzGde>%+K+oYS|sdsr@q*x6C_dR?9FiJ8&Z*!;js+_4<@h>18ijTAzP zv`v-eRF|yu#v*>Sx4gVt2Tt5G0{~R2u942J>K*0f001Pm@n<#} gM85AU=E>*(3-bf_gXFI*M*si-07*qoM6N<$g77XJZvX%Q diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_approved.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_approved.png deleted file mode 100644 index 695b41729a727d605998ece35ecbba82456762fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1058 zcmV+-1l{|IP)+QX-K7n-l%D936+LP>Nt~` zoH^(0v$qdzLuPW)q|)_vSRecR*0*^okO}Ujn4Ki2$s!40;I8FEj)0UjD9b0 z>~D_@9$H#feR+I*PnhsO@;ep>l;dI9v8bZfaAUDi#i>7k$C;~tfQazi&KIyHvlU|H z83YKHpo*-p$6s)bet3I$a0vh;0DSz_iGC#2hdNguP*wxcZFF~#s$0Rt#h)>Cc@kk5 zV(+#mP{?nGC9PGiuokfEu^Fo#|9W`%m78}`eC*iCq)6-6P1Y-fcJRMI>WvzHxj2ET znN#or5B>Q^@XYpSk&GunE!Hv#V2PKEl0{Z(eq~N35;9+fdr-%MOo(tpKM%qHp7J0` zf(ST&{T!yQOv3eC^la+I{#`GkJ(&elOXm~7T0$q1RUdYzzxf2F3Y=D@~+NoGyakSVZ zu%(0OcjXq0MhN9J zxJHko@XuYI?hr^bhdZFv7F`a-c1i|sfcO5`J zlLzzq*L=$Y4b5RrDC)Q{{rA-F$F}_o08Q)Q=-7{GA*%0$j{jzmtv?jnK1b~?Z8R3$ zDr$`ylJOK0b{m9PqfeqM0vm>0j908mV$AVl?++awoL#k>0N~RTCm)BU-VI4TsqIh_ ztzHVo7#Nu7so79ykY*OHouN>iRusM!2?GG5#ZlQczb_>?$O$H?_5I)4N-1JyZF#YB cSC=#YA9JFW#ar&T^u2C0EG zH5$>{v`tKmeK2i9BEH!No*LqtiHR{WHpCD$8a0H50x_796csRr8d6XjOR0)eCcxa7 zVdh*o?Ck?WK!!x4{I6@TwZHZ6wX+1yIkHF?85t4d@wnTj)Rp91q>N=f_@8A0T$j_9 z6^aUfhv^y|bhudNB}Eb1G{q{?)HMiuz#s_Vx=EGAxTY|MFCf{SbnAgnuU|isuUhYv z6{Z?1%Mz+WZE-LBAR>ouD44wCyT`$=7?Rv~sr7Vb6Q=8v!MX!QnfGg}q7A;>3^?cD z>m6j3ZdjO|eSl;#jdUslMU~<8I#F1d51-GqE69312@6qeIi<@VhnC%6b(}wu0RRdB z?|#^OsItU-@7U2;gU6KyW4m{iNUWf*?;G5k3Bl)cL)8?7=a--x763q`1Qq2)Xl|)P zAW*U+UlchElVWZ@XJ%n>-?fhOC!(7%-BITZ9=2XPTA6(IA#X@cWAZ05vrMc)czR4vd0x;9y13c2@+7@RE`VFXi++2s>{y z*89^NaavhM3pLq(Cf{p#2(e+WWe15w66o&!60NO`2nPK~Cex543PBJsK0bwog*Z-~ zYQp5?4BFezprWD>U0nl^WQya*tJgax9EK%fZr=4vBBgxvM%&YiTkoKj2@sO~e{WT9 z?+D5d?nf}_2LKEWeUH-8{rGNt8kS{)bB=I03dR`LYzDu-7{Oo##>b{NVKxl6ZNbiD z>>a~EB2iDoT&1^HGF0af0c7Vod$t94e*O((V^aVCS(YG4B4V*+#9~PhLQqvz3RRUM zQi8FuDNIk_$Jukun>82{Kq*6>*Yx>3w4$YDWZQ2RZw`H+PyG1DB4>6}p2sSXs143{ zK9$3vqPVyKy}e%}o=74PD8=BwD9)T|Mosl0)YTovjo}F#tE0{}fe!|qjO<#nGseW5xKEy;E1|6sKLy@&wVYa(Vt zuI0OP?w(j`-O#twDe}65N?G9DaA9reNR20Gg|FyueYKtVYta?mSyu~=X zm=y*9I!8L`5%URGdS$ghBm!l7u(fU576>6sGSzr-v9k0h6>r5yO;T)300000NkvXX Hu0mjf`LY_L diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_untranslated.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_untranslated.png deleted file mode 100644 index 99e3ed2e9e5c582abcbb80867101318935dfa973..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 718 zcmV;<0x|uGP)f`SwT7b;Zn6SydK zRdCY^KA=$i09{G&3y2^>DXn%Pl+gOz2rlvgbm780z3gU>d&HzLxO4w0VL&v3`j0OV zx~tuh=W~-6!@ro7wT%lZlYf*hmL`;w0mSsKaM%(s6FR&8w(ho91HbuZes(eh01E&f zKV3hga`}hZV<#ra_8>h-0wE$m45DD`b2soe=4WRcy&5ksFJ~#6y`Cxzk1HpY$gAuR z6A*-6^dmV95kthF6Ks9z>fp)T%*wcGgF zd=UAKwa!khB}V@l!6YzZAjI%;#dBV2Xkn@H>Qt}Rw+|V*QSYZV$u& zK)G7AMr&?Pabs99Stfz4t+gg*Hg?BrjgGpt-xA&g#Cr%?asU7T07*qoM6N<$g3gUR ADF6Tf From 942b44ce93e958e02afe03bd0e4b31cd95b91a1b Mon Sep 17 00:00:00 2001 From: Alex Eng Date: Tue, 3 Jan 2012 09:05:12 +1000 Subject: [PATCH 08/10] Implement variables validation checks --- .../action/HtmlXmlTagValidation.java | 12 +++++-- .../action/NewlineLeadTrailValidation.java | 17 ++++++++-- .../action/VariablesValidation.java | 34 ++++++++++++++----- .../validation/HtmlXmlTagValidationTests.java | 8 ++--- .../NewlineLeadTrailValidationTests.java | 2 +- .../validation/VariablesValidationTests.java | 14 ++++---- 6 files changed, 63 insertions(+), 24 deletions(-) diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/HtmlXmlTagValidation.java b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/HtmlXmlTagValidation.java index 8541b928a1..10c34e811f 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/HtmlXmlTagValidation.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/HtmlXmlTagValidation.java @@ -49,22 +49,30 @@ public void validate(String source, String target) if (!ValidationUtils.isEmpty(target)) { String tmp = target; + StringBuilder sb = new StringBuilder(); MatchResult result = regExp.exec(source); + while (result != null) { String node = result.getGroup(0); Log.debug("Found Node:" + node); if (!tmp.contains(node)) { - addError("Tag " + node + " not found in target"); + sb.append(" "); + sb.append(node); + sb.append(" "); } else { tmp = tmp.replaceFirst(node, ""); // remove matched node from - // target } result = regExp.exec(source); } + + if (sb.length() > 0) + { + addError("Tag [" + sb.toString() + "] missing in target"); + } } } } diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/NewlineLeadTrailValidation.java b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/NewlineLeadTrailValidation.java index 68711174cb..dbbb4148bf 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/NewlineLeadTrailValidation.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/NewlineLeadTrailValidation.java @@ -50,13 +50,14 @@ public void validate(String source, String target) if (!ValidationUtils.isEmpty(target)) { MatchResult sourceResult = leadRegExp.exec(source); + StringBuilder sb = new StringBuilder(); if (sourceResult != null) { Log.debug("Found leading newline in source"); MatchResult targetResult = leadRegExp.exec(target); if (targetResult == null) { - addError("Leading newline not found in target"); + sb.append("Leading"); } } @@ -67,9 +68,21 @@ public void validate(String source, String target) MatchResult targetResult = endRegExp.exec(target); if (targetResult == null) { - addError("Trailing newline not found in target"); + if (sb.length() > 0) + { + sb.append("/Trailing"); + } + else + { + sb.append("Trailing"); + } } } + + if (sb.length() > 0) + { + addError(sb.toString() + " newline missing in target"); + } } } } diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/VariablesValidation.java b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/VariablesValidation.java index 5f75114046..c1f2414c51 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/VariablesValidation.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/action/VariablesValidation.java @@ -23,6 +23,8 @@ import org.zanata.webtrans.shared.validation.ValidationUtils; import com.allen_sauer.gwt.log.client.Log; +import com.google.gwt.regexp.shared.MatchResult; +import com.google.gwt.regexp.shared.RegExp; /** * @@ -36,22 +38,38 @@ public VariablesValidation(String id, String description) super(id, description); } - private final String[] varList = { "%s", "%d" }; - + private final static String varRegex = "%[\\w]+"; + private final static RegExp varRegExp = RegExp.compile(varRegex, "g"); + @Override public void validate(String source, String target) { if (!ValidationUtils.isEmpty(target)) { - for (String var : varList) + String tmp = target; + StringBuilder sb = new StringBuilder(); + MatchResult result = varRegExp.exec(source); + + while (result != null) { - int srcCount = ValidationUtils.countMatches(source, var); - int tgtCount = ValidationUtils.countMatches(target, var); - Log.debug("Variable [" + var + "]: src-" + srcCount + " target-" + tgtCount); - if (srcCount != tgtCount) + String var = result.getGroup(0); + Log.debug("Found var:" + var); + if (!tmp.contains(var)) + { + sb.append(" "); + sb.append(var); + sb.append(" "); + } + else { - addError("Variable [" + var + "] count mismatch"); + tmp = tmp.replaceFirst(var, ""); // remove matched var } + result = varRegExp.exec(source); + } + + if (sb.length() > 0) + { + addError("Variable [" + sb.toString() + "] missing in target"); } } } diff --git a/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/HtmlXmlTagValidationTests.java b/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/HtmlXmlTagValidationTests.java index a1fe6e0356..ca5f54bbf8 100644 --- a/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/HtmlXmlTagValidationTests.java +++ b/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/HtmlXmlTagValidationTests.java @@ -49,7 +49,7 @@ public void HTMLTagTestTagMissing() String target = "HTML TAG Test
column 1 row 1
"; htmlXmlTagValidation.validate(source, target); Assert.assertTrue(htmlXmlTagValidation.hasError()); - Assert.assertEquals(htmlXmlTagValidation.getError().size(), 2); + Assert.assertEquals(htmlXmlTagValidation.getError().size(), 1); } @Test @@ -61,7 +61,7 @@ public void HTMLTagTestTagMissing2() String target = "HTML TAG Test
"; htmlXmlTagValidation.validate(source, target); Assert.assertTrue(htmlXmlTagValidation.hasError()); - Assert.assertEquals(htmlXmlTagValidation.getError().size(), 4); + Assert.assertEquals(htmlXmlTagValidation.getError().size(), 1); } @Test @@ -85,7 +85,7 @@ public void XMLTagTestTagMissing() String target = ""; htmlXmlTagValidation.validate(source, target); Assert.assertTrue(htmlXmlTagValidation.hasError()); - Assert.assertEquals(htmlXmlTagValidation.getError().size(), 4); + Assert.assertEquals(htmlXmlTagValidation.getError().size(), 1); } @Test @@ -97,7 +97,7 @@ public void XMLTagTestTagMissing2() String target = ""; htmlXmlTagValidation.validate(source, target); Assert.assertTrue(htmlXmlTagValidation.hasError()); - Assert.assertEquals(htmlXmlTagValidation.getError().size(), 2); + Assert.assertEquals(htmlXmlTagValidation.getError().size(), 1); } @Test diff --git a/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/NewlineLeadTrailValidationTests.java b/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/NewlineLeadTrailValidationTests.java index 55c5bd5c75..b27bc77a72 100644 --- a/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/NewlineLeadTrailValidationTests.java +++ b/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/NewlineLeadTrailValidationTests.java @@ -73,7 +73,7 @@ public void NewlineLeadTrailTestWithMissingBoth() String target = "Testing string with leading new line"; newlineLeadTrailValidation.validate(source, target); Assert.assertTrue(newlineLeadTrailValidation.hasError()); - Assert.assertEquals(newlineLeadTrailValidation.getError().size(), 2); + Assert.assertEquals(newlineLeadTrailValidation.getError().size(), 1); } @Test diff --git a/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/VariablesValidationTests.java b/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/VariablesValidationTests.java index 9b12f91409..de944db36f 100644 --- a/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/VariablesValidationTests.java +++ b/server/zanata-war/src/test/java/org/zanata/webtrans/shared/validation/VariablesValidationTests.java @@ -46,7 +46,7 @@ public void VariablesTestWithMismatch() { variablesValidation = new VariablesValidation("Variables check", "Variables check validation"); - String source = "Testing string with variable %s"; + String source = "Testing string with variable %var1"; String target = "Testing string with no variables"; variablesValidation.validate(source, target); Assert.assertTrue(variablesValidation.hasError()); @@ -58,11 +58,11 @@ public void VariablesTestWithMismatch2() { variablesValidation = new VariablesValidation("Variables check", "Variables check validation"); - String source = "Testing string with variable %s and %d"; + String source = "Testing string with variable %var1 and %var2"; String target = "Testing string with no variables"; variablesValidation.validate(source, target); Assert.assertTrue(variablesValidation.hasError()); - Assert.assertEquals(variablesValidation.getError().size(), 2); + Assert.assertEquals(variablesValidation.getError().size(), 1); } @Test @@ -70,11 +70,11 @@ public void VariablesTestWithMismatch3() { variablesValidation = new VariablesValidation("Variables check", "Variables check validation"); - String source = "Testing string with variable %s and %s and %d"; + String source = "Testing string with variable %var1 and %var2 and %var3"; String target = "Testing string with no variables"; variablesValidation.validate(source, target); Assert.assertTrue(variablesValidation.hasError()); - Assert.assertEquals(variablesValidation.getError().size(), 2); + Assert.assertEquals(variablesValidation.getError().size(), 1); } @Test @@ -82,8 +82,8 @@ public void VariablesTestWithMatch() { variablesValidation = new VariablesValidation("Variables check", "Variables check validation"); - String source = "Testing string with variable %s and %d"; - String target = "Testing string with variable %s and %d"; + String source = "Testing string with variable %var1 and %var2"; + String target = "Testing string with variable %var1 and %var2"; variablesValidation.validate(source, target); Assert.assertFalse(variablesValidation.hasError()); Assert.assertEquals(variablesValidation.getError().size(), 0); From 841faf144f6b594543d2b6bd72b1814b70f9bd93 Mon Sep 17 00:00:00 2001 From: Alex Eng Date: Tue, 3 Jan 2012 09:57:38 +1000 Subject: [PATCH 09/10] Remove outline css on push button --- .../zanata/webtrans/client/view/TransUnitNavigationView.ui.xml | 2 ++ .../java/org/zanata/webtrans/client/view/TranslationView.ui.xml | 1 + 2 files changed, 3 insertions(+) diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TransUnitNavigationView.ui.xml b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TransUnitNavigationView.ui.xml index 1601c221d2..b4bfb27054 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TransUnitNavigationView.ui.xml +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TransUnitNavigationView.ui.xml @@ -9,6 +9,8 @@ height:10px; border-radius:5px; margin-right:5px; + border-style:solid; + outline:none; } .nav-button img { diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml index 1fc59c6b85..611f78c496 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationView.ui.xml @@ -8,6 +8,7 @@ height:10px; font-size:10px; border-radius:5px; + outline:none; } From d1393708b5f653d8a8a4b3e3c8b7d8fb4939ef72 Mon Sep 17 00:00:00 2001 From: Alex Eng Date: Tue, 3 Jan 2012 11:40:46 +1000 Subject: [PATCH 10/10] Redesign pager buttons --- .../editor/filter/TransFilterView.ui.xml | 2 +- .../client/ui/ClearableTextBox.ui.xml | 4 +- .../org/zanata/webtrans/client/ui/Pager.java | 29 +++++---- .../zanata/webtrans/client/ui/Pager.ui.xml | 60 +++++++++++++----- .../client/view/TranslationEditorView.ui.xml | 2 +- .../org/zanata/webtrans/images/first_page.png | Bin 3098 -> 396 bytes .../zanata/webtrans/images/first_page_old.png | Bin 0 -> 3098 bytes .../org/zanata/webtrans/images/last_page.png | Bin 3092 -> 396 bytes .../zanata/webtrans/images/last_page_old.png | Bin 0 -> 3092 bytes .../org/zanata/webtrans/images/next_page.png | Bin 3081 -> 334 bytes .../zanata/webtrans/images/next_page_old.png | Bin 0 -> 3081 bytes .../org/zanata/webtrans/images/prev_page.png | Bin 3078 -> 319 bytes .../zanata/webtrans/images/prev_page_old.png | Bin 0 -> 3078 bytes 13 files changed, 64 insertions(+), 33 deletions(-) create mode 100644 server/zanata-war/src/main/resources/org/zanata/webtrans/images/first_page_old.png create mode 100644 server/zanata-war/src/main/resources/org/zanata/webtrans/images/last_page_old.png create mode 100644 server/zanata-war/src/main/resources/org/zanata/webtrans/images/next_page_old.png create mode 100644 server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_page_old.png diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/editor/filter/TransFilterView.ui.xml b/server/zanata-war/src/main/java/org/zanata/webtrans/client/editor/filter/TransFilterView.ui.xml index 7fef591393..982cbc1c60 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/editor/filter/TransFilterView.ui.xml +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/editor/filter/TransFilterView.ui.xml @@ -4,7 +4,7 @@ xmlns:fui="urn:import:org.zanata.webtrans.client.ui"> - + diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/ui/ClearableTextBox.ui.xml b/server/zanata-war/src/main/java/org/zanata/webtrans/client/ui/ClearableTextBox.ui.xml index 6b38ea0c54..f6cef96021 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/ui/ClearableTextBox.ui.xml +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/ui/ClearableTextBox.ui.xml @@ -9,8 +9,7 @@ display: inline; vertical-align: middle; border: 1px solid black; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; + border-radius: 4px; padding: 2px; } .xButton { @@ -28,6 +27,7 @@ font-size: 12px; padding: 0px; margin: 0px; + outline:none; } diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/ui/Pager.java b/server/zanata-war/src/main/java/org/zanata/webtrans/client/ui/Pager.java index a85743cba7..cf5984e579 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/ui/Pager.java +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/ui/Pager.java @@ -18,9 +18,12 @@ import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HTMLPanel; +import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.PushButton; import com.google.gwt.user.client.ui.TextBox; public class Pager extends Composite implements HasPager @@ -28,15 +31,13 @@ public class Pager extends Composite implements HasPager private static PagerUiBinder uiBinder = GWT.create(PagerUiBinder.class); - interface PagerUiBinder extends UiBinder + interface PagerUiBinder extends UiBinder { } - @UiField - Image firstPage, lastPage, nextPage, prevPage; - @UiField - Image firstPageDisabled, lastPageDisabled, nextPageDisabled, prevPageDisabled; + @UiField(provided = true) + PushButton firstPage, lastPage, nextPage, prevPage; @UiField TextBox gotoPage; @@ -55,6 +56,11 @@ interface PagerUiBinder extends UiBinder public Pager(final WebTransMessages messages, final Resources resources) { + firstPage = new PushButton(new Image(resources.firstPageImage())); + lastPage = new PushButton(new Image(resources.lastPageImage())); + nextPage = new PushButton(new Image(resources.nextPageImage())); + prevPage = new PushButton(new Image(resources.prevPageImage())); + this.resources = resources; initWidget(uiBinder.createAndBindUi(this)); @@ -111,10 +117,10 @@ private void refresh() { String page = pageCount == PAGECOUNT_UNKNOWN ? "" : "of " + pageCount; pageCountLabel.setText(page); - setEnabled(firstPage, firstPageDisabled, currentPage != 1); - setEnabled(prevPage, prevPageDisabled, currentPage != 1); - setEnabled(nextPage, nextPageDisabled, currentPage != pageCount); - setEnabled(lastPage, lastPageDisabled, currentPage != pageCount && pageCount != PAGECOUNT_UNKNOWN); + setEnabled(firstPage, currentPage != 1); + setEnabled(prevPage, currentPage != 1); + setEnabled(nextPage, currentPage != pageCount); + setEnabled(lastPage, currentPage != pageCount && pageCount != PAGECOUNT_UNKNOWN); gotoPage.setText(String.valueOf(currentPage)); } @@ -189,10 +195,9 @@ else if (event.getSource() == prevPage) } }; - private void setEnabled(Image enabledLink, Image disabledLink, boolean enabled) + private void setEnabled(PushButton button, boolean enabled) { - enabledLink.setVisible(enabled); - disabledLink.setVisible(!enabled); + button.setEnabled(enabled); } public boolean isFocused() diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/ui/Pager.ui.xml b/server/zanata-war/src/main/java/org/zanata/webtrans/client/ui/Pager.ui.xml index 1bc2e00b52..e35153d86b 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/ui/Pager.ui.xml +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/ui/Pager.ui.xml @@ -20,31 +20,57 @@ } .inline-label { - display: inline; + margin-top:1px; + margin-right:3px; + margin-left:2px; + } .link { cursor: pointer; + margin-right:5px; } - + .nav-button { + width:16px; + height:10px; + border-radius:3px; + margin-right:3px; + border-style:solid; + outline:none; + } + + .nav-button img { + padding-bottom:2px; - + } + + .rootContainer { + margin:auto; + padding-top:5px; + } + + .textBox { + border:1px inset #CCC; + outline:none; + border-radius:3px; + width:40px; + height:14px; + } + - - - - - - - - of 0 + + + + + + + + + of 0 - - - - - + + - +
\ No newline at end of file diff --git a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationEditorView.ui.xml b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationEditorView.ui.xml index a6ed78ff3a..00c592d8a7 100644 --- a/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationEditorView.ui.xml +++ b/server/zanata-war/src/main/java/org/zanata/webtrans/client/view/TranslationEditorView.ui.xml @@ -33,7 +33,7 @@ - + diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/first_page.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/first_page.png index 4fbbff117eab7236b17a8a58433f49b9094b99e9..cf2d5c76e0e820681fe1ef70f709f4293f52f83f 100644 GIT binary patch delta 382 zcmV-^0fGLS7>omu7k>%}1^@s6y}sU@00001b5ch_0Itp)=>Px#24YJ`L;!aHcK~-S zZXN0X000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iySz0T(wq0lNeM009h1L_t(2 z&vno*OT$qV#_`Wo5M*ezSVRm~!D_onunHoA#bQyAy#yHu7JrQj7K2qVoa8GIi^b%h zXcOUgMYb8do72q)F86RA&X@C?nxaOdag0rzH=E5J|0tzY!*WF2z*wKRiF)~Wh768k z6%8z*_6yKzwd$p;{}~*|2KF&u+Sgsb2go_2(*;W@O<^0mm@eie4kF@i08r)JKM&8C z#3#e5A2Zm)6IKQQI4L<#hGmV2w}?2x c9M-!1FSZD1JFiJ*i2wiq07*qoM6N<$g4j5mPXGV_ literal 3098 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 diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/first_page_old.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/first_page_old.png new file mode 100644 index 0000000000000000000000000000000000000000..4fbbff117eab7236b17a8a58433f49b9094b99e9 GIT binary patch literal 3098 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 literal 0 HcmV?d00001 diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/last_page.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/last_page.png index 44e127cf7b1bfb18fcb064afa68ad8d77dadc35d..25256da7191bcd6beb5786b065dffd33a0b3c018 100644 GIT binary patch delta 382 zcmV-^0fGLM7>omu7k>%}1^@s6y}sU@00001b5ch_0Itp)=>Px#24YJ`L;!aHcK~-S zZXN0X000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iySz0U8USz`4!<009h1L_t(2 z&wbLbOQca0#_`Yi1IwUc|AqyzSEbh!7+AmF&qxRz)Yuqhi?(F z6%n&j7`y1V)oZ{l)^LsQ5%D=97P{_QYrod2*4qCMkeM4;#T7o{6h9(jKO&Z(l%kYI zDaBg}WafQlZg*oD=lFmjenC@;rg_qI0CQ7z{euTIn8zYKHO06$rt{1%01>f*J?yl` zXI$doUxEfbUBX<)e1pyQ_=rOsW#;e6On3LU5^UmUYdp)$$JfK7(db>kCtPRdv*|jS ce5A?6Us{@F0D0^Vvj6}907*qoM6N<$f>=zbkpKVy literal 3092 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 Q0R6_`>FVdQ&MBb@0R5JNO#lD@ literal 3081 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 X?(-_y7!m+F00000NkvXXu0mjfJo&CY diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/next_page_old.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/next_page_old.png new file mode 100644 index 0000000000000000000000000000000000000000..fc5c12f0c75dc57bc3dcc6b2211e02340bc4d4d4 GIT binary patch literal 3081 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 X?(-_y7!m+F00000NkvXXu0mjfJo&CY literal 0 HcmV?d00001 diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_page.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_page.png index af896df3619115f8f5709a153433a6f0a4e81495..4c8dfc5eeb1c7e442e32a8fa9f4049f456545c22 100644 GIT binary patch delta 305 zcmZpZ*v~XUyq=4Lje&t-@4kC;fD~hKkh>GZx^prwfgH9ZZ+91lauC$blYIpg;Vkfo zEM{Qfy$-^RP8zc-fP(BLp1!W^cNm!&g$&n;zA6Cp?Yxxt+q<8%@y6HubU1oNIm>?)2sI7Jbz{u z&#(;9QkvCaA@`}UwXh}l&LaWePzRTsM?B^h5f7g~jN5!{N3VBGGJAZ*f!MTtSN449 z6Pv%|xQ%gq{jQQ^-t6$t%-lNluQN6Gp3UW?V2U3i@&ZXEMv zUDYYAGm}>}#07L0$0X_-OaBja=}}IydUD^>Kx1jO(zR@$XBa$P{an^LB{Ts5hEjJ| literal 3078 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 Up}53Zk^lez07*qoM6N<$f@8h7ZU6uP diff --git a/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_page_old.png b/server/zanata-war/src/main/resources/org/zanata/webtrans/images/prev_page_old.png new file mode 100644 index 0000000000000000000000000000000000000000..af896df3619115f8f5709a153433a6f0a4e81495 GIT binary patch literal 3078 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 Up}53Zk^lez07*qoM6N<$f@8h7ZU6uP literal 0 HcmV?d00001