Revision: 4163
Author: janne.t.harkonen
Date: Wed Sep 29 11:48:59 2010
Log: controller for communication between ui and db
http://code.google.com/p/robotframework/source/detail?r=4163

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

=======================================
--- /trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/vacalcapp.py Wed Sep 29 06:02:59 2010 +++ /trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/vacalcapp.py Wed Sep 29 11:48:59 2010
@@ -4,7 +4,7 @@
 from org.robotframework.vacalc import VacationCalculator

 from vacalc.ui import VacalcFrame
-from vacalc.employeestore import EmployeeStore, Employee
+from vacalc.employeestore import EmployeeStore, Employee, VacalcError


 class VacalcApplication(VacationCalculator):
@@ -13,10 +13,32 @@
db_file = os.environ.get('VACALC_DB', os.path.join(tempfile.gettempdir(),
                                                            'vacalcdb.csv'))
         store = EmployeeStore(db_file)
-        self._frame = VacalcFrame(store)
+        self._frame = VacalcFrame(EmployeeController(store))
         self._frame.show()


+class EmployeeController(object):
+
+    def __init__(self, employeestore):
+        self._store = employeestore
+        self._change_listeners = []
+
+    def all(self):
+        return self._store.get_all_employees()
+
+    def add(self, name, startdate, add_listener):
+        try:
+            self._store.add_employee(name, startdate)
+        except VacalcError, err:
+            print err
+        else:
+            for l in self._change_listeners:
+                l.employee_added()
+
+    def add_change_listener(self, listener):
+        self._change_listeners.append(listener)
+
+
 class VacationCalculator(object):
     max_vacation = int(12 * 2.5)
     no_vacation = 0

Reply via email to