wadise

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            22 Posts :: 0 Stories :: 6 Comments :: 0 Trackbacks
          在前面我們已經可以自動生成一個文件并自動進入編輯狀態,但是不是圖形界面。而我們的代碼生成器使用的是可視化圖形界面。還記得我們上一篇生成的那個文件后綴名嗎?對,是.cg,那么要使得打開后綴名為cg文件時進入我們自定義的編輯環境中,只需在plugin.xml中加入:
             <extension
                   
          point="org.eclipse.ui.editors">

                
          <editor
                      
          default="true"

                      class
          ="com.hymake.hyplat.hycodegen.editor.CgEditor"
                      contributorClass
          ="com.hymake.hyplat.hycodegen.editor.CgEditorContributor"
                      extensions
          ="cg"-----------------這里是要編輯的文件后綴名
                      icon
          ="icons/logo1.png"
                      id
          ="com.hymake.hyplat.hycodegen.editor.CgEditor"
                      name
          ="代碼生成編輯器"/>
             
          </extension>

          而CgEditor則要繼承GraphicalEditorWithPalette,代碼如下:
           1public class CgEditor extends GraphicalEditorWithPalette {
           2    private boolean
           dirty;
           3

           4    
          /**
           5     * 構造函數
           6     */

           7    public CgEditor() {
           8        dirty = false
          ;
           9        setEditDomain(new DefaultEditDomain(this
          ));
          10    }

          11
          12    
          /**
          13     * @see org.eclipse.gef.ui.parts.GraphicalEditorWithPalette#getPaletteRoot()
          14     */

          15    protected PaletteRoot getPaletteRoot() {
          16        PaletteRoot root = new
           PaletteRoot();
          17        PaletteGroup toolGroup = new PaletteGroup("代碼生成器"
          );
          18        org.eclipse.gef.palette.ToolEntry tool = new
           SelectionToolEntry();
          19
                  toolGroup.add(tool);
          20
                  root.setDefaultEntry(tool);
          21        tool = new
           MarqueeToolEntry();
          22
                  toolGroup.add(tool);
          23        PaletteDrawer drawer = new PaletteDrawer(""
          );
          24        org.eclipse.jface.resource.ImageDescriptor descriptor =
           ImageFactory
          25                .getImageDescriptor("table.gif"
          );
          26        CreationToolEntry creationEntry = new CreationToolEntry("新建一個表"
          ,
          27                "新建一個表"new SimpleFactory(Table.class
          ), descriptor, descriptor);
          28
                  drawer.add(creationEntry);
          29        descriptor = ImageFactory.getImageDescriptor("column.gif"
          );
          30        creationEntry = new CreationToolEntry("新建一個行""新建一個行"
          ,
          31                new SimpleFactory(Column.class
          ), descriptor, descriptor);
          32
                  drawer.add(creationEntry);
          33        descriptor = ImageFactory.getImageDescriptor("connection.gif"
          );
          34        ConnectionCreationToolEntry connxCreationEntry = new
           ConnectionCreationToolEntry(
          35                "新建一個連接""新建一個連接"new SimpleFactory(Reference.class
          ),
          36
                          descriptor, descriptor);
          37
                  drawer.add(connxCreationEntry);
          38
                  root.add(toolGroup);
          39
                  root.add(drawer);
          40        return
           root;
          41    }

          42
          43

          44

          45    
          /**
          46     * @see org.eclipse.gef.ui.parts.GraphicalEditor#initializeGraphicalViewer()
          47     */

          48    protected void initializeGraphicalViewer() {
          49    }

          50
          51    
          /**
          52     * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
          53     */

          54    public void doSave(IProgressMonitor monitor) {
          55    }

          56
          57    
          /**
          58     * @see org.eclipse.ui.part.EditorPart#doSaveAs()
          59     */

          60    public void doSaveAs() {
          61    }

          62
          63    
          /**
          64     * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
          65     */

          66    public boolean isSaveAsAllowed() {
          67        return false
          ;
          68    }

          69
          70}
          這樣出來的圖如下:
          editor1.JPG
          接下來我們就要對這些Action進行相應的代碼編寫完成指定的工作。
          友情小貼士:
             1.在構造函數中一定要指定
                  setEditDomain(new DefaultEditDomain(this));才能調用getPaletteRoot并把視圖顯示出來。
          posted on 2005-12-19 13:20 wadise 閱讀(1681) 評論(0)  編輯  收藏 所屬分類: Eclipse
          主站蜘蛛池模板: 泰安市| 晴隆县| 兴仁县| 突泉县| 启东市| 乐业县| 杭州市| 重庆市| 建宁县| 桂阳县| 滕州市| 富阳市| 佳木斯市| 衡东县| 平度市| 德清县| 惠安县| 海林市| 岫岩| 曲松县| 资中县| 台州市| 盐池县| 翁源县| 巴林右旗| 广汉市| 阿拉善盟| 宜宾市| 清涧县| 余江县| 乌兰县| 淄博市| 上林县| 弥渡县| 邯郸县| 龙南县| 临朐县| 涟水县| 山西省| 青浦区| 满洲里市|