Revision: 4168
Author: janne.t.harkonen
Date: Wed Sep 29 13:11:57 2010
Log: show messages on success/failure of ading employee
http://code.google.com/p/robotframework/source/detail?r=4168

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

=======================================
--- /trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/employeestore.py Wed Sep 29 12:16:00 2010 +++ /trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/employeestore.py Wed Sep 29 13:11:57 2010
@@ -40,6 +40,7 @@
         employee = Employee(name, self._parse_date(startdate))
         self._employees[employee.name] = employee
         self._serialize(employee)
+        return employee

     def _serialize(self, employee):
         if not self._db_file:
=======================================
--- /trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/ui.py Wed Sep 29 12:20:43 2010 +++ /trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/ui.py Wed Sep 29 13:11:57 2010
@@ -1,4 +1,4 @@
-from javax.swing import JFrame, JList, JPanel, JLabel, JTextField, JButton, Box +from javax.swing import JFrame, JList, JPanel, JLabel, JTextField, JButton, Box, JTextArea
 from javax.swing.event import ListSelectionListener
 from java.awt.event import ActionListener
 from java.awt import FlowLayout, GridLayout, BorderLayout
@@ -58,9 +58,12 @@
     def selected_employee(self):
         return self._employees.all()[self._list.getSelectedIndex()]

-    def employee_added(self):
+    def employee_added(self, employee):
         self._populate_list()

+    def adding_employee_failed(self, error):
+        pass
+
     @property
     def widget(self):
         return self._list
@@ -70,8 +73,9 @@

     def __init__(self, employees):
         self._employees = employees
+        employees.add_change_listener(self)
self._panel = JPanel(layout=BorderLayout(), preferredSize=(300, 200))
-        itempanel = JPanel(layout=GridLayout(3,2))
+        itempanel = JPanel(layout=GridLayout(4,2))
         itempanel.add(JLabel(text='Name'))
         self._name_editor = JTextField(name='name_input')
         itempanel.add(self._name_editor)
@@ -87,6 +91,8 @@
         btnpanel.add(button)
         itempanel.add(btnpanel)
         self._panel.add(itempanel, BorderLayout.PAGE_START)
+ self._status_label = JTextArea(editable=False, name='status_label', visible=False)
+        self._panel.add(self._status_label, BorderLayout.PAGE_END)

     def show_employee(self, employee):
         self._name_editor.setText(employee.name)
@@ -102,7 +108,14 @@

     def _save_button_pushed(self, event):
         self._employees.add(self._name_editor.getText(),
-                            self._start_date_editor.getText(), self)
+                            self._start_date_editor.getText())
+
+    def employee_added(self, employee):
+ self._status_label.setText("Employee '%s' added succesfully" % employee.name)
+
+    def adding_employee_failed(self, reason):
+        self._status_label.setText(reason)
+        self._status_label.setVisible(True)


 def ListenerFactory(interface, func):
=======================================
--- /trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/vacalcapp.py Wed Sep 29 11:48:59 2010 +++ /trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/vacalcapp.py Wed Sep 29 13:11:57 2010
@@ -26,14 +26,15 @@
     def all(self):
         return self._store.get_all_employees()

-    def add(self, name, startdate, add_listener):
+    def add(self, name, startdate):
         try:
-            self._store.add_employee(name, startdate)
+            employee = self._store.add_employee(name, startdate)
         except VacalcError, err:
-            print err
+            for l in self._change_listeners:
+                l.adding_employee_failed(unicode(err))
         else:
             for l in self._change_listeners:
-                l.employee_added()
+                l.employee_added(employee)

     def add_change_listener(self, listener):
         self._change_listeners.append(listener)

Reply via email to