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

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

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

    Feeling

        三人行,必有我?guī)熝?/p>

       ::  :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      185 隨筆 :: 0 文章 :: 392 評論 :: 0 Trackbacks
    做Java UI的人應(yīng)該都很熟悉Look and Feel,Swing擁有的這個功能的確是相對于SWT的一個巨大優(yōu)勢。不過SWT的GC也可以畫出自己的UI,前提是這個控件是Custom的,而不是系統(tǒng)級的。Eclipse Presentation 就是對eclipse本身UI提供的一個擴展。本來我還對這個擴展很友好的,不過現(xiàn)在覺得真是一鍋粥里掉了個老鼠屎,完全變了味道。

    由于閑來無視,把一個1年半前一個德國人寫的Eclipse VS L&F Plugin down了下來,無奈bug太多,用戶體驗也和我個人感覺不一致,索性就把代碼check out 出來,作了一些本地修改。不過讓我吐血的地方就是,如果我從eclipse default L&F 切換到這個L&F,就問題一堆,從其它的L&F切換就沒有問題。Debug了半天,毫無進展,只是發(fā)現(xiàn)很多地方都是Null Exception。于是把Eclipse 2.2 L&F的代碼翻了出來,經(jīng)過仔細(xì)對照,還是沒有找到解決的方案,我就感覺怪怪的,也不知道哪兒出了問題,覺得大概是自己沒有把Presentation的代碼吃透的原因。于是又回頭開始一行行的從有問題的代碼處開始Debug,看看我的代碼和2.2L&F的代碼在運行時到底有什么區(qū)別,終于功夫不負(fù)有心人,我發(fā)現(xiàn)這個代碼片斷:
        /**
         * Sets the minimized state for this stack. The part may call this method to
         * minimize or restore itself. The minimized state only affects the view
         * when unzoomed.
         *
         * This implementation is specific to the 3.3 presentation's
         * min/max story; otherwise it just forwards the call.
         
    */

        
    public void setMinimized(boolean minimized) {
            
    // 'Smart' minimize; move the stack to the trim

            Perspective persp = getPage().getActivePerspective();
            
    if (Perspective.useNewMinMax(persp)) 
    {
    原來3.3的L&F做了專門處理,而我的代碼和3.3是一致的,和 2.2L&F是不一致的,不過我找了半天,也沒有在2.2L&F的代碼里找出異樣之處,暈的不行。唯一的線索就是
    boolean useNewMinMax = preferenceStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX);

    可惡的是,IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX 這個靜態(tài)常量是無法在項目里找到eclipse自身的引用。2.2L&F plugin里也沒有,該死的eclipse肯定是寫死在代碼里了。于是翻出editplus,對eclipse ui workbench的代碼多文件搜索了一把,然后開始吐血,它居然把所有的L&F的配置都寫在UI Workbench的Preference Page里,這還算什么插件,根本就沒有把擴展的接口給出來,還是很重要的一個配置。其實2.2L&F以前只是它的一個內(nèi)部package,后來重構(gòu)成一個plugin,3.0L&F到現(xiàn)在依然還是一個package。不過我想既然2.2L&F做成插件了,怎么也改和系統(tǒng)獨立開來呀,現(xiàn)在這樣就成了一個半吊子的plugin.

    Eclipse終于被我bs了一把^_^,林子大了,什么鳥都有。


    改過之后L&F自己覺得好用了不少

     


    評論

    # re: Eclipse Presentation 里的垃圾代碼,氣得我吐血。 2007-12-25 19:35 BeanSoft
    啥都不說了,國人當(dāng)自強!  回復(fù)  更多評論
      

    # re: Eclipse Presentation 里的垃圾代碼,氣得我吐血。[未登錄] 2007-12-26 10:39 Mike
    我們做外包是也是發(fā)現(xiàn)很多歐美外國人很喜歡把常量寫死在代碼里,而不是放在xml之類的文件里,這點讓我感到很驚訝,反而是做日本外包時,什么都往xml里面放。  回復(fù)  更多評論
      

    # re: Eclipse Presentation 里的垃圾代碼,氣得我吐血。 2007-12-26 11:23 彈弓
    ENABLE_NEW_MIN_MAX
    這種開關(guān)變量確實應(yīng)該放置到Preferrence中。  回復(fù)  更多評論
      

    # re: Eclipse Presentation 里的垃圾代碼,氣得我吐血。 2007-12-26 16:01 三人行,必有我?guī)熝?/a>
    是的,但是如果給外部用的話,應(yīng)該暴露一個方法,比如 setEnableNewMinMax(),在項目內(nèi)部使用ENABLE_NEW_MIN_MAX而不暴露出來是對用戶不負(fù)責(zé)任的做法,而且在page里也沒有選項設(shè)置。  回復(fù)  更多評論
      

    # re: Eclipse Presentation 里的垃圾代碼,氣得我吐血。 2008-06-25 14:41
    通過PlatformUI.getPreferenceStore().setDefault(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, true)來設(shè)置  回復(fù)  更多評論
      


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


    網(wǎng)站導(dǎo)航:
     
    GitHub |  開源中國社區(qū) |  maven倉庫 |  文件格式轉(zhuǎn)換 
    主站蜘蛛池模板: 亚洲AV成人无码网天堂| 三级网站在线免费观看| 日本中文一区二区三区亚洲 | 亚洲AV成人无码天堂| 四只虎免费永久观看| 免费国产成人18在线观看| 中文字幕亚洲综合小综合在线 | 久久精品国产亚洲av影院| 国产片免费在线观看| 中文字幕版免费电影网站| 亚洲a视频在线观看| 亚洲日韩国产成网在线观看| 2022久久国产精品免费热麻豆| 色欲aⅴ亚洲情无码AV| 亚洲日本在线观看| 亚洲AV无码专区日韩| 精品福利一区二区三区免费视频 | 深夜福利在线视频免费| 亚洲天堂中文字幕在线观看| 久久亚洲精品无码观看不卡| 久久久高清免费视频| 最近更新免费中文字幕大全| 亚洲精品无码少妇30P| 亚洲欧洲日产国产综合网| 亚洲高清国产拍精品青青草原| 97视频免费在线| 国产一级淫片a免费播放口| 国产精品无码亚洲精品2021| 亚洲国产高清美女在线观看| 国产亚洲综合一区柠檬导航| 可以免费观看一级毛片黄a| 黄瓜视频高清在线看免费下载| 免费黄网站在线看| 一区视频免费观看| 亚洲AV电影天堂男人的天堂| 亚洲乱码一二三四区麻豆| 亚洲Av无码精品色午夜| 中文字幕亚洲专区| 亚洲国产精品国产自在在线| 卡1卡2卡3卡4卡5免费视频| 香蕉97超级碰碰碰免费公|