<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

    交友莫獨(dú)酒,茅臺(tái)西鳳游。
    口干古井貢,心徜洋河流。
    稱(chēng)多情杜康,趟無(wú)量雙溝。
    贊中華巍巍,無(wú)此不銷(xiāo)愁。

    常用鏈接

    留言簿(68)

    隨筆分類(lèi)(136)

    隨筆檔案(122)

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 525306
    • 排名 - 93

    最新評(píng)論

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

    ?
    模塊三
    點(diǎn)擊不同的樹(shù)節(jié)點(diǎn)可以動(dòng)態(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)?{
    ????}

    }
    樹(shù)形導(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)?{
    //下面兩行不能顛倒,一定要先打開(kāi)新的VIEW才能關(guān)閉老的,否則布局就會(huì)亂掉
    ????????????????????????????wbp.showView(id);
    ????????????????????????????wbp.hideView(view);

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

    ????????????????????}?
    catch?(PartInitException?e1)?{
    ????????????????????????
    //?TODO?自動(dòng)生成?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
    ????}

    }

    下面是另外三個(gè)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 交口稱(chēng)贊 閱讀(4613) 評(píng)論(7)  編輯  收藏 所屬分類(lèi): Eclipse RCP SWT

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

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

    我現(xiàn)在點(diǎn)擊模塊一、模塊二的時(shí)候報(bào)錯(cuò)

    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ù)  更多評(píng)論
      
    # re: 像WEB一樣的樹(shù)形導(dǎo)航RCP 2011-10-30 00:43 wuhb
    同上 992918069  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 在线a毛片免费视频观看| 免费观看91视频| 免费的一级黄色片| 亚洲AV无码精品蜜桃| 黄色免费网站网址| 国产精品高清视亚洲精品| 成人免费在线看片| 亚洲中文字幕一二三四区| 最好免费观看韩国+日本| 亚洲AV永久无码精品放毛片| 四虎成人免费网址在线| 亚洲AV日韩综合一区| 日本v片免费一区二区三区| 色窝窝亚洲av网| 久久精品亚洲乱码伦伦中文| 成人免费一区二区三区| 亚洲成AV人片在| 一二三四在线观看免费高清中文在线观看| 亚洲伊人久久大香线蕉结合| 国内一级一级毛片a免费| 免费的黄色的网站| 亚洲va中文字幕无码久久不卡| 99精品视频在线视频免费观看| 亚洲ts人妖网站| www.亚洲精品.com| 久9这里精品免费视频| 亚洲日韩乱码中文无码蜜桃臀| 成全视频在线观看免费高清动漫视频下载| 自拍偷自拍亚洲精品偷一| 亚洲片国产一区一级在线观看| 国产99视频精品免费专区| 456亚洲人成在线播放网站| 日韩亚洲国产综合久久久| 日韩内射激情视频在线播放免费 | 视频免费在线观看| 亚洲视频在线观看视频| 日本高清免费不卡在线| 国产在线一区二区综合免费视频| 国产99在线|亚洲| 在线亚洲97se亚洲综合在线| 免费福利网站在线观看|