|
@@ -11,17 +11,32 @@ import android.webkit.WebViewClient
|
|
|
import android.widget.LinearLayout
|
|
|
import android.widget.TextView
|
|
|
import com.framework.mvvm.model.db.entity.task.InfosforEq
|
|
|
+import com.framework.mvvm.model.db.entity.task.InfosforFloor
|
|
|
import com.framework.mvvm.model.db.entity.task.ObjectEntity
|
|
|
import com.google.gson.Gson
|
|
|
import com.sybotan.android.demo.R
|
|
|
+import com.sybotan.android.demo.bean.SpaceInfo
|
|
|
import com.sybotan.android.demo.bean.model3d.FunctionEndBlockModel
|
|
|
+import com.sybotan.android.demo.bean.model3d.SetFloorPathModel
|
|
|
+import com.sybotan.android.demo.bean.model3d.SpaceData3D
|
|
|
import com.sybotan.android.demo.bean.result.Position
|
|
|
import com.sybotan.android.demo.bean.result.Z
|
|
|
import com.sybotan.android.demo.data.PageParam
|
|
|
import com.sybotan.android.demo.tools.ObjectNameUtils
|
|
|
import com.sybotan.android.demo.viewmodel.Scene3DVM
|
|
|
+import com.sybotan.android.demo.viewmodel.Space3DVM
|
|
|
+import org.kodein.di.DI
|
|
|
+import org.kodein.di.DIAware
|
|
|
+import org.kodein.di.android.closestDI
|
|
|
+
|
|
|
+class Scene3DActivity : BaseActivity(), DIAware {
|
|
|
+ override val di: DI by closestDI()
|
|
|
+ var isLastSpace = false
|
|
|
+ private lateinit var buildingId: String
|
|
|
+ private lateinit var floorId: String
|
|
|
+ private lateinit var projectId: String
|
|
|
+ private lateinit var floorEntity: ObjectEntity
|
|
|
|
|
|
-class Scene3DActivity : BaseActivity() {
|
|
|
companion object {
|
|
|
private lateinit var webview: WebView
|
|
|
private lateinit var viewModel: Scene3DVM
|
|
@@ -37,6 +52,10 @@ class Scene3DActivity : BaseActivity() {
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
super.onCreate(savedInstanceState)
|
|
|
setContentView(R.layout.activity_scene3_dactivity)
|
|
|
+ val floor = intent.getBundleExtra("floor")!!
|
|
|
+ buildingId = floor.getString("buildingId", "")
|
|
|
+ floorId = floor.getString("floorId", "")
|
|
|
+ projectId = floor.getString("projectId", "")
|
|
|
webview = findViewById(R.id.webview)
|
|
|
title = findViewById(R.id.title)
|
|
|
equipDetail = findViewById(R.id.equipDetail)
|
|
@@ -66,8 +85,39 @@ class Scene3DActivity : BaseActivity() {
|
|
|
title.text = ""
|
|
|
}
|
|
|
}
|
|
|
+ Scene3DVM.FLOOR_SPACE -> {
|
|
|
+
|
|
|
+ val spaces = params as ArrayList<ObjectEntity>
|
|
|
+ val spaceDataList = ArrayList<SpaceData3D>()
|
|
|
+ val space3D = SpaceData3D()
|
|
|
+ for (space in spaces) {
|
|
|
+ val id = SpaceData3D.ID()
|
|
|
+ id.ID = space.id
|
|
|
+ id.IsShow = false
|
|
|
+ val info = gson.fromJson(space.infos, SpaceInfo::class.java)
|
|
|
+ val outLineString = gson.toJson(info.outline)
|
|
|
+ id.OutLine = outLineString.replace("\"", "\\\"")
|
|
|
+ val floorInfo = gson.fromJson(floorEntity.infos, InfosforFloor::class.java)
|
|
|
+ id.FloorElevation = floorInfo.floorElevation
|
|
|
+ space3D.ID.add(id)
|
|
|
+ if (space3D.ID.size >= 5 || space == spaces[spaces.size - 1]) {
|
|
|
+ if (space === spaces[spaces.size - 1]) {
|
|
|
+ Thread.sleep(300)
|
|
|
+ isLastSpace = true
|
|
|
+ }
|
|
|
+ spaceDataList.add(space3D)
|
|
|
+ val sss = gson.toJson(spaceDataList)
|
|
|
+ webview.loadUrl("javascript:SetSpaceData('${sss}')")
|
|
|
+ space3D.ID.clear()
|
|
|
+ spaceDataList.clear()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Scene3DVM.FLOOR_OBJECT -> {
|
|
|
+ floorEntity = params as ObjectEntity
|
|
|
+ }
|
|
|
}
|
|
|
- }, this)
|
|
|
+ }, this, projectId, buildingId, floorId)
|
|
|
equipDetail.setOnClickListener {
|
|
|
val intent = Intent(this@Scene3DActivity, EquipDetailActivity::class.java)
|
|
|
val infosForEq = gson.fromJson(equipObject.infos, InfosforEq::class.java)
|
|
@@ -104,7 +154,25 @@ class Scene3DActivity : BaseActivity() {
|
|
|
val nameObject = gson.fromJson(name, FunctionEndBlockModel::class.java)
|
|
|
when (nameObject.Name) {
|
|
|
"OpenPage" -> {
|
|
|
- runOnUiThread { webview.loadUrl("javascript:OpenTestData()") }
|
|
|
+// runOnUiThread { webview.loadUrl("javascript:OpenTestData()") }
|
|
|
+ runOnUiThread { viewModel.getFloorSpace() }
|
|
|
+ }
|
|
|
+ "SetSpaceData" -> {
|
|
|
+ if (isLastSpace) {
|
|
|
+ runOnUiThread {
|
|
|
+ val model = SetFloorPathModel()
|
|
|
+ val floorInfo = gson.fromJson(floorEntity.infos, InfosforFloor::class.java)
|
|
|
+ model.PorjectID = projectId
|
|
|
+ model.FloorID = floorInfo.bimIdPre
|
|
|
+ model.FloorElevation = floorInfo.floorElevation
|
|
|
+ webview.loadUrl("javascript:SetFloorPath('${gson.toJson(model)}')")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ "SetFloorPath" -> {
|
|
|
+ runOnUiThread {
|
|
|
+ webview.loadUrl("javascript:LoadAllModelWithFloor()")
|
|
|
+ }
|
|
|
}
|
|
|
"OpenTestData" -> {
|
|
|
runOnUiThread { webview.loadUrl("javascript:LoadAllModelWithFloor()") }
|