2017-01-31 1 views
1

У меня есть одно приложение RCP, которое запускается на платформе windows. В этом приложении так много команд на панели инструментов. Поэтому я хочу назначить один короткий ключ , чтобы открыть по одной панели инструментов, как это сделать?Как передать весь элемент панели инструментов в keybinding?

Я использовал концепцию бета-тестирования, но, панель инструментов item = клавиша быстрого доступа, так что я хочу только один ключ, как это сделать Image?

+0

Я надеюсь, что этот ответ полезен. пожалуйста, посетите эту страницу: http://stackoverflow.com/questions/2332330/eclipse-hotkey-how-to-switch-between-tabs/2332441#2332441 –

+0

Я стараюсь, чтобы ваше требование выполнялось ... спасибо брату. –

ответ

0

Вы не можете этого сделать. Связывание ключей всегда связано с одной командой.

Если вы хотите сделать что-то в последовательности, используйте мастер с несколькими страницами или что-то в этом роде.

Использование cheat sheet для управления пользователем через действия может быть другим способом.

+0

, если я вложу в if else, если условие тогда возможно, но как определить эту команду? –

+0

Я не понимаю, что вы имеете в виду. Добавлена ​​заметка о листах читсов, которые являются способом руководства пользователя несколькими действиями. –

0

У меня есть это, но по-другому. Весь элемент панели инструментов передается через обработчик. Я могу поделиться вам код:

Вперед Редактор код:

package handler; 
import org.eclipse.core.commands.AbstractHandler; 
import org.eclipse.core.commands.ExecutionEvent; 
import org.eclipse.core.commands.ExecutionException; 
import org.eclipse.ui.IEditorReference; 
import org.eclipse.ui.IWorkbenchPage; 
import org.eclipse.ui.IWorkbenchWindow; 
import org.eclipse.ui.PartInitException; 
import org.eclipse.ui.handlers.HandlerUtil; 
import rcp_demo.Editor.EmployeeEditor; 
import rcp_demo.Editor.EmployeeEditorInput; 
import rcp_demo.Editor.EnquiryEditor; 
import rcp_demo.Editor.EnquiryEditorInput; 
import rcp_demo.Editor.FoodDetailsEditor; 
import rcp_demo.Editor.FoodDetailsEditorInput; 
import rcp_demo.Editor.StaffdetailsEditor; 
import rcp_demo.Editor.StaffdetailsEditorInput; 
//Defauklt Editor ID 
import rcp_demo.Editor.UserEditor; 
import rcp_demo.Editor.UserEditorInput; 

/** 
* @author summet 
* 
*/ 
public class SwitchingHandler extends AbstractHandler { 

/* 
* (non-Javadoc) 
* 
* @see 
* org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands. 
* ExecutionEvent) 
*/ 

String tempEditorID = null; 

@Override 
public Object execute(ExecutionEvent event) throws ExecutionException { 
    System.out.println("SwitchingHandler command call"); 
    // TODO Auto-generated method stub 
    // HandlerUtil.getActiveWorkbenchWindow 
    IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event); 
    IWorkbenchPage page = window.getActivePage(); 
    IEditorReference[] editorRefs = page.getEditorReferences(); 
    // get the editor instance by given id (pEditorId) 

    if (page.getActiveEditor() == null || page.getActiveEditor().equals("")) { 
     // Default Editor Open via command 
     UserEditorInput input = new UserEditorInput(); 
     try { 
      page.openEditor(input, UserEditor.ID); 
     } catch (PartInitException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     return null; 
    } else { 

     // First check Temp ID; 
     String tempID = checkActiveEditorID(page); 
     if (tempID.equals(UserEditor.BID)) { 
      System.out.println("You are in UserEditor.ID"); 
      page.closeAllEditors(true); 

      EmployeeEditorInput einput = new EmployeeEditorInput(); 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(einput, EmployeeEditor.ID); 
       tempID = null; 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

     } else if (tempID.equals(EmployeeEditor.BID)) { 
      System.out.println("You are in EmployeeEditor.ID"); 

      StaffdetailsEditorInput sinput = new StaffdetailsEditorInput(); 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(sinput, StaffdetailsEditor.ID); 
       tempID = null; 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } else if (tempID.equals(StaffdetailsEditor.BID)) { 
      System.out.println("You are in StaffdetailsEditor.ID"); 
      FoodDetailsEditorInput finput = new FoodDetailsEditorInput(); 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(finput, FoodDetailsEditor.ID); 
       tempID = null; 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } else if (tempID.equals(FoodDetailsEditor.BID)) { 
      System.out.println("You are in FoodDetailsEditor.ID"); 
      EnquiryEditorInput eeinput = new EnquiryEditorInput(); 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(eeinput, EnquiryEditor.ID); 
       tempID = null; 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } else if (tempID.equals(EnquiryEditor.BID)) { 
      System.out.println("You are in EnquiryEditor.ID"); 

      UserEditorInput uinput = new UserEditorInput(); 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(uinput, UserEditor.ID); 
       tempID = null; 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 


    } 

    return null; 
} 

private String checkActiveEditorID(IWorkbenchPage page) { 

    tempEditorID = page.getActiveEditor().getTitle(); 
    return tempEditorID; 
    // TODO Auto-generated method stub 

} 
} 

назад Код Редакторов:

package handler; 
import org.eclipse.core.commands.AbstractHandler; 
import org.eclipse.core.commands.ExecutionEvent; 
import org.eclipse.core.commands.ExecutionException; 
import org.eclipse.ui.IEditorReference; 
import org.eclipse.ui.IWorkbenchPage; 
import org.eclipse.ui.IWorkbenchWindow; 
import org.eclipse.ui.PartInitException; 
import org.eclipse.ui.handlers.HandlerUtil; 
import rcp_demo.Editor.EmployeeEditor; 
import rcp_demo.Editor.EmployeeEditorInput; 
import rcp_demo.Editor.EnquiryEditor; 
import rcp_demo.Editor.EnquiryEditorInput; 
import rcp_demo.Editor.FoodDetailsEditor; 
import rcp_demo.Editor.FoodDetailsEditorInput; 
import rcp_demo.Editor.StaffdetailsEditor; 
import rcp_demo.Editor.StaffdetailsEditorInput; 
import rcp_demo.Editor.UserEditor; 
import rcp_demo.Editor.UserEditorInput; 
public class BackEditorHandler extends AbstractHandler { 

/* 
* (non-Javadoc) 
* 
* @see 
* org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands. 
* ExecutionEvent) 
*/ 

String tempBackEditorID = null; 

@Override 
public Object execute(ExecutionEvent event) throws ExecutionException { 
    System.out.println("BackEditorHandler call"); 
    // TODO Auto-generated method stub 

    IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event); 
    IWorkbenchPage page = window.getActivePage(); 
    IEditorReference[] editorRefs = page.getEditorReferences(); 
    // get the editor instance by given id (pEditorId) 

    if (page.getActiveEditor() == null || page.getActiveEditor().equals("")) { 
     // Default Editor Open via command 
     UserEditorInput input = new UserEditorInput(); 
     try { 
      page.openEditor(input, UserEditor.ID); 
     } catch (PartInitException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     return null; 
    } else { 
     // First check Temp ID; 
     String tempBackID = checkActiveEditorID(page); 
     System.out.println("tempID:--" + tempBackID); 

     if (tempBackID.equals(UserEditor.BID)) { 
      System.out.println("You are in UserEditor.ID"); 
      page.closeAllEditors(true); 
      EnquiryEditorInput eeinput = new EnquiryEditorInput(); 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(eeinput, EnquiryEditor.ID); 
       tempBackID = null; 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

     } else if (tempBackID.equals(EmployeeEditor.BID)) { 
      System.out.println("You are in EmployeeEditor.ID"); 
      UserEditorInput uinput = new UserEditorInput(); 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(uinput, UserEditor.ID); 
       tempBackID = null; 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } else if (tempBackID.equals(StaffdetailsEditor.BID)) { 
      System.out.println("You are in StaffdetailsEditor.ID"); 
      EmployeeEditorInput einput = new EmployeeEditorInput(); 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(einput, EmployeeEditor.ID); 
       tempBackID = null; 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } else if (tempBackID.equals(FoodDetailsEditor.BID)) { 
      System.out.println("You are in FoodDetailsEditor.ID"); 
      StaffdetailsEditorInput sinput = new StaffdetailsEditorInput(); 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(sinput, StaffdetailsEditor.ID); 
       tempBackID = null; 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } else if (tempBackID.equals(EnquiryEditor.BID)) { 
      System.out.println("You are in EnquiryEditor.ID"); 
      FoodDetailsEditorInput finput = new FoodDetailsEditorInput(); 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(finput, FoodDetailsEditor.ID); 
       tempBackID = null; 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 

    } 

    return null; 
} 

private String checkActiveEditorID(IWorkbenchPage page) { 

    tempBackEditorID = page.getActiveEditor().getTitle(); 
    return tempBackEditorID; 
    // TODO Auto-generated method stub 

    } 
    } 
1

Пользовательского KeyBinding последовательности: CTRL + TAB для переключения между visilble Модули или редакторы Вперед и SHIFT + TAB для переключения между видимыми модулями или редакторами Backword с использованием Eclipse RCP.

Надеюсь, этот ответ полезен. пожалуйста, посетите эту страницу: How to switch between tab using shortcut key in RCP application

+0

Нет, я сделал только для Forward ctrl + TAB. и Backward Shift + Tab. –

+0

@SIT Я стараюсь наилучшим образом выполнить ваше требование ... спасибо за комментарий –

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