📄 guicontroller.java
字号:
/*////////////////////////////////////////////////////////////////////
//文档生成日期:2005.10.12
//
//(1)概述:
//类名称:GUIController
//类说明:
// MVC中的控制器部分,负责界面事件的处理,以及决定该显示哪一个Form。
//
//所在子系统:VideoIM
//
//系统总描述:
我们提供的VideoIM手机自动拍照上传器J2ME版本[开源]是
一个可以下载到手机(例如Nokia7610已经确实可以下载安装并正常运行)的应用程序,
用来自动驱动手机摄像头定时拍摄,并后台将JPEG图像(很小,大约几KB)上传到服务器上,
这样就可以帮助其他系统工作,比如PC机上的MSN Messenger可以和你的移动MSN Messenger
通过这种方式视频聊天,对方可以每隔十几秒钟看到你的手机所看到的画面了。
子系统描述:
VideoIM的功能列表:
1:我要MobileWebCam
启动MobileWebCam
停止MobileWebCam
2:MobileWebCam设置
3:关于我
4:退出
//(2)历史记录:
//创建人: 郑昀(2005.10.07)
//联系我: Google Talk >> zhengyun@gmail.com
//Blogs: http://blog.csdn.net/zhengyun_ustc/以及http://www.cnblogs.com/zhengyun_ustc
//(3)版权声明:
//由于我这个版本的VideoIM手机自动拍照上传器也是基于Mowecam的设计理念基础上改编而来的,
//所以决定遵照GPL协议的大意开放源代码,您可以自由传播和修改,在遵照GPL协议的约束条件的前提下。
//(4)相关资源:
1:《[J2ME]VideoIM手机自动拍照上传器开源说明》
2:《[J2ME]VideoIM手机自动拍照上传器设计说明》
3:下载源代码:
////////////////////////////////////////////////////////////////////*/
package com.ultrapower.control;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Displayable;
import com.ultrapower.common.CommandResources;
import com.ultrapower.facade.RmsFacade;
import com.ultrapower.midlet.VideoCoolala;
import com.ultrapower.model.VideoSettings;
import com.ultrapower.view.About;
import com.ultrapower.view.FormPostProgress;
import com.ultrapower.view.FormSetting;
import com.ultrapower.view.FormWebcam;
import com.ultrapower.view.MainMenuList;
import com.ultrapower.view.WaitFlash;
/**********************************************************
// GUIController
//
// Class Description:
// MVC中的控制器部分,负责界面事件的处理,以及决定该显示哪一个Form。
//
// Author:
// zhengyun@ultrapower 2005.10.07
//
**********************************************************/
public class GUIController {
public VideoCoolala m_mobilewebcamMidlet;
private VideoSettings m_Settings;
private MainMenuList m_listMenu;
//private FormPostProgress m_progressForm;
private FormSetting m_settingForm;
private FormWebcam m_webcamForm;
private WaitFlash m_waitFlash;
private Alert m_alert;
private About m_about;
//////////////////////////////////////////////////////////
// 下面这4个参数是专门为了后台处理线程传递数据进来到控制器准备的
// 所以保证这4个set函数为线程同步的
/*
* 将要发送的图像数据的总字节数目
*/
private String m_sPostDataTotalLength;
public synchronized void setPostDataTotalLength(String value)
{
m_sPostDataTotalLength = value;
}
/*
* 还剩余的图像字节数目
*/
private String m_sPostingDataLength;
public synchronized void setPostingDataLength(String value)
{
m_sPostingDataLength = value;
}
/*
* 从远端服务器传回来的错误号
*/
private String m_sRemoteServerResponse;
public synchronized void setRemoteServerResponse(String value)
{
m_sRemoteServerResponse = value;
}
/*
* 在snapshot时发生的异常报告
*/
private String m_sSnapshotException;
public synchronized void setSnapshotException(String value)
{
m_sSnapshotException = value;
}
/*
* 通知发送数据的线程退出,
* 利用这种方式,使得后台线程和界面同步退出
*/
private boolean m_bStopPostData = false;
public synchronized boolean getStopPostData()
{
return m_bStopPostData;
}
/*
* 在后台线程中New出来一个等候动画界面,然后传出来到控制器上
* 这样,让对等候界面上的文字操作还在控制器中
*/
//public synchronized void setProgressForm(FormPostProgress value)
//{
//m_progressForm = value;
//}
/////////////////////////////////////////////////////////////
/** Nbr of keys */
protected static final int NBR_OF_KEYS = 6;
public GUIController(VideoCoolala midletMain){
m_mobilewebcamMidlet = midletMain;
}
/**********************************************************
// GUIController::init()
//
// Description:
// 初始化控制器:
* 初始化各个Form界面
* 设定先显示MainMenu列表界面
//
// Parameters:
// Return Values:
// Author:
// zhengyun@ultrapower 2005.10.12
//
**********************************************************/
public void init(){
// Initialize the RMS persistence facade
RmsFacade.init(NBR_OF_KEYS);
m_Settings = VideoSettings.getInstance();
// init ui
m_listMenu = new MainMenuList(
String.valueOf(CommandResources.getChars(
CommandResources.TXT_T_APP)), this);
setCurrent(m_listMenu);
m_about = new About(
String.valueOf(CommandResources.getChars(
CommandResources.TXT_T_ABOUT)));
m_settingForm = new FormSetting(this);
m_webcamForm = new FormWebcam(
String.valueOf(CommandResources.getChars(
CommandResources.TXT_T_STOPWEBCAM))
,this);
// 注意,此处不再初始化FormPostProgress了!!
}
/**********************************************************
// GUIController::getSettings()
//
// Description:
// 返回当前封装了RMS操作的Settings的类实例
//
// Parameters:
// Return Values:
// Author:
// zhengyun@ultrapower 2005.10.07
//
**********************************************************/
public VideoSettings getSettings(){
return m_Settings;
}
/**********************************************************
// GUIController::setCurrent()
//
// Description:
// 设置当前显示的界面
//
// Parameters:
// Return Values:
// Author:
// zhengyun@ultrapower 2005.10.07
//
**********************************************************/
public void setCurrent(Displayable disp){
m_mobilewebcamMidlet.setCurrent(disp);
}
public void setCurrent(Alert alert, Displayable disp){
m_mobilewebcamMidlet.setCurrent(alert, disp);
}
/**********************************************************
// GUIController::setProgress/setTitle
//
// Description:
// 设置FormProgress界面上的显示文字/标题的
//
// Parameters:
// Return Values:
// Author:
// zhengyun@ultrapower 2005.10.07
//
**********************************************************/
/*public void setProgress(String title, String message){
m_progressForm.setProgress(title, message);
}
public void setTitle(String title){
m_progressForm.setTitle(title);
}*/
/**********************************************************
// GUIController::EventID
//
// Description:
// 定义事件ID内部类
//
// Parameters:
// Return Values:
// Author:
// zhengyun@ultrapower 2005.10.07
//
**********************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -