2013-03-11 2 views
0

Я написал плагин Eclipse, и я добавил опцию для справки в меню «Справка» Eclipse. При нажатии этой кнопки появляется MessageBox.MessageBox не появляется при развертывании плагина eclipse?

Это MessageBox появляется, когда я запускаю или отлаживаю приложение Eclipse, однако, когда я разворачиваю этот плагин на другом ПК и нажимаю help, MessageBox не появляется.

Это мой код:

public class MyHelp implements IWorkbenchWindowActionDelegate { 

    public void run(IAction arg0) { 

     try { 

     String message = "This is demo data"; 

     // TODO Auto-generated method stub 
     MessageBox box = new MessageBox(new Shell(), SWT.OK); 
     box.setMessage(message); 
     box.setText("Help title"); 
     box.open(); 

     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
} 

Может кто-нибудь помочь мне с этим ..?

За помощью я добавил ActionSet в мой плагин, как:

<extension 
     point="org.eclipse.ui.actionSets"> 
     <actionSet 
      id="com.my.plugin.actionSet" 
      label="My ActionSet" 
      visible="true"> 
     <menu 
       id="mymenu" 
       label="My Menu" 
       path="help/helpStart"> 
      <groupMarker 
        name="start"> 
      </groupMarker> 
      <separator 
        name="additions"> 
      </separator> 
     </menu> 
     <action 
       class="com.myexample.MyHelp" 
       id="MyHelp" 
       label="Use Help" 
       icon="icons/plugin_help.png" 
       menubarPath="help/mymenu/start" 
       style="push"> 
     </action> 
     </actionSet> 
    </extension> 

Нужно ли мне делать что-нибудь еще?

+1

Как развернуть плагин на другом ПК? –

+1

Есть ли какие-либо предупреждения/другие выходы на консоли при отладке (где это работает)? Вы также можете попробовать запустить экземпляр eclipse из командной строки (после развертывания) и посмотреть, отображаются ли какие-либо ошибки при попытке открыть диалог. –

+0

@AlexanderGavrilov: Я экспортировал свой плагин как jar из plugin.xml и скопирован в папку плагинов eclipse. – Cycorax12

ответ

0

Если вы используете eclipse> = 3.3, то можете оставить его в папке плагинов. Кроме того, попробуйте перезапустить ваше затмение с помощью -clean option.

Я предлагаю вам папку с папками пользователя для ручной установки. Пожалуйста, обратитесь к документации: http://wiki.eclipse.org/Equinox_p2_Getting_Started#Dropins

Upd1: Для того, чтобы запустить свой код, который я должен был добавить некоторые нереализованные методы (я использую затмение версии 3.6):

import org.eclipse.jface.action.IAction; 
import org.eclipse.jface.viewers.ISelection; 
import org.eclipse.swt.SWT; 
import org.eclipse.swt.widgets.MessageBox; 
import org.eclipse.swt.widgets.Shell; 
import org.eclipse.ui.IWorkbenchWindow; 
import org.eclipse.ui.IWorkbenchWindowActionDelegate; 

public class MyHelp implements IWorkbenchWindowActionDelegate { 

    public void run(final IAction arg0) { 

     final String message = "This is demo data"; 

     // TODO Auto-generated method stub 
     final MessageBox box = new MessageBox(new Shell(), SWT.OK); 
     box.setMessage(message); 
     box.setText("Help title"); 
     box.open(); 

    } 

    public void selectionChanged(final IAction action, final ISelection selection) { 
     // TODO Auto-generated method stub 

    } 

    public void dispose() { 
     // TODO Auto-generated method stub 

    } 

    public void init(final IWorkbenchWindow window) { 
     // TODO Auto-generated method stub 

    } 
} 

Кроме того, проверьте ваш плагин MANIFEST имеет следующую строку: Bundle-SymbolicName: your_plugin_id;singleton:=true Я только что скопировал плагин из рабочего пространства в папку dropins моего экземпляра eclipse, и он работал из коробки.

Вы уверены, что манифест плагина находится в файле jar? Проверьте флажок Bin или build.properties, чтобы убедиться, что все экспортировано правильно.

Надеюсь, это поможет

+0

Я уже добавил -clean в свой .ini Позвольте мне попробовать, сбросив его в droppins ... Однако в чем основное отличие развертывания его в папке плагинов и папке droppin – Cycorax12

+0

«Тонкий поворот по старому поведению здесь заключается в том, что плагины и функции, добавленные в папку dropins, правильно установлены в система, а не принудительная. ". Попробуйте выполнить настройку -clean как свойство запуска вашего процесса eclipse.exe (щелкните правой кнопкой мыши по eclipse.exe - свойствам, а затем после вашего_parth_to_exlipse/eclipse.exe add -clean). –

+0

ok Я попробую, поместив его в папку droppins eclipse. – Cycorax12

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