 
 		@check_deselect(ev, new_node)
 		.done =>
-			@getRoot().selectedNode = null
-			t = @getTree()
-			t.rowRemoveClass(@getRowIdx(), ListViewRow.defaults.selected_class)
+			@setSelectedNode()
+			@removeSelectedClass()
 			@selected = false
 			@getTree().triggerNodeDeselect(ev, @)
 

	isSelected: ->
		!!@selected

	select: (ev) ->
		dfr = new CUI.Deferred()
		if ev and @getTree?().isSelectable()

			assert(@ not in new_father.getPath(true), "#{getObjectClass(@)}.setFather", "father cannot any of the node's children", node: @, father: new_father)

		if not new_father and @selected
			@setSelectedNode(null)
			@selected = false

		if @father and not new_father
