 
         submitInclude: (event) ->
             event.preventDefault()
-            @node.set @get()
+            @submit @get()
 
         submitExclude: (event) ->
             event.preventDefault()
-            @node.set @get negated: true
-
-        showControls: (event) ->
-            @$controls.fadeTo 200, 1
-
-        hideControls: (event) ->
-            @$controls.fadeTo 400, 0.3
-
-        toggleControls: (event) ->
-            if NEGATION_OPERATORS[@$operator.val()]
-                @$exclude.prop 'disabled', false
-            else
-                @$exclude.prop 'disabled', true
+            @submit @get negated: true
+
+        submit: (data) ->
+            if @node
+                @node.set data
+            else
+                mediator.publish 'datacontext/add', data
+            @clear()
+
+        clear: ->
+            delete @node
+            @setValue()
+            @setOperator()
+
 
 
     class StringControl extends Control

        initialize: (options) ->
            @options = options

            # Subscribe to edits for nodes relating to this DataField
            mediator.subscribe "datafield/#{ @model.id }/edit", (node) =>
                if node is @node then return
                @set(node)


            if @$operator.children().length is 1
                @$operator.hide()

        loadValues: =>

        get: (options) ->
            id = @model.id
            operator = @getOperator options
            value = @getValue options

