package net.frontlinesms.ui.handler.help; import java.net.URI; import java.net.URISyntaxException; import net.frontlinesms.FrontlineUtils; import net.frontlinesms.ui.ThinletUiEventHandler; import net.frontlinesms.ui.UiGeneratorController; import net.frontlinesms.ui.i18n.InternationalisationUtils; public class ContributeDialog implements ThinletUiEventHandler { private static final String UI_FILE_CONTRIBUTE_DIALOG = "/ui/core/dgContribute.xml"; private static final String I18N_CONTRIBUTE_EXPLANATION = "contribute.explanation"; private static final String I18N_CONTRIBUTE_EMAIL_US = "contribute.click.to.email.us"; private final UiGeneratorController ui; private Object dialog; public ContributeDialog(UiGeneratorController uiGeneratorController) { ui = uiGeneratorController; } public void show() { init(); ui.add(dialog); } //> UI EVENT METHODS public void emailMyExperience() { StringBuilder body = new StringBuilder(); body.append("Name of organisation: \n\n"); body.append("Area of work: \n\n"); body.append("Country/region of work: \n\n"); body.append("Sector (e.g. health, human rights etc.): \n\n"); body.append("Short description of your use of SMS (e.g. keeping in touch with staff in the field, monitoring well maintenance, providing information to remote farmers): \n\n"); mailTo("you2us@frontlinesms.com", "Contribute to FrontlineSMS", body.toString()); } /** Opens a mailto window */ public void mailTo(String emailAddress) { mailTo(emailAddress, "", ""); } public void emailForGuestPost() { mailTo("you2us@frontlinesms.com", "Writing a guest blog post for FrontlineSMS.com", ""); } public void removeDialog() { ui.remove(this.dialog); } public void showHelpPage(String page) { ui.showHelpPage(page); } public void showStatsDialog() { ui.showStatsDialog(); } //> PRIVATE METHODS private void init() { this.dialog = ui.loadComponentFromFile(UI_FILE_CONTRIBUTE_DIALOG, this); Object pnExplanation = find("pnExplanation"); for (String label : InternationalisationUtils.getI18nStrings(I18N_CONTRIBUTE_EXPLANATION)) { ui.add(pnExplanation, ui.createLabel(label)); } Object linkWorking = find("linkWorking"); Object linkGuestPost = find("linkGuestPost"); Object linkNotWorking = find("linkNotWorking"); ui.setText(linkWorking, InternationalisationUtils.getI18nString(I18N_CONTRIBUTE_EMAIL_US, "you2us@frontlinesms.com")); ui.setText(linkGuestPost, InternationalisationUtils.getI18nString(I18N_CONTRIBUTE_EMAIL_US, "you2us@frontlinesms.com")); ui.setText(linkNotWorking, InternationalisationUtils.getI18nString(I18N_CONTRIBUTE_EMAIL_US, "frontlinesupport@kiwanja.net")); } /** * Opens a mailto window * @param emailAddress */ private void mailTo(String emailAddress, String subject, String body) { if (subject.length() > 0) { subject = "?subject=" + subject; } if (body.length() > 0) { body = (subject.length() > 0 ? "&" : "?") + "body=" + body; } this.ui.alert(subject + body); try { FrontlineUtils.openDefaultMailClient(new URI("mailto", emailAddress, subject + body)); } catch (URISyntaxException e1) {} } private Object find(String name) { return ui.find(this.dialog, name); } }