From c42913ed9be17f7071369a5941a731c5bc2cc891 Mon Sep 17 00:00:00 2001 From: Josef Rokos Date: Thu, 29 May 2014 13:26:36 +0200 Subject: [PATCH] =?UTF-8?q?P=C5=99i=20ukl=C3=A1d=C3=A1n=C3=AD=20duplicitn?= =?UTF-8?q?=C3=AD=20hodnoty=20do=20unik=C3=A1tn=C3=ADho=20kl=C3=AD=C4=8De?= =?UTF-8?q?=20se=20vyp=C3=AD=C5=A1e=20do=20chybov=C3=A9ho=20dialogu=20d?= =?UTF-8?q?=C5=AFvod=20a=20z=C3=A1znam=20se=20neobjev=C3=AD=20v=20gridu.?= =?UTF-8?q?=20Hl=C3=A1=C5=A1ky=20do=20messagebox=C5=AF=20jsou=20na=C4=8D?= =?UTF-8?q?=C3=ADt=C3=A1ny=20ze=20zk-label.properties.=20closes=20#75?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/info/bukova/isspst/StringUtils.java | 34 +++++++++++++++++++ .../info/bukova/isspst/ui/FormViewModel.java | 12 +++++-- .../info/bukova/isspst/ui/ListViewModel.java | 11 +++--- src/main/webapp/WEB-INF/zk-label.properties | 14 +++++++- 4 files changed, 62 insertions(+), 9 deletions(-) diff --git a/src/main/java/info/bukova/isspst/StringUtils.java b/src/main/java/info/bukova/isspst/StringUtils.java index 2720016f..cf352fc3 100644 --- a/src/main/java/info/bukova/isspst/StringUtils.java +++ b/src/main/java/info/bukova/isspst/StringUtils.java @@ -1,5 +1,7 @@ package info.bukova.isspst; +import org.zkoss.util.resource.Labels; + public class StringUtils { public static String nullStr(String str) { @@ -10,4 +12,36 @@ public class StringUtils { return i == 0 ? "" : String.valueOf(i); } + public static String localizeDbErr(String sqlError) { + String splitMessage[] = sqlError.split("'"); + String message = ""; + + for (int i = 0; i < splitMessage.length; i++) { + if (i % 2 == 0) { + message += getLocalized(splitMessage[i]); + } else { + message += " '" + splitMessage[i] + "' "; + } + } + + return message; + } + + public static String localize(String key) { + return Labels.getLabel(key); + } + + private static String getLocalized(String str) { + String words[] = str.split(" "); + String key = ""; + + for (String word: words) { + if (!word.isEmpty()) { + key += word.substring(0, 1).toUpperCase() + word.substring(1); + } + } + + return Labels.getLabel("Db" + key); + } + } diff --git a/src/main/java/info/bukova/isspst/ui/FormViewModel.java b/src/main/java/info/bukova/isspst/ui/FormViewModel.java index f0dc3b4e..98460e30 100644 --- a/src/main/java/info/bukova/isspst/ui/FormViewModel.java +++ b/src/main/java/info/bukova/isspst/ui/FormViewModel.java @@ -1,11 +1,13 @@ package info.bukova.isspst.ui; +import info.bukova.isspst.StringUtils; import info.bukova.isspst.data.DataModel; import info.bukova.isspst.services.Service; import info.bukova.isspst.services.ValidationException; import java.util.Map; +import org.hibernate.exception.ConstraintViolationException; import org.springframework.security.access.AccessDeniedException; import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.Command; @@ -63,12 +65,16 @@ public class FormViewModel { classErr = ""; } - Messagebox.show("Chyba validace", "Chyba", Messagebox.OK, Messagebox.ERROR); + Messagebox.show(StringUtils.localize("DbValidationError"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR); } catch (AccessDeniedException e) { - Messagebox.show("K vykobání této operace nemáte dostatečná oprávnění", "Chyba", Messagebox.OK, Messagebox.ERROR); + Messagebox.show(StringUtils.localize("ErrorRights"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR); + } catch (ConstraintViolationException e) { + Messagebox.show(StringUtils.localizeDbErr(e.getSQLException().getMessage()), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR); + dataBean.setValid(false); } catch (Exception e) { e.printStackTrace(); - Messagebox.show("Chyba při ukládání záznamu", "Chyba", Messagebox.OK, Messagebox.ERROR); + Messagebox.show(StringUtils.localize("DbSaveError"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR); + dataBean.setValid(false); } } diff --git a/src/main/java/info/bukova/isspst/ui/ListViewModel.java b/src/main/java/info/bukova/isspst/ui/ListViewModel.java index ff5a7a34..d0fd12ba 100644 --- a/src/main/java/info/bukova/isspst/ui/ListViewModel.java +++ b/src/main/java/info/bukova/isspst/ui/ListViewModel.java @@ -1,5 +1,6 @@ package info.bukova.isspst.ui; +import info.bukova.isspst.StringUtils; import info.bukova.isspst.data.DataModel; import info.bukova.isspst.filters.Filter; import info.bukova.isspst.services.Service; @@ -140,7 +141,7 @@ public class ListViewModel { } catch (IllegalAccessException e) { e.printStackTrace(); } catch (AccessDeniedException e) { - Messagebox.show("K vykobání této operace nemáte dostatečná oprávnění", "Chyba", Messagebox.OK, Messagebox.ERROR); + Messagebox.show(StringUtils.localize("ErrorRights"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR); } } @@ -164,7 +165,7 @@ public class ListViewModel { @Command @NotifyChange({ "dataList", "dataBean" }) public void delete() { - Messagebox.show("Opravdu smazat?", "Smazat záznam", Messagebox.YES + Messagebox.show(StringUtils.localize("DbReallyDelete"), StringUtils.localize("DbDeleteRecord"), Messagebox.YES | Messagebox.NO, Messagebox.QUESTION, new EventListener() { @@ -180,9 +181,9 @@ public class ListViewModel { BindUtils.postNotifyChange(null, null, ListViewModel.this, "dataBean"); } catch (DataIntegrityViolationException e) { - Messagebox.show("Chyba při mazání záznamu", "Chyba", Messagebox.OK, Messagebox.ERROR); + Messagebox.show(StringUtils.localize("DbCannotDelete"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR); } catch (AccessDeniedException e) { - Messagebox.show("K vykobání této operace nemáte dostatečná oprávnění", "Chyba", Messagebox.OK, Messagebox.ERROR); + Messagebox.show(StringUtils.localize("ErrorRights"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR); } } } @@ -198,7 +199,7 @@ public class ListViewModel { dataList.remove(dataBean); dataBean = null; } catch (DataIntegrityViolationException e) { - Messagebox.show("Chyba při mazání záznamu", "Chyba", Messagebox.OK, + Messagebox.show(StringUtils.localize("DbCannotDelete"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR); } } diff --git a/src/main/webapp/WEB-INF/zk-label.properties b/src/main/webapp/WEB-INF/zk-label.properties index f9857d69..19c972fd 100644 --- a/src/main/webapp/WEB-INF/zk-label.properties +++ b/src/main/webapp/WEB-INF/zk-label.properties @@ -76,4 +76,16 @@ ReportReport=Sestava ReportSend=Odeslat ReportPrint=Tisk ReportReports=Sestavy -ReportTitle=Nadpis sestavy: \ No newline at end of file +ReportTitle=Nadpis sestavy: + +Error=Chyba +ErrorRights=K vykobání této operace nemáte dostatečná oprávnění + +DbDeleteRecord=Smazat záznam +DbReallyDelete=Opravdu chcete smazat tento záznam? +DbDuplicateEntry=Chyba při ukládání záznamu: Duplicitní záznam +DbForKey= pro klíč +DbCannotDelete=Chyba při mazání záznamu: Záznam nelze smazat protože na něj odkazuje jiný záznam +DbSaveError=Chyba při ukládání záznamu +DbValidationError=Chyba validace + \ No newline at end of file