<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)

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 525325
    • 排名 - 93

    最新評論

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

    ?
    模塊三
    點擊不同的樹節點可以動態切換右邊的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)?{
    ????}

    }
    樹形導航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才能關閉老的,否則布局就會亂掉
    ????????????????????????????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(
    "導航");
    ????????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 交口稱贊 閱讀(4615) 評論(7)  編輯  收藏 所屬分類: Eclipse RCP SWT

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

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

    我現在點擊模塊一、模塊二的時候報錯

    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)  回復  更多評論
      
    # re: 像WEB一樣的樹形導航RCP 2011-10-30 00:43 wuhb
    同上 992918069  回復  更多評論
      
    主站蜘蛛池模板: 男人扒开添女人下部免费视频| 免费的黄色网页在线免费观看| 国产啪精品视频网免费| 亚洲国产精品久久久久秋霞小 | 亚洲色自偷自拍另类小说| 亚洲精品视频在线观看免费| 久久亚洲精品无码网站| 亚洲国产成人高清在线观看| 国产精品免费观看久久| 一级毛片大全免费播放下载 | 亚洲AV成人片色在线观看高潮| 在线视频观看免费视频18| 一级白嫩美女毛片免费| 久久精品国产亚洲AV久| 中文字幕一精品亚洲无线一区| 国产大片线上免费观看 | 免费v片视频在线观看视频| 日韩av无码免费播放| 亚洲欧美国产欧美色欲| 亚洲狠狠综合久久| 亚洲精品456播放| 最近免费中文字幕大全| 久久福利青草精品资源站免费| 亚洲AV无码专区亚洲AV桃| 91亚洲国产成人久久精品网站 | 亚洲熟女一区二区三区| 国产大片91精品免费看3| 在线人成精品免费视频| 精品一区二区三区免费视频| 亚洲精品国产第一综合99久久| 亚洲bt加勒比一区二区| 中文字幕亚洲日韩无线码| 午夜免费福利影院| 国产成人精品免费午夜app | 美女视频黄的全免费视频| 国产免费一区二区三区不卡| 日韩少妇内射免费播放| 亚洲码欧美码一区二区三区| 亚洲第一成年人网站| 亚洲AV电影院在线观看| 国产亚洲综合色就色|