Ignore:
Timestamp:
07/08/06 22:29:07 (18 years ago)
Author:
Nicholas Riley
Message:

Alarm scheduling UI more or less done.

Location:
trunk/hiptop/pester/net/sabi/pester
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/hiptop/pester/net/sabi/pester/Alarm.java

    r240 r241  
    1919
    2020    // transient
    21     private int mStatus;
     21    private int mState;
    2222
    2323    public Alarm() {
    24         mStatus = STATUS_INVALID;
     24        mState = STATE_INVALID;
    2525    }
    2626
     
    9191
    9292    void beginEditing() {
    93         mStatus = STATUS_EDITING;
     93        mState = STATE_EDITING;
    9494    }
    9595
    9696    void endEditing() {
    97         mStatus = STATUS_SCHEDULED;
     97        mState = STATE_SCHEDULED;
    9898        DEBUG.p("schedule alarm: " + mMessage);
    9999        switch (mType) {
     
    115115    public static final int TYPE_DATE = 2;
    116116
    117     public static final int STATUS_INVALID = 0;
    118     public static final int STATUS_EDITING = 1;
    119     public static final int STATUS_SCHEDULED = 2;
    120     public static final int STATUS_EXPIRED = 3;
     117    public static final int STATE_INVALID = 0;
     118    public static final int STATE_EDITING = 1;
     119    public static final int STATE_SCHEDULED = 2;
     120    public static final int STATE_EXPIRED = 3;
    121121}
  • trunk/hiptop/pester/net/sabi/pester/AlarmListView.java

    r240 r241  
    1010import danger.ui.DatePicker;
    1111import danger.ui.DialogWindow;
     12import danger.ui.Menu;
     13import danger.ui.MenuItem;
    1214import danger.ui.NumberEditor;
    1315import danger.ui.PopupMenu;
     
    3133    private RadioButton sInButton, sAtButton;
    3234    private NumberEditor sPeriodField;
     35    private Menu sPeriodUnitsMenu;
    3336    private PopupMenu sPeriodUnitsPopup;
    3437    private CheckBox sRepeatCheckBox;
     
    5457        sAtButton = (RadioButton)sEditWindow.getDescendantWithID(ID_AT_BUTTON);
    5558        sPeriodField = (NumberEditor)sEditWindow.getDescendantWithID(ID_PERIOD_FIELD);
     59        sPeriodUnitsMenu = (Menu)sEditWindow.getDescendantWithID(ID_PERIOD_UNITS_MENU);
    5660        sPeriodUnitsPopup = (PopupMenu)sEditWindow.getDescendantWithID(ID_PERIOD_UNITS_POPUP);
    5761        sRepeatCheckBox = (CheckBox)sEditWindow.getDescendantWithID(ID_PERIOD_REPEAT_CHECKBOX);
     
    8185        if (usesPeriod) {
    8286            int period = alarm.getPeriod();
    83             int unitsPerSec = 1;
    84             DEBUG.p("period is " + period);
    8587            for (int i = sPeriodUnitsPopup.itemCount() - 1 ; i >= 0 ; --i) {
    86                 unitsPerSec =
    87                     sPeriodUnitsPopup.getIDOfItem(sPeriodUnitsPopup.getItem(i));
    88                 DEBUG.p("unitsPerSec = " + unitsPerSec);
    89                 if (period % unitsPerSec == 0) break;
    90             }
    91             sPeriodField.setValue(period / unitsPerSec);
    92             sPeriodUnitsPopup.setValueWithItemID(unitsPerSec);
     88                MenuItem item = sPeriodUnitsPopup.getItem(i);
     89                int unitsPerSec = item.getEvent().data;
     90                if (period % unitsPerSec == 0) {
     91                    sPeriodUnitsPopup.setValueWithItemID(sPeriodUnitsMenu.getIDOfItem(item));
     92                    sPeriodField.setValue(period / unitsPerSec);
     93                    break;
     94                }
     95            }
    9396            sRepeatCheckBox.setValue(alarm.getRepeating() ? 1 : 0);
    9497        }
     
    139142            sEditingAlarm.setMessage(sMessageField.toString());
    140143            if (sInButton.getValue() == 1) {
    141                 DEBUG.p("period: " + sPeriodField.getValue());
    142                 DEBUG.p(" units: " + sPeriodUnitsPopup.getValueAsItemID());
    143                 sEditingAlarm.setPeriod(sPeriodField.getValue() *
    144                                         sPeriodUnitsPopup.getValueAsItemID(),
     144                int itemID = sPeriodUnitsPopup.getValueAsItemID();
     145                MenuItem itemWithID = sPeriodUnitsMenu.getItemWithID(itemID);
     146                Event event = itemWithID.getEvent();
     147                sEditingAlarm.setPeriod(sPeriodField.getValue() * event.data,
    145148                                        sRepeatCheckBox.getValue() == 1);
    146149            } else {
     
    150153                sAlarmList.addItem(sEditingAlarm);
    151154                setFocusedItem(sEditingAlarm);
     155                sFocusedAlarm = sEditingAlarm; // XXX do we need this?
    152156            } else {
    153157                sEditingAlarm.update();
    154158            }
    155159        case EVENT_CANCEL_ALARM:
    156             // XXX (re)schedule alarm
    157             sEditingAlarm.endEditing();
     160            if (sEditingAlarm == sFocusedAlarm) { // existing alarm
     161                // XXX (re)schedule alarm
     162                sEditingAlarm.endEditing();
     163            }
     164            sEditingAlarm = null;
    158165            return true;
    159166        case EVENT_DISCARD_ALARM:
Note: See TracChangeset for help on using the changeset viewer.