Skip to content

Commit 58d1389

Browse files
committed
I04_1-150: extracted message instantiation in a factory class
1 parent b454465 commit 58d1389

File tree

2 files changed

+30
-22
lines changed

2 files changed

+30
-22
lines changed

dls_barcode/gui/main_window.py

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
from dls_barcode.camera import CameraScanner, CameraSwitch, NoNewBarcodeMessage
99
from dls_util import Beeper
1010
from dls_util.file import FileManager
11-
from dls_util.message import MessageType, Message
1211
from .barcode_table import BarcodeTable
1312
from .image_frame import ImageFrame
1413
from .record_table import ScanRecordTable
1514
from .message_display import MessageDisplay
15+
from .message_factory import MessageFactory
1616

1717

1818
RESULT_TIMER_PERIOD = 1000 # ms
@@ -207,28 +207,13 @@ def _read_message_queue(self):
207207
if not self._test_timer_is_running():
208208
self._start_test_timer()
209209
elif self._has_test_timer_timeout():
210-
self._message_display.display_message(self._get_duplicate_barcode_message())
210+
self._message_display.display_message(MessageFactory.duplicate_barcode_message())
211211
else:
212212
self._reset_test_timer()
213-
self._message_display.display_message(self._get_message_from_scanner_msg(scanner_msg))
213+
self._message_display.display_message(MessageFactory.from_scanner_message(scanner_msg))
214214
except queue.Empty:
215215
return
216216

217-
def _get_duplicate_barcode_message(self):
218-
return Message(MessageType.WARNING, "Puck barcode already in database")
219-
220-
def _get_message_from_scanner_msg(self, scanner_msg):
221-
return Message(MessageType.WARNING, scanner_msg.content())
222-
223-
def _get_puck_recorded_message(self):
224-
return Message(MessageType.INFO, "Puck barcode recorded")
225-
226-
def _get_scan_timeout_message(self):
227-
return Message(MessageType.WARNING, "Scan timeout")
228-
229-
def _get_scan_completed_message(self):
230-
return Message(MessageType.INFO, "Scan completed")
231-
232217
def _reset_test_timer(self):
233218
self._test_timer = None
234219

@@ -267,15 +252,15 @@ def _read_side_scan(self):
267252
if self._record_table.unique_side_barcode(plate): # if new side barcode
268253
self.original_plate = plate
269254
self._latest_holder_image = holder_image
270-
self._message_display.display_message(self._get_puck_recorded_message())
255+
self._message_display.display_message(MessageFactory.puck_recorded_message())
271256
self._camera_switch.restart_live_capture_from_top()
272257
else:
273-
self._message_display.display_message(self._get_duplicate_barcode_message())
258+
self._message_display.display_message(MessageFactory.duplicate_barcode_message())
274259

275260
def _read_top_scan(self):
276261
if self._result_queue.empty():
277262
if self._camera_switch.is_top_scan_timeout():
278-
self._message_display.display_message(self._get_scan_timeout_message())
263+
self._message_display.display_message(MessageFactory.scan_timeout_message())
279264
print("\n*** Scan timeout ***")
280265
self._camera_switch.restart_live_capture_from_side()
281266
return
@@ -291,6 +276,6 @@ def _read_top_scan(self):
291276
# Barcodes successfully read
292277
Beeper.beep()
293278
print("Scan Completed")
294-
self._message_display.display_message(self._get_scan_completed_message())
279+
self._message_display.display_message(MessageFactory.scan_completed_message())
295280
self._camera_switch.restart_live_capture_from_side()
296281

dls_barcode/gui/message_factory.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from dls_util.message import MessageType, Message
2+
3+
4+
class MessageFactory:
5+
@staticmethod
6+
def duplicate_barcode_message():
7+
return Message(MessageType.WARNING, "Puck barcode already in database", lifetime=3)
8+
9+
@staticmethod
10+
def from_scanner_message(scanner_msg):
11+
return Message(MessageType.WARNING, scanner_msg.content())
12+
13+
@staticmethod
14+
def puck_recorded_message():
15+
return Message(MessageType.INFO, "Puck barcode recorded")
16+
17+
@staticmethod
18+
def scan_timeout_message():
19+
return Message(MessageType.WARNING, "Scan timeout")
20+
21+
@staticmethod
22+
def scan_completed_message():
23+
return Message(MessageType.INFO, "Scan completed")

0 commit comments

Comments
 (0)