FtUIUtils.java

/*
 * Copyright © 2012 Nokia Corporation. All rights reserved.
 * Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation.
 * Oracle and Java are trademarks or registered trademarks of Oracle and/or its
 * affiliates. Other product and company names mentioned herein may be trademarks
 * or trade names of their respective owners.
 * See LICENSE.TXT for license information.
 */
package com.nokia.example.attractions.utils;

import com.nokia.mid.ui.CategoryBar;
import com.nokia.mid.ui.IconCommand;
import com.nokia.mid.ui.VirtualKeyboard;
import java.io.IOException;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Image;

/**
 * UI utils for FT devices
 */
public class FtUIUtils
    extends UIUtils {

    FtUIUtils() {
    }

    /**
     * @see UIUtils#initialize()
     */
    protected void initialize() {
        super.initialize();
        VirtualKeyboard.hideOpenKeypadCommand(true);
    }

    /**
     * @see UIUtils#newCommand(int)
     */
    protected Command newCommand(int command) {
        Command result;
        switch (command) {
            case EXIT:
                result = new IconCommand("Exit", Command.EXIT, 1,
                    IconCommand.ICON_BACK);
                break;
            case BACK:
                result = new IconCommand("Back", Command.BACK, 1,
                    IconCommand.ICON_BACK);
                break;
            case MAP:
                result = newCommand("Map", "/icons/map.png",
                    Command.SCREEN, 1);
                break;
            case GUIDES:
                result = new Command("Guides", Command.SCREEN, 2);
                break;
            case BUY_GUIDES:
                result = newCommand("Buy more", "/icons/ovi_store.png",
                    Command.SCREEN, 2);
                break;
            case ABOUT:
                result = new Command("About", Command.HELP, 3);
                break;
            case HELP:
                result = new Command("Help", Command.HELP, 3);
                break;
            case POLICY:
                result = new Command("Policy", Command.HELP, 3);
                break;
            case SETTINGS:
                result = new IconCommand("Settings", Command.HELP, 3,
                    IconCommand.ICON_OPTIONS);
                break;
            case OPEN:
                result = new Command("Open", Command.OK, 1);
                break;
            case BUY:
                result = new Command("Buy", Command.OK, 1);
                break;
            case ACCEPT:
                result = newCommand("Accept", "/icons/ok.png",
                    Command.OK, 1);
                break;
            case CANCEL:
                result = newCommand("Cancel", "/icons/cancel.png",
                    Command.BACK, 1);
                break;
            case CHANGE:
                result = new Command("Change", Command.OK, 1);
                break;
            case SAVE:
                result = newCommand("Save", "/icons/save.png", Command.OK, 2);
                break;
            default:
                result = null;
                break;
        }
        return result;
    }

    /**
     * @see UIUtils#getBottomPadding()
     */
    protected int getBottomPadding() {
        return CategoryBar.getBestImageHeight(CategoryBar.IMAGE_TYPE_BACKGROUND)
            - 4;
    }

    private Command newCommand(String label, String iconPath, int commandType,
        int priority) {
        try {
            Image icon = ImageLoader.getInstance().loadImage(iconPath, null);
            return new IconCommand(label, icon, icon, commandType, priority);
        }
        catch (IOException e) {
            return new Command(label, commandType, priority);
        }
    }
}