[237] | 1 | package net.sabi.pester;
|
---|
| 2 |
|
---|
[246] | 3 | import danger.app.Application;
|
---|
[293] | 4 | import danger.app.Event;
|
---|
| 5 | import danger.app.Resource;
|
---|
| 6 | import danger.text.span.SpanUtils;
|
---|
| 7 | import danger.text.span.SpannableString;
|
---|
| 8 | import danger.ui.DialogWindow;
|
---|
| 9 | import danger.ui.LinkTextBox;
|
---|
[237] | 10 | import danger.ui.ScreenWindow;
|
---|
| 11 | import danger.ui.Menu;
|
---|
| 12 | import danger.ui.MenuItem;
|
---|
[293] | 13 | import danger.ui.Scrollbar;
|
---|
| 14 | import danger.util.TextBuffer;
|
---|
[237] | 15 |
|
---|
| 16 | public class AlarmListWindow extends ScreenWindow
|
---|
| 17 | implements Resources, Commands {
|
---|
| 18 | private static AlarmListView sAlarmListView;
|
---|
[246] | 19 | private static Pester sPester;
|
---|
[237] | 20 |
|
---|
| 21 | public void onDecoded() {
|
---|
| 22 | sAlarmListView = (AlarmListView)getDescendantWithID(ID_ALARM_LIST_VIEW);
|
---|
[246] | 23 | sPester = (Pester)Application.getCurrentApp();
|
---|
[237] | 24 | updateAlarmCount();
|
---|
| 25 | super.onDecoded();
|
---|
| 26 | }
|
---|
| 27 |
|
---|
| 28 | public void updateAlarmCount() {
|
---|
| 29 | int size = sAlarmListView.alarmsSet();
|
---|
[246] | 30 | StringBuffer sb = new StringBuffer();
|
---|
| 31 | if (size == 0) sb.append("No");
|
---|
| 32 | else sb.append(size);
|
---|
| 33 | sb.append(" alarm");
|
---|
[237] | 34 | if (size != 1) sb.append('s');
|
---|
[246] | 35 | sb.append(" set");
|
---|
| 36 | String alarmCount = sb.toString();
|
---|
| 37 | setSubTitle(alarmCount);
|
---|
| 38 | sPester.setChooserFolderLabel(alarmCount);
|
---|
| 39 | sPester.updatePreviewScreen();
|
---|
[237] | 40 | }
|
---|
| 41 |
|
---|
| 42 | public void adjustActionMenuState(Menu actionMenu) {
|
---|
| 43 | boolean haveFocusedItem = (sAlarmListView.getFocusedItem() != null);
|
---|
| 44 | actionMenu.getItemWithID(ID_DISCARD_ITEM).setEnabled(haveFocusedItem);
|
---|
| 45 | }
|
---|
[293] | 46 |
|
---|
| 47 | public boolean receiveEvent(Event e) {
|
---|
| 48 | switch (e.type) {
|
---|
| 49 | case EVENT_ABOUT:
|
---|
| 50 | DialogWindow window = sPester.getDialog(ID_ABOUT_DIALOG, this);
|
---|
| 51 | LinkTextBox textBox =
|
---|
| 52 | (LinkTextBox)window.getDescendantWithID(ID_ABOUT_TEXT_BOX);
|
---|
| 53 | Resource aboutText = sPester.getResource(257, ID_ABOUT_TEXT);
|
---|
| 54 | int aboutSize = aboutText.getSize();
|
---|
| 55 | byte b[] = new byte[aboutSize];
|
---|
| 56 | aboutText.getBytes(b, 0, aboutSize);
|
---|
| 57 | String supportEmail = sPester.getString(ID_SUPPORT_EMAIL);
|
---|
| 58 | TextBuffer textBuffer =
|
---|
| 59 | new TextBuffer(aboutSize + supportEmail.length());
|
---|
| 60 | textBuffer.insert(new String(b));
|
---|
| 61 | SpannableString urlString = new SpannableString(supportEmail);
|
---|
| 62 | SpanUtils.addURL(urlString, 0, urlString.length(),
|
---|
| 63 | "mailto:" + supportEmail);
|
---|
| 64 | textBuffer.insert(urlString);
|
---|
| 65 | textBuffer.insert(".");
|
---|
| 66 | textBox.setText(textBuffer);
|
---|
| 67 | Scrollbar scrollbar =
|
---|
| 68 | (Scrollbar)window.getDescendantWithID(ID_ABOUT_TEXT_SCROLLBAR);
|
---|
| 69 | textBox.attachScrollbar(scrollbar);
|
---|
| 70 | window.show();
|
---|
| 71 | return true;
|
---|
| 72 | }
|
---|
| 73 | return super.receiveEvent(e);
|
---|
| 74 | }
|
---|
[237] | 75 | } |
---|