2012-07-24 54 views
1

在我的eclipse插件中,在運行時我基於用戶交互爲Tabfolder創建多個TabItem。當太多的TabItem被創建時,問題就出現了。我正在尋找一個選項來創建一個關閉控件的TabItem,以便用戶可以在不需要時關閉相應的TabItem。有沒有辦法來創建這個?帶有關閉控件的Tab項目

回答

3

如果您使用CTabFolder而不是TabFolder,則可以使用CTabItem作爲選項卡並將SWT.CLOSE樣式傳遞給構造函數。這將在選項卡上創建一個關閉按鈕。

0

SHIFT + TAB在時間 一個編輯器中打開編輯器之間切換。

Shift + Tab鍵第二次打開 其他編輯器,但使用的Eclipse RCP接近以前的編輯器。

public class Emp_editor_open extends AbstractHandler{ 

    @Override 
    public Object execute(ExecutionEvent event) throws ExecutionException { 

     IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event); 
     IWorkbenchPage page = window.getActivePage(); 

     //Three object create in EditorInput 
     ProductEditorInput product_input=new ProductEditorInput(); 
     EmployeeEditorInput emp_input=new EmployeeEditorInput(); 
     UserEditorInput std_input = new UserEditorInput(); 

     IEditorReference[] editors = page.getEditorReferences(); 
     System.out.println("Length : "+editors.length); 

     if(editors.length==0){ 
      //First Time or empty editors to check this condition 
      try { 
       page.openEditor(product_input,ProductEditor.ID); 
       System.out.println("product Editor open"); 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 

     else if(page.getActiveEditor().getTitle().equals("Product_Editor")){ 
      System.out.println("Product:: "+page.getActiveEditor().getTitle()); 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(emp_input, EmployeeEditor.Id); 
       System.out.println("Employee Editor open"); 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
     else if(page.getActiveEditor().getTitle().equals("Employee_Editor")){ 
      System.out.println("Emp:: "+page.getActiveEditor().getTitle()); 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(std_input, UserEditor.ID); 
       System.out.println("student Editor open"); 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
     else if(page.getActiveEditor().getTitle().equals("Student_Editor")){ 
      System.out.println("Product:: "+page.getActiveEditor().getTitle()); 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(product_input,ProductEditor.ID); 
       System.out.println("product Editor open"); 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
     else { 
      try { 
       page.closeAllEditors(true); 
       page.openEditor(product_input,ProductEditor.ID); 
       System.out.println("product Editor open"); 
      } catch (PartInitException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
     return null; 
    } 
} 

的plugin.xml


<extension point="org.eclipse.ui.commands"> 
     <command 
       defaultHandler="rcp_demo.Toolbar.Emp_editor_open" 
       id="RCP_Demo.Toolbar.emp_editor_open_cmd" 
       name="Employee_Editor_open"> 
     </command> 
    </extension> 
    <extension point="org.eclipse.ui.bindings"> 
     <key 
       commandId="RCP_Demo.Toolbar.emp_editor_open_cmd" 
       schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" 
       sequence="M2+TAB"> 
     </key>    
    </extension>    

按鍵順序:M2是指