package com.rapidftr.screens; import net.rim.device.api.ui.Field; import net.rim.device.api.ui.FieldChangeListener; import net.rim.device.api.ui.Manager; import net.rim.device.api.ui.XYEdges; import net.rim.device.api.ui.component.BasicEditField; import net.rim.device.api.ui.component.Dialog; import net.rim.device.api.ui.component.LabelField; import net.rim.device.api.ui.component.Menu; import net.rim.device.api.ui.component.SeparatorField; import net.rim.device.api.ui.component.TextField; import net.rim.device.api.ui.container.HorizontalFieldManager; import net.rim.device.api.ui.decor.BorderFactory; import com.rapidftr.controllers.SearchChildController; import com.rapidftr.controls.Button; import com.rapidftr.screens.internal.CustomScreen; public class SearchChildScreen extends CustomScreen implements FieldChangeListener { private static final int MAX_SIZE = 200; private final BasicEditField searchTextField = new BasicEditField("", "", MAX_SIZE, USE_ALL_WIDTH | TextField.NO_NEWLINE); private Button searchButton; private Button resetButton; private Manager buttonManager; // Use screen paramters instead if hardcore values private XYEdges border = new XYEdges(2, 2, 2, 2); public SearchChildScreen() { super(); layoutScreen(); searchTextField.setFocus(); } private void layoutScreen() { add(new LabelField("Search Child")); add(new SeparatorField()); add(new LabelField("")); searchTextField.setBorder(BorderFactory.createSimpleBorder(border)); add(searchTextField); add(new LabelField("")); addButtons(); } private void addButtons() { searchButton = new Button("Search"); searchButton.setChangeListener(this); resetButton = new Button("Reset"); resetButton.setChangeListener(this); buttonManager = new HorizontalFieldManager(FIELD_HCENTER); buttonManager.setPadding(PADDING); buttonManager.add(searchButton); buttonManager.add(resetButton); add(buttonManager); } public void setUp() { resetSearchBox(); } public void fieldChanged(Field field, int context) { if (field.equals(searchButton)) { onSearchButtonClicked(); } if (field.equals(resetButton)) { resetSearchBox(); } } private void resetSearchBox() { searchTextField.setText(""); searchTextField.setFocus(); } private void onSearchButtonClicked() { String searchQuery = searchTextField.getText(); if (!"".equals(searchQuery)) { ((SearchChildController) controller) .searchAndDisplayChildren(searchQuery); } else { Dialog .alert("Please enter either Child Name or Unique id, to perform search"); searchTextField.setFocus(); } } protected boolean onSavePrompt() { return true; } public void showNoSearchResultsAlert() { Dialog .alert("No search results found , Please enter a valid search keyword"); } protected void makeMenu(Menu menu, int instance) { super.makeMenu(menu, instance); } }