1 | package net.sabi.pester;
|
---|
2 |
|
---|
3 | import danger.app.Application;
|
---|
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;
|
---|
10 | import danger.ui.ScreenWindow;
|
---|
11 | import danger.ui.Menu;
|
---|
12 | import danger.ui.MenuItem;
|
---|
13 | import danger.ui.Scrollbar;
|
---|
14 | import danger.util.TextBuffer;
|
---|
15 |
|
---|
16 | public class AlarmListWindow extends ScreenWindow
|
---|
17 | implements Resources, Commands {
|
---|
18 | private static AlarmListView sAlarmListView;
|
---|
19 | private static Pester sPester;
|
---|
20 |
|
---|
21 | public void onDecoded() {
|
---|
22 | sAlarmListView = (AlarmListView)getDescendantWithID(ID_ALARM_LIST_VIEW);
|
---|
23 | sPester = (Pester)Application.getCurrentApp();
|
---|
24 | updateAlarmCount();
|
---|
25 | super.onDecoded();
|
---|
26 | }
|
---|
27 |
|
---|
28 | public void updateAlarmCount() {
|
---|
29 | int size = sAlarmListView.alarmsSet();
|
---|
30 | StringBuffer sb = new StringBuffer();
|
---|
31 | if (size == 0) sb.append("No");
|
---|
32 | else sb.append(size);
|
---|
33 | sb.append(" alarm");
|
---|
34 | if (size != 1) sb.append('s');
|
---|
35 | sb.append(" set");
|
---|
36 | String alarmCount = sb.toString();
|
---|
37 | setSubTitle(alarmCount);
|
---|
38 | sPester.setChooserFolderLabel(alarmCount);
|
---|
39 | sPester.updatePreviewScreen();
|
---|
40 | }
|
---|
41 |
|
---|
42 | public void adjustActionMenuState(Menu actionMenu) {
|
---|
43 | boolean haveFocusedItem = (sAlarmListView.getFocusedItem() != null);
|
---|
44 | actionMenu.getItemWithID(ID_DISCARD_ITEM).setEnabled(haveFocusedItem);
|
---|
45 | }
|
---|
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 | }
|
---|
75 | } |
---|