package com.rapidftr.screens; import net.rim.device.api.ui.Manager; import net.rim.device.api.ui.MenuItem; import net.rim.device.api.ui.ScrollChangeListener; 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 com.rapidftr.controllers.ViewChildrenController; import com.rapidftr.controls.ChildrenListField; import com.rapidftr.datastore.Children; import com.rapidftr.model.Child; import com.rapidftr.screens.internal.CustomScreen; public class ViewChildrenScreen extends CustomScreen { private static final int ROW_HEIGHT = 100; private ChildrenListField childrenList; public ViewChildrenScreen() { super(); layoutScreen(); } private void layoutScreen() { add(new LabelField("All children")); add(new SeparatorField()); childrenList = new ChildrenListField() { public ViewChildrenController getViewChildController() { return getController(); } }; getMainManager().setScrollListener(new ScrollChangeListener() { public void scrollChanged(Manager manager, int newHorizontalScroll, int newVerticalScroll) { childrenList.addChild(); } }); add(childrenList); } public void setChildren(Children children) { childrenList.displayChildren(children); childrenList.setRowHeight(ROW_HEIGHT); } private ViewChildrenController getController() { return (ViewChildrenController) controller; } protected void makeMenu(Menu menu, int instance) { if (!childrenList.isEmpty()) { final Child child = childrenList.getSelectedChild(); MenuItem viewChildMenu = new MenuItem("Open Record", 1, 1) { public void run() { Child child = childrenList.getSelectedChild(); getController().viewChild(child); } }; menu.add(viewChildMenu); MenuItem editChildMenu = new MenuItem("Edit Record", 1, 1) { public void run() { Child child = childrenList.getSelectedChild(); getController().editChild(child); } }; menu.add(editChildMenu); MenuItem sortByName = new MenuItem("Sort by Name", 1, 1) { public void run() { getController().sortByName(); } }; menu.add(sortByName); MenuItem sortByRecentlyAdded = new MenuItem( "Sort by Recently Added", 1, 1) { public void run() { getController().sortByRecentlyAdded(); } }; menu.add(sortByRecentlyAdded); MenuItem sortByRecentlyModified = new MenuItem( "Sort by Recently Updated", 1, 1) { public void run() { getController().sortByRecentlyUpdated(); } }; menu.add(sortByRecentlyModified); MenuItem flagRecordAsSuspectMenu = null; if ("true".equals(child.getField(Child.FLAGGED_KEY))) { flagRecordAsSuspectMenu = new MenuItem("Flag Information", 1, 1) { public void run() { Dialog.alert(child.flagInformation()); } }; } if (flagRecordAsSuspectMenu != null) menu.add(flagRecordAsSuspectMenu); } super.makeMenu(menu, instance); } public void refresh() { childrenList.refresh(); } }