details:   https://code.openbravo.com/erp/devel/pi/rev/873a6c512e0e
changeset: 15157:873a6c512e0e
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Mon Jan 16 18:39:38 2012 +0100
summary:   Moved getlabel to a more generic location

diffstat:

 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/GetLabelActionHandler.java
 |  28 +-----
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java
           |  44 ++++++++++
 2 files changed, 47 insertions(+), 25 deletions(-)

diffs (113 lines):

diff -r 7e946dc8cf91 -r 873a6c512e0e 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/GetLabelActionHandler.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/GetLabelActionHandler.java
    Mon Jan 16 18:14:41 2012 +0100
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/GetLabelActionHandler.java
    Mon Jan 16 18:39:38 2012 +0100
@@ -25,12 +25,7 @@
 import org.apache.log4j.Logger;
 import org.codehaus.jettison.json.JSONObject;
 import org.openbravo.base.exception.OBException;
-import org.openbravo.dal.core.DalUtil;
 import org.openbravo.dal.core.OBContext;
-import org.openbravo.dal.service.OBDal;
-import org.openbravo.dal.service.OBQuery;
-import org.openbravo.model.ad.ui.Message;
-import org.openbravo.model.ad.ui.MessageTrl;
 
 /**
  * Retrieves a label from the server.
@@ -52,29 +47,12 @@
     final JSONObject result = new JSONObject();
     OBContext.setAdminMode();
     try {
-
-      // first read the labels from the base table
-      final OBQuery<Message> messages = 
OBDal.getInstance().createQuery(Message.class,
-          Message.PROPERTY_SEARCHKEY + "=:key");
-      messages.setNamedParameter("key", key);
-      if (messages.list().isEmpty()) {
+      final String label = KernelUtils.getInstance().getI18N(key, null);
+      if (label == null) {
         // not found, will result in a strange label on the client
         return result;
       }
-
-      if (messages.list().size() > 1) {
-        log.warn("More than one message found using key " + key);
-      }
-
-      // pick the first one
-      final Message message = messages.list().get(0);
-      result.put(LABEL_PROPERTY, message.getMessageText());
-      final String languageId = OBContext.getOBContext().getLanguage().getId();
-      for (MessageTrl messageTrl : message.getADMessageTrlList()) {
-        if (DalUtil.getId(messageTrl.getLanguage()).equals(languageId)) {
-          result.put(LABEL_PROPERTY, messageTrl.getMessageText());
-        }
-      }
+      result.put(LABEL_PROPERTY, label);
     } catch (Exception e) {
       throw new OBException("Exception when getting message for key: " + key, 
e);
     } finally {
diff -r 7e946dc8cf91 -r 873a6c512e0e 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java
      Mon Jan 16 18:14:41 2012 +0100
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java
      Mon Jan 16 18:39:38 2012 +0100
@@ -37,9 +37,12 @@
 import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
+import org.openbravo.dal.service.OBQuery;
 import org.openbravo.model.ad.datamodel.Column;
 import org.openbravo.model.ad.module.Module;
 import org.openbravo.model.ad.module.ModuleDependency;
+import org.openbravo.model.ad.ui.Message;
+import org.openbravo.model.ad.ui.MessageTrl;
 import org.openbravo.model.ad.ui.Tab;
 
 /**
@@ -72,6 +75,47 @@
 
   private List<Module> sortedModules = null;
 
+  public String getI18N(String key, String[] params) {
+    OBContext.setAdminMode();
+    try {
+
+      // first read the labels from the base table
+      final OBQuery<Message> messages = 
OBDal.getInstance().createQuery(Message.class,
+          Message.PROPERTY_SEARCHKEY + "=:key");
+      messages.setNamedParameter("key", key);
+      if (messages.list().isEmpty()) {
+        return null;
+      }
+
+      if (messages.list().size() > 1) {
+        log.warn("More than one message found using key " + key);
+      }
+
+      // pick the first one
+      final Message message = messages.list().get(0);
+      String label = message.getMessageText();
+      final String languageId = OBContext.getOBContext().getLanguage().getId();
+      for (MessageTrl messageTrl : message.getADMessageTrlList()) {
+        if (DalUtil.getId(messageTrl.getLanguage()).equals(languageId)) {
+          label = messageTrl.getMessageText();
+          break;
+        }
+      }
+      // parameter substitution
+      if (params != null && params.length > 0) {
+        int cnt = 0;
+        for (String param : params) {
+          label = label.replace("%" + cnt++, param);
+        }
+      }
+      return label;
+    } catch (Exception e) {
+      throw new OBException("Exception when getting message for key: " + key, 
e);
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+  }
+
   public Property getPropertyFromColumn(Column column) {
     return getPropertyFromColumn(column, true);
   }

------------------------------------------------------------------------------
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to