随笔-109  评论-187  文章-25  trackbacks-0
 

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

只有注册用户登录后才能发表评论。


网站导航: