1

私のEclipseプラグインでは、実行時に、ユーザーの操作に基づいてTabfolder用に複数のTabItemを作成します。この問題は、作成される TabItem が多すぎる場合に発生します。ユーザーが必要のないときに対応する TabItem を閉じることができるように、閉じるコントロールを使用して TabItem を作成するオプションを探していました。これを作成する方法はありますか?

4

2 に答える 2

3

TabFolder の代わりに CTabFolder を使用する場合は、タブに CTabItem を使用し、SWT.CLOSE スタイルをコンストラクターに渡すことができます。これにより、タブに閉じるボタンが作成されます。

于 2012-07-24T11:50:44.870 に答える
0

を押すSHIFT + TAB と、1 つのエディターが開いているときにエディター間を切り替えることができます。

キーをもう一度押しSHIFT + TAB て別のエディターを開きますが、RCP Eclipse を使用して前のエディターを閉じます。

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 手段Shift

于 2017-01-31T11:49:00.003 に答える