2010-12-02 6 views
0

je suis en train de créer simple outil d'automatisation pour testing.I ont suivi un cours d'instruction simplesEssayer de créer simplement FEM

sur le net et a créé un RCP avec vue sur Eclipse. maintenant j'ai essayé d'inclure GEF

composant sur la vue il me jette une erreur disant "Impossible de créer la vue: Plug-in" GEFTutorial "n'a pas pu instancier la classe" geftutorial.View "."

ici est mon code source

particulièrement quand je décommenter création de

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

toutes les déclarations ci-dessus sur la vue view.my apparaît en arrière

voici mon code source pour une vue. 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(); 
    } 
} 

Quelqu'un peut-il me donner une idée à ce sujet? Je suis nouveau à RCP et le FEM :(

+0

y avait-il une trace de la pile? Rien dans la vue du journal d'erreur? –

Répondre

0

Je suis aussi en train d'apprendre du FEM, mais de ce que j'ai vu les éditeurs ne sont pas Fem ViewPart (vues), mais les éditeurs, l'extension EditPart.

Vérifiez mon tutoriel en cours du FEM here. en espérant que ça aide.

Vous pouvez également accéder à d'autres tutoriel du FEM eclipse website.

Questions connexes