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)