/*
*
* Copyright (c) 2007, Sun Microsystems, Inc.
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions 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.
* * Neither the name of Sun Microsystems nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import java.io.ByteArrayOutputStream;
import java.util.Date;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.DateField;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.ItemCommandListener;
import javax.microedition.lcdui.List;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextField;
import javax.microedition.pim.Contact;
import javax.microedition.pim.Event;
import javax.microedition.pim.PIM;
import javax.microedition.pim.PIMException;
import javax.microedition.pim.PIMItem;
import javax.microedition.pim.ToDo;
/**
* Demonstrate the use of JSR 75 PIM APIs
*/
public class ItemDisplayScreen extends Form implements CommandListener, ItemCommandListener {
private final Command editArrayCommand = new Command("Edit", Command.OK, 1);
private final Command editBooleanCommand = new Command("Edit", Command.OK, 1);
private final Command commitCommand = new Command("Commit", Command.OK, 2);
private final Command backCommand = new Command("Back", Command.BACK, 1);
private final Command showVCard = new Command("Show vCard", Command.SCREEN, 5);
private final Command showVCalendar = new Command("Show vCalendar", Command.SCREEN, 5);
private final Command addField = new Command("Add Field", Command.SCREEN, 2);
private final Command removeField = new Command("Remove Field", Command.SCREEN, 3);
private final Umacoo app;
private final ItemSelectionScreen caller;
private final PIMItem item;
private final Hashtable fieldTable = new Hashtable(); // maps field indices to items
public ItemDisplayScreen(Umacoo midlet, ItemSelectionScreen caller, PIMItem item)
throws PIMException {
super("UMC-PIM-Item");
this.app = midlet;
this.caller = caller;
this.item = item;
populateForm();
addCommand(backCommand);
addCommand(commitCommand);
setCommandListener(this);
}
private boolean isClassField(int field) {
return (item instanceof Contact && (field == Contact.CLASS)) ||
(item instanceof Event && (field == Event.CLASS)) ||
(item instanceof ToDo && (field == ToDo.CLASS));
}
private void populateForm() throws PIMException {
deleteAll();
fieldTable.clear();
int[] fields = item.getPIMList().getSupportedFields();
boolean allFieldsUsed = true;
for (int i = 0; i < fields.length; i++) {
int field = fields[i];
// exclude CLASS field
if (isClassField(field)) {
continue;
}
if (item.countValues(field) == 0) {
allFieldsUsed = false;
continue;
}
int dataType = item.getPIMList().getFieldDataType(field);
String label = item.getPIMList().getFieldLabel(field);
Item formItem = null;
switch (dataType) {
case PIMItem.STRING: {
String sValue = item.getString(field, 0);
if (sValue == null) {
sValue = "";
}
int style = TextField.ANY;
// cater for specific field styles
if (item instanceof Contact) {
switch (field) {
case Contact.EMAIL:
style = TextField.EMAILADDR;
break;
case Contact.TEL:
style = TextField.PHONENUMBER;
break;
case Contact.URL:
style = TextField.URL;
break;
}
}
try {
formItem = new TextField(label, sValue, 128, style);
} catch (IllegalArgumentException e) {
formItem = new TextField(label, sValue, 128, TextField.ANY);
}
break;
}
case PIMItem.BOOLEAN: {
formItem = new StringItem(label, item.getBoolean(field, 0) ? "yes" : "no");
formItem.setDefaultCommand(editBooleanCommand);
break;
}
case PIMItem.STRING_ARRAY: {
String[] a = item.getStringArray(field, 0);
if (a != null) {
formItem = new StringItem(label, joinStringArray(a));
formItem.setDefaultCommand(editArrayCommand);
}
break;
}
case PIMItem.DATE: {
long time = item.getDate(field, 0);
int style = DateField.DATE_TIME;
// some fields are date only, without a time.
// correct for these fields:
if (item instanceof Contact) {
switch (field) {
case Contact.BIRTHDAY:
style = DateField.DATE;
break;
}
}
formItem = new DateField(label, style);
((DateField)formItem).setDate(new Date(time));
break;
}
case PIMItem.INT: {
formItem = new TextField(label, String.valueOf(item.getInt(field, 0)), 64,
TextField.DECIMAL);
break;
}
case PIMItem.BINARY: {
byte[] data = item.getBinary(field, 0);
if (data != null) {
formItem = new StringItem(label, data.length + " bytes");
}
break;
}
}
if (formItem != null) {
append(formItem);
fieldTable.put(formItem, new Integer(field));
formItem.addCommand(removeField);
formItem.setItemCommandListener(this);
}
}
if (item instanceof Contact) {
addCommand(showVCard);
} else {
没有合适的资源?快使用搜索试试~ 我知道了~
umc.zip_DEMO_UMC
共84个文件
png:29个
java:20个
class:18个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 39 浏览量
2022-09-24
02:04:42
上传
评论
收藏 320KB ZIP 举报
温馨提示
实现对通讯录的一般操作,是一个原形Demo程序。
资源推荐
资源详情
资源评论
收起资源包目录
umc.zip (84个子文件)
umc
.eclipseme 224B
bin
00.png 2KB
User.class 437B
04.png 2KB
Icon.png 116B
01.png 2KB
07.png 180B
PIMListForm.class 5KB
RegisterForm.class 3KB
02.png 2KB
06.png 171B
MainForm$1.class 955B
LoginForm.class 3KB
03.png 2KB
Umacoo.class 10KB
05.png 2KB
MainForm.class 4KB
Indicator.class 2KB
HttpPoster.class 5KB
08.png 168B
deployed
res
00.png 2KB
04.png 2KB
Icon.png 116B
01.png 2KB
07.png 180B
02.png 2KB
06.png 171B
03.png 2KB
05.png 2KB
08.png 168B
pc.bat 45B
bak
ListSelectionScreen.java 3KB
HttpPoster.java 4KB
UmcDemo.java 532B
MainForm.java 5KB
ItemSelectionScreen.java 11KB
res_2.rar 19KB
bak
umc.png 5KB
5.png 2KB
1.png 2KB
main.PNG 31KB
0.png 96B
res.rar 13KB
6.png 2KB
2.png 2KB
4.png 2KB
3.png 2KB
IMainForm.java 115B
HttpUpload.java 976B
CustomItemDemo.java 3KB
ItemDisplayScreen.java 19KB
umc.jad 424B
res.rar 14KB
umc.jar 92KB
HelloWorld.java 2KB
Table.java 8KB
TextInput.java 3KB
.settings
org.eclipse.core.resources.prefs 88B
eclipseme.core.prefs 117B
org.eclipse.jdt.core.prefs 208B
src
HttpPoster.java 5KB
User.java 292B
MainForm.java 3KB
LoginForm.java 2KB
Umacoo.java 11KB
PIMListForm.java 4KB
RegisterForm.java 3KB
Indicator.java 2KB
.project 535B
.eclipseme.tmp
verified
classes
User.class 437B
PIMListForm.class 6KB
RegisterForm.class 3KB
MainForm$1.class 998B
LoginForm.class 3KB
Umacoo.class 12KB
MainForm.class 4KB
Indicator.class 2KB
HttpPoster.class 6KB
libs
emulation
Umacoo.jar 34KB
umc.jad 432B
umc.jad 408B
.classpath 242B
m.bat 45B
umc_pc.jad 396B
共 84 条
- 1
资源评论
小贝德罗
- 粉丝: 68
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 3122080306 邹子轩 实验报告二.docx
- 基于STM32 NUCLEO板设计彩色LED照明灯(纯cubeMX开发)(大赛作品,文档完整,可直接运行)
- 发那科工业机器人保养大全
- Sphere.h
- REMD固有时间尺度分解信号分量可视化(Matlab完整源码和数据)
- 嵌入式系统双单片机STC89C52+STC15W104多功能学习板电路图可扩展 适用于单片机初学者和教学
- 基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)大赛作品
- XILINXFPGA源码基于Spartan3火龙刀系列FPGA开发板VGA测试例程
- Java聊天室的设计与实现【尚学堂·百战程序员】
- python中matplotlib教程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功