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