package snowFallSWT.gui;
import java.text.NumberFormat;
import java.util.HashSet;
import jSnowFall.applicationContext.ApplicationContext;
import jSnowFall.applicationContext.model.XMLSystemModelPool;
import jSnowFall.donwLoadThread.filler.modelFiller.HttpBlockFillerFactory;
import jSnowFall.donwLoadThread.filler.modelFiller.HttpInitStratgy;
import jSnowFall.donwLoadThread.filler.modelFiller.VodHttpBlockFillerFactory;
import jSnowFall.donwLoadThread.filler.modelFiller.VodHttpInitStratgy;
import jSnowFall.model.FileModel;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.custom.StackLayout;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.layout.GridData;
import snowFallSWT.SWTApplicationMission;
import snowFallSWT.SWTApplicationMissionManager;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
/**
* 应用程序主界面
* @author solonote
* @version 0.1.0
*/
public class SWTApplicationGUI {
/**
* 应用程序Shell
*/
private Shell sShell = null; // @jve:decl-index=0:visual-constraint="151,35"
/**
* menuBar,尚未使用
*/
private Menu menuBar = null; // @jve:decl-index=0:visual-constraint="0,30"
/**
* 分割窗,用来分割任务列表和任务日志选项卡
*/
private SashForm missionSashForm = null;
/**
* 任务列表
*/
private Table missionTable = null;
/**
* 任务列表的TableViewer
*/
private TableViewer missionTableViewer = null;
/**
* 当前gui正在关注的任务
*/
private FileModel currentlyMissionModel = null; // @jve:decl-index=0:
/**
* 任务日志选项卡的容器
*/
private Composite missionLogComposite = null;
/**
* missionLogComposite的布局方式:堆布局
*/
private StackLayout stackLayout = new StackLayout(); // @jve:decl-index=0:
/**
* 应用中的tabFolder集合
*/
private HashSet<TabFolder> tabFolderSet = null; // @jve:decl-index=0:
/**
* 当前展示的Folder
*/
private TabFolder currentlyFolder = null;
/**
* 顶部的工具栏
*/
private ToolBar toolBar = null;
/**
* 调用此GUI
*/
public void openGUI() {
//step1.创建Shell
createSShell();
Display display = Display.getDefault();
//step2.设置ApplicationContext的ApplicationModelPool
ApplicationContext.getInstance().setApplicationModelPool(XMLSystemModelPool.getInstanse());
//step3.初始化ApplicationMissionManager并设定到ApplicationContext中
ApplicationContext.getInstance().setApplicationMissionManager
(
new SWTApplicationMissionManager
(
this,
VodHttpBlockFillerFactory.getInstance(),
new VodHttpInitStratgy()
)
);
this.sShell.open();
while (!this.sShell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
//step4.当点击关闭时程序退出
// System.exit(0);
}
/**
* openGUI()step1.创建Shell
*/
private void createSShell() {
//step1.设定主Shell的布局方式
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 1;
gridLayout.makeColumnsEqualWidth = false;
//step2.创建shell
sShell = new Shell(SWT.BORDER | SWT.CLOSE | SWT.MAX | SWT.MIN);
sShell.setText("JSnowFall");
sShell.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/snow/Image/log.png")));
sShell.setLayout(gridLayout);
sShell.setSize(new Point(574, 440));
//step3.创建menuBar
menuBar = new Menu(sShell, SWT.BAR);
sShell.setMenuBar(menuBar);
//step4.创建commandBar
createCommandBar();
//step5.创建分割窗
createSashForm();
//step6.创建tabFolderSet
tabFolderSet = new HashSet<TabFolder>();
tabFolderSet.add(currentlyFolder);
}
/**
* createSShell()step4
* 创建工具栏
*/
private void createCommandBar() {
//step1.创建工具栏
toolBar = new ToolBar(sShell, SWT.BORDER);
//step2.创建新建按钮
ToolItem toolItem = new ToolItem(toolBar, SWT.PUSH);
toolItem.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/snow/Image/new.png")));
toolItem.setText("新建");
toolItem.addSelectionListener(new org.eclipse.swt.events.SelectionListener() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
//step2_1.创建新建任务对话框
new NewMissionDialog(sShell).open();
}
public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
}
});
//step3.创建运行按钮
ToolItem runItem = new ToolItem(toolBar, SWT.PUSH);
runItem.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/snow/Image/run.png")));
runItem.setText("运行");
runItem.addSelectionListener(new org.eclipse.swt.events.SelectionListener() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
ApplicationContext.getInstance().getApplicationMissionManager()
.runningMission(currentlyMissionModel);
}
public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
}
});
//step4.创建占停任务按钮
ToolItem pauseItem = new ToolItem(toolBar, SWT.PUSH);
pauseItem.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/snow/Image/pause.png")));
pauseItem.setText("占停");
pauseItem.addSelectionListener(new org.eclipse.swt.events.SelectionListener() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
ApplicationContext.getInstance().getApplicationMissionManager()
.pauseMission(currentlyMissionModel);
}
public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
}
});
//step5.创建删除任务按钮
ToolItem cancelItem = new ToolItem(toolBar, SWT.PUSH);
cancelItem.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/snow/Image/cancel.png")));
cancelItem.setText("删除");
cancelItem.addSelectionListener(new org.eclipse.swt.events.SelectionListener() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
if(currentlyMissionModel!=null)
{
if(MessageDialog.openConfirm(sShell,"注意","本操作会将"
+currentlyMissionModel.getItsFile().getName()+
"已经下载的所有文件和任务信息全部删除\n是否继续:"))
{
ApplicationContext.getInstance().getApplicationMissionManager()
.cancelMission(currentlyMissionModel);
}
}
}
public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
}
});
//step6.创建设定系统按钮
ToolItem toolItem1 = new ToolItem(toolBar, SWT.PUSH);
toolItem1.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/snow/Image/config.png")));
toolItem1.setText("设定");
toolItem1.addSelectionListener(new org.eclipse.swt.events.SelectionListener() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
//step6_1.创建设定系统参数对话框
new ConfigDialog(sShell).open();
}
public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
}
});
}
/**
* createSShell()step5
* 创建分割窗的流程
*/
private void createSashForm() {
//step1.创建布局方式
GridData gridData1 = new GridData();
gridData1.grabExcessVerticalSpace = true;
gridData1.horizonta
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
讯熊(java开发的下载工具) (123个子文件)
run.bat 303B
SWTApplicationGUI.class 10KB
SWTApplicationMissionManager.class 8KB
BlockFiller.class 6KB
FileModelXML.class 6KB
VodHttpInitStratgy.class 5KB
ModelFiller.class 5KB
HttpInitStratgy.class 5KB
FileModel.class 4KB
XMLSystemModelPool.class 4KB
SWTApplicationGUI$TableViewerLabelProvider.class 3KB
NewMissionDialog.class 3KB
ConfigDialog$ConfigComposite.class 3KB
NewMissionDialogComposite.class 2KB
SWTApplicationMissionManager$4.class 2KB
SWTApplicationMissionManager$5.class 2KB
SWTBlockFillerLogCreateStratgy.class 2KB
SWTBlockFillerLogCreateStratgy$1.class 2KB
SWTApplicationMissionManager$4$1.class 2KB
VodHttpBlockFiller.class 2KB
ConfigDialog.class 2KB
SWTApplicationGUI$4.class 2KB
SWTApplicationMissionManager$2.class 2KB
FileBlock.class 2KB
SWTTextSnowLog.class 2KB
ApplicationContext.class 2KB
HttpBlockFiller.class 2KB
ModelFiller$DownLoadSpeedTimerTask.class 1KB
SWTApplicationGUI$2.class 1KB
SWTApplicationGUI$3.class 1KB
SWTApplicationGUI$6.class 1KB
VodHttpBlockFillerFactory.class 1KB
HttpBlockFillerFactory.class 1KB
SWTMissionConfig.class 1KB
SWTApplicationMissionManager$1.class 1KB
SWTApplicationMission.class 1KB
SWTApplicationMissionManager$TimerRefresh.class 1KB
SWTApplicationGUI$1.class 1KB
SWTApplicationGUI$5.class 1KB
ApplicationMission.class 1KB
SWTApplicationMissionManager$3.class 1015B
SWTApplicationMissionManager$2$1.class 984B
TimeoutThread.class 976B
URLUtil.class 975B
SWTSnowLogFactroy.class 903B
SWTTextSnowLog$1.class 843B
ApplicationContext$1.class 564B
SWTApplicationEnter.class 562B
TimeoutException.class 480B
ApplicationModelPool.class 476B
ApplicationMissionManager.class 444B
BlockFillerFactory.class 325B
BlockFillerLogCreateStratgy.class 284B
InitStratgy.class 225B
SnowLog.class 207B
LogFactory.class 184B
.classpath 299B
Thumbs.db 13KB
jSnowFall总体介绍.doc 388KB
org.eclipse.swt.win32.win32.x86_3.3.0.v3345a.jar 1.9MB
org.eclipse.jface_3.3.0.I20070601-1200.jar 951KB
org.eclipse.compare_3.3.0.I20070528.jar 654KB
solonote.JSnowFall.jar 149KB
org.eclipse.core.commands_3.3.0.I20070523-1500.jar 101KB
org.eclipse.equinox.common_3.3.0.v20070426.jar 91KB
SWTApplicationGUI.java 14KB
SWTApplicationMissionManager.java 10KB
BlockFiller.java 8KB
FileModel.java 6KB
FileModelXML.java 6KB
ModelFiller.java 5KB
VodHttpInitStratgy.java 5KB
HttpInitStratgy.java 4KB
XMLSystemModelPool.java 4KB
NewMissionDialog.java 4KB
ApplicationContext.java 3KB
ConfigDialog.java 3KB
FileBlock.java 2KB
VodHttpBlockFiller.java 2KB
ApplicationMissionManager.java 2KB
HttpBlockFiller.java 1KB
SWTBlockFillerLogCreateStratgy.java 1KB
VodHttpBlockFillerFactory.java 1KB
SWTMissionConfig.java 1KB
TimeoutThread.java 1KB
ApplicationMission.java 1KB
BlockFillerFactory.java 1KB
HttpBlockFillerFactory.java 1KB
SWTTextSnowLog.java 1KB
ApplicationModelPool.java 1KB
SWTApplicationMission.java 1KB
BlockFillerLogCreateStratgy.java 963B
InitStratgy.java 817B
SWTSnowLogFactroy.java 683B
URLUtil.java 602B
SnowLog.java 579B
TimeoutException.java 537B
LogFactory.java 391B
SWTApplicationEnter.java 301B
run.lnk 331B
共 123 条
- 1
- 2
资源评论
- 猪脚踏浪2013-05-11java做这个阿,好玩了
luozhuang
- 粉丝: 4451
- 资源: 224
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python 程序语言设计模式思路-结构型模式:组合模式:将对象组合成树形结构
- 毕业设计基于python矩阵分解的推荐算法研究源码+详细文档+全部数据资料 高分项目.zip
- 基于网络的入侵检测系统源码+数据集+详细文档(高分毕业设计).zip
- 微信小程序源码 旅行故事分享 - 面包旅行App界面设计与文本展示资源下载
- 微信小程序源码 创意互动游戏 - 你画我猜App下载
- 摸底考试_学生版20230305.py
- 课程设计基于FPGA数字钟课程设计源码+课设报告(95分以上).zip
- 基于Java的企业家申报系统设计源码
- Cesium案例,集成各种模型,推演,各种Cesium效果
- 基于Python的Struts2全漏洞扫描利用工具设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功