/* * HelpForm.java * * Copyright (C) 2008 Irving Bunton, Jr * http://www.substanceofcode.com * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ // Expand to define MIDP define //#define DMIDP20 // Expand to define memory size define //#define DREGULARMEM // Expand to define logging define //#define DNOLOGGING // Expand to define test ui define //#define DNOTESTUI package com.substanceofcode.rssreader.presentation; import java.lang.IllegalArgumentException; import java.io.IOException; import java.util.Hashtable; import com.substanceofcode.rssreader.businessentities.RssReaderSettings; import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.midlet.MIDlet; import javax.microedition.lcdui.Item; //#ifndef DTESTUI //@import javax.microedition.lcdui.Form; //@import javax.microedition.lcdui.StringItem; //#else // If using the test UI define the Test UI's import com.substanceofcode.testlcdui.Form; import com.substanceofcode.testlcdui.StringItem; //#endif import javax.microedition.lcdui.Item; import cz.cacek.ebook.util.ResourceProviderME; //#ifdef DLOGGING import net.sf.jlogmicro.util.logging.Logger; import net.sf.jlogmicro.util.logging.Level; //#endif /** * * @author Tommi Laukkanen */ public class HelpForm //#ifndef DSMALLMEM extends Form implements CommandListener, Runnable //#endif { //#ifndef DSMALLMEM private RssReaderMIDlet m_midlet; private Command m_backCommand; // The back to the previous screen private Command m_aboutCommand; // The about command private Displayable m_dprev; private Item m_iprev; //#ifdef DLOGGING private Logger m_logger = Logger.getLogger("HelpForm"); private boolean m_fineLoggable = m_logger.isLoggable(Level.FINE); private boolean m_finerLoggable = m_logger.isLoggable(Level.FINER); private boolean m_finestLoggable = m_logger.isLoggable(Level.FINEST); //#endif /** Creates a new instance of HelpForm */ private HelpForm(RssReaderMIDlet midlet, Displayable dprev, Item iprev) { super(ResourceProviderME.get("title.help")); m_midlet = midlet; m_dprev = dprev; m_iprev = iprev; m_backCommand = UiUtil.getCmdRsc("cmd.back", Command.BACK, 1); this.addCommand( m_backCommand ); m_aboutCommand = UiUtil.getCmdRsc("cmd.about", Command.SCREEN, 2); this.addCommand( m_aboutCommand ); this.setCommandListener( this ); } /** Creates a new instance of HelpForm */ public HelpForm(RssReaderMIDlet midlet, Displayable dprev) { this(midlet, dprev, null); } //#ifdef DMIDP20 /** Creates a new instance of HelpForm */ public HelpForm(RssReaderMIDlet midlet, Item iprev) { this(midlet, null, iprev); } //#endif public void commandAction(Command command, Displayable displayable) { //#ifdef DTESTUI super.outputCmdAct(command, displayable); //#endif if(command==m_backCommand) { if (m_dprev != null) { m_midlet.setCurrent(m_dprev); //#ifdef DMIDP20 } else if (m_iprev != null) { m_midlet.setCurrentItem(m_iprev); //#endif } } if (command==m_aboutCommand) { new Thread(this).start(); } } /** * Add help text from resource info. * * @param cmd * @param aKey * @return final * @author Irv Bunton */ final public int appendRsc(String aKey) { return super.append(ResourceProviderME.get(aKey)); } /** * Add help for a command using the command's Label and text from * resource info. * * @param cmd * @param aKey * @return final * @author Irv Bunton */ final public int appendCmdHelpRsc(Command cmd, String aKey) { StringItem si = new StringItem(cmd.getLabel() + ":", ResourceProviderME.get(aKey)); //#ifdef DMIDP20 si.setLayout(Item.LAYOUT_BOTTOM); //#endif return super.append(si); } /** * Add help for an item using the item's Label and text from * resource info. * * @param item * @param aKey * @return final * @author Irv Bunton */ final public int appendItemHelpRsc(Item item, String aKey) { StringItem si = new StringItem(item.getLabel(), ResourceProviderME.get(aKey)); //#ifdef DMIDP20 si.setLayout(Item.LAYOUT_BOTTOM); //#endif return super.append(si); } public void run() { Alert about = HelpForm.getAbout(m_midlet); m_midlet.setCurrent( about, this ); } //#endif /** * Create about alert. * @author Irving Bunton * @version 1.0 */ final public static Alert getAbout(MIDlet midlet) { final Alert about = new Alert(ResourceProviderME.get( "alert.about.title"), ResourceProviderME.get("alert.about", midlet.getAppProperty("MIDlet-Version") + "-" + midlet.getAppProperty("Program-Version")), null, AlertType.INFO); about.setTimeout(Alert.FOREVER); return about; } }