Revision: 4164
Author: janne.t.harkonen
Date: Wed Sep 29 11:49:05 2010
Log: took the new controller into use
http://code.google.com/p/robotframework/source/detail?r=4164

Modified:
 /trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/ui.py

=======================================
--- /trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/ui.py Wed Sep 29 11:11:37 2010 +++ /trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/ui.py Wed Sep 29 11:49:05 2010
@@ -3,8 +3,6 @@
 from java.awt.event import ActionListener
 from java.awt import FlowLayout, GridLayout, BorderLayout

-from vacalc.employeestore import Employee
-

 class VacalcFrame(object):

@@ -27,8 +25,8 @@
         panel.add(self._details.widget)
         self._frame.setContentPane(panel)

-    def _create_employee_list(self, employeestore):
-        list = EmployeeList(employeestore.get_all_employees())
+    def _create_employee_list(self, employees):
+        list = EmployeeList(employees)
         list.add_selection_listener(ListenerFactory(ListSelectionListener,
self._list_item_selected))
         return list
@@ -47,14 +45,21 @@

     def __init__(self, employees):
         self._employees = employees
-        data = [e.name for e in employees]
- self._list = JList(data, preferredSize=(200, 200), name='employee_list')
+        self._employees.add_change_listener(self)
+        self._list = JList(preferredSize=(200, 200), name='employee_list')
+        self._populate_list()
+
+    def _populate_list(self):
+        self._list.setListData([e.name for e in self._employees.all()])

     def add_selection_listener(self, listener):
         self._list.addListSelectionListener(listener)

     def selected_employee(self):
-        return self._employees[self._list.getSelectedIndex()]
+        return self._employees.all()[self._list.getSelectedIndex()]
+
+    def employee_added(self):
+        self._populate_list()

     @property
     def widget(self):
@@ -63,8 +68,8 @@

 class EmployeeDetailsPanel(object):

-    def __init__(self, employeestore):
-        self._store = employeestore
+    def __init__(self, employees):
+        self._employees = employees
self._panel = JPanel(layout=BorderLayout(), preferredSize=(300, 200))
         itempanel = JPanel(layout=GridLayout(3,2))
         itempanel.add(JLabel(text='Name'))
@@ -96,8 +101,8 @@
         return self._panel

     def _add_button_pushed(self, event):
-        self._store.add_employee(Employee(self._name_editor.getText(),
- self._start_date_editor.getText()))
+        self._employees.add(self._name_editor.getText(),
+                            self._start_date_editor.getText(), self)


 def ListenerFactory(interface, func):

Reply via email to