hhh

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          2006年10月27日 #

          SWT如何獲得本地文件系統(tǒng)的圖標(biāo)等表示信息

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

            那SWT中如何做到呢?

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

          swing靈活和重用的藝術(shù) renderer/editor

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

          posted @ 2006-10-28 16:44 hhh 閱讀(1155) | 評(píng)論 (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實(shí)例呢?我發(fā)現(xiàn)本更無法獲得viewer實(shí)例的引用了。
            
            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>
            
          很明顯兩個(gè)view的class是一個(gè),因?yàn)槲乙赜眠@個(gè)view,它們只是有些屬性和背后的數(shù)據(jù)不一樣!我需要在初始化時(shí)將這些不一樣設(shè)定。

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

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

          主站蜘蛛池模板: 武汉市| 旅游| 光泽县| 贵德县| 静海县| 合江县| 宣化县| 缙云县| 四会市| 克拉玛依市| 库尔勒市| 安福县| 西畴县| 雷波县| 贵港市| 宾阳县| 新津县| 长汀县| 长治县| 博罗县| 南宫市| 增城市| 阳谷县| 宁德市| 梅州市| 安达市| 玛多县| 普格县| 清徐县| 扎囊县| 佛冈县| 玉环县| 田东县| 哈密市| 安岳县| 双柏县| 女性| 天门市| 化州市| 尉氏县| 邵东县|