From 2d2c5790f3fb6adb1b52d240fccf962d2702fe58 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Sun, 4 Oct 2015 10:23:11 +0000
Subject: [PATCH] better section names

---
 .../src/org/geuz/onelab/ModelFragment.java    |  3 +-
 .../org/geuz/onelab/OptionsModelFragment.java | 14 +++-----
 .../src/org/geuz/onelab/Parameter.java        | 34 +++++++++++++++----
 .../src/org/geuz/onelab/ParameterNumber.java  |  2 +-
 .../org/geuz/onelab/SeparatedListView.java    |  1 -
 contrib/mobile/androidGModel.cpp              |  2 +-
 6 files changed, 34 insertions(+), 22 deletions(-)

diff --git a/contrib/mobile/Android/src/org/geuz/onelab/ModelFragment.java b/contrib/mobile/Android/src/org/geuz/onelab/ModelFragment.java
index a78631091d..f3d04133a0 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/ModelFragment.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/ModelFragment.java
@@ -216,8 +216,7 @@ public class ModelFragment extends Fragment{
                     requestRender();
                 }
             });
-        layoutParams = new RelativeLayout.LayoutParams(
-                                                       RelativeLayout.LayoutParams.MATCH_PARENT,
+        layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
                                                        RelativeLayout.LayoutParams.WRAP_CONTENT);
         layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
         glViewLayout.addView(_controlBarLayout, layoutParams);
diff --git a/contrib/mobile/Android/src/org/geuz/onelab/OptionsModelFragment.java b/contrib/mobile/Android/src/org/geuz/onelab/OptionsModelFragment.java
index 9ad823f6e0..3ab3b11bbe 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/OptionsModelFragment.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/OptionsModelFragment.java
@@ -61,9 +61,9 @@ public class OptionsModelFragment extends Fragment{
     private void getAvailableParam()
     {
     	String[] tmp = _gmsh.getParams();
-        for(String s : tmp){ // for each parameters in ONEALB
+        for(String s : tmp){ // for each parameter in ONEALB
             boolean found = false;
-            for(int i = 0; i<params.size(); i++){ // for each parameters
+            for(int i = 0; i < params.size(); i++){ // for each parameter in the GUI
                 Parameter p = params.get(i);
                 if(s.split(Character.toString((char)0x03))[2].equals(p.getName())){
                     // the parameter already exist, just refresh it
@@ -94,10 +94,7 @@ public class OptionsModelFragment extends Fragment{
                     });
                 params.add(mParam);
                 if(_listView != null)
-                    _listView.addItem(mParam.getName().split("/")[0].equals("Parameters")?
-                                      mParam.getName().split("/")[0] + " > " +
-                                      mParam.getName().split("/")[1] :
-                                      mParam.getName().split("/")[0], mParam.getView());
+                    _listView.addItem(mParam.getSectionName(), mParam.getView());
             }
             else if(s.split("|")[1].equals("string")){
                 ParameterString mParam = new ParameterString(_listView.getContext(), _gmsh, "");
@@ -112,10 +109,7 @@ public class OptionsModelFragment extends Fragment{
                             });
                     params.add(mParam);
                     if(_listView != null)
-                        _listView.addItem(mParam.getName().split("/")[0].equals("Parameters") ?
-                                          mParam.getName().split("/")[0] + " > " +
-                                          mParam.getName().split("/")[1] :
-                                          mParam.getName().split("/")[0], mParam.getView());
+                        _listView.addItem(mParam.getSectionName(), mParam.getView());
                 }
             }
         }
diff --git a/contrib/mobile/Android/src/org/geuz/onelab/Parameter.java b/contrib/mobile/Android/src/org/geuz/onelab/Parameter.java
index 028802fd01..3abe3db030 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/Parameter.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/Parameter.java
@@ -36,10 +36,7 @@ public class Parameter {
 
     protected void update()
     {
-        if(_label != null && !_label.equals(""))
-            _title.setText(_label);
-        else
-            _title.setText(getShortName());
+        _title.setText(getShortName());
         if(isReadOnly()) _title.setAlpha(0.423f);
     }
 
@@ -54,14 +51,37 @@ public class Parameter {
     public String getShortName()
     {
         if(_label != null && _label.length() > 0) return _label;
-        String[] splited = _name.split("/");
-        String name = splited[splited.length-1];
+        String[] split = _name.split("/");
+        String name = split[split.length-1];
+        while(name.length() > 0 && name.charAt(0) == ' ')
+            name = name.substring(1);
+        while(name.length() > 0 && (name.charAt(0) == '{' || name.charAt(0) == '}'))
+            name = name.substring(1);
         while(name.length() > 0 && name.charAt(0) >= '0' && name.charAt(0) <= '9')
             name = name.substring(1);
         return name;
     }
+    public String getSectionName()
+    {
+        String name = "";
+        if (_name.contains("/")) {
+            String[] split = _name.split("/");
+            for(int i = 0; i < split.length - 1; i++){
+                String s = split[i];
+                while(s.length() > 0 && s.charAt(0) == ' ')
+                    s = s.substring(1);
+                while(s.length() > 0 && (s.charAt(0) == '{' || s.charAt(0) == '}'))
+                    s = s.substring(1);
+                while(s.length() > 0 && s.charAt(0) >= '0' && s.charAt(0) <= '9')
+                    s = s.substring(1);
+                if(i != 0)
+                    name += " > ";
+                name += s;
+            }
+        }
+        return name;
+    }
     public boolean isReadOnly() { return _readOnly; }
-    public String getLabel() { return _label; }
     public int fromString(String s)
     {
         String[] infos = s.split(Character.toString((char)0x03));
diff --git a/contrib/mobile/Android/src/org/geuz/onelab/ParameterNumber.java b/contrib/mobile/Android/src/org/geuz/onelab/ParameterNumber.java
index 95e2f1e8a8..8c257c1110 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/ParameterNumber.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/ParameterNumber.java
@@ -175,7 +175,7 @@ public class ParameterNumber extends Parameter {
         this.update();
         return pos;
     }
-    public String getType(){return "ParameterNumber";}
+    public String getType(){ return "ParameterNumber"; }
     public LinearLayout getView()
     {
         LinearLayout paramLayout = new LinearLayout(_context);
diff --git a/contrib/mobile/Android/src/org/geuz/onelab/SeparatedListView.java b/contrib/mobile/Android/src/org/geuz/onelab/SeparatedListView.java
index 9fcc861a66..e1dc54b1dd 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/SeparatedListView.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/SeparatedListView.java
@@ -159,4 +159,3 @@ public class SeparatedListView extends ListView{
     }
 
 }
-
diff --git a/contrib/mobile/androidGModel.cpp b/contrib/mobile/androidGModel.cpp
index 597d8ad628..0c111ec295 100644
--- a/contrib/mobile/androidGModel.cpp
+++ b/contrib/mobile/androidGModel.cpp
@@ -243,7 +243,7 @@ extern "C" {
   JNIEXPORT jobjectArray JNICALL Java_org_geuz_onelab_Gmsh_getParams
   (JNIEnv *env, jobject obj)
   {
-    jclass stringClass = env->FindClass( "java/lang/String" );
+    jclass stringClass = env->FindClass("java/lang/String");
     std::vector<std::string> tmp =  onelab::server::instance()->toChar();
     for(unsigned int i = 0; i < tmp.size(); i++)
       for(unsigned int j = 0; j < tmp[i].size(); j++)
-- 
GitLab