Browse Source

feat 增加显示设备分类功能

lihao1 3 years ago
parent
commit
d05d8fd624

+ 53 - 13
demo/src/main/java/com/sybotan/android/demo/activities/GraphyActivity.kt

@@ -31,10 +31,7 @@ import android.view.View
 import android.widget.TextView
 import android.widget.Toast
 import cn.sagacloud.android.cadengine.FloorScene
-import cn.sagacloud.android.cadengine.items.PointItem
-import cn.sagacloud.android.cadengine.items.QrcodeItem
-import cn.sagacloud.android.cadengine.items.SpaceNameItem
-import cn.sagacloud.android.cadengine.items.TunableSpaceItem
+import cn.sagacloud.android.cadengine.items.*
 import cn.sagacloud.android.cadengine.types.Point
 import cn.sagacloud.android.cadengine.types.Space
 import cn.sagacloud.android.cadengine.types.TunableSpace
@@ -155,7 +152,7 @@ class GraphyActivity : BaseActivity() {
         floorId = floor.getString("floorId")
         floorMap = floor.getString("floorMap")
         from = floor.getString("from")
-        from = "12345"
+//        from = "12345"
     }
 
     /**
@@ -193,6 +190,10 @@ class GraphyActivity : BaseActivity() {
                     for (item in scene.qrcodeItemList) {
                         scene.removeItem(item)
                     }
+                    for (item in scene.equipList) {
+                        scene.removeItem(item)
+                    }
+                    scene.equipList.clear()
                     scene.qrcodeItemList.clear()
                 }
 
@@ -449,24 +450,37 @@ class GraphyActivity : BaseActivity() {
                         scene.removeItem(item)
                     }
                     scene.equipList.clear()
+                    //流式布局
                     equipWwv.removeAllViews()
                     for (model in list) {
                         val textview = TextView(this)
-                        textview.setText(model.type + "(${model.children.size + 1})")
+                        textview.setText(model.type + "(${model.children.size})")
                         textview.setSingleLine()
                         textview.gravity = Gravity.CENTER
                         textview.textSize = 12f
                         textview.height = DensityUtils.dp2px(this, 30f)
-                        textview.textColor = resources.getColor(R.color.grey_900)
-                        equipWwv.addView(textview)
-
-                        if (!model.children.isEmpty() && !model.isCheck) {
-                            for (child in model.children) {
-                                //TODO
+                        if (model.isCheck) {
+                            textview.background = resources.getDrawable(R.drawable.shape_filter_normal)
+                            textview.textColor = resources.getColor(R.color.grey_900)
+                        } else {
+                            textview.background = resources.getDrawable(R.drawable.shape_filter_selected)
+                            textview.textColor = resources.getColor(R.color.white)
+                        }
+                        textview.setOnClickListener {
+                            model.isCheck = !model.isCheck
+                            if (model.isCheck) {
+                                textview.background = resources.getDrawable(R.drawable.shape_filter_normal)
+                                textview.textColor = resources.getColor(R.color.grey_900)
+                            } else {
+                                textview.background = resources.getDrawable(R.drawable.shape_filter_selected)
+                                textview.textColor = resources.getColor(R.color.white)
                             }
+                            refreshEquip(list)
                         }
-                    }
+                        equipWwv.addView(textview)
 
+                    }
+                    refreshEquip(list)
                 }
             }
         }, this, buildingId, floorId)
@@ -474,6 +488,32 @@ class GraphyActivity : BaseActivity() {
     }
 
     /**
+     * 刷新地图上设备
+     */
+    private fun refreshEquip(list: List<SpaceEqModel>) {
+        for (item in scene.equipList) {
+            scene.removeItem(item)
+        }
+        scene.equipList.clear()
+        for (model in list) {
+            if (!model.children.isEmpty() && !model.isCheck) {
+                for (child in model.children) {
+                    val point = Point()
+                    var position = gson.fromJson(child.position, Position::class.java)
+                    point.mX = position.x.toFloat()
+                    point.mY = position.y.toFloat()
+
+                    var item = EquipItem(point, null, scene.defaultPointScale)
+                    item.isVisible = true
+                    item.zOrder = 100000f
+                    scene.equipList.add(item)
+                    scene.addItem(item)
+                }
+            }
+        }
+    }
+
+    /**
      * 重置空间界面
      */
     private fun refreshAll() {

+ 7 - 2
demo/src/main/res/layout/activity_graphy.xml

@@ -292,7 +292,9 @@
             <com.sybotan.android.demo.tools.WordWrapView
                 android:id="@+id/equipWwv"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="50dp"
+                android:layout_marginRight="50dp" />
 
             <TextView
                 android:id="@+id/drawEquip"
@@ -310,9 +312,12 @@
                 android:textSize="15sp" />
 
             <com.sybotan.android.demo.tools.WordWrapView
+                android:id="@+id/pipeWwv"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="5dp" />
+                android:layout_marginLeft="50dp"
+                android:layout_marginTop="5dp"
+                android:layout_marginRight="50dp" />
 
             <TextView
                 android:layout_width="wrap_content"