<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    hhh

    常用鏈接

    統計

    最新評論

    2006年10月26日 #

    SWT如何獲得本地文件系統的圖標等表示信息

     在swing中
      
      FileSystemView.getFileSystemView().getSystemDisplayName(file);
      
      
      FileSystemView.getFileSystemView().getSystemIcon(file);
      
      可以采用上面的方法得到。

      那SWT中如何做到呢?

    posted @ 2006-10-30 16:20 hhh 閱讀(1114) | 評論 (2)編輯 收藏

    swing靈活和重用的藝術 renderer/editor

    說到GUI類庫的重用有一個很著名的模式:Composite模式。對,一個現代面向對象GUI類庫基本上都有這個模式的實現,當然也包括swing.不 過早一點如MFC就沒有完整的實現,現在來看如果一個GUI類庫連基本的Composite模式都沒有實現基本上感覺是出土的文物啦!
       但是我們來看即便有了Composite模式,但Composite模式通常是構建靜態組合,如果要動態的替換一個復合組件內部的子元素如何辦呢?如此一來這個組件就只能定義自己的布局形式,而不能定死在這個布局形式內的元素。
       其實從用戶角度來說一個GUI元素通常就是兩種情況要么就是表現,要么就是處于和用戶交互狀態,這是它們的形態通常不一樣。所以組件不僅僅要只定義自己的布局形式,還要給于外部機會來配置當自己的子元素處于這兩種狀態時相應的UI組件是什么!
      
      swing通過renderer/editor達到了這種靈活性。如swing中JTable,JList,JTree等組件都只是定義了自 己的布局形式。并且都可以配置renderer/editor,這樣你的renderer/editor實現就接管了組件里面元素的表現形式和交互形態。 理論上你可以用任何JComponent作為組件里面元素的表現形式和交互形態。其靈活性和重用性達到了一個巔峰!
      
      以前還聊過一個JTable的例子!
      http://www.douban.com/group/topic/1112689/

    posted @ 2006-10-28 16:44 hhh 閱讀(1148) | 評論 (0)編輯 收藏

    初探eclipse RCP 有些問題?

    public class Perspective implements IPerspectiveFactory {
      
      public void createInitialLayout(IPageLayout layout) {
      
       String er = layout.getEditorArea();
       layout.setEditorAreaVisible(false);
      
       layout.addView(FileTransfersView.DownloadID,IPageLayout.TOP , 0.25f, er);
       layout.addView(FileTransfersView.UploadID,IPageLayout.BOTTOM , 0.25f, er);
      
      }
      }
      
      比如有以上代碼,那么我如何獲得被加到layout的viewer實例呢?我發現本更無法獲得viewer實例的引用了。
      
      plugin.xml文件的片斷
      <extension
       point="org.eclipse.ui.views">
       <view
       class="com.mt.ui.FileTransfersView"
       id="com.mt.ui.FileTransfersView.Upload"
       name="test1"/>
       <view
       class="com.mt.ui.FileTransfersView"
       id="com.mt.ui.FileTransfersView.Download"
       name="test2"/>
       </extension>
      
    很明顯兩個view的class是一個,因為我要重用這個view,它們只是有些屬性和背后的數據不一樣!我需要在初始化時將這些不一樣設定。

    如果我的機會只有在這里
    public void createPartControl(Composite parent) {
        
    }
        
    那么難道不同的View就要都通過繼承,然后重寫上面這個方法來做,這樣的話是不是過于呆板了!
        
    還請熟悉eclipse RCP的指點。

    posted @ 2006-10-27 17:16 hhh 閱讀(839) | 評論 (2)編輯 收藏

    看JFace與Swing MVC的M

    最近看Eclipse RCP稍微了解一下JFace,看了它的MVC架構有感!
      
      在JFace的ContentViewer抽象中下面的三個方法反映它對待模型的思路:
      public void setContentProvider(IContentProvidercontentProvider)
      
      public void setInput(Object input)
      
      
      public void setLabelProvider(IBaseLabelProvider labelProvider)
      
      顯然setInput是用來配置view背后的數據,從它的參數類型(Object)來講應該是你的與view無關的領域模型.
      
      從這里就可以看出它和swing的根本差異.swing各種不同viewer(在swing的世界叫JComponent)背后的模型是因不同組件而不同的,模型的接口是反應了該組件特征的.
      如 JTable 背后的TableModel,TableModel接口的定義基本表達了作為一個二維表格期望獲得數據的方式如TableModel中有定義這樣的方法:
      Objetc getValueAt(int row,int column)
      
      在JFace中直接可以放入Object類型數據,但各種viewer不一樣對于拿數據的期望也不一樣,
      ContentProvider,LabelProvider解決了上述問題,不同ContentProvider定義了該viewer所期望的拿數據的接口,其實我覺得swing中的model在意義上類似于ContentProvider.
      
      其實感覺JFace的做法在盡量強制你必須構建獨立于GUI的模型.
      而swing的話并沒有這種侵入性,你可以直接實現viewer的模型接口如
      
      class Mymodel implenents TableModel{
      
      }
      
      也可以定義比較獨立的模型然后用對象適配器模式將它們適配到viewer model上!
      
      http://www.douban.com/group/topic/1159250/

    posted @ 2006-10-26 18:45 hhh 閱讀(1480) | 評論 (2)編輯 收藏

    主站蜘蛛池模板: 成年男女男精品免费视频网站| 免费亚洲视频在线观看| 亚洲一区电影在线观看| 四虎永久在线精品视频免费观看| 一级毛片完整版免费播放一区| 久久亚洲国产成人亚| 野花高清在线观看免费完整版中文| 亚洲av纯肉无码精品动漫| 亚洲欧洲日产国码av系列天堂 | 日日噜噜噜噜夜夜爽亚洲精品| 亚洲精品免费在线观看| 亚洲国产AV一区二区三区四区| 亚洲日韩精品一区二区三区 | 亚洲熟妇无码AV不卡在线播放| 亚洲国产精品综合久久网络| 99re热精品视频国产免费| 最新亚洲人成网站在线观看| 久久精品国产精品亚洲精品| 一二三四免费观看在线视频中文版 | 亚洲爆乳少妇无码激情| 亚洲国产美女精品久久久久∴| 一二三四视频在线观看中文版免费| 国产免费久久精品丫丫| 亚洲va成无码人在线观看| 在线观看亚洲精品福利片| 人禽杂交18禁网站免费| 成人免费区一区二区三区| 亚洲另类无码专区丝袜| 亚洲欧洲国产精品你懂的| www国产亚洲精品久久久| 国产精品久久永久免费| 91免费国产视频| 色婷婷六月亚洲综合香蕉| 亚洲毛片无码专区亚洲乱| 亚洲色成人中文字幕网站| 国产一精品一aⅴ一免费| 无码国产精品一区二区免费| 女同免费毛片在线播放| 草久免费在线观看网站| 亚洲一久久久久久久久| 亚洲色偷偷偷网站色偷一区|