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

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

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

    隨筆 - 119  文章 - 3173  trackbacks - 0
    <2007年12月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

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

    常用鏈接

    留言簿(68)

    隨筆分類(136)

    隨筆檔案(122)

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 525391
    • 排名 - 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  回復  更多評論
      
    主站蜘蛛池模板: 一级全免费视频播放| 18禁美女裸体免费网站 | 一级特黄特色的免费大片视频| 久久精品亚洲精品国产色婷| 可以免费观看的一级毛片| 亚洲一区二区三区免费观看| 在线观看免费黄色网址| 美女被免费视频网站a| 亚洲中文字幕无码爆乳app| 亚洲最大成人网色| 亚洲精品无码永久中文字幕| 国产小视频在线免费| 毛片免费观看的视频在线| 8090在线观看免费观看| 久久午夜无码免费| 青柠影视在线观看免费高清| 一二三四在线观看免费中文在线观看| 亚洲成a人片在线观看天堂无码 | 日本xxxx色视频在线观看免费| 黄色视屏在线免费播放| 免费在线观看一区| 免费福利在线观看| 猫咪免费观看人成网站在线| 精品韩国亚洲av无码不卡区| 亚洲欧美日韩综合久久久久| 亚洲日本人成中文字幕| 国产成人精品日本亚洲网址| 亚洲人成网男女大片在线播放| 亚洲一区在线免费观看| 亚洲乱码卡三乱码新区| 丁香婷婷亚洲六月综合色| 亚洲va精品中文字幕| 亚洲第一区二区快射影院| 亚洲国产日韩综合久久精品| 国产精品亚洲四区在线观看| 亚洲精品无码少妇30P| 国产偷国产偷亚洲清高APP| 黄页网址大全免费观看12网站| 色多多A级毛片免费看| 国产精品免费视频观看拍拍| 中文在线观看免费网站|