wadise
BlogJava
首页
新随笔
联系
聚合
管理
22 Posts :: 0 Stories :: 6 Comments :: 0 Trackbacks
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
(20)
Eclipse(5)
Java(7)
Linux(4)
权限授权验证(1)
设计原则
设计模式
转载-杂
软件工程(2)
随笔(1)
随笔档案
(22)
2006年6月 (2)
2006年5月 (2)
2006年4月 (4)
2006年3月 (6)
2005年12月 (8)
相册
eclipse-plugin
搜索
最新评论
1. re: Map的简易写法
评论内容较长,点击标题查看
--MX6
2. re: Adobe Acrobat 7.0下载地址,不是Adobe Acrobat Reader
Acrobat.7.0.rar
--趁此
3. re: Adobe Acrobat 7.0下载地址,不是Adobe Acrobat Reader
很好
--tt
4. re: Adobe Acrobat 7.0下载地址,不是Adobe Acrobat Reader[未登录]
hh
--hh
5. re: 贫血的领域模型
这字体怎么这德性,一看就想生气!
--eee
6. re: Adobe Acrobat 7.0下载地址,不是Adobe Acrobat Reader[未登录]
Adobe Acrobat 7.0下
--allen
阅读排行榜
1. Adobe Acrobat 7.0下载地址,不是Adobe Acrobat Reader(4965)
评论排行榜
1. Adobe Acrobat 7.0下载地址,不是Adobe Acrobat Reader(4)
代码生成器插件开发---生成GEF的图形编辑器(4)
在前面我们已经可以自动生成一个文件并自动进入编辑状态,但是不是图形界面。而我们的代码生成器使用的是可视化图形界面。还记得我们上一篇生成的那个文件后缀名吗?对,是.cg,那么要使得打开后缀名为cg文件时进入我们自定义的编辑环境中,只需在plugin.xml中加入:
<
extension
point
="org.eclipse.ui.editors"
>
<
editor
default
="true"
class
="com.hymake.hyplat.hycodegen.editor.CgEditor"
contributorClass
="com.hymake.hyplat.hycodegen.editor.CgEditorContributor"
extensions
="cg"-----------------
这里是要编辑的文件后缀名
icon
="icons/logo1.png"
id
="com.hymake.hyplat.hycodegen.editor.CgEditor"
name
="代码生成编辑器"
/>
</
extension
>
而CgEditor则要继承GraphicalEditorWithPalette,代码如下:
1
public
class
CgEditor
extends
GraphicalEditorWithPalette
{
2
private
boolean
dirty;
3
4
/** */
/**
5
* 构造函数
6
*/
7
public
CgEditor()
{
8
dirty
=
false
;
9
setEditDomain(
new
DefaultEditDomain(
this
));
10
}
11
12
/** */
/**
13
*
@see
org.eclipse.gef.ui.parts.GraphicalEditorWithPalette#getPaletteRoot()
14
*/
15
protected
PaletteRoot getPaletteRoot()
{
16
PaletteRoot root
=
new
PaletteRoot();
17
PaletteGroup toolGroup
=
new
PaletteGroup(
"
代码生成器
"
);
18
org.eclipse.gef.palette.ToolEntry tool
=
new
SelectionToolEntry();
19
toolGroup.add(tool);
20
root.setDefaultEntry(tool);
21
tool
=
new
MarqueeToolEntry();
22
toolGroup.add(tool);
23
PaletteDrawer drawer
=
new
PaletteDrawer(
"
类
"
);
24
org.eclipse.jface.resource.ImageDescriptor descriptor
=
ImageFactory
25
.getImageDescriptor(
"
table.gif
"
);
26
CreationToolEntry creationEntry
=
new
CreationToolEntry(
"
新建一个表
"
,
27
"
新建一个表
"
,
new
SimpleFactory(Table.
class
), descriptor, descriptor);
28
drawer.add(creationEntry);
29
descriptor
=
ImageFactory.getImageDescriptor(
"column
.gif
"
);
30
creationEntry
=
new
CreationToolEntry(
"
新建一个行
"
,
"
新建一个行
"
,
31
new
SimpleFactory(Column.
class
), descriptor, descriptor);
32
drawer.add(creationEntry);
33
descriptor
=
ImageFactory.getImageDescriptor(
"connection
.gif
"
);
34
ConnectionCreationToolEntry connxCreationEntry
=
new
ConnectionCreationToolEntry(
35
"
新建一个连接
"
,
"
新建一个连接
"
,
new
SimpleFactory(Reference.
class
),
36
descriptor, descriptor);
37
drawer.add(connxCreationEntry);
38
root.add(toolGroup);
39
root.add(drawer);
40
return
root;
41
}
42
43
44
45
/** */
/**
46
*
@see
org.eclipse.gef.ui.parts.GraphicalEditor#initializeGraphicalViewer()
47
*/
48
protected
void
initializeGraphicalViewer()
{
49
}
50
51
/** */
/**
52
*
@see
org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
53
*/
54
public
void
doSave(IProgressMonitor monitor)
{
55
}
56
57
/** */
/**
58
*
@see
org.eclipse.ui.part.EditorPart#doSaveAs()
59
*/
60
public
void
doSaveAs()
{
61
}
62
63
/** */
/**
64
*
@see
org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
65
*/
66
public
boolean
isSaveAsAllowed()
{
67
return
false
;
68
}
69
70
}
这样出来的图如下:
接下来我们就要对这些Action进行相应的代码编写完成指定的工作。
友情小贴士:
1.在构造函数中一定要指定
setEditDomain(new DefaultEditDomain(this));才能调用getPaletteRoot并把视图显示出来。
posted on 2005-12-19 13:20
wadise
阅读(1673)
评论(0)
编辑
收藏
所属分类:
Eclipse
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
Eclipse概括
代码生成器插件开发---生成GEF的图形编辑器(4)
代码生成器插件开发---文件自动生成并编辑(3)
代码生成器插件开发---代码生成项目框架的创建(2)
代码生成器插件开发---Wizard向导制作(1)
Powered by:
BlogJava
Copyright © wadise