Eclipse HotKey: how to switch between tabs?

后端 未结 22 1305
情书的邮戳
情书的邮戳 2020-11-28 17:10

How can I switch between opened windows in Eclipse? There is Ctrl+F6, but it\'s asking me which one I want, but I want switch it like tabs in browser o

22条回答
  •  粉色の甜心
    2020-11-28 17:26

    Custom KeyBinding sequence example : CTRL + TAB to switch between visilble Modules or Editors Forward direction using Eclipse RCP.

    you press CTRL + TAB second time to open another editor and close previous editor using RCP Eclipse.

    package rcp_demo.Toolbar;
    
    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.ProductEditor;
    import rcp_demo.Editor.ProductEditorInput;
    import rcp_demo.Editor.UserEditor;
    import rcp_demo.Editor.UserEditorInput;
    
    public class Forward_Editor extends AbstractHandler{
    
        static String Editor_name;  //  Active Editor name store in Temporary 
        static int cnt;             //  close editor count this variable
        @Override
        public Object execute(ExecutionEvent event) throws ExecutionException {
    
            IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
            IWorkbenchPage page = window.getActivePage();
    
            UserEditorInput std_input = new UserEditorInput();
            EmployeeEditorInput emp_input=new EmployeeEditorInput();
            ProductEditorInput product_input=new ProductEditorInput();
    
            IEditorReference[] editors = page.getEditorReferences();
    
            //Blank Editor Window to execute..
            if(editors.length==0)
            {
                //First time close editor can open Student_Editor
                if(cnt==1 && Editor_name.equals("Student_Editor"))
                {
                    try {
                        page.openEditor(emp_input, EmployeeEditor.Id);
                        cnt=1;
                        Editor_name=page.getActiveEditor().getTitle();
                        System.out.println("EMP>>Len:: "+editors.length+"..EDi::"+Editor_name);
                    } catch (PartInitException e) {
                        e.printStackTrace();
                    }       
                }
                //First time close editor can open Employee_Editor
                else if(cnt==1 && Editor_name.equals("Employee_Editor"))
                {
                    try {
                        page.openEditor(product_input,ProductEditor.ID);
                        cnt=1;
                        Editor_name=page.getActiveEditor().getTitle();
                        System.out.println("PRO>>Len:: "+editors.length+"..EDi::"+Editor_name); 
                    } catch (PartInitException e) {e.printStackTrace();
                    }
                }
                //First time close editor can open Product_Editor
                else if(cnt==1 && Editor_name.equals("Product_Editor"))
                {
                    try {
                        page.openEditor(std_input, UserEditor.ID);
                        System.out.println("student Editor open");
                        cnt=1;
                        Editor_name=page.getActiveEditor().getTitle();
                        System.out.println("Close::"+Editor_name);
                    } catch (PartInitException e) {
                        e.printStackTrace();
                    }
                }
                //First Time call // empty editors 
                else{
                    try {
                        page.openEditor(std_input, UserEditor.ID);
                        System.out.println("student Editor open");
                        Editor_name=page.getActiveEditor().getTitle();
                    } catch (PartInitException e) {
                        e.printStackTrace();
                    }
                }
            }//End if condition
    
            //AvtiveEditor(Student_Editor) close to open Employee Editor
            else if(page.getActiveEditor().getTitle().equals("Student_Editor"))
            {
                try {
                    //page.closeAllEditors(true);
                    page.closeEditor(page.getActiveEditor(), true);
                    page.openEditor(emp_input, EmployeeEditor.Id);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("EMP>>Len:: "+editors.length+"..EDi::"+Editor_name);
                } catch (PartInitException e) {
                    e.printStackTrace();
                }
            }
            //AvtiveEditor(Employee_Editor) close to open Product Editor
            else if(page.getActiveEditor().getTitle().equals("Employee_Editor"))
            {
                try {
                    page.closeAllEditors(true);
                    page.openEditor(product_input,ProductEditor.ID);
    
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("PRO>>Len:: "+editors.length+"..EDi::"+Editor_name);
    
                } catch (PartInitException e) {
                    e.printStackTrace();
                }
            }
            //AvtiveEditor(Product_Editor) close to open Student Editor
            else if(page.getActiveEditor().getTitle().equals("Product_Editor"))
            {
                try {
                    page.closeAllEditors(true);
                    page.openEditor(std_input, UserEditor.ID);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("stud>>Len:: "+editors.length+"..EDi::"+Editor_name);
                } catch (PartInitException e) {
                    e.printStackTrace();
                }
            }
            //by default open Student Editor
            else 
            {
                try {
                    page.closeAllEditors(true);
                    page.openEditor(std_input, UserEditor.ID);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("stud_else>>Len:: "+editors.length+"..EDi::"+Editor_name);
                } catch (PartInitException e) {
                    e.printStackTrace();
                }
            }
            return null;
        }
    }
    
    >Custom KeyBinding sequence example :  SHIFT + TAB  to switch between visilble Modules or Editors **Backword** direction using Eclipse RCP.
    
    
    package rcp_demo.Toolbar;
    
    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.ProductEditor;
    import rcp_demo.Editor.ProductEditorInput;
    import rcp_demo.Editor.UserEditor;
    import rcp_demo.Editor.UserEditorInput;
    
    public class Backword_Editor extends AbstractHandler{
    
        static String Editor_name;   // Active Editor name store in Temporary 
        static int cnt;
    
        @Override
        public Object execute(ExecutionEvent event) throws ExecutionException {
    
            IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
            IWorkbenchPage page = window.getActivePage();
            //Three object create in EditorInput 
            UserEditorInput std_input = new UserEditorInput();
            EmployeeEditorInput emp_input=new EmployeeEditorInput();
            ProductEditorInput product_input=new ProductEditorInput();
    
            IEditorReference[] editors = page.getEditorReferences();
            System.out.println("Length : "+editors.length);
    
            if(editors.length==0)
            {
                //First time close editor can open Student_Editor
                if(cnt==1 && Editor_name.equals("Product_Editor"))
                {
                    try {
                        page.openEditor(emp_input, EmployeeEditor.Id);
                        cnt=1;
                        Editor_name=page.getActiveEditor().getTitle();
                        System.out.println("EMP>>Len:: "+editors.length+"..EDi::"+Editor_name);
                    } catch (PartInitException e) {
                        e.printStackTrace();
                    }               
                }
                //First time close editor can open Employee_Editor
                else if(cnt==1 && Editor_name.equals("Employee_Editor"))
                {
                    try {
                        page.openEditor(std_input, UserEditor.ID);
                        cnt=1;
                        Editor_name=page.getActiveEditor().getTitle();
                        System.out.println("Student>>Len:: "+editors.length+"..student::"+Editor_name);
    
                    } catch (PartInitException e) {
                        e.printStackTrace();
                    }
                }
                //First time close editor can open Product_Editor
                else if(cnt==1 && Editor_name.equals("Student_Editor"))
                {
                            try {
                                page.openEditor(product_input,ProductEditor.ID);
                                cnt=1;
                                Editor_name=page.getActiveEditor().getTitle();
                                System.out.println("PRO>>Len:: "+editors.length+"..EDi::"+Editor_name);
    
                            } catch (PartInitException e) {
                                e.printStackTrace();
                            }
                } 
                //First Time or empty editors to check this condition
                else{
                    try {
                        page.openEditor(product_input,ProductEditor.ID);
                        System.out.println("product Editor open");
                    } catch (PartInitException e) {
                        e.printStackTrace();
                    }
                }
            }
            //AvtiveEditor(Product_Editor) close to open Employee Editor
            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);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("Employee Editor open");
                } catch (PartInitException e) {
                    e.printStackTrace();
                }
            }
            //AvtiveEditor(Employee_Editor) close to open Student Editor
            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);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("student Editor open");
                } catch (PartInitException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            //AvtiveEditor(Student_Editor) close to open Product Editor
            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);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("product Editor open");
                } catch (PartInitException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            //by default open Student Editor
            else 
            {
                try {
                    page.closeAllEditors(true);
                    page.openEditor(product_input,ProductEditor.ID);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("product Editor open");
                } catch (PartInitException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return null;
        }
    }
    

    Custom KeyBinding sequence example : SHIFT + TAB to switch between visilble Modules or Editors Backword direction using Eclipse RCP.

    package rcp_demo.Toolbar;
    
    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.ProductEditor;
    import rcp_demo.Editor.ProductEditorInput;
    import rcp_demo.Editor.UserEditor;
    import rcp_demo.Editor.UserEditorInput;
    
    public class Backword_Editor extends AbstractHandler{
    
        static String Editor_name;   // Active Editor name store in Temporary 
        static int cnt;
    
        @Override
        public Object execute(ExecutionEvent event) throws ExecutionException {
    
            IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
            IWorkbenchPage page = window.getActivePage();
            //Three object create in EditorInput 
            UserEditorInput std_input = new UserEditorInput();
            EmployeeEditorInput emp_input=new EmployeeEditorInput();
            ProductEditorInput product_input=new ProductEditorInput();
    
            IEditorReference[] editors = page.getEditorReferences();
            System.out.println("Length : "+editors.length);
    
            if(editors.length==0)
            {
                //First time close editor can open Student_Editor
                if(cnt==1 && Editor_name.equals("Product_Editor"))
                {
                    try {
                        page.openEditor(emp_input, EmployeeEditor.Id);
                        cnt=1;
                        Editor_name=page.getActiveEditor().getTitle();
                        System.out.println("EMP>>Len:: "+editors.length+"..EDi::"+Editor_name);
                    } catch (PartInitException e) {
                        e.printStackTrace();
                    }               
                }
                //First time close editor can open Employee_Editor
                else if(cnt==1 && Editor_name.equals("Employee_Editor"))
                {
                    try {
                        page.openEditor(std_input, UserEditor.ID);
                        cnt=1;
                        Editor_name=page.getActiveEditor().getTitle();
                        System.out.println("Student>>Len:: "+editors.length+"..student::"+Editor_name);
    
                    } catch (PartInitException e) {
                        e.printStackTrace();
                    }
                }
                //First time close editor can open Product_Editor
                else if(cnt==1 && Editor_name.equals("Student_Editor"))
                {
                            try {
                                page.openEditor(product_input,ProductEditor.ID);
                                cnt=1;
                                Editor_name=page.getActiveEditor().getTitle();
                                System.out.println("PRO>>Len:: "+editors.length+"..EDi::"+Editor_name);
    
                            } catch (PartInitException e) {
                                e.printStackTrace();
                            }
                } 
                //First Time or empty editors to check this condition
                else{
                    try {
                        page.openEditor(product_input,ProductEditor.ID);
                        System.out.println("product Editor open");
                    } catch (PartInitException e) {
                        e.printStackTrace();
                    }
                }
            }
            //AvtiveEditor(Product_Editor) close to open Employee Editor
            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);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("Employee Editor open");
                } catch (PartInitException e) {
                    e.printStackTrace();
                }
            }
            //AvtiveEditor(Employee_Editor) close to open Student Editor
            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);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("student Editor open");
                } catch (PartInitException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            //AvtiveEditor(Student_Editor) close to open Product Editor
            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);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("product Editor open");
                } catch (PartInitException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            //by default open Student Editor
            else 
            {
                try {
                    page.closeAllEditors(true);
                    page.openEditor(product_input,ProductEditor.ID);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("product Editor open");
                } catch (PartInitException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return null;
        }
    }
    

    Key Sequence

    M1 means CTRL

    M2 means SHIFT

    plugin.xml


    
            
            
            
            
        
    
            
              
            
                          
    
    

提交回复
热议问题