-        def OnEnterPressed(event):
-            print "Enter text was %s" % event.GetString()
-        def OnText(event):
-            print "Command was %s" % event.GetString()
+        self.command_list = []
+        self.command_index = 0
+        def ExecuteCommand(command):
+            if not len(self.command_list) or not command == self.command_list[len(self.command_list) -1]:
+                self.command_list.append(command)
+                self.command_index = len(self.command_list) - 1
+            retval = self._ui._callback._debuggerServer.execute_in_frame(self._framesChoiceCtrl.GetStringSelection(), command)
+            self._interCtrl.AddText("\n" + str(retval))
+            self._interCtrl.ScrollToLine(self._interCtrl.GetLineCount())
+            # Refresh the tree view in case this command resulted in changes there. TODO: Need to reopen tree items.
+            self.PopulateTreeFromFrameMessage(self._framesChoiceCtrl.GetStringSelection())
+
+        def ReplaceLastLine(command):
+            line = self._interCtrl.GetLineCount() - 1
+            self._interCtrl.GotoLine(line)
+            start = self._interCtrl.GetCurrentPos()
+            self._interCtrl.SetTargetStart(start)
+            end = self._interCtrl.GetLineEndPosition(line)
+            self._interCtrl.SetTargetEnd(end)
+            self._interCtrl.ReplaceTarget(">>> " + command)
+            self._interCtrl.GotoLine(line)
+            self._interCtrl.SetSelectionStart(self._interCtrl.GetLineEndPosition(line))