Get busy living or get busy dying!

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            1 隨筆 :: 13 文章 :: 0 評論 :: 0 Trackbacks
          剛剛看了幾篇文檔,對GEF中的POLICY的位置有了更清楚的理解。
          POLICY有幾種類型:NOTEPOLICY,COMPONENTPOLICY,LAYOUTPOLICY;分別對應(yīng)REQUEST的幾種類型,一旦出現(xiàn)REQUEST就在EDITPART里面找相應(yīng)的POLICY,然后在POLICY中執(zhí)行COMMAND。當(dāng)然要給COMMAND傳遞一定的參數(shù),比如MODEL,CONSTRAINT等等
          調(diào)用POLICY的GETCOMMAND()函數(shù),得到相應(yīng)的一個或多個COMMAND,然后分別執(zhí)行,這樣就改變了MODEL。
          最后在EDITPART里面添加監(jiān)聽器:
          abstract public class EditPartWithListener extends AbstractGraphicalEditPart implements
                  PropertyChangeListener 
          {

                
          public void activate() {
                      
          super.activate();
                      
          // It registers with a model by making self into listeners.
                      ((AbstractModel) getModel()).addPropertyChangeListener(this);
                    }


                    
          public void deactivate() {
                      
          super.deactivate();
                      
          // It deletes from a model.
                      ((AbstractModel) getModel()).removePropertyChangeListener(this);
                    }


          }

          然后,HelloEditPart 要派生自這個抽象類,然后在模型改變時刷新視圖。注意這里用到了
          前面設(shè)置的變量P_CONSTRAINT。通過這個變量我們才知道是要改變HelloModel 模型的約束.
          public class HelloEditorPart extends EditPartWithListener {
          public void propertyChange(PropertyChangeEvent event) {
                  
          // the model of change shows change of the position information on a model -- do thing or not?
                  if (event.getPropertyName().equals(HelloModel.P_CONSTRAINT))
                    refreshVisuals(); 
          // A view is updated.
              }

          }

          這樣就能改變VIEW了!
          REQUEST-->POLICY-->COMMAND-->MODEL-->VIEW
          ^_^
          posted on 2007-06-17 21:56 一條輝 閱讀(292) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 香港 | 额济纳旗| 津市市| 邻水| 汾西县| 自贡市| 辛集市| 景德镇市| 揭阳市| 哈密市| 富平县| 晋州市| 特克斯县| 即墨市| 应城市| 耒阳市| 盱眙县| 新宾| 西林县| 乐安县| 建平县| 罗城| 会同县| 阜新市| 化隆| 微山县| 察哈| 东平县| 阿图什市| 永嘉县| 江达县| 海城市| 德阳市| 冀州市| 光山县| 房产| 满城县| 江安县| 南涧| 大兴区| 泗洪县|