Command.java
上传用户:haobig99
上传日期:2022-06-15
资源大小:369k
文件大小:7k
源码类别:

J2ME

开发平台:

Java

  1. /*
  2.  * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
  3.  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  4.  *
  5.  * This code is free software; you can redistribute it and/or modify it
  6.  * under the terms of the GNU General Public License version 2 only, as
  7.  * published by the Free Software Foundation.  Sun designates this
  8.  * particular file as subject to the "Classpath" exception as provided
  9.  * by Sun in the LICENSE file that accompanied this code.
  10.  *
  11.  * This code is distributed in the hope that it will be useful, but WITHOUT
  12.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13.  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14.  * version 2 for more details (a copy is included in the LICENSE file that
  15.  * accompanied this code).
  16.  *
  17.  * You should have received a copy of the GNU General Public License version
  18.  * 2 along with this work; if not, write to the Free Software Foundation,
  19.  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20.  *
  21.  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  22.  * CA 95054 USA or visit www.sun.com if you need additional information or
  23.  * have any questions.
  24.  */
  25. package com.sun.lwuit;
  26. import com.sun.lwuit.events.ActionEvent;
  27. import com.sun.lwuit.events.ActionListener;
  28. /**
  29.  * The action placed on the soft buttons and in the Menu on devices, similar to the
  30.  * MIDP command abstraction and Swing's Actions. Unlike the MIDP abstraction this class 
  31.  * can be derived to implement the right behavior
  32.  * 
  33.  * @author Nir Shabi
  34.  */
  35. public class Command implements ActionListener{
  36.     private boolean disposesDialog = true;
  37.     private Image icon;
  38.     private String command;
  39.     
  40.     /**
  41.      * Simplifies code dealing with commands allowing them to be used in switch statements
  42.      * more easily
  43.      */
  44.     private int commandId;
  45.     
  46.     /**
  47.      * Creates a new instance of Command
  48.      * 
  49.      * @param command the string that will be placed on the Soft buttonsMenu
  50.      */
  51.     public Command(String command) {
  52.         this.command = command;
  53.     }
  54.     /**
  55.      * Creates a new instance of Command
  56.      * 
  57.      * @param command the string that will be placed on the Soft buttonsMenu
  58.      * @param icon the icon representing the command
  59.      */
  60.     public Command(String command, Image icon) {
  61.         this.command = command;
  62.         this.icon = icon;
  63.     }
  64.     /**
  65.      * Creates a new instance of Command
  66.      * 
  67.      * @param command the string that will be placed on the Soft buttonsMenu
  68.      * @param id user defined ID for a command simplifying switch statement code
  69.      * working with a command
  70.      */
  71.     public Command(String command, int id) {
  72.         this.command = command;
  73.         this.commandId = id;
  74.     }
  75.     
  76.     /**
  77.      * Creates a new instance of Command
  78.      * 
  79.      * @param command the string that will be placed on the Soft buttonsMenu
  80.      * @param icon the icon representing the command
  81.      * @param id user defined ID for a command simplifying switch statement code
  82.      * working with a command
  83.      */
  84.     public Command(String command, Image icon, int id) {
  85.         this.command = command;
  86.         this.commandId = id;
  87.         this.icon = icon;
  88.     }
  89.     
  90.     /**
  91.      * Creates a new instance of Command
  92.      * 
  93.      * @param command the string that will be placed on the Soft buttonsMenu
  94.      * @param id user defined ID for a command simplifying switch statement code
  95.      * working with a command
  96.      * @param defaultAction Indicates that this action should occur by default 
  97.      * on fire action event
  98.      * @deprecated this functionality is no longer supported use Form.setDefaultCommand() instead
  99.      */
  100.     public Command(String command, int id, boolean defaultAction) {
  101.         this.command = command;
  102.         this.commandId = id;
  103.     }
  104.     /**
  105.      * Creates a new instance of Command
  106.      * 
  107.      * @param command the string that will be placed on the Soft buttonsMenu
  108.      * @param defaultAction Indicates that this action should occur by default 
  109.      * on fire action event
  110.      * @deprecated this functionality is no longer supported use Form.setDefaultCommand() instead
  111.      */
  112.     public Command(String command, boolean defaultAction) {
  113.         this.command = command;
  114.     }
  115.     /**
  116.      * Return the command ID
  117.      * 
  118.      * @return the command ID
  119.      */
  120.     public int getId() {
  121.         return commandId;
  122.     }
  123.     
  124.     /**
  125.      * gets the Command Name
  126.      * 
  127.      * @return the Command name
  128.      */
  129.     public String getCommandName() {
  130.         return command;
  131.     }
  132.     void setCommandName(String command) {
  133.         this.command = command;
  134.     }
  135.     
  136.     /**
  137.      * Returns the icon representing the command
  138.      * 
  139.      * @return an icon representing the command
  140.      */
  141.     public Image getIcon() {
  142.         return icon;
  143.     }
  144.     
  145.     /**
  146.      * Returns a string representation of the object
  147.      * 
  148.      * @return Returns a string representation of the object
  149.      */
  150.     public String toString() {
  151.         return command;
  152.     }
  153.     
  154.     /**
  155.      * compare two commands
  156.      * 
  157.      * @param obj a Command Object to compare
  158.      * @return true if the obj has the same command name
  159.      */
  160.     public boolean equals(Object obj) {
  161.         if(!(obj instanceof Command)) {
  162.             return false;
  163.         }
  164.         if(((Command)obj).command == null) {
  165.             return (obj != null) && obj.getClass() == getClass() && command == null &&
  166.                 ((Command)obj).icon == icon && ((Command)obj).commandId == commandId;
  167.         } else {
  168.             return (obj != null) && obj.getClass() == getClass() && ((Command)obj).command.equals(command) &&
  169.                 ((Command)obj).icon == icon && ((Command)obj).commandId == commandId;
  170.         }
  171.     }
  172.     /**
  173.      * Allows storing commands in a vector/hashtable
  174.      * 
  175.      * @return unique hashcode for the command class
  176.      */
  177.     public int hashCode() {
  178.         return getClass().hashCode() + commandId;
  179.     }
  180.     
  181.     /**
  182.      * This method is called when the soft button/Menu item is clicked
  183.      * 
  184.      * @param evt the Event Object
  185.      */
  186.     public void actionPerformed(ActionEvent evt) {
  187.     }
  188.     /**
  189.      * Indicates that this action should occur by default on fire action event
  190.      * 
  191.      * @return true if it is the default action event
  192.      * @deprecated this functionality is no longer supported use Form.setDefaultCommand() instead
  193.      */
  194.     public boolean isDefaultAction() {
  195.         return false;
  196.     }
  197.     /**
  198.      * Setting the default action event
  199.      * 
  200.      * @param defaultAction the default action event
  201.      * @deprecated this functionality is no longer supported use Form.setDefaultCommand() instead
  202.      */
  203.     public void setDefaultAction(boolean defaultAction) {
  204.     }
  205.     
  206.     /**
  207.      * Indicates whether this command causes the dialog to dispose implicitly
  208.      */
  209.     void setDisposesDialog(boolean disposesDialog) {
  210.         this.disposesDialog = disposesDialog;
  211.     }
  212.     
  213.     /**
  214.      * Indicates whether this command causes the dialog to dispose implicitly
  215.      */
  216.     boolean isDisposesDialog() {
  217.         return disposesDialog;
  218.     }
  219. }