2016-02-08 2 views
0

Как я могу вызвать класс viewpart в командном событии меню в проекте плагина eclipse. В принципе, я хочу открыть кадр awt внутри плагина eclipse, поэтому для этого я использую класс viewpart. Кадр Awt должен открываться, когда пользователь запрашивает его.Как вызвать viewpart по java-коду в плагине eclipse

Я создал пункт меню, и я хочу открыть этот кадр awt в этой команде меню. Я попытался сделать класс viewpart, а затем называть его, но это не сработало. Ниже приведен код класса viewpart

public class LabelView extends ViewPart { 
    public static Composite _parent; 
    private Label label; 
    public LabelView() { 
     super(); 
    } 
    public void setFocus() { 
     //label.setFocus(); 
    } 
    public void createPartControl(Composite parent) { 
     _parent=parent; 

     // main composite 
     Composite mainComposite = new Composite(parent, SWT.EMBEDDED | SWT.NO_BACKGROUND); 

     Frame awtframe = SWT_AWT.new_Frame(mainComposite); 
     java.awt.Panel awtpanel = new java.awt.Panel(); 
     awtpanel.setLayout(new java.awt.GridLayout()); 
     awtframe.setLayout(new java.awt.GridLayout()); 
     awtframe.add(awtpanel); 
    } 
} 
+0

Что вы подразумеваете под «invoke viewpart class»? Является ли это представление уже открытым, и вы хотите что-то сделать в представлении? Или вы хотите открыть представление? –

+0

@ greg-449 в обоих условиях, когда viewpart открыт, и я хочу что-то обновить, а также если viewpart близок, тогда сначала я открою его, а затем измените –

ответ

0

Чтобы найти применение вида:

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 

IViewPart view = page.findView("view id"); 

где «вид идентификатор» является идентификатор точки зрения, что вы объявлены в точке расширения org.eclipse.ui.views.

Если не открыто view findView возвратит нуль, вы можете открыть окно с помощью:

view = page.showView("view id"); 

В любом случае, то вы можете бросить взгляд на свой класс представления и вызвать метод, чтобы сделать то, что вы хотите:

LabelView myView = (LabelView)view; 

myView.someMethod(); // TODO you write this method 
+0

спасибо большое greg, он работает сейчас :) –

+0

У меня проблема что, когда viewpart открыт, он не обновляет/обновляет представление. Когда я закрываю вручную и открываю viewpart, он отлично работает, но с помощью java-кода он не обновляется и не обновляется. Что я могу сделать для этого? –

+0

Задайте новый вопрос. –

Смежные вопросы