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 + -
显示快捷键?