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

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

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

    隨筆 - 119  文章 - 3173  trackbacks - 0
    <2006年12月>
    262728293012
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    交友莫獨酒,茅臺西鳳游。
    口干古井貢,心徜洋河流。
    稱多情杜康,趟無量雙溝。
    贊中華巍巍,無此不銷愁。

    常用鏈接

    留言簿(68)

    隨筆分類(136)

    隨筆檔案(122)

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 525157
    • 排名 - 93

    最新評論

    ? 像WEB一樣的樹形導(dǎo)航RCP,廢話不說,先看效果圖。

    ?
    模塊三
    點擊不同的樹節(jié)點可以動態(tài)切換右邊的view,界面切換是一瞬間的,不閃。

    上代碼:
    Perspective
    package?org.hermit.pojotools.tt;

    import?org.eclipse.ui.IFolderLayout;
    import?org.eclipse.ui.IPageLayout;
    import?org.eclipse.ui.IPerspectiveFactory;

    public?class?pp?implements?IPerspectiveFactory?{

    ????
    /**
    ?????*?Creates?the?initial?layout?for?a?page.
    ?????
    */
    ????
    public?void?createInitialLayout(IPageLayout?layout)?{
    ????????String?editorArea?
    =?layout.getEditorArea();
    ????????layout.setEditorAreaVisible(
    false);
    ????????addFastViews(layout);
    ????????addViewShortcuts(layout);
    ????????addPerspectiveShortcuts(layout);


    ????????layout.addView(t.ID,?IPageLayout.LEFT,?
    0.5f,?editorArea);
    ????????IFolderLayout?folderLayout?
    =?layout.createFolder("folder",?IPageLayout.LEFT,?0.5f,editorArea);
    ????????folderLayout.addView(t1.ID);
    ????}

    ????
    /**
    ?????*?Add?fast?views?to?the?perspective.
    ?????
    */
    ????
    private?void?addFastViews(IPageLayout?layout)?{
    ????}

    ????
    /**
    ?????*?Add?view?shortcuts?to?the?perspective.
    ?????
    */
    ????
    private?void?addViewShortcuts(IPageLayout?layout)?{
    ????}

    ????
    /**
    ?????*?Add?perspective?shortcuts?to?the?perspective.
    ?????
    */
    ????
    private?void?addPerspectiveShortcuts(IPageLayout?layout)?{
    ????}

    }
    樹形導(dǎo)航view
    package?org.hermit.pojotools.tt;

    import?org.eclipse.jface.action.IMenuManager;
    import?org.eclipse.jface.action.IToolBarManager;
    import?org.eclipse.jface.viewers.TreeViewer;
    import?org.eclipse.swt.SWT;
    import?org.eclipse.swt.events.MouseAdapter;
    import?org.eclipse.swt.events.MouseEvent;
    import?org.eclipse.swt.events.SelectionAdapter;
    import?org.eclipse.swt.events.SelectionEvent;
    import?org.eclipse.swt.layout.FillLayout;
    import?org.eclipse.swt.widgets.Composite;
    import?org.eclipse.swt.widgets.Tree;
    import?org.eclipse.swt.widgets.TreeItem;
    import?org.eclipse.ui.ISharedImages;
    import?org.eclipse.ui.IViewPart;
    import?org.eclipse.ui.IWorkbenchPage;
    import?org.eclipse.ui.PartInitException;
    import?org.eclipse.ui.PlatformUI;
    import?org.eclipse.ui.part.ViewPart;

    public?class?t?extends?ViewPart?{

    ????
    private?Tree?tree;

    ????
    public?static?final?String?ID?=?"org.hermit.pojotools.tt.t";?//$NON-NLS-1$

    ????
    private?String?curID?=?t1.ID;

    ????
    /**
    ?????*?Create?contents?of?the?view?part
    ?????*?
    ?????*?
    @param?parent
    ?????
    */
    ????@Override
    ????
    public?void?createPartControl(Composite?parent)?{
    ????????Composite?container?
    =?new?Composite(parent,?SWT.NONE);
    ????????container.setLayout(
    new?FillLayout());

    ????????
    final?TreeViewer?treeViewer?=?new?TreeViewer(container,?SWT.BORDER);
    ????????tree?
    =?treeViewer.getTree();
    ????????tree.addMouseListener(
    new?MouseAdapter()?{
    ????????????
    public?void?mouseDown(MouseEvent?e)?{
    ????????????????TreeItem?item?
    =?(TreeItem)?tree.getSelection()[0];
    ????????????????String?id?
    =?(String)?item.getData();
    ????????????????
    if?(id?!=?null?&&?!id.equals(curID))?{
    ????????????????????IWorkbenchPage?wbp?
    =?getViewSite().getPage();

    ????????????????????
    try?{
    ????????????????????????IViewPart?view?
    =?wbp.findView(curID);

    ????????????????????????
    if?(view?!=?null)?{
    //下面兩行不能顛倒,一定要先打開新的VIEW才能關(guān)閉老的,否則布局就會亂掉
    ????????????????????????????wbp.showView(id);
    ????????????????????????????wbp.hideView(view);

    ????????????????????????????curID?
    =?id;
    ????????????????????????}

    ????????????????????}?
    catch?(PartInitException?e1)?{
    ????????????????????????
    //?TODO?自動生成?catch?塊
    ????????????????????????e1.printStackTrace();
    ????????????????????}
    ????????????????}
    ????????????}
    ????????});

    ????????builderTree();
    ????????createActions();
    ????????initializeToolBar();
    ????????initializeMenu();
    ????}

    ????
    public?void?builderTree()?{
    ????????TreeItem?item?
    =?new?TreeItem(tree,?SWT.NONE);
    ????????item.setText(
    "導(dǎo)航");
    ????????item.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER));

    ????????TreeItem?treeitem1?
    =?new?TreeItem(item,?SWT.NONE);
    ????????treeitem1.setText(
    "模塊一");
    ????????treeitem1.setData(t1.ID);
    ????????treeitem1.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER));
    ????????TreeItem?treeitem2?
    =?new?TreeItem(item,?SWT.NONE);
    ????????treeitem2.setText(
    "模塊二");
    ????????treeitem2.setData(t2.ID);
    ????????treeitem2.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER));
    ????????TreeItem?treeitem3?
    =?new?TreeItem(item,?SWT.NONE);
    ????????treeitem3.setText(
    "模塊三");
    ????????treeitem3.setData(t3.ID);
    ????????treeitem3.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER));
    ????????item.setExpanded(
    true);
    ????}

    ????
    /**
    ?????*?Create?the?actions
    ?????
    */
    ????
    private?void?createActions()?{
    ????????
    //?Create?the?actions
    ????}

    ????
    /**
    ?????*?Initialize?the?toolbar
    ?????
    */
    ????
    private?void?initializeToolBar()?{
    ????????IToolBarManager?toolbarManager?
    =?getViewSite().getActionBars().getToolBarManager();
    ????}

    ????
    /**
    ?????*?Initialize?the?menu
    ?????
    */
    ????
    private?void?initializeMenu()?{
    ????????IMenuManager?menuManager?
    =?getViewSite().getActionBars().getMenuManager();
    ????}

    ????@Override
    ????
    public?void?setFocus()?{
    ????????
    //?Set?the?focus
    ????}

    }

    下面是另外三個VIEW
    package?org.hermit.pojotools.tt;

    import?org.eclipse.jface.action.IMenuManager;
    import?org.eclipse.jface.action.IToolBarManager;
    import?org.eclipse.swt.SWT;
    import?org.eclipse.swt.widgets.Composite;
    import?org.eclipse.swt.widgets.Label;
    import?org.eclipse.ui.part.ViewPart;

    public?class?t1?extends?ViewPart?{

    ????
    public?static?final?String?ID?=?"org.hermit.pojotools.tt.t1";?//$NON-NLS-1$

    ????
    /**
    ?????*?Create?contents?of?the?view?part
    ?????*?
    @param?parent
    ?????
    */
    ????@Override
    ????
    public?void?createPartControl(Composite?parent)?{
    ????????Composite?container?
    =?new?Composite(parent,?SWT.NONE);

    ????????
    final?Label?t1Label?=?new?Label(container,?SWT.NONE);
    ????????t1Label.setText(
    "這是模塊一");
    ????????t1Label.setBounds(
    29,?27,?74,?12);
    ????????
    //
    ????????createActions();
    ????????initializeToolBar();
    ????????initializeMenu();
    ????}

    ????
    /**
    ?????*?Create?the?actions
    ?????
    */
    ????
    private?void?createActions()?{
    ????????
    //?Create?the?actions
    ????}

    ????
    /**
    ?????*?Initialize?the?toolbar
    ?????
    */
    ????
    private?void?initializeToolBar()?{
    ????????IToolBarManager?toolbarManager?
    =?getViewSite().getActionBars().getToolBarManager();
    ????}

    ????
    /**
    ?????*?Initialize?the?menu
    ?????
    */
    ????
    private?void?initializeMenu()?{
    ????????IMenuManager?menuManager?
    =?getViewSite().getActionBars().getMenuManager();
    ????}

    ????@Override
    ????
    public?void?setFocus()?{
    ????????
    //?Set?the?focus
    ????}

    }
    package?org.hermit.pojotools.tt;

    import?org.eclipse.jface.action.IMenuManager;
    import?org.eclipse.jface.action.IToolBarManager;
    import?org.eclipse.swt.SWT;
    import?org.eclipse.swt.widgets.Button;
    import?org.eclipse.swt.widgets.Composite;
    import?org.eclipse.ui.part.ViewPart;

    public?class?t2?extends?ViewPart?{

    ????
    public?static?final?String?ID?=?"org.hermit.pojotools.tt.t2";?//$NON-NLS-1$

    ????
    /**
    ?????*?Create?contents?of?the?view?part
    ?????*?
    @param?parent
    ?????
    */

    ????@Override
    ????
    public?void?createPartControl(Composite?parent)?{
    ????????Composite?container?
    =?new?Composite(parent,?SWT.NONE);

    ????????
    final?Button?button?=?new?Button(container,?SWT.NONE);
    ????????button.setText(
    "這是模塊二");
    ????????button.setBounds(
    10,?10,?72,?22);
    ????????
    //
    ????????createActions();
    ????????initializeToolBar();
    ????????initializeMenu();
    ????}


    ????
    /**
    ?????*?Create?the?actions
    ?????
    */

    ????
    private?void?createActions()?{
    ????????
    //?Create?the?actions
    ????}


    ????
    /**
    ?????*?Initialize?the?toolbar
    ?????
    */

    ????
    private?void?initializeToolBar()?{
    ????????IToolBarManager?toolbarManager?
    =?getViewSite().getActionBars().getToolBarManager();
    ????}


    ????
    /**
    ?????*?Initialize?the?menu
    ?????
    */

    ????
    private?void?initializeMenu()?{
    ????????IMenuManager?menuManager?
    =?getViewSite().getActionBars().getMenuManager();
    ????}


    ????@Override
    ????
    public?void?setFocus()?{
    ????????
    //?Set?the?focus
    ????}


    }

    package?org.hermit.pojotools.tt;

    import?org.eclipse.jface.action.IMenuManager;
    import?org.eclipse.jface.action.IToolBarManager;
    import?org.eclipse.swt.SWT;
    import?org.eclipse.swt.custom.CCombo;
    import?org.eclipse.swt.widgets.Composite;
    import?org.eclipse.ui.part.ViewPart;

    public?class?t3?extends?ViewPart?{

    ????
    private?CCombo?combo;
    ????
    public?static?final?String?ID?=?"org.hermit.pojotools.tt.t3";?//$NON-NLS-1$

    ????
    /**
    ?????*?Create?contents?of?the?view?part
    ?????*?
    @param?parent
    ?????
    */
    ????@Override
    ????
    public?void?createPartControl(Composite?parent)?{
    ????????Composite?container?
    =?new?Composite(parent,?SWT.NONE);

    ????????combo?
    =?new?CCombo(container,?SWT.NONE);
    ????????combo.setText(
    "這是模塊三");
    ????????combo.setBounds(
    42,?25,?84,?17);
    ????????
    //
    ????????createActions();
    ????????initializeToolBar();
    ????????initializeMenu();
    ????}

    ????
    /**
    ?????*?Create?the?actions
    ?????
    */
    ????
    private?void?createActions()?{
    ????????
    //?Create?the?actions
    ????}

    ????
    /**
    ?????*?Initialize?the?toolbar
    ?????
    */
    ????
    private?void?initializeToolBar()?{
    ????????IToolBarManager?toolbarManager?
    =?getViewSite().getActionBars().getToolBarManager();
    ????}

    ????
    /**
    ?????*?Initialize?the?menu
    ?????
    */
    ????
    private?void?initializeMenu()?{
    ????????IMenuManager?menuManager?
    =?getViewSite().getActionBars().getMenuManager();
    ????}

    ????@Override
    ????
    public?void?setFocus()?{
    ????????
    //?Set?the?focus
    ????}

    }
    大功告成!
    posted on 2006-12-22 11:10 交口稱贊 閱讀(4613) 評論(7)  編輯  收藏 所屬分類: Eclipse RCP SWT

    FeedBack:
    # re: 像WEB一樣的樹形導(dǎo)航RCP 2006-12-23 17:25 大灰狼挑燈品書
    這段代碼可以在網(wǎng)頁里生成樹形空間  回復(fù)  更多評論
      
    # re: 像WEB一樣的樹形導(dǎo)航RCP 2006-12-25 09:13 交口稱贊
    不是的,是rcp程序,不是WEB程序  回復(fù)  更多評論
      
    # re: 像WEB一樣的樹形導(dǎo)航RCP[未登錄] 2007-01-26 21:49 test
    多謝多謝多謝  回復(fù)  更多評論
      
    # re: 像WEB一樣的樹形導(dǎo)航RCP 2007-12-04 11:45 流浪
    連類的名字都是小寫字母,你編寫程序幾年了  回復(fù)  更多評論
      
    # re: 像WEB一樣的樹形導(dǎo)航RCP 2007-12-04 14:29 交口稱贊
    這是產(chǎn)品代碼
    簡化出來的
    臨時手工改的
    不是很嚴(yán)謹(jǐn)

    主要目的是和大家share一下解決方案,
    不是code review  回復(fù)  更多評論
      
    # re: 像WEB一樣的樹形導(dǎo)航RCP 2011-07-15 10:58 secret_x15
    哥哥 能不能把plugin.xml貼上來 或者發(fā)給我 179215133@qq.com 謝謝

    我現(xiàn)在點擊模塊一、模塊二的時候報錯

    org.eclipse.core.runtime.AssertionFailedException: null argument:
    at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85)
    at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:73)
    at org.eclipse.jface.viewers.AbstractTreeViewer.getTreePathFromItem(AbstractTreeViewer.java:2870)
    at org.eclipse.jface.viewers.AbstractTreeViewer.getSelection(AbstractTreeViewer.java:2893)  回復(fù)  更多評論
      
    # re: 像WEB一樣的樹形導(dǎo)航RCP 2011-10-30 00:43 wuhb
    同上 992918069  回復(fù)  更多評論
      
    主站蜘蛛池模板: 亚洲国色天香视频| 久久国产高潮流白浆免费观看| 亚洲人成在线免费观看| 亚洲色无码一区二区三区| 亚洲AV无码乱码在线观看| 国产精品黄页在线播放免费| 在线a级毛片免费视频| 亚洲一区在线免费观看| 久久不见久久见免费视频7| 国产午夜精品久久久久免费视| 香蕉免费一级视频在线观看| 永久免费观看黄网站| 男女作爱免费网站| 丰满妇女做a级毛片免费观看 | 亚洲校园春色另类激情| 亚洲一级毛片免费观看| 亚洲国产综合在线| 亚洲AV无码专区在线亚| 亚洲一区二区三区在线观看网站| 国产精品亚洲片夜色在线| 亚洲欧美日韩综合久久久 | 亚洲精品亚洲人成在线观看| 亚洲综合另类小说色区| 亚洲精品成人网站在线观看| 无码久久精品国产亚洲Av影片| 亚洲国产国产综合一区首页| 亚洲日本在线播放| 亚洲av无码专区首页| 国产精品小视频免费无限app| 日本免费高清视频| 最新中文字幕免费视频| 免费一级肉体全黄毛片| 亚洲精品国产精品乱码视色| 久久亚洲sm情趣捆绑调教| 亚洲欧美日韩久久精品| 久久久久久国产a免费观看不卡| 久久w5ww成w人免费| 尤物永久免费AV无码网站| 亚洲国产精品嫩草影院在线观看 | 亚洲国产91精品无码专区| 亚洲欧洲日韩不卡|