Changeset 296 for trunk/hiptop/pester/net/sabi/pester/Pester.java
- Timestamp:
- 07/29/06 00:53:01 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/hiptop/pester/net/sabi/pester/Pester.java
r288 r296 3 3 import danger.app.Application; 4 4 import danger.app.Event; 5 import danger.app.IPCMessage; 5 import danger.ui.AlertWindow; 6 import danger.ui.Container; 7 import danger.ui.Control; 8 import danger.ui.Font; 6 9 import danger.ui.Layout; 7 import danger.ui.TextField; 8 import danger.ui.TextInputAlertWindow; 10 import danger.ui.RecordingPen; 9 11 import danger.ui.ScreenWindow; 10 12 import danger.ui.StaticText; 13 import danger.ui.TextField; 11 14 import danger.util.DEBUG; 12 import java.util.Stack;15 import danger.util.TextInputFilter; 13 16 14 17 public class Pester extends Application implements Resources, Commands { 15 18 private static ScreenWindow sAlarmListWindow; 16 private static Stack sAlarmStack;17 19 18 20 public Pester() { 19 21 sAlarmListWindow = (ScreenWindow)getResources().getScreen(ID_ALARM_LIST_SCREEN); 20 22 sAlarmListWindow.show(); 21 sAlarmStack = new Stack(); 23 } 24 25 private void showAlertForAlarm(Alarm alarm) { 26 AlertWindow alert = (AlertWindow)getAlert(ID_ALARM_ALERT, this); 27 alert.setTitle(alarm.getDateTimeString()); 28 alert.setMessage(alarm.getMessage()); 29 alert.setShowTone(alarm.getAlert()); 30 31 Font font = Font.findBoldSystemFont(); 32 StaticText label = new StaticText(getString(ID_SNOOZE_LABEL_LEFT), font); 33 TextField field = new TextField(); 34 field.setAlignment(TextField.JUSTIFY_RIGHT); 35 field.attachInputFilter(TextInputFilter.newLengthFilter(2)); 36 field.attachInputFilter(TextInputFilter.newNumericFilter()); 37 label.setLeft(35); // XXX alert.getMessageView().getLeft() 38 Layout.positionToRight(field, label, 3); 39 Layout.alignBaseline(label, field); 40 alert.addChildBelowMessageArea(label, label.getLeft(), label.getTop()); 41 alert.addChildBelowMessageArea(field, field.getLeft(), field.getTop()); 42 label = new StaticText(getString(ID_SNOOZE_LABEL_RIGHT), font); 43 Layout.positionToRight(label, field, 3); 44 Layout.alignBaseline(label, field); 45 alert.addChildBelowMessageArea(label, label.getLeft(), label.getTop()); 46 47 alert.setEventArgForControlWithID(ID_RESCHEDULE_BUTTON, alarm); 48 alert.setEventArgForControlWithID(ID_DISMISS_BUTTON, alarm); 49 alert.setDefaultFocus(field); 50 51 alert.paint(new RecordingPen()); // force layout 52 int fieldID = alert.incrementMaxChildID(); 53 alert.removeChild(field); 54 alert.addChild(field, fieldID); 55 Control snoozeButton = alert.getControlWithID(ID_SNOOZE_BUTTON); 56 Event event = snoozeButton.getEvent(); 57 event.argument = alert; 58 event.data = fieldID; 59 snoozeButton.setEvent(event); 60 alert.disableButtonOnEmptyField(ID_SNOOZE_BUTTON, fieldID); 61 62 alert.show(AlertWindow.SYSTEM_ALERT_TYPE_ALARM); 22 63 } 23 64 … … 25 66 switch (e.type) { 26 67 case Event.EVENT_ALARM: 27 Alarm alarm = (Alarm)e.argument; 28 TextInputAlertWindow alert = getTextInputAlert(ID_ALARM_ALERT, this); 29 alert.setTitle(alarm.getDateTimeString()); 30 alert.setMessage(alarm.getMessage()); 31 alert.setShowTone(alarm.getAlert()); 32 alert.disableButtonOnEmptyField(ID_SNOOZE_BUTTON, ID_SNOOZE_MINUTES); 33 alert.setShowCancel(false); 34 alert.show(TextInputAlertWindow.SYSTEM_ALERT_TYPE_ALARM); 35 sAlarmStack.push(alarm); 68 showAlertForAlarm((Alarm)e.argument); 36 69 return true; 37 70 case EVENT_SET_ALARM: 38 AlarmSetDialog.getDialog().rescheduleAlarm((Alarm) sAlarmStack.pop());71 AlarmSetDialog.getDialog().rescheduleAlarm((Alarm)e.argument); 39 72 return true; 40 73 case EVENT_SNOOZE_ALARM: 74 AlertWindow alert = (AlertWindow)e.argument; 41 75 int snoozeMinutes = 42 Integer.parseInt( TextInputAlertWindow.43 getTextFieldValue((IPCMessage)e.argument,44 ID_SNOOZE_MINUTES));45 ((Alarm)sAlarmStack.pop()).snoozeForMinutes(snoozeMinutes);76 Integer.parseInt(alert.getControlWithID(e.data).toString()); 77 Control dismissButton = alert.getControlWithID(ID_DISMISS_BUTTON); 78 Alarm alarm = (Alarm)dismissButton.getEvent().argument; 79 alarm.snoozeForMinutes(snoozeMinutes); 46 80 return true; 47 81 case EVENT_DISMISS_ALARM: 48 ((Alarm) sAlarmStack.pop()).dismiss();82 ((Alarm)e.argument).dismiss(); 49 83 return true; 50 84 }
Note:
See TracChangeset
for help on using the changeset viewer.