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

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

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

    9910

    單飛

       :: 首頁 :: 聯系 :: 聚合  :: 管理
    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);
        }

    那么有辦法把一個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");
        }
    視乎這樣就可以了,但是問題出現了.缺少了父類nestedEditors.add(ieditorpart);對editor生命周期的管理.導致屬性編輯器出問題.怎么解決呢?
        private CTabFolder container;
        
    private ArrayList nestedEditors;

    MultiPageEditorPart 聲明的都是私有的屬性,按照面向對象的設計是不能被繼承者訪問的.
    那怎么辦呢?這時候就該使用錘子了."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);// 設置安全檢查,訪問私有成員變量必須
                fildValue = fild.get(object);

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

    呵呵,問題解決了.

    posted on 2009-05-27 10:31 單飛 閱讀(356) 評論(0)  編輯  收藏 所屬分類: Eclipse Plugin
    主站蜘蛛池模板: 亚洲国产美女福利直播秀一区二区| 国产精品亚洲综合一区| 亚洲欧洲在线观看| 182tv免费视频在线观看| 国产gv天堂亚洲国产gv刚刚碰| jizz中国免费| 亚洲精品成人片在线观看精品字幕| 一个人看的hd免费视频| 亚洲精品自在在线观看| 男人都懂www深夜免费网站| 亚洲人成电影在线天堂| 亚洲免费观看在线视频| 亚洲一区二区三区成人网站| 在线视频免费观看www动漫| 精品亚洲成a人在线观看| 亚洲av无码天堂一区二区三区 | 亚洲精品高清久久| 99免费在线观看视频| 亚洲一区二区三区免费视频| 好男人www免费高清视频在线| 亚洲AV无码专区亚洲AV桃| 免费无遮挡无码永久在线观看视频| 真正全免费视频a毛片| 中文字幕亚洲乱码熟女一区二区| 日韩精品内射视频免费观看| 精品日韩99亚洲的在线发布| 国产一区二区三区免费看 | 18禁在线无遮挡免费观看网站| 久久狠狠高潮亚洲精品 | 久久影视综合亚洲| 一级毛片免费观看不卡的| 亚洲AV一二三区成人影片| 一级毛片直播亚洲| 午夜视频在线免费观看| 亚洲国产精品日韩av不卡在线 | 一二三四在线播放免费观看中文版视频 | 亚洲人成无码www久久久| 一级做a爰全过程免费视频| 最新亚洲春色Av无码专区| 在线观看国产区亚洲一区成人| 18禁美女黄网站色大片免费观看 |