LoadStaticMidlet.java
/**
* Copyright (c) 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;
import com.nokia.mid.ui.IconCommand;
import com.nokia.mid.ui.VirtualKeyboard;
import java.io.IOException;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
/**
* Simple midlet that displays a static SVG file.
*/
public class LoadStaticMidlet extends MIDlet implements CommandListener {
public static Image zoomIcon = null;
public static Image moveIcon = null;
/**
* Constructor.
*/
public LoadStaticMidlet() {
/**
* VirtualKeyboard is supported from Java Runtime 2.0.0 for Series 40
* onwards. To determine whether a Series 40 device is a full touch
* device and hide the open keypad command from the Options menu.
*/
if (System.getProperty("com.nokia.keyboard.type").equals("None")) {
VirtualKeyboard.hideOpenKeypadCommand(true);
}
try {
/**
* Create images for action button 1
*/
zoomIcon = Image.createImage("/zoomIcon.png");
moveIcon = Image.createImage("/moveIcon.png");
} catch (Exception e) {
e.printStackTrace();
}
// *** create the SVG canvas
svgCanvas = new SvgCanvas2(false);
svgCanvas.setCommandListener(this);
// *** grab a reference to the display
display = Display.getDisplay(this);
display.setCurrent(svgCanvas);
// *** set up the midlet menu
int hotKey = 1;
/**
* IconCommand is supported from Java Runtime 2.0.0 for Series 40
* onwards. Creates a new IconCommand Zoom with the given label,
* unselected icon, selected icon, type and priority.
*/
cmZoom = new IconCommand("Zoom", zoomIcon, zoomIcon, IconCommand.ICON_OK, hotKey++);
svgCanvas.addCommand(cmZoom);
/**
* IconCommand is supported from Java Runtime 2.0.0 for Series 40
* onwards. Creates a new IconCommand Move with the given label,
* unselected icon, selected icon, type and priority.
*/
cmMove = new IconCommand("Move", moveIcon, moveIcon, IconCommand.ICON_OK, hotKey++);
cmZoomIn = new Command("Zoom In", Command.SCREEN, hotKey++);
svgCanvas.addCommand(cmZoomIn);
cmZoomOut = new Command("Zoom Out", Command.SCREEN, hotKey++);
svgCanvas.addCommand(cmZoomOut);
cmRotateIn = new Command("Rotate Counter", Command.SCREEN, hotKey++);
svgCanvas.addCommand(cmRotateIn);
cmRotateOut = new Command("Rotate Clockwise", Command.SCREEN, hotKey++);
svgCanvas.addCommand(cmRotateOut);
cmRestoreView = new Command("Restore View", Command.SCREEN, hotKey++);
svgCanvas.addCommand(cmRestoreView);
cmExit = new Command("Exit", Command.BACK, hotKey++);
svgCanvas.addCommand(cmExit);
SvgCanvas2.iconCommandState = SvgCanvas2.IMAGE_MOVE;
}
/**
* Required midlet method.
*/
public void startApp() {
}
/**
* Required midlet method.
*/
public void pauseApp() {
}
/**
* Required midlet method.
*/
public void destroyApp(boolean unconditional) {
}
/**
* Handle the various menu actions.
*/
public void commandAction(Command c, Displayable s) {
if (c == cmExit) {
try {
if (SvgCanvas2.iConnection != null) {
SvgCanvas2.iConnection.removeDataListener();
SvgCanvas2.iConnection.close();
SvgCanvas2.iConnection = null;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
destroyApp(false);
notifyDestroyed();
} else if (c == cmZoomIn) {
svgCanvas.zoomIn();
} else if (c == cmZoomOut) {
svgCanvas.zoomOut();
} else if (c == cmRotateIn) {
svgCanvas.rotateIn();
} else if (c == cmRotateOut) {
svgCanvas.rotateOut();
} else if (c == cmRestoreView) {
svgCanvas.restoreView();
} else if (c == cmMove) {
SvgCanvas2.iconCommandState = SvgCanvas2.IMAGE_MOVE;
svgCanvas.addCommand(cmZoom);
svgCanvas.removeCommand(cmMove);
} else if (c == cmZoom) {
SvgCanvas2.iconCommandState = SvgCanvas2.IMAGE_ZOOM;
svgCanvas.addCommand(cmMove);
svgCanvas.removeCommand(cmZoom);
}
}
/*
* Private members
*/
private Display display;
private SvgCanvas2 svgCanvas;
private Command cmZoomIn;
private Command cmZoomOut;
private Command cmRotateIn;
private Command cmRotateOut;
private Command cmRestoreView;
private Command cmExit;
private IconCommand cmMove;
private IconCommand cmZoom;
}