惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
V
V2EX
Cloudbric
Cloudbric
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
量子位
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
K
Kaspersky official blog
博客园 - 【当耐特】
T
Tenable Blog
L
Lohrmann on Cybersecurity
The Cloudflare Blog
S
Schneier on Security
A
Arctic Wolf
Latest news
Latest news
C
Cyber Attacks, Cyber Crime and Cyber Security
罗磊的独立博客
T
The Exploit Database - CXSecurity.com
Cisco Talos Blog
Cisco Talos Blog
小众软件
小众软件
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学
Simon Willison's Weblog
Simon Willison's Weblog
雷峰网
雷峰网
NISL@THU
NISL@THU
人人都是产品经理
人人都是产品经理
月光博客
月光博客
J
Java Code Geeks
V
Visual Studio Blog
S
Security Affairs
博客园 - Franky
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
H
Heimdal Security Blog
有赞技术团队
有赞技术团队
V2EX - 技术
V2EX - 技术
AWS News Blog
AWS News Blog
G
GRAHAM CLULEY
T
Troy Hunt's Blog
SecWiki News
SecWiki News
Spread Privacy
Spread Privacy
宝玉的分享
宝玉的分享
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 聂微东

博客园 - 殇

java设计模式基础之设计原则 java--callback java基础--特殊的String GEF七天之第四天 GEF七天之第三天 GEF七天之第二天 GEF七天之第一天 距离矢量路由算法(最短路Bellman-Ford实现)实现 网络编程--简单实现javaftp服务器 网络编程--ftp客户端的实现(c#版) c#套接字的实现 好东西大家分享: JAVA学习的一些重点 最基础的数据结构(转自程序员杂志) java面试算法题(经典) (转)JSP上传视频后自动转成flv的核心JAVA方法 2008年1月编程语言排名(转) 利用Render方法生成静态页 (转)实现struts2的CRUD中的权限控制(二) (转)实现struts2的CRUD中的权限控制(一)
GEF七天之第五天
· 2008-07-29 · via 博客园 - 殇

    今天写两篇,后天去北京,所以近期可能很少来园子里了,呵呵!!!

     之前我们以一个小DEMO的形式介绍了GEF的model,Controller的实现,今天我们就来介绍gef中MVC的最后一个----view,即视图.由于我们这个DEMO是一个eclipse plug-in程序.所以他视图部分用的知识大部分是eclipse plug-in的相关知识(涉及的eclipse plug-in的相关知识我们将不作说明).

      通常我们用eclipse 的Editor作为主要视图,我们必须扩展org.eclipse.ui.editors这个扩展点,这个可以在plugin.xm 定义,定义后的文件如下:

Code

其中,class属性指定我们编辑器对应的类;
           Extensions属性指定编辑器打开文件的扩展名为workflow;
           Default属性指出该编辑器是扩展名为workflow文件的默认打开方式;
           Icon为扩展名为workflow的文件和编辑器的图标;
           Id属性为编辑器的唯一标识
          Name为编辑器显示的名称

      然后我们定义编辑器的主界面类ShapesEditor,他继承GraphicalEditorWithFlyoutPaletteGraphicalEditorWithFlyoutPalette是带有面板的图形化编辑器.我们先来看看ShapesEditor的代码

Code

在这个类getPaletteRoot()方法中,创建了面板。

在setInput方法中,定义了一个DiagramModel对象;

在构造函数中setEditDomain(new DefaultEditDomain(this));就是给当前编辑器设置一个默认编辑域,这个域跟命令堆栈有关。

initializeGraphicalViewer()方法,把GraphicalViewer的内容设计为DiagramModel,说明后编辑的是一个DiagramModel,并且添加了监听以监听用户的请求(用createTransferDropTargetListener方法建立监听

在configureGraphicalViewer(),注册控制器工厂,并通过ContextMenuProvider来创建右肩菜单。

getAdapter(Class type)在此方法中创建大纲视图,大纲视图的相关创建我们以后再说明.

建立大纲和建立面板以后我们会做详细说明

这是视图界面截图: