/** * HelloWorld.java * Copyright (C) 2001-2003 Research In Motion Limited. All rights reserved. */ import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; import net.rim.device.api.system.*; import net.rim.blackberry.api.menuitem.ApplicationMenuItem; import net.rim.blackberry.api.menuitem.ApplicationMenuItemRepository; import net.rim.device.api.system.ApplicationManager; import net.rim.blackberry.api.mail.Address; import net.rim.blackberry.api.mail.Message; import net.rim.device.api.util.Arrays; import javax.wireless.messaging.TextMessage; import javax.microedition.pim.PIM; import javax.microedition.pim.PIMList; import javax.microedition.pim.ContactList; import javax.microedition.pim.PIMItem; import net.rim.blackberry.api.pdap.BlackBerryContactList; import javax.microedition.pim.Contact; /* * BlackBerry applications that provide a user interface * must extend UiApplication. */ public class InsertContact extends UiApplication { public static void main(String[] args) { try { // If we are starting up then register our replyto menu items // otherwise we should display the BBReply configuration screen if (ApplicationManager.getApplicationManager().inStartup()) { registerMenuItem(); System.out.println("*** how to goes here??"); } else { registerMenuItem(); System.out.println("*** Start BBReply GUI application"); } } catch (Exception e) { System.out.println("*** Error: " + e.getMessage()); } } public InsertContact () { //display a new screen // pushScreen(new HelloWorldScreen()); } private static void registerMenuItem() { System.out.println("*** Registering Insert contact menuitem"); InsertContactMenuItem menuItem = new InsertContactMenuItem(); ApplicationMenuItemRepository amir = ApplicationMenuItemRepository.getInstance(); amir.addMenuItem(ApplicationMenuItemRepository.MENUITEM_SMS_EDIT, //MENUITEM_EMAIL_EDIT, menuItem); } private static class InsertContactMenuItem extends ApplicationMenuItem { InsertContactMenuItem() { // This sets the item just before the "Add To:" menuitem super(2000000); } public String toString() { return "Insert Contact"; } public Object run(Object context) { try { PIM pim = PIM.getInstance(); BlackBerryContactList list = (BlackBerryContactList) pim.openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY); PIMItem pimItem = list.choose (); String phoneNum = pimItem.getString (Contact.TEL, 0); Screen screen = UiApplication.getUiApplication().getActiveScreen(); for (int i = 0; i < screen.getFieldCount(); i++) { Field field = screen.getField(i); printFields (field, phoneNum); } } catch (Exception e) { System.out.println("*** Error determining Email service: " + e.getMessage()); } return null; } private void printFields (Field field, String str) { try { System.out.println("*** Field class: " + field.getClass().getName()); if (field instanceof TextField) { TextField textField = (TextField) field; System.out.println("*** Found a text field"); System.out.println("*** text field label: " + textField.getLabel()); System.out.println("*** Found text field"); System.out.println ("** value: " + textField.getText ()); if (textField.getClass ().getName ().endsWith(".SMSEditField")) { System.out.println ("insertting text to..."); textField.insert (str); } } else if (field instanceof Manager) { Manager mgrField = ( Manager) field; System.out.println ("** Subfields.."); for (int i = 0; i < mgrField.getFieldCount(); i++) { Field subFields = mgrField.getField(i); printFields (subFields, str); } } } catch (Exception e) { System.out.println ("printFields excetion:" + e.getMessage ()); } } } }