Commit 2195319

mo khan <mo@mokhan.ca>
2013-03-31 18:37:44
extract textbox control.
1 parent 435186b
app/controllers/controls/build.rb
@@ -1,5 +1,5 @@
 class Build
-  def self.text_field(coordinates)
+  def self.textbox(coordinates)
     TextBoxBuilder.new(coordinates)
   end
 end
app/controllers/controls/text_box_builder.rb
@@ -10,6 +10,6 @@ class TextBoxBuilder
     self
   end
   def build
-    @text_field
+    TextBox.new(@text_field)
   end
 end
app/controllers/controls/textbox.rb
@@ -0,0 +1,21 @@
+class TextBox
+  def initialize(text_field)
+    @text_field = text_field
+  end
+
+  def center
+    @text_field.center
+  end
+
+  def disable
+    @text_field.enabled = false
+  end
+
+  def text
+    @text_field.text
+  end
+
+  def add_to(view)
+    view.addSubview(@text_field)
+  end
+end
app/controllers/restaurant_controller.rb
@@ -4,22 +4,22 @@ class RestaurantController < UIViewController
     self.title = "Restaurant"
     self.view.backgroundColor = UIColor.whiteColor
 
-    @text_field = Build.text_field([[0,0], [160, 26]]).centered_within(self.view).build
-    self.addView(@text_field)
+    @textbox = Build.textbox([[0,0], [160, 26]]).centered_within(self.view).build
+    self.add_control(@textbox)
 
     @add = UIButton.buttonWithType(UIButtonTypeRoundedRect)
     @add.setTitle("Add Restaurant", forState:UIControlStateNormal)
     @add.setTitle("Loading", forState:UIControlStateDisabled)
     @add.sizeToFit
-    @add.center = CGPointMake(self.view.frame.size.width / 2, @text_field.center.y + 40)
+    @add.center = CGPointMake(self.view.frame.size.width / 2, @textbox.center.y + 40)
     self.view.addSubview @add
     @add.when(UIControlEventTouchUpInside) do
       begin
         @add.enabled = false
-        @text_field.enabled = false
+        @textbox.disable
         BW::Location.get do |result|
           BW::Location.stop
-          location = Restaurant.new(@text_field.text, result[:to].latitude, result[:to].longitude)
+          location = Restaurant.new(@textbox.text, result[:to].latitude, result[:to].longitude)
           location.save
         end
       rescue Exception => e
@@ -29,7 +29,7 @@ class RestaurantController < UIViewController
     end
   end
 
-  def addView(view)
-    self.view.addSubview(view)
+  def add_control(view)
+    view.add_to(self.view)
   end
 end