movieratingsui.java

来自「SUN公司发布的SmartTicket 2.0蓝图」· Java 代码 · 共 524 行 · 第 1/2 页

JAVA
524
字号
/* * Copyright 2001, 2002, 2003 Sun Microsystems, Inc. All Rights Reserved. * Except for any files in PNG format (which are marked with the filename * extension ".png"), GIF format (which are marked with the filename * extension ".gif"), or JPEG format (which are marked with the filename * extension ".jpg"), redistribution and use in source and binary forms, * with or without modification, are permitted provided that the * following conditions are met: * - Redistribution of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistribution in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * You may compile, use, perform and display the following files with * original Java Smart Ticket Sample Application code obtained from Sun * Microsystems, Inc. only: * - files in PNG format and having the ".png" extension * - files in GIF format and having the ".gif" extension * - files in JPEG format and having the ".jpg" extension * You may not modify or redistribute .png, .gif, or .jpg files in any * form, in whole or in part, by any means without prior written * authorization from Sun Microsystems, Inc. and its licensors, if any. * Neither the name of Sun Microsystems, Inc., the 'Java Smart Ticket * Sample Application', 'Java', 'Java'-based names, or the names of * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * This software is provided "AS IS," without a warranty of any kind. ALL * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN * MIDROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * You acknowledge that this software is not designed, licensed or * intended for use in the design, construction, operation or maintenance * of any nuclear facility. * $Id: MovieRatingsUI.java,v 1.12 2003/06/24 06:57:24 ro89390 Exp $ */package com.sun.j2me.blueprints.smartticket.client.midp.ui;import javax.microedition.lcdui.*;import com.sun.j2me.blueprints.smartticket.shared.midp.model.MovieRating;import com.sun.j2me.blueprints.smartticket.client.midp.ui.UIController.EventIds;public class MovieRatingsUI extends List implements CommandListener {    private MovieRating[] movieRatings;    private UIController uiController;    private Command syncCommand;    private Command rateCommand;    private Command sendCommand;    public MovieRatingsUI(UIController uiController) {        super(uiController.getString(UIMessageCodes.MOVIE_RATINGS), IMPLICIT);        this.uiController = uiController;        syncCommand =             new Command(uiController.getString(UIMessageCodes.SYNC_ALL_RATINGS),                         Command.SCREEN, 2);        addCommand(syncCommand);        rateCommand =             new Command(uiController.getString(UIMessageCodes.EDIT_RATING),                         Command.ITEM, 1);        addCommand(rateCommand);        sendCommand =             new Command(uiController.getString(UIMessageCodes.SEND_RECOMMENDATION),                         Command.ITEM, 2);        addCommand(sendCommand);        setCommandListener(this);    }    public void init(MovieRating[] movieRatings, String[] titles) {        deleteAll();        StringBuffer buf = new StringBuffer();        for (int i = 0; i != movieRatings.length; i++) {            // Relies on starNumber from 0 to 5 and continuous            // numbering of the icon indexes            int starNumber = movieRatings[i].getStarNumber();            Image image =                 uiController.getImage((byte) (new Integer(starNumber).byteValue()                                               + UIController.ICON_IDX_RATING_UNRATED));            buf.append(titles[i]);            if (!movieRatings[i].getAuthor().equals(MovieRating.AUTHOR_SELF)) {                buf.append(" [");                buf.append(movieRatings[i].getAuthor());                buf.append("]");            }             append(buf.toString(), image);            buf.delete(0, buf.length());        }         if (movieRatings.length > 0) {            addCommand(sendCommand);            addCommand(rateCommand);        } else {            removeCommand(sendCommand);            removeCommand(rateCommand);        }         this.movieRatings = movieRatings;    }     public void commandAction(Command command, Displayable displayable) {        if (command == syncCommand) {            uiController.handleEvent(UIController.EventIds.EVENT_ID_MOVIE_RATINGS_SYNC_REQUESTED);        } else if (command == rateCommand || command == List.SELECT_COMMAND) {            uiController.handleEvent(UIController.EventIds.EVENT_ID_MOVIE_RATING_SELECTED,                                      new Object[] {                movieRatings[getSelectedIndex()]            });        } else if (command == sendCommand) {            uiController.handleEvent(UIController.EventIds.EVENT_ID_MOVIE_RATING_MESSAGE_SEND_SELECTED,                                      new Object[] {                movieRatings[getSelectedIndex()]            });        } else {            uiController.commandAction(command, displayable);        }     }     public static class MovieRatingMessageReceiveUI extends Form         implements CommandListener {        private UIController uiController;        private MovieRating movieRating;        private StringItem titleItem;        private MovieRatingItem movieRatingItem;        private StringItem commentItem;        private StringItem senderItem;        private StringItem messageItem;        private Command okCommand;        private Command cancelCommand;        public MovieRatingMessageReceiveUI(UIController uiController) {            super(uiController.getString(UIMessageCodes.REVIEW_RECOMMENDATION));            this.uiController = uiController;            titleItem =                 new StringItem(uiController.getString(UIMessageCodes.MOVIE_TITLE),                                null);            append(titleItem);            movieRatingItem = new MovieRatingItem(uiController);            movieRatingItem.setLayout(Item.LAYOUT_NEWLINE_BEFORE                                       | Item.LAYOUT_NEWLINE_AFTER);            append(movieRatingItem);            commentItem =                 new StringItem(uiController.getString(UIMessageCodes.COMMENT),                                null);            append(commentItem);            senderItem =                 new StringItem(uiController.getString(UIMessageCodes.FROM),                                null);            append(senderItem);            messageItem =                 new StringItem(uiController.getString(UIMessageCodes.MESSAGE),                                null);            append(messageItem);            okCommand =                 new Command(uiController.getString(UIMessageCodes.SAVE),                             Command.OK, 1);            addCommand(okCommand);            cancelCommand =                 new Command(uiController.getString(UIMessageCodes.DISMISS),                             Command.CANCEL, 1);            addCommand(cancelCommand);            setCommandListener(this);        }        public void init(MovieRating movieRating, String movieTitle,                          String sender, String message) {            this.movieRating = movieRating;            titleItem.setText(movieTitle);            movieRatingItem.init(movieRating.getStarNumber(), false);            commentItem.setText(movieRating.getComment());            senderItem.setText(sender);            messageItem.setText(message);        }         public void commandAction(Command command, Displayable displayable) {            if (command == okCommand) {                uiController.handleEvent(EventIds.EVENT_ID_MOVIE_RATING_MESSAGE_RECEIVE_SAVE_REQUESTED,                                          new Object[]{});            } else {    // (command == cancelCommand)                uiController.handleEvent(EventIds.EVENT_ID_MOVIE_RATING_MESSAGE_RECEIVE_SAVE_CANCELLED,                                          null);            }         }     }    public static class MovieRatingMessageSendUI extends Form         implements CommandListener {        private UIController uiController;        private MovieRating movieRating;        private StringItem titleItem;        private MovieRatingItem movieRatingItem;        private StringItem commentItem;        private TextField messageField;        private Command okCommand;        private Command cancelCommand;        public MovieRatingMessageSendUI(UIController uiController) {            super(uiController.getString(UIMessageCodes.SEND_RECOMMENDATION));            this.uiController = uiController;            titleItem =                 new StringItem(uiController.getString(UIMessageCodes.MOVIE_TITLE),                                null);            append(titleItem);            movieRatingItem = new MovieRatingItem(uiController);            movieRatingItem.setLayout(Item.LAYOUT_NEWLINE_BEFORE                                       | Item.LAYOUT_NEWLINE_AFTER);            append(movieRatingItem);            commentItem =                 new StringItem(uiController.getString(UIMessageCodes.COMMENT),                                null);            append(commentItem);            messageField =                 new TextField(uiController.getString(UIMessageCodes.MESSAGE),                               null, 100, TextField.ANY);            append(messageField);            okCommand =                 new Command(uiController.getString(UIMessageCodes.SEND),                             Command.OK, 1);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?