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

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

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

    9910

    單飛

       :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
    MultiPageEditorPart 的addPage方法
    public int addPage(Control control)
        {
            
    int i = getPageCount();
            addPage(i, control);
            
    return i;
        }

        
    public void addPage(int i, IEditorPart ieditorpart, IEditorInput ieditorinput)
            
    throws PartInitException
        {
            IEditorSite ieditorsite 
    = createSite(ieditorpart);
            ieditorpart.init(ieditorsite, ieditorinput);
            Composite composite 
    = new Composite(getContainer(), getOrientation(ieditorpart));
            composite.setLayout(
    new FillLayout());
            ieditorpart.createPartControl(composite);
            ieditorpart.addPropertyListener(
    new IPropertyListener() {

                
    public void propertyChanged(Object obj, int j)
                {
                    handlePropertyChange(j);
                }

            }
    );
            CTabItem ctabitem 
    = createItem(i, composite);
            ctabitem.setData(ieditorpart);
            nestedEditors.add(ieditorpart);
        }

    那么有辦法把一個(gè)EditorPart 加入Composite再放到Page里面呢?
    public void addHtmlPage(IEditorPart ieditorpart, IEditorInput ieditorinput) throws PartInitException {
            
    final SashForm sashForm = new SashForm(getContainer(), SWT.NONE);
            
            
    final Composite pageContainer = new Composite(sashForm, SWT.NONE);
            sashForm.setSashWidth(
    1);
            
            
    final Composite resultContainer = new Composite(sashForm, SWT.NONE);
            resultContainer.setLayout(
    new FillLayout());
            
            sashForm.setWeights(
    new int[] {11 });        
            createAnalyzePage(resultContainer);
            
            IEditorSite ieditorsite 
    = createSite(ieditorpart);
            ieditorpart.init(ieditorsite, ieditorinput);

            pageContainer.setLayout(
    new FillLayout());
            ieditorpart.createPartControl(pageContainer);
            ieditorpart.addPropertyListener(
    new IPropertyListener() {

                
    public void propertyChanged(Object obj, int j) {
                    handlePropertyChange(j);
                }

            });
            
            
            
    int index = addPage(sashForm);
            setPageText(index, 
    "html");
        }
    視乎這樣就可以了,但是問題出現(xiàn)了.缺少了父類nestedEditors.add(ieditorpart);對(duì)editor生命周期的管理.導(dǎo)致屬性編輯器出問題.怎么解決呢?
        private CTabFolder container;
        
    private ArrayList nestedEditors;

    MultiPageEditorPart 聲明的都是私有的屬性,按照面向?qū)ο蟮脑O(shè)計(jì)是不能被繼承者訪問的.
    那怎么辦呢?這時(shí)候就該使用錘子了."Reflect"

    CTabFolder container = (CTabFolder) getParentFileValue(MultiPageEditorPart.class,(MultiPageEditorPart)this"container");
            CTabItem ctabitem 
    = new CTabItem(container, 0, i);
            ctabitem.setControl(composite);
            ctabitem.setData(ieditorpart);
            ArrayList nestedEditors 
    = (ArrayList) getParentFileValue(MultiPageEditorPart.class,(MultiPageEditorPart)this"nestedEditors");
            nestedEditors.add(ieditorpart);

    public static Object getParentFileValue(Class parentClassType,Object object, String filedName) {
            Field fild = null;
            Object fildValue = null;
            try {
                fild = parentClassType.getDeclaredField(filedName);
                fild.setAccessible(true);// 設(shè)置安全檢查,訪問私有成員變量必須
                fildValue = fild.get(object);

            } catch (NoSuchFieldException ex) {
                ex.printStackTrace();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return fildValue;
        }

    呵呵,問題解決了.

    posted on 2009-05-27 10:31 單飛 閱讀(356) 評(píng)論(0)  編輯  收藏 所屬分類: Eclipse Plugin
    主站蜘蛛池模板: 免费久久人人爽人人爽av| 又粗又大又长又爽免费视频| 99在线视频免费| 最近最新中文字幕完整版免费高清 | 国产亚洲人成网站在线观看不卡| 国产亚洲精品AA片在线观看不加载| 国产综合精品久久亚洲| 亚洲精品欧洲精品| 亚洲精品宾馆在线精品酒店| 中文字幕不卡高清免费| 一二三四影视在线看片免费 | 久久精品国产精品亚洲艾草网| 亚洲ts人妖网站| 在线观看片免费人成视频无码 | 国产亚洲AV无码AV男人的天堂| 67pao强力打造67194在线午夜亚洲 | 特级av毛片免费观看| 久久久精品免费国产四虎| 狼友av永久网站免费观看| 内射干少妇亚洲69XXX| 一级日本高清视频免费观看 | 国产亚洲sss在线播放| 国产永久免费高清在线| 免费人成无码大片在线观看| 亚洲欧洲国产成人精品| 免费无码一区二区三区蜜桃| 成人免费视频软件网站| 亚洲精品制服丝袜四区| 亚洲国产精品无码久久久秋霞1 | 伊人久久大香线蕉亚洲 | www成人免费观看网站| 久久精品免费一区二区喷潮| 亚洲熟女少妇一区二区| 亚洲熟妇AV一区二区三区宅男| 久爱免费观看在线网站| 亚洲精品乱码久久久久久不卡| 激情综合亚洲色婷婷五月APP| 久久国产免费观看精品| 宅男666在线永久免费观看| 亚洲六月丁香六月婷婷蜜芽| 日韩精品无码永久免费网站|