Index: calculatorview/src/sans/perspectives/calculator/data_operator.py
===================================================================
--- calculatorview/src/sans/perspectives/calculator/data_operator.py	(revision 33c671e802ad089123389f324eff5585c4851c06)
+++ calculatorview/src/sans/perspectives/calculator/data_operator.py	(revision 5a5bb294d202ccdf403d0288f45f40760cc70ce3)
@@ -88,5 +88,5 @@
         data2_hori_sizer = wx.BoxSizer(wx.HORIZONTAL)
         data_name = wx.StaticText(self, -1, 'Output Data Name')  
-        equal_name = wx.StaticText(self, -1, ' =',  size=(50, 23)) 
+        equal_name = wx.StaticText(self, -1, ' =', size=(50, 25)) 
         data1_name = wx.StaticText(self, -1, 'Data1')
         operator_name = wx.StaticText(self, -1, 'Operator')
@@ -109,17 +109,19 @@
                                        style=wx.CB_READONLY)
 
-        self.out_pic = SmallPanel(self, -1, True, size=(_BOX_WIDTH, _BOX_WIDTH), 
-                             style=wx.NO_BORDER)
-        self.equal_pic = SmallPanel(self, -1, True, '=',  size=(50, _BOX_WIDTH), 
-                              style=wx.NO_BORDER)
+        self.out_pic = SmallPanel(self, -1, True, 
+                                    size=(_BOX_WIDTH, _BOX_WIDTH), 
+                                    style=wx.NO_BORDER)
+        self.equal_pic = SmallPanel(self, -1, True, '=',  
+                                    size=(50, _BOX_WIDTH), 
+                                    style=wx.NO_BORDER)
         self.data1_pic = SmallPanel(self, -1, True, 
                                     size=(_BOX_WIDTH, _BOX_WIDTH), 
-                             style=wx.NO_BORDER)
-        self.operator_pic = SmallPanel(self, -1, True, 
-                                       '+', size=(70, _BOX_WIDTH), 
-                                       style=wx.NO_BORDER)
+                                    style=wx.NO_BORDER)
+        self.operator_pic = SmallPanel(self, -1, True, '+',
+                                    size=(70, _BOX_WIDTH), 
+                                    style=wx.NO_BORDER)
         self.data2_pic = SmallPanel(self, -1, True, 
                                     size=(_BOX_WIDTH, _BOX_WIDTH), 
-                             style=wx.NO_BORDER)
+                                    style=wx.NO_BORDER)
         for ax in self.equal_pic.axes:
             ax.set_frame_on(False)
@@ -130,5 +132,5 @@
                                        (self.data_namectr, 0, wx.LEFT, 3),
                                        (self.out_pic, 0, wx.LEFT, 3)])
-        equal_sizer.AddMany([(13, 15), (equal_name, 0, wx.LEFT, 3),
+        equal_sizer.AddMany([(13, 13), (equal_name, 0, wx.LEFT, 3),
                                        (self.equal_pic, 0, wx.LEFT, 3)])
         old_data1_sizer.AddMany([(data1_name, 0, wx.LEFT, 3),
@@ -165,6 +167,11 @@
         if ON_MAC:
             ctrl.Enable(enable)
-            ctrl.GetChildren()[0].SetBackGroundColor(self.GetBackGroundColor())
-        else:
+            chidren = ctrl.GetChildren()
+            if len(children) > 0:
+                ctrl.GetChildren()[0].SetBackGroundColour(\
+                                                self.GetBackGroundColour())
+        else:
+            if not ctrl.IsEnabled():
+                ctrl.Enable(True)
             ctrl.Show(enable)
             
@@ -180,5 +187,5 @@
         else:
             self._set_textctrl_color(item, self.GetBackgroundColour())
-        text = item.GetLabel().strip()
+        text = item.GetValue().strip()
         self._check_newname(text)
     
@@ -190,5 +197,5 @@
         msg = ''
         if name == None:
-            text = self.data_namectr.GetLabel().strip()
+            text = self.data_namectr.GetValue().strip()
         else:
             text = name
@@ -210,5 +217,7 @@
         """
         if ON_MAC:
-            ctrl.GetChildren()[0].SetBackgroundColour(color)  
+            chidren = ctrl.GetChildren()
+            if len(children) > 0:
+                ctrl.GetChildren()[0].SetBackgroundColour(color)  
         else:
             ctrl.SetBackgroundColour(color)  
@@ -228,5 +237,5 @@
 
         item = event.GetEventObject()
-        text = item.GetLabel().strip()
+        text = item.GetValue().strip()
         try:
             val = float(text)
@@ -287,5 +296,5 @@
         self.send_warnings('')
         item = event.GetEventObject()
-        text = item.GetLabel().strip().lower()
+        text = item.GetValue().strip().lower()
         self._show_numctrl(self.numberctr, text=='number')
         
@@ -316,5 +325,5 @@
             self.output.name = str(self.data_namectr.GetValue())
         self.draw_output(self.output)
-    
+        
     def put_text_pic(self, pic=None, content=''):  
         """
@@ -350,5 +359,5 @@
             try:
                 float(data2)
-                if self.operator_cbox.GetLabel().strip() == '|':
+                if self.operator_cbox.GetValue().strip() == '|':
                     msg = "DataOperation: This operation can not accept "
                     msg += "a float number."
@@ -466,6 +475,6 @@
         pos_pre1 = self.data1_cbox.GetCurrentSelection()
         pos_pre2 = self.data2_cbox.GetCurrentSelection()
-        current1 = self.data1_cbox.GetLabel()
-        current2 = self.data2_cbox.GetLabel()
+        current1 = self.data1_cbox.GetValue()
+        current2 = self.data2_cbox.GetValue()
         if pos_pre1 < 0:
             pos_pre1 = 0
