Difference between revisions of "Teams Winter 2011/team1/BlackBerry/Add Mapping Option"
Line 1: | Line 1: | ||
=== 10. Add Mapping Option === | === 10. Add Mapping Option === | ||
− | 10.1. Add the Map Option to the manu:<br/> | + | 10.1. In order to implement Address Locator we need to add address field and getter/setter methods to <code>Student</code> class: |
+ | <source lang="java"> | ||
+ | public Student(String firstName, String lastName, String email, String address) { | ||
+ | this.firstName = firstName; | ||
+ | this.lastName = lastName; | ||
+ | this.email = email; | ||
+ | this.email = address; //add address field | ||
+ | } | ||
+ | |||
+ | public String getAddress(){ | ||
+ | return address; | ||
+ | } | ||
+ | public void setAddress(String address){ | ||
+ | this.address = address; | ||
+ | } | ||
+ | </source> | ||
+ | 10.2. Add EditTextFields to Add, Edit and view option: | ||
+ | viewItem | ||
+ | <source lang="java"> | ||
+ | BasicEditField addressField = new BasicEditField("address: ",student.getAddress(),50,Field.NON_FOCUSABLE); | ||
+ | addressField.setBorder(roundedBorder); | ||
+ | addressField.setBackground(solidBackground); | ||
+ | add(addressField); | ||
+ | </source> | ||
+ | addItem | ||
+ | <source lang="java> | ||
+ | EditField inputField4 = new EditField("Student's address: ",""); | ||
+ | addDialog.add(inputField4); | ||
+ | |||
+ | // Display the dialog and add a new element to the list | ||
+ | if(addDialog.doModal() == 0) { | ||
+ | addElementToList(new Student(inputField1.getText(),inputField2.getText(),inputField3.getText(), inputField4.getText())); | ||
+ | } | ||
+ | </source> | ||
+ | editItem | ||
+ | <source lang="java"> | ||
+ | EditField inputField4 = new EditField("Address: ",studentOld.getAddress()); | ||
+ | editDialog.add(inputField4); | ||
+ | |||
+ | if(editDialog.doModal() == 0) | ||
+ | { | ||
+ | studentNew.setFirstName(inputField1.getText()); | ||
+ | studentNew.setLastName(inputField2.getText()); | ||
+ | studentNew.setEmail(inputField3.getText()); | ||
+ | studentNew.setAddress(inputField4.getText()); //set Address | ||
+ | editListElement(studentOld, studentNew); | ||
+ | } | ||
+ | </source> | ||
+ | 10.3. Add the Map Option to the manu:<br/> | ||
<source lang="java"> | <source lang="java"> | ||
//Show the address on the map | //Show the address on the map | ||
Line 6: | Line 54: | ||
_mainScreen.addMenuItem(mapItem); | _mainScreen.addMenuItem(mapItem); | ||
</source> | </source> | ||
− | 10. | + | 10.4. Implement address locator: |
<source lang="java"> | <source lang="java"> | ||
mapItem.setCommand(new Command(new CommandHandler(){ | mapItem.setCommand(new Command(new CommandHandler(){ |
Revision as of 13:27, 7 April 2011
10. Add Mapping Option
10.1. In order to implement Address Locator we need to add address field and getter/setter methods to Student
class:
public Student(String firstName, String lastName, String email, String address) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.email = address; //add address field
}
public String getAddress(){
return address;
}
public void setAddress(String address){
this.address = address;
}
10.2. Add EditTextFields to Add, Edit and view option: viewItem
BasicEditField addressField = new BasicEditField("address: ",student.getAddress(),50,Field.NON_FOCUSABLE);
addressField.setBorder(roundedBorder);
addressField.setBackground(solidBackground);
add(addressField);
addItem
EditField inputField4 = new EditField("Student's address: ","");
addDialog.add(inputField4);
// Display the dialog and add a new element to the list
if(addDialog.doModal() == 0) {
addElementToList(new Student(inputField1.getText(),inputField2.getText(),inputField3.getText(), inputField4.getText()));
}
editItem
EditField inputField4 = new EditField("Address: ",studentOld.getAddress());
editDialog.add(inputField4);
if(editDialog.doModal() == 0)
{
studentNew.setFirstName(inputField1.getText());
studentNew.setLastName(inputField2.getText());
studentNew.setEmail(inputField3.getText());
studentNew.setAddress(inputField4.getText()); //set Address
editListElement(studentOld, studentNew);
}
10.3. Add the Map Option to the manu:
//Show the address on the map
ImageMenuItem mapItem = new ImageMenuItem("Address on Map", 500, 5, MENU_MAP);
_mainScreen.addMenuItem(mapItem);
10.4. Implement address locator:
mapItem.setCommand(new Command(new CommandHandler(){
public void execute(ReadOnlyCommandMetadata metadata, Object context)
{
Student student = (Student) _keywordFilterField.getSelectedElement();
if(student != null)
{
try
{
String address = student.getAddress();
//start coordinates
Coordinates co = new Coordinates(45.423488, -75.697929, 0);
Landmark[] landm = Locator.geocode(address, co);
//Get latitude and longitude
double lon = landm[0].getQualifiedCoordinates().getLongitude()*100000.0 ;
double lat = landm[0].getQualifiedCoordinates().getLatitude()*100000.0;
//create XML document
StringBuffer document = new StringBuffer("<location-document><location lon='");
document.append(lon).append("' lat='").append(lat).append("' label='").append(address);
document.append("' description='Student Address' zoom='10'/></location-document>");
// Invoke maps application for current Contact
Invoke.invokeApplication(Invoke.APP_TYPE_MAPS, new MapsArguments(MapsArguments.ARG_LOCATION_DOCUMENT, document.toString()));
} catch(LocatorException ex){
Dialog.alert("cannot get location: " + ex.getMessage());
} catch(Exception ex){
Dialog.alert("map application is not available: "+ ex.getMessage());
}
}
}
}));