     ixs[0].object.userData instanceof Surface
 
   handleDown: (ixs) ->
-    console.log "! surface select down"
+    console.log "! space select down"
     p = new THREE.Vector3(
       ixs[ixs.length - 1].point.x,
       ixs[ixs.length - 1].point.y,
       75
     )
     @selCube.init(p)
+    @mh.ve.container.onmouseup = (eve) => @handleUp(eve)
     @mh.ve.surface.selectorGroup.add(@selCube.obj3d)
-    @mh.ve.container.onmouseup = (eve) => @handleUp(eve)
     @mh.ve.container.onmousemove = (eve) => @handleMove(eve)
     @mh.ve.surface.clearSelection()
 
   handleUp: (event) ->
-    console.log "! surface select up"
+    console.log "! space select up"
     sel = @mh.ve.surface.getSelection(@selCube.obj3d.geometry.boundingBox)
-    console.log(sel)
+    @mh.ve.surface.selectObj(o) for o in sel
+    @mh.ve.propsEditor.elements = sel
+    console.log('common props')
+    #console.log(@mh.ve.propsEditor.commonProps())
+    @mh.ve.propsEditor.show()
+    #console.log(sel)
     @selCube.reset()
     @mh.ve.container.onmousemove = null
     @mh.ve.container.onmousedown = (eve) => @mh.baseDown(eve)

        sys: "",
        design: dsg,
        capacity: 1000,
        latency: null,
        endpoints: [
          {name: "", sys: "", design: dsg, ifname: ""},
          {name: "", sys: "", design: dsg, ifname: ""}

  handleDown: (ixs) ->
    e = ixs[0].object.userData
    console.log "! surface select -- " + e.constructor.name
    #console.log e
    @mh.ve.surface.clearSelection()
    @mh.ve.surface.selectObj(e)
    @mh.ve.propsEditor.elements = [e]
    #@mh.ve.propsEditor.commonProps()
    @mh.ve.propsEditor.show()
    @mh.placingObject = e
    @mh.ve.container.onmouseup = (eve) => @handleUp(eve)
    @mh.ve.container.onmousemove = (eve) => @handleMove(eve)
