/** * Copyright (c) 2013 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.voip.view.components; import java.io.IOException; import javax.microedition.lcdui.CustomItem; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; public class ToggleSwitchItem extends CustomItem { private static Image IMAGE_TOGGLE_SWITCH_TOGGLED; private static Image IMAGE_TOGGLE_SWITCH_UNTOGGLED; private String label; private boolean toggled; private boolean pressed; static { try { IMAGE_TOGGLE_SWITCH_TOGGLED = Image .createImage("/toggle_switch_toggled.png"); IMAGE_TOGGLE_SWITCH_UNTOGGLED = Image .createImage("/toggle_switch_untoggled.png"); } catch (IOException ex) { ex.printStackTrace(); } } public ToggleSwitchItem(String label) { super(""); this.label = label; } protected int getMinContentWidth() { return 240; } protected int getMinContentHeight() { return 50; } protected int getPrefContentWidth(int height) { return 240; } protected int getPrefContentHeight(int width) { return 50; } /** * @see javax.microedition.lcdui.CustomItem#paint(javax.microedition.lcdui.Graphics, int, int) */ protected void paint(Graphics g, int w, int h) { g.setColor(Theme.FOREGROUND_COLOR); g.drawString(label, 0, 5, Graphics.TOP | Graphics.LEFT); Image i = toggled ? IMAGE_TOGGLE_SWITCH_TOGGLED : IMAGE_TOGGLE_SWITCH_UNTOGGLED; g.drawImage(i, w - i.getWidth(), 0, Graphics.TOP | Graphics.LEFT); } public void setToggled(boolean toggled) { this.toggled = toggled; repaint(); } public boolean isToggled() { return toggled; } /** * @see javax.microedition.lcdui.CustomItem#pointerPressed(int, int) */ public void pointerPressed(int x, int y) { pressed = true; repaint(); } /** * @see javax.microedition.lcdui.CustomItem#pointerReleased(int, int) */ public void pointerReleased(int x, int y) { if (pressed == true) { setToggled(!toggled); } pressed = false; repaint(); } }