package net.sabi.pester; import danger.app.Application; import danger.app.Event; import danger.app.Resource; import danger.text.span.SpanUtils; import danger.text.span.SpannableString; import danger.ui.DialogWindow; import danger.ui.LinkTextBox; import danger.ui.ScreenWindow; import danger.ui.Menu; import danger.ui.MenuItem; import danger.ui.Scrollbar; import danger.util.TextBuffer; public class AlarmListWindow extends ScreenWindow implements Resources, Commands { private static AlarmListView sAlarmListView; private static Pester sPester; public void onDecoded() { sAlarmListView = (AlarmListView)getDescendantWithID(ID_ALARM_LIST_VIEW); sPester = (Pester)Application.getCurrentApp(); updateAlarmCount(); super.onDecoded(); } public void updateAlarmCount() { int size = sAlarmListView.alarmsSet(); StringBuffer sb = new StringBuffer(); if (size == 0) sb.append("No"); else sb.append(size); sb.append(" alarm"); if (size != 1) sb.append('s'); sb.append(" set"); String alarmCount = sb.toString(); setSubTitle(alarmCount); sPester.setChooserFolderLabel(alarmCount); sPester.updatePreviewScreen(); } public void adjustActionMenuState(Menu actionMenu) { boolean haveFocusedItem = (sAlarmListView.getFocusedItem() != null); actionMenu.getItemWithID(ID_DISCARD_ITEM).setEnabled(haveFocusedItem); } public boolean receiveEvent(Event e) { switch (e.type) { case EVENT_ABOUT: DialogWindow window = sPester.getDialog(ID_ABOUT_DIALOG, this); LinkTextBox textBox = (LinkTextBox)window.getDescendantWithID(ID_ABOUT_TEXT_BOX); Resource aboutText = sPester.getResource(257, ID_ABOUT_TEXT); int aboutSize = aboutText.getSize(); byte b[] = new byte[aboutSize]; aboutText.getBytes(b, 0, aboutSize); String supportEmail = sPester.getString(ID_SUPPORT_EMAIL); TextBuffer textBuffer = new TextBuffer(aboutSize + supportEmail.length()); textBuffer.insert(new String(b)); SpannableString urlString = new SpannableString(supportEmail); SpanUtils.addURL(urlString, 0, urlString.length(), "mailto:" + supportEmail); textBuffer.insert(urlString); textBuffer.insert("."); textBox.setText(textBuffer); Scrollbar scrollbar = (Scrollbar)window.getDescendantWithID(ID_ABOUT_TEXT_SCROLLBAR); textBox.attachScrollbar(scrollbar); window.show(); return true; } return super.receiveEvent(e); } }