/*
* CitationScreen2.java
*
* Team D 2009-1010
*
*/
package citation.app;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import citation.data.*;
import citation.query.HTTPGoogleAPI;
import citation.query.QueryMgr;
import citation.ui.CustomLabelField;
public class CitationScreen2 extends MainScreen {
private RadioButtonGroup rgrp0;
private RadioButtonField rad_person;
private RadioButtonField rad_business;
private EditField field_id;
private ObjectChoiceField field_idstate;
private ObjectChoiceField field_title;
private EditField field_first;
private EditField field_middle;
private EditField field_last;
private ObjectChoiceField field_suffix;
private EditField field_address;
private EditField field_city;
private EditField field_state;
private EditField field_zip;
private EditField field_DOB;
private ObjectChoiceField field_sex;
private ObjectChoiceField field_race;
private ObjectChoiceField field_eyes;
private ObjectChoiceField field_hair;
private EditField field_endorsements;
private EditField field_restrictions;
private EditField field_height;
private EditField field_weight;
private EditField field_observations;
//private NumericChoiceField field_violations;
private ObjectChoiceField field_violations;
private Citation c;
public CitationScreen2(Citation _c) {
c = _c;
String cNumberString = Integer.toString(c.Number);
CustomLabelField lf1 = new CustomLabelField("OREGON UNIFORM CITATION: #" + cNumberString, LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
lf1.setBackgroundColor(0x00194E84);
lf1.setTextColor(0x00ffffff);
FontFamily fontFamily[] = FontFamily.getFontFamilies();
Font font1 = fontFamily[1].getFont(FontFamily.CBTF_FONT, 14);
lf1.setFont(font1);
add(lf1);
//--------------
add(new SeparatorField());
CustomLabelField lbl = new CustomLabelField("************** DEFENDENT ***************", Field.FIELD_HCENTER | LabelField.USE_ALL_WIDTH);
lbl.setBackgroundColor(Color.LIGHTGREY);
lbl.setTextColor(Color.BLUE);
FontFamily fontFamily2[] = FontFamily.getFontFamilies();
Font fnt2 = fontFamily2[1].getFont(FontFamily.CBTF_FONT, 14);
lbl.setFont(fnt2);
add(lbl);
add(new SeparatorField());
rgrp0 = new RadioButtonGroup();
rad_person = new RadioButtonField("Person", rgrp0, false);
rad_business = new RadioButtonField("Business", rgrp0, false);
add(rad_person);
add(rad_business);
add(new SeparatorField());
// EditField
field_id = new EditField("ID #: ", "");
add(field_id);
// ObjectChoiceField
String choicestrs0[] = {"OR", "WA", "CA"};
field_idstate = new ObjectChoiceField("State: ", choicestrs0, 0);
add(field_idstate);
ButtonField btn_dmv = new ButtonField("DMV Lookup", ButtonField.CONSUME_CLICK);
btn_dmv.setChangeListener((new DMVButtonListener2(this)));
add(btn_dmv);
add(new SeparatorField());
// ObjectChoiceField
String choicestrs1[] = {"Mr.", "Mrs.", "Miss", "Ms.", "Dr."};
field_title = new ObjectChoiceField("Title: ", choicestrs1, 0);
add(field_title);
add(new SeparatorField());
// EditField
field_first = new EditField("First: ", "");
add(field_first);
// EditField
field_middle = new EditField("Middle: ", "");
add(field_middle);
// EditField
field_last = new EditField("Last: ", "");
add(field_last);
// ObjectChoiceField
String choicestrs2[] = {"N/A", "Sr.", "Jr.", "I", "II", "III", "IV"};
field_suffix = new ObjectChoiceField("Suffix: ", choicestrs2, 0);
add(field_suffix);
add(new SeparatorField());
// EditField
field_address = new EditField("Address: ", "");
add(field_address);
// EditField
field_city = new EditField("City: ", "");
add(field_city);
// ObjectChoiceField
field_state = new EditField("State: ", "");
add(field_state);
// EditField
field_zip = new EditField("Zip: ", "");
add(field_zip);
add(new SeparatorField());
// EditField
field_DOB = new EditField("Date of Birth: ", "");
add(field_DOB);
// ObjectChoiceField
String choicestrs5[] = {"M", "F"};
field_sex = new ObjectChoiceField("Sex: ", choicestrs5, 0);
add(field_sex);
// ObjectChoiceField
String choicestrs6[] = {"White", "Black", "Chinese", "Asian", "Arab", "Sudanese", "French", "Japanese", "Punjabis"};
field_race = new ObjectChoiceField("Race: ", choicestrs6, 0);
add(field_race);
// ObjectChoiceField
String choicestrs7[] = {"Green", "Blue", "Black", "Brown"};
field_eyes = new ObjectChoiceField("Eyes: ", choicestrs7, 0);
add(field_eyes);
// ObjectChoiceField
String choicestrs8[] = {"Blonde", "Black", "Grey", "Red", "Brown"};
field_hair = new ObjectChoiceField("Hair: ", choicestrs8, 0);
add(field_hair);
add(new SeparatorField());
// EditField
field_endorsements = new EditField("Endorsements: ", "");
add(field_endorsements);
add(new SeparatorField());
// EditField
field_restrictions = new EditField("Restrictions: ", "");
add(field_restrictions);
// EditField
field_height = new EditField("Height: ", "");
add(field_height);
// EditField
field_weight = new EditField("Weight: ", "");
add(field_weight);
add(new SeparatorField());
// EditField
field_observations = new EditField("Other Observations: ", "");
add(field_observations);
add(new SeparatorField());
// ObjectChoiceField
String choicestrs10[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
field_violations = new ObjectChoiceField("Number of Violations: ", choicestrs10, 0);
add(field_violations);
add(new SeparatorField());
// ButtonField row - set all buttons at the bottom row of the form
HorizontalFieldManager navButtonManager = new HorizontalFieldManager();
// ButtonField
ButtonField btn_prev;
btn_prev = new ButtonField("Prev", ButtonField.CONSUME_CLICK);
btn_prev.setChangeListener(new ButtonListener2(this, c));
navButtonManager.add(btn_prev);
ButtonField btn_next;
btn_next = new ButtonField("Next", ButtonField.CONSUME_CLICK);
btn_next.setChangeListener(new ButtonListener2(this, c));
navButtonManager.add(btn_next);
add(navButtonManager);
add(new SeparatorField());
addMenuItem(saveItem2);
addMenuItem(getItem2);
restoreUIFieldsFromCitation();
}
public static class ButtonListener2 implements FieldChangeListener {
Citation c;
CitationScreen2 cs2;
public ButtonListener2(CitationScreen2 _cs2, Citation _n2){
cs2 = _cs2;
c = _n2;
}
public void fieldChanged(Field field, int context) {
ButtonField btn4 = (ButtonField) field;
if(btn4.getLabel().toString() == "Next"){
cs2.storeUIFieldsToCitation();
UiApplication.getUiApplication().pushScreen(new CitationScreen3(c));
}
else if(btn4.getLabel().toString() == "Prev"){
cs2.storeUIFieldsToCitation();
UiApplication.getUiApplication().popScreen(cs2);
}
}
}
static final class DMVButtonListener2 implements FieldChangeListener {
private CitationScreen2 cs2 = null;
public DMVButtonListener2(CitationScreen2 _cs2){
cs2 = _cs2;
}
public void fieldChanged(Field field, int context) {
ButtonField btn = (ButtonField)field;
if (btn != null) {
QueryMgr query = ((CitationApp)UiApplication.getUiApplication()).getQueryMgr();
CPerson cp = (CPerson)query.findDMVRecord(cs2.field_id.getText());
if (cp != null) {
cs2.field_last.setText(cp.getElement(CPerson.LAST));
cs2.field_middle.setText(cp.getElement(CPerson.MIDDLE));
cs2.field_first.setText(cp.getElement(CPerson.FIRST));
cs2.field_address.setText(cp.getElement(CPerson.ADDRESS));
cs2.field_city.setText(cp.getElement(CPerson.CITY));
cs2.field_state.setText(cp.getElement(CPerson.STATE));
cs2.field_zip.setText(cp.getElement(CPerson.ZIP));
cs2.field_DOB.setText(cp.getElement(CPerson.DOB));
cs2.field_endorsements.setText(cp.getElement(CPerson.ENDORSEMENTS));
cs2.field_height.setText(cp.getElement(CPerson.HEIGHT));
cs2.field_restrictions.setText(cp.getElement(CPerson.RESTRICTIONS));
cs2.field_sex.setSelectedIndex(cp.getElement(CPerson.SEX));
cs2.field_weight.setText(cp.getElement(CPerson.WEIGHT));
}
else {
StringBuffer msg = new StringBuffer("Unable to retrieve DMV record. ");
Dialog.inform(msg.toString());
}
}
}
}
private MenuItem saveItem2 = new MenuItem("Save", 110, 10) {
public void run() {
storeUIFieldsToCitation();
CitationStore.Save();
}
};
private MenuItem getItem2 = new MenuItem("Get", 110, 11) {
public void run() {
CitationStore.Restore();
restoreUIFieldsFromCitation();
}
};
/**
* storeUIFieldsToCitation - transfer the UI field values to the citation record
*/
private void storeUIFieldsToCitation()
{
String person_sel = rad_person.isSelected() ? "true" : "false";
c.Person.setElement(CPerson.PERSON_SELECT, person_sel);
c.Person.setElement(CPerson.PERSON, rad_person.getLabel());
System.out.println("Store Function -> PERSON = " + rad_person.getLabel());
String business_sel = rad_business.isSelected() ? "true" : "false";
c.Person.setElement(CPerson.BUSINESS_SELECT, business_sel);
c.Person.setElement(CPerson.BUSINESS, rad_business.getLabel());
System.out.println("Store Function -> BUSINESS = " + rad_business.getLabel());
c.Person.setElement(CPerson.ID, field_id.getText());
c.Person.setElement(CPerson.ID_STATE, field_idstate.toString());
c.Person.setElement(CPerson.TITLE, field_title.toString());
c.Person.setElement(CPerson.FIRST, field_first.getText());
c.Person.setElement(CPerson.MIDDLE, field_middle.getText());
c.Person.setElement(CPerson.LAST, field_last.getText());
c.Person.setElement(CPerson.SUFFIX, field_suffix.toString());
c.Person.setElement(CPerson.ADDRESS, field_address.getText());
c.Person.setElement(CPerson.CITY, field_city.getText());
c.Person.setElement(CPerson.STATE, field_state.toString());
c.Person.setElement(CPerson.ZIP, field_zip.getText());
c.Person.setElement(CPerson.DOB, field_DOB.getText());
c.Person.setElement(CPerson.SEX, field_sex.toString());
c.Person.setElement(CPerson.RACE, field_race.toString());
c.Person.setElement(CPerson.EYES, field_eyes.toString());
c.Person.setElement(CPerson.HAIR, field_hair.toString());
c.Person.setElement(CPerson.ENDORSEMENTS, field_endorsements.getText());
c.Person.setElement(CPerson.RESTRICTIONS, field_restrictions.getText());
c.Person.setElement(CPerson.HEIGHT, field_height.toString());
c.Person.setElement(CPerson.WEIGHT, field_weight.getText());
c.Person.setElement(CPerson.OBSERVATIONS, field_observations.getText());
c.Person.setElement(CPerson.NUM_OF_VIOLATIONS, field_violations.toString());
}
/**
* restoreUIFieldsFromCitation - populate the UI fields from those currently
* stored in the citation record
*/
private void restoreUIFieldsFromCitation()
{
//System.out.println("PERSON: " + c.Person.getElement(CPerson.PERSON));
//rad_person.setLabel(c.Person.getElement(CPerson.PERSON));
boolean person_sel = c.Person.getElement(CPerson.PERSON_SELECT).equals("true");
rad_person.setSelected(person_sel);
//System.out.println("BUSINESS: " + c.Person.getElement(CPerson.BUSINESS));
//rad_business.setLabel(c.Person.getElement(CPerson.BUSINESS));
boolean business_sel = c.Person.getElement(CPerson.BUSINESS_SELECT).equals("true");
rad_business.setSelected(business_sel);
field_id.setText(c.Person.getElement(CPerson.ID));
field_idstate.setSelectedIndex(c.Person.getElement(CPerson.ID_STATE));
field_title.setSelectedIndex(c.Person.getElement(CPerson.TITLE));
field_first.setText(c.Person.getElement(CPerson.FIRST));
field_middle.setText(c.Person.getElement(CPerson.MIDDLE));
field_last.setText(c.Person.getElement(CPerson.LAST));
field_suffix.setSelectedIndex(c.Person.getElement(CPerson.SUFFIX));
field_address.setText(c.Person.getElement(CPerson.ADDRESS));
field_city.setText(c.Person.getElement(CPerson.CITY));
field_state.setText(c.Person.getElement(CPerson.STATE));
field_zip.setText(c.Person.getElement(CPerson.ZIP));
field_DOB.setText(c.Person.getElement(CPerson.DOB));
field_sex.setSelectedIndex(c.Person.getElement(CPerson.SEX));
field_race.setSelectedIndex(c.Person.getElement(CPerson.RACE));
field_eyes.setSelectedIndex(c.Person.getElement(CPerson.EYES));
field_hair.setSelectedIndex(c.Person.getElement(CPerson.HAIR));
field_endorsements.setText(c.Person.getElement(CPerson.ENDORSEMENTS));
field_restrictions.setText(c.Person.getElement(CPerson.RESTRICTIONS));
field_height.setText(c.Person.getElement(CPerson.HEIGHT));
field_weight.setText(c.Person.getElement(CPerson.WEIGHT));
field_observations.setText(c.Person.getElement(CPerson.OBSERVATIONS));
field_violations.setSelectedIndex(c.Person.getElement(CPerson.NUM_OF_VIOLATIONS));
}
}