2012-06-20 3 views
0

현재 Eclipse 플러그인의 작동 방법을 배우고 있습니다. 보기로 표를 가져오고 잠시 샘플보기 플러그인을 사용하고 있지만 여전히 작동하지 않습니다.Eclipse Plugin - 테이블이있는 뷰 만들기

package com.example.helloworld2.views; 


import org.eclipse.swt.widgets.Composite; 
import org.eclipse.ui.part.*; 
import org.eclipse.jface.viewers.*; 
import org.eclipse.swt.graphics.Image; 
import org.eclipse.swt.layout.GridData; 
import org.eclipse.jface.action.*; 
import org.eclipse.jface.dialogs.MessageDialog; 
import org.eclipse.ui.*; 
import org.eclipse.swt.widgets.Menu; 
import org.eclipse.swt.SWT; 

public class SampleView extends ViewPart { 

    /** 
    * The ID of the view as specified by the extension. 
    */ 
    public static final String ID = "com.example.helloworld2.views.SampleView"; 

    private TableViewer viewer; 
    private Action action1; 
    private Action action2; 
    private Action doubleClickAction; 

    /* 
    * 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) { 
      return new String[] { "Onsdfsde", "Twosdfsd", "Threesdf" }; 
     } 
    } 
    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); 
     } 
    } 
    class NameSorter extends ViewerSorter { 
    } 

    /** 
    * The constructor. 
    */ 
    public SampleView() { 
    } 

    /** 
    * 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()); 
     viewer.setSorter(new NameSorter()); 
     viewer.setInput(getViewSite()); 

     // Create the help context id for the viewer's control 
     PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), "com.example.helloworld2.viewer"); 

    } 

... 
} 

그것은보기 콘텐츠 공급자 것 같아 뷰 내에서 내용을 가하고에 대한 책임,하지만 정확히 어떻게 내가 표를 삽입 것입니다 : 여기에 샘플보기 플러그인의 코드는?

http://www.java2s.com/Tutorial/Java/0280__SWT/CreateaTreeTable.htm

을하지만 사람이 비슷한이나 나는에 읽을 수 있습니다 심지어 일부 자원과 나에게 바로 직접 지점 수 있다면, 그 멋진 것 : 이상적으로 나는 결국 복잡한 트리 표를 삽입하고 싶습니다.

감사

답변

1

당신은 이미 "새로운 TableViewer()"호출의 일부로서 createPartControl의 테이블()를 삽입한다. 다른 위젯을 삽입하려면 createPartControl()을 변경하여 대신 TreeTableViewer를 사용하는 등 다른 작업을 수행하십시오. 나는 당신의 질문에서 추론 한 것과

+0

예, * 작동하지 않는 것이 무엇인지 명확히하십시오. – nitind

0

Table table = viewer.getTable();

나는 위의 코드는 당신이 원하는 일을해야한다고 생각합니다.