2010-12-02 74 views
0

我試圖創建testing.I簡單的自動化工具都遵循一個簡單的教程淨試圖創建簡單的GEF

,並創造了一個RCP能欣賞日食。現在我試圖包括簡單的GEF

組件在視圖上拋出錯誤說:「無法創建視圖:插件」GEFTutorial「無法實例化類」geftutorial.View「。」

這裏是我的源代碼

特別是當我取消的

private ScrollingGraphicalViewer viewer = new ScrollingGraphicalViewer(); 
private RootEditPart rootEditPart = new ScalableFreeformRootEditPart(); 
private EditPartFactory editPartFactory = new SimpleGEFEditPartFactory(); 

所有的view.my鑑於上述語句創建回出現

這裏是視圖我的源代碼。 java

package geftutorial; 

import org.eclipse.jface.viewers.IStructuredContentProvider; 

import org.eclipse.jface.viewers.ITableLabelProvider; 
import org.eclipse.jface.viewers.LabelProvider; 
import org.eclipse.jface.viewers.TableViewer; 
import org.eclipse.jface.viewers.Viewer; 
import org.eclipse.swt.SWT; 
import org.eclipse.swt.graphics.Color; 
import org.eclipse.swt.graphics.Image; 
import org.eclipse.swt.widgets.Composite; 
import org.eclipse.ui.ISharedImages; 
import org.eclipse.ui.PlatformUI; 
import org.eclipse.ui.part.ViewPart; 
import org.eclipse.gef.*; 
import org.eclipse.gef.editparts.ScalableFreeformRootEditPart; 
import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer;  

public class View extends ViewPart { 
    public static final String ID = "GEFTutorial.view"; 

    //Use a standard Viewer for the Draw2d canvas 
    private ScrollingGraphicalViewer viewer = new ScrollingGraphicalViewer(); 
    //Use standard RootEditPart as holder for all other edit parts 
    private RootEditPart rootEditPart = new ScalableFreeformRootEditPart(); 
    //Custom made EditPartFactory, will automatically be called to create 
    //edit 
    // parts for model elements 
    private EditPartFactory editPartFactory = new SimpleGEFEditPartFactory(); 
    //The model 
    private SuperWidget model; 

    //private TableViewer viewer; 

    /** 
    * The content provider class is responsible for providing objects to the 
    * view. It can wrap existing objects in adapters or simply return objects 
    * as-is. These objects may be sensitive to the current input of the view, 
    * or ignore it and always show the same content (like Task List, for 
    * example). 
    */ 
    class ViewContentProvider implements IStructuredContentProvider { 
     public void inputChanged(Viewer v, Object oldInput, Object newInput) { 
     } 

     public void dispose() { 
     } 

     public Object[] getElements(Object parent) { 
      if (parent instanceof Object[]) { 
       return (Object[]) parent; 
      } 
      return new Object[0]; 
     } 
    } 

    class ViewLabelProvider extends LabelProvider implements 
      ITableLabelProvider { 
     public String getColumnText(Object obj, int index) { 
      return getText(obj); 
     } 

     public Image getColumnImage(Object obj, int index) { 
      return getImage(obj); 
     } 

     public Image getImage(Object obj) { 
      return PlatformUI.getWorkbench().getSharedImages().getImage(
        ISharedImages.IMG_OBJ_ELEMENT); 
     } 
    } 

    /** 
    * This is a callback that will allow us to create the viewer and initialize 
    * it. 
    */ 
    public void createPartControl(Composite parent) { 
     /*viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL 
       | SWT.V_SCROLL); 
     viewer.setContentProvider(new ViewContentProvider()); 
     viewer.setLabelProvider(new ViewLabelProvider()); 
     // Provide the input to the ContentProvider 
     viewer.setInput(new String[] {"One", "Two", "Three"}); 
     */ 



     //Create a dummy model 
     model = new SuperWidget("Model"); 
     model.createDummyModel(); 
     //Initialize the viewer, 'parent' is the 
     // enclosing RCP windowframe 
     viewer.createControl(parent); 
     viewer.setRootEditPart(rootEditPart); 
     viewer.setEditPartFactory(editPartFactory); 
     //Inject the model into the viewer, the viewer will 
     // traverse the model automatically 
     viewer.setContents(model); 
     //Set the view's background to white 
     viewer.getControl().setBackground(new Color(null, 255,255,255));    
    } 

    /** 
    * Passing the focus request to the viewer's control. 
    */ 
    public void setFocus() { 
     viewer.getControl().setFocus(); 
    } 
} 

有人可以給我一個線索嗎?我是新來的RCP和全球環境基金:(

+0

是否有一個堆棧跟蹤?什麼錯誤日誌的看法? – 2011-03-10 05:04:12

回答

0

我也只是學習環境基金,但是從我所看到的GEF編輯器不ViewPart(意見),但編輯器,延長EditPart

檢查我正在進行GEF教程here。希望它幫助。

您也可以從eclipse website訪問其他GEF教程。