1:zoom是如何使用在里面的
(1)ZoomManager extends ZoomManager
为visualgroup 增加了zoom
===constructor
public GraphZoomManager(ScalableFigure pane,ViewPoint viewPoint,VisualGroup visualGroup){
super(pane,viewpoint);
this.visualGroup = visualGroup;
}
(2)override method
protected void primSetZoom(double zoom){
super.primSetZoom(zoom);
getScalableFigure().setScale(1);
visualGroup.setZoom(zoom);
}
(3)在visualGroup setZoom的时候,进行了如下操作
public void setZoom(double zoom){
setSize(getWidth()*zoom/getZoom(),getHight().zoom/getZoom());
super.setZoom(zoom);
//一下是对里面的点进行zoom
for(Iterator iter = getVisualVertexList().iterator();iter.hasNext();){
VisualVertext vertext = (VisualVertext)iter.next();
vertext.setZoom(zoom);
}
2:gef mvc
GEF model iteract with controller only,to let controller know model's change ,所以应该把控制器作为事件监听者,注册在模型中,当模型发生变化,就出发相应的时间给控制器,然后负责通知给视图进行更新
3:Design pattern
OBSERVER的应用http://www.jdon.com/designpatterns/observer.htm这篇文章浅显易懂,很不错的
4:所有事件都在VISUAL model里面,再COMMAND里面的EXECUTE来call
所有的时间分布再不同的COMMAND的EXECUTE()里面
policy里面会SET COMMMAND,然后MVC会自动调用里面的EXECUTE方法
然后去刷新FIGURE
5:orpha
6:ervery visual model -->every visual part-->every visual figure -->one or more policy -->one or more command
7:figure是在MODEL更新完毕之后,有相关的EDIRPART,来监控,就是说OBSERVER来监视当前的EVENT,如果当前EVENT匹配一个
那么会更新一个FIGRUE
code : visualVertextPart
editpart ===>c他有多个EDITPART,就跟STRUTS有多个ACTION一个道理。
GEF肯定也有一个核心的PART,负责整体的流装,但是没有找到是哪一个类。
public void update(Observer o,Object arg){
//if(type ==locaction) then refresh figure;
//of course. GEF MVC,已经包装好了,就不用我们考虑了,只需要你去做填鸭就可以了,:)
if (VisualGraphConstant.LOCATION.equals(type))
{
IFigure figure = getFigure();
VisualVertex visualVertex = getVisualVertex();
figure.setLocation(new Point(visualVertex.getX(), visualVertex
.getY()));
}
}
8;property 和outline是怎么加上去的??放在明天看吧
9:toolbar跟 MENU是怎么加上去的:
toobar 是在PLUGIN.XML的ContributorClass 中加上去的,可以先看一下
extends ActionBarContributor
TOOLbar的东西ECLIPSE已经封装的很好了,发现GEF真是了不起啊
menu是如何加上去的
都是在EDITOR里面的CREATEACTIONS里面加上去的,OVERRIDES createActions method()
code as following
pretected void createActions(){
super.createActions();
IAction zoomInAction = new ZoomInAction(getZoomManager());
IAction zoomOutAction = new ZoomOutAction(getZoomManager());
addAction(zoomInAction());
addAction(zoomOutAction());
addAction(new OpenPropertiesViewAction());
}
OpenPropertiesViewActions code as follows
1:利用现在的PROPERTIES的view,open properties sheet,ok...
OpendataPropertiesViewAction code as follwos
2:新建一个dataPropertiesViewAction
posted on 2006
posted on 2006-04-13 08:56
小小程序程序员混口饭吃 阅读(180)
评论(0) 编辑 收藏 所属分类:
java