Difference between revisions of "Teams Winter 2011/team1/BlackBerry/Add Menu to the Application"
(→4.b. Add Image to the Menu) |
(→4.b. Add Image to the Menu) |
||
Line 49: | Line 49: | ||
==== 4.b. Add Image to the Menu ==== | ==== 4.b. Add Image to the Menu ==== | ||
− | 4.b.1. Create an abstract class that extends MenuItem to be used for creating items with image:<br/> | + | 4.b.1. Add static fields for menu item number:<br/> |
+ | <source lang="java"> | ||
+ | final static int MENU_ADD = 0; | ||
+ | |||
+ | final static int MENU_EDIT = 1; | ||
+ | final static int MENU_DELETE = 2; | ||
+ | final static int MENU_EMAIL = 3; | ||
+ | final static int MENU_MAP = 4; | ||
+ | </source> | ||
+ | |||
+ | 4.b.2. Create an abstract class that extends MenuItem to be used for creating items with image:<br/> | ||
<source lang="java"> | <source lang="java"> | ||
/** | /** | ||
Line 94: | Line 104: | ||
</source> | </source> | ||
− | + | 4.b.3. Change the instantiation of menu items to use the new class created ''ImageMenuItem'', pass the name of the menu item to the constructor:<br/> | |
− | 4.b. | ||
<source lang="java"> | <source lang="java"> | ||
− | |||
ImageMenuItem addItem = new ImageMenuItem("Add Student", 100, 1, MENU_ADD); | ImageMenuItem addItem = new ImageMenuItem("Add Student", 100, 1, MENU_ADD); | ||
addItem.setCommand(new Command(new CommandHandler() { | addItem.setCommand(new Command(new CommandHandler() { | ||
</source> | </source> | ||
− | + | [[Image: BB_MenuImage.png | 300px]]<br/> | |
− | [[Image: |
Revision as of 12:20, 9 April 2011
4. Add Menu to the Application
4.a. Add Menu
4.a.1. Open ViewStudentApp
class and add menu items inside the constructor.
4.a.2 Add add, edit and delete student options to the menu and set commands to execute:
MyScreen _mainScreen = new MyScreen(this);
MenuItem addItem = new MenuItem(new StringProvider("Add Student"), 200, 2);
adds.setCommand(new Command(new AddCommandHandler()));
_mainScreen.addMenuItem(addItem);
MenuItem editItem = new MenuItem(new StringProvider("Edit Student"), 300, 3);
edit.setCommand(new Command(new EditCommandHandler()));
_mainScreen.addMenuItem(editItem);
MenuItem delete = new MenuItem(new StringProvider("Delete Student"), 400, 4);
delete.setCommand(new Command(new DeleteCommandHandler()));
_mainScreen.addMenuItem(deleteItem);
pushScreen(_mainScreen);
4.a.3. Create inner classes to execute all commands:
class AddCommandHandler extends CommandHandler
{
public void execute(ReadOnlyCommandMetadata metadata, Object context){
Dialog.alert("Add was selected");
}
}
class EditCommandHandler extends CommandHandler
{
public void execute(ReadOnlyCommandMetadata metadata, Object context){
Dialog.alert("Edit was selected");
}
}
class DeleteCommandHandler extends CommandHandler
{
public void execute(ReadOnlyCommandMetadata metadata, Object context){
Dialog.alert("Delete was selected");
}
}
4.a.4. Run the application. Click on the menu you should see the following:
4.a.5. Select one of the menu options. The pop-up message should appear:
4.b. Add Image to the Menu
4.b.1. Add static fields for menu item number:
final static int MENU_ADD = 0;
final static int MENU_EDIT = 1;
final static int MENU_DELETE = 2;
final static int MENU_EMAIL = 3;
final static int MENU_MAP = 4;
4.b.2. Create an abstract class that extends MenuItem to be used for creating items with image:
/**
* Concrete implementation of abstract class MenuItem
*/
class ImageMenuItem extends MenuItem
{
/**
* Creates a new MenuDemoMenuItem object
*/
ImageMenuItem(String title, int ordinal, int property, int itemNum)
{
super(new StringProvider(title), ordinal, property);
// Create Image object from project resource
Bitmap bitmap;
switch(itemNum)
{
case 0:
bitmap = Bitmap.getBitmapResource("add.png");
break;
case 1:
bitmap = Bitmap.getBitmapResource("edit.png");
break;
case 2:
bitmap = Bitmap.getBitmapResource("delete.png");
break;
case 3:
bitmap = Bitmap.getBitmapResource("email.png");
break;
case 4:
bitmap = Bitmap.getBitmapResource("map.png");
break;
default:
bitmap = Bitmap.getBitmapResource("none.png");
break;
}
Image image = ImageFactory.createImage(bitmap);
// Set image as this menu item's icon
setIcon(image);
}
}
4.b.3. Change the instantiation of menu items to use the new class created ImageMenuItem, pass the name of the menu item to the constructor:
ImageMenuItem addItem = new ImageMenuItem("Add Student", 100, 1, MENU_ADD);
addItem.setCommand(new Command(new CommandHandler() {