瀏覽代碼

The upstream parameter generated by the save and submit functions of the editor is wrong -- 编辑器 save 和 submit 功能生成的上行参数错误 (resolve: #14599)
Optimize the common editor, do not trigger refresh when the enumeration type has not changed -- 优化common editor,在枚举类型没有改变时,不触发刷新 (resolve: #14601)

Ray Zhang 4 年之前
父節點
當前提交
9e2c63b791

+ 33 - 0
ApexDrivers/CommonEditorLib/src/main/java/com/usai/commoneditorlib/CommonEditor/CommonEditorSubeditorCellHolder.java

@@ -0,0 +1,33 @@
+package com.usai.commoneditorlib.CommonEditor;
+
+import android.content.Context;
+import android.view.View;
+import android.widget.TextView;
+
+import com.usai.commoneditorlib.R;
+
+import org.json.JSONObject;
+
+/**
+ * Created by macmini1 on 2017/8/16.
+ */
+
+public class CommonEditorSubeditorCellHolder extends CommonEditorCellHolder {
+
+
+    public TextView title_lb;
+    public TextView value_lb;
+
+    public CommonEditorSubeditorCellHolder(Context context, View view) {
+        super(context,view);
+
+        title_lb = (TextView) view.findViewById(R.id.cell_title_lb);
+        value_lb = (TextView) view.findViewById(R.id.cell_value_lb);
+
+    }
+
+    @Override
+    public void setItem(JSONObject item_json, boolean readonly, View view) {
+        super.setItem(item_json, readonly, view);
+    }
+}

+ 79 - 5
ApexDrivers/CommonEditorLib/src/main/java/com/usai/commoneditorlib/CommonEditorActivity.java

@@ -24,7 +24,6 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.view.inputmethod.EditorInfo;
 import android.widget.AbsListView;
-import android.widget.ArrayAdapter;
 import android.widget.AutoCompleteTextView;
 import android.widget.BaseExpandableListAdapter;
 import android.widget.Button;
@@ -43,6 +42,7 @@ import com.usai.commoneditorlib.CommonEditor.CommonEditorCellHolder;
 import com.usai.commoneditorlib.CommonEditor.CommonEditorDateRangeCellHolder;
 import com.usai.commoneditorlib.CommonEditor.CommonEditorEditAutoCompleteCellHolder;
 import com.usai.commoneditorlib.CommonEditor.CommonEditorEditCellHolder;
+import com.usai.commoneditorlib.CommonEditor.CommonEditorSubeditorCellHolder;
 import com.usai.commoneditorlib.CommonEditor.CommonEditorEnumCellHolder;
 import com.usai.commoneditorlib.CommonEditor.CommonEditorImageCellHolder;
 import com.usai.commoneditorlib.CommonEditor.CommonEditorLabelCellHolder;
@@ -75,7 +75,6 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import com.usai.redant.rautils.utils.Network;
-import com.usai.redant.rautils.utils.RAConverter;
 import com.usai.redant.rautils.utils.RAUtil;
 
 import static android.view.Gravity.CENTER_VERTICAL;
@@ -2024,7 +2023,16 @@ public class CommonEditorActivity extends AppCompatActivity implements View.OnLa
                         holder = new CommonEditorLabelCellHolder(mCtx,convertView);
                         setUpLabelCellHolder((CommonEditorLabelCellHolder)holder,convertView,item_json,readonly,groupPosition,childPosition);
 
-                    } else if (control.equals("action")) {
+                    }
+                    else if (control.equals("editor")) {
+                            convertView = LayoutInflater.from(mCtx).inflate(R.layout.common_editor_editor_cell_small,null);
+                            holder = new CommonEditorSubeditorCellHolder(mCtx, convertView);
+
+
+                            setUpSubeditorCellHolder((CommonEditorSubeditorCellHolder)holder,convertView,item_json,readonly,groupPosition,childPosition);
+
+                        }
+                    else if (control.equals("action")) {
                         convertView = LayoutInflater.from(mCtx).inflate(R.layout.common_editor_action_cell,null);
                         holder = new CommonEditorActionCellHolder(mCtx,convertView);
                         setUpActionCellHolder((CommonEditorActionCellHolder)holder,convertView,item_json,readonly,groupPosition,childPosition);
@@ -2118,7 +2126,13 @@ public class CommonEditorActivity extends AppCompatActivity implements View.OnLa
                         holder = (CommonEditorLabelCellHolder)convertView.getTag();
                         setUpLabelCellHolder((CommonEditorLabelCellHolder)holder,convertView,item_json,readonly,groupPosition,childPosition);
 
-                    } else if (control.equals("action")) {
+                    }
+                    else if (control.equals("editor")) {
+                            holder = (CommonEditorSubeditorCellHolder)convertView.getTag();
+                            setUpSubeditorCellHolder((CommonEditorSubeditorCellHolder)holder,convertView,item_json,readonly,groupPosition,childPosition);
+
+                        }
+                    else if (control.equals("action")) {
                         holder = (CommonEditorActionCellHolder)convertView.getTag();
                         setUpActionCellHolder((CommonEditorActionCellHolder)holder,convertView,item_json,readonly,groupPosition,childPosition);
 
@@ -2264,7 +2278,10 @@ public class CommonEditorActivity extends AppCompatActivity implements View.OnLa
 
                 JSONObject item_json = content_data_control.optJSONArray(groupPosition).optJSONObject(childPosition);
                 String control = item_json.optString("control");
-                if (control.equals("enum")) {
+                if (control.equals("editor")) {
+                    handle_editor_cell_select(groupPosition,childPosition,item_json);
+                }
+                else if (control.equals("enum")) {
                     boolean disable = item_json.optBoolean("disable");
                     if (disable  || readonly) {
                         return false;
@@ -2469,6 +2486,10 @@ public class CommonEditorActivity extends AppCompatActivity implements View.OnLa
         }
     }
 
+    protected void handle_editor_cell_select( int groupIndex,int itemIndex,JSONObject item_json)
+    {
+        throw new AssertionError("CommonEditor.handle_editor_cell_select not impl");
+    }
     protected void multiAction( int groupIndex,int itemIndex,JSONObject item_json)
     {
 
@@ -3031,6 +3052,59 @@ protected void commonAction(String value, int groupIndex,int itemIndex,JSONObjec
 
     private boolean can_see_price = true;
     private boolean price_hidden = false;
+
+    public void setUpSubeditorCellHolder(CommonEditorSubeditorCellHolder holder, View cell, JSONObject item_json, boolean readonly, int group, int child) {
+
+        String title = null;
+        String value = null;
+        String align = null;
+        String color = null;
+        String type = null;
+
+        holder.group = group;
+        holder.child = child;
+        holder.title_lb.setText(null);
+        holder.value_lb.setText(null);
+
+        try {
+
+            title = item_json.optString("aname");
+            value = item_json.optString("value");
+            align = item_json.optString("align");
+            color = item_json.optString("color");
+            type = item_json.optString("type");
+
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        if (align.equals("right")) {
+            holder.value_lb.setGravity(CENTER_VERTICAL | RIGHT);
+        } else {
+            holder.value_lb.setGravity(CENTER_VERTICAL | LEFT);
+        }
+
+        if (type.equals("price")) {
+            if (can_see_price && price_hidden == false) {
+
+            } else {
+                value = null;
+            }
+        }
+
+        if (color.toLowerCase().equals("red")) {
+            holder.value_lb.setTextColor(Color.RED);
+        } else {
+            holder.value_lb.setTextColor(Color.BLACK);
+        }
+
+        holder.title_lb.setText(title);
+        holder.value_lb.setText(value);
+
+    }
+
+
     public void setUpLabelCellHolder(CommonEditorLabelCellHolder holder, View cell, JSONObject item_json, boolean readonly, int group, int child) {
 
         String title = null;

+ 5 - 0
ApexDrivers/CommonEditorLib/src/main/java/com/usai/commoneditorlib/EnumSlectActivity.java

@@ -277,6 +277,11 @@ public class EnumSlectActivity extends AppCompatActivity
                                 {
                                     val_json.put("check", "1");
                                 }
+                                else
+                                {
+                                    // 单选选中当前选项,不设置脏状态
+                                    mDirty = false;
+                                }
 //                                else
 //                                {
 //                                    val_json.put("check", "0");

+ 43 - 0
ApexDrivers/CommonEditorLib/src/main/res/layout/common_editor_editor_cell_small.xml

@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:layout_width="match_parent"
+                android:layout_height="75dp"
+              android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="75dp"
+        android:orientation="vertical"
+        >
+
+        <TextView
+            android:id="@+id/cell_title_lb"
+            android:layout_width="match_parent"
+            android:layout_weight="1"
+            android:layout_height="0dp"
+            android:textSize="17sp"
+            android:textColor="#000000"
+            android:text="Label"
+            android:gravity="left|center_vertical"
+            android:layout_margin="5dp"
+            />
+
+        <TextView
+            android:id="@+id/cell_value_lb"
+            android:layout_width="match_parent"
+            android:layout_weight="2"
+            android:layout_height="0dp"
+            android:layout_marginLeft="5dp"
+            android:layout_marginStart="5dp"
+            android:textSize="17sp"
+            android:textColor="#000000"
+            android:text="Label"
+            android:gravity="right|center_vertical"
+            android:layout_margin="5dp"
+            android:maxLines="1"
+            android:ellipsize="end"
+            />
+
+    </LinearLayout>
+
+</LinearLayout>

+ 23 - 2
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/tfeditor/TFEditorActivity.java

@@ -106,7 +106,7 @@ public class TFEditorActivity extends CommonEditorActivity
                  JSONObject params= jitem.optJSONObject("params");
 
                 RAUtil.mergeJson(upparams,params);
-                final Bundle b=RAUtil.Json2Bundle(params);
+                final Bundle b=RAUtil.Json2Bundle(upparams);
 
                 final ProgressDialog pd = RAUtil.waiting_alert(mCtx,"Saving","please wait");
 
@@ -162,7 +162,7 @@ public class TFEditorActivity extends CommonEditorActivity
                     JSONObject params= jitem.optJSONObject("params");
 
                     RAUtil.mergeJson(upparams,params);
-                    final Bundle b=RAUtil.Json2Bundle(params);
+                    final Bundle b=RAUtil.Json2Bundle(upparams);
                     final ProgressDialog pd = RAUtil.waiting_alert(mCtx,"Saving","please wait");
 
                     new Thread(new Runnable()
@@ -278,6 +278,27 @@ public class TFEditorActivity extends CommonEditorActivity
         
         return true;
     }
+    @Override
+    protected void handle_editor_cell_select( int groupIndex,int itemIndex,JSONObject item_json)
+    {
+//        throw new AssertionError("CommonEditor.handle_editor_cell_select not impl");
+
+        boolean readonly = content_data_download.optBoolean("readonly");
+
+        int disable = item_json.optInt("disable");
+
+
+        if(disable==1||readonly)
+            return ;
+
+        Bundle b= RAUtil.Json2Bundle(item_json.optJSONObject("params"));
+        Intent intent = TFEditorActivity.build(mContext,TFEditorActivity.class,null,URL_REMOTE,URL_EDIT,b);
+
+        startActivity(intent);
+
+    }
+
+
     @Override
     protected void multiAction( int groupIndex, int itemIndex, JSONObject item_json)