2017-01-12 45 views
8

biên tập viên hiện có hoặc hiện tại có thể mở lại trong cửa sổ soạn thảo tương tự sử dụng rcp3 eclipseEclipse RCP: có biên tập viên cùng mở trong cửa sổ soạn thảo

tôi tạo nhiều biên tập viên mà mở thành công nhưng một số vấn đề như tên cùng biên tập có thể hiển thị trên cửa sổ soạn thảo

tôi đã nhận như SetFocus trên editor hiện tại hoặc hiện tại (biên tập viên Tái sử dụng để hiển thị các trận đấu. ) và tên biên tập cùng không thể hiển thị trên cửa sổ soạn thảo.

Tên gói thầu: rcp_demo.Editor

tên lớp: UserCommand.java, UserEditor.java và UserEditorInput.java

tên lớp: EmpCommand.java, EmployeeEditor.java và EmployeeEditorInput. java

package rcp_demo.Editor; 

import org.eclipse.core.commands.AbstractHandler; 
import org.eclipse.core.commands.ExecutionEvent; 
import org.eclipse.core.commands.ExecutionException; 
import org.eclipse.ui.IWorkbenchPage; 
import org.eclipse.ui.IWorkbenchWindow; 
import org.eclipse.ui.PartInitException; 
import org.eclipse.ui.handlers.HandlerUtil; 

public class UserCommand extends AbstractHandler{ 

    public static final String ID = "rcp_demo.Editor.UserCommand"; 

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

     IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event); 
      IWorkbenchPage page = window.getActivePage(); 
      UserEditorInput input = new UserEditorInput(); 
      try { 
       if(page.getActivePart().getTitle().toString().equals("Student_Editor")) 
       { 
        page.findEditor(input); 
        System.out.println("Student Editor exist.........."); 
       } 
       else 
       { 
        page.openEditor(input, UserEditor.ID); 
        System.out.println("Student Editor open"); 
       } 
      } catch (PartInitException e) { 
       System.out.println("Error:" + this.getClass().getName() + ":" + e); 
       e.printStackTrace(); 
       throw new ExecutionException("Error open UserEditor"); 
      } 
     return null; 
    } 
} 

plugin.xml

danh sách biên tập

<extension 
     point="org.eclipse.ui.editors"> 
     <editor 
      class="rcp_demo.Editor.UserEditor" 
      default="false" 
      id="rcp_demo.Editor.user" 
      name="Student_Editor"> 
     </editor> 
     <editor 
      class="rcp_demo.Editor.EmployeeEditor" 
      default="false" 
      id="rcp_demo.Editor.emp" 
      name="Employee_Editor"> 
     </editor> 
    </extension> 

danh sách lệnh

<extension 
     point="org.eclipse.ui.commands"> 
     <command 
      defaultHandler="rcp_demo.Editor.UserCommand" 
      id="rcp_demo.Editor.UserCommand" 
      name="Call UserEditor"> 
     </command> 
     <command 
      defaultHandler="rcp_demo.Editor.EmpCommand" 
      id="rcp_demo.Editor.EmpCommand" 
      name="call EmpEditor"> 
     </command> 
    </extension> 

Trước khi đầu ra


Sinh viên biên tập mở

nhân viên biên tập mở

Sinh viên biên tập mở

nhân viên biên tập mở


(Sau) đầu ra buộc tôi


Sinh viên biên tập mở

nhân viên biên tập mở

Sinh viên biên tập tồn tại ..........

nhân viên biên tập tồn tại .........

Trình chỉnh sửa sinh viên tồn tại ..........

Trình chỉnh sửa nhân viên tồn tại .........


tất cả đã sẵn sàng biên tập mở có thể thời gian không thứ hai mở ...

+0

Xin lỗi nhưng tôi không hiểu bạn đang hỏi gì. –

+0

cảm ơn cho phát lại ... mô tả đầy đủ câu hỏi này .. –

+0

Xin lỗi nhưng tôi vẫn không hiểu chính xác vấn đề là gì. Tại sao bạn kiểm tra tiêu đề phần nếu bạn muốn mở một trình soạn thảo khác? –

Trả lời

2

tôi có giải quyết câu hỏi này

tên

gói: rcp_demo.Editor

tên lớp: EmpCommand.java, EmployeeEditor.ja va và EmployeeEditorInput.java

package rcp_demo.Editor; 

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; 

public class EmpCommand extends AbstractHandler { 
    public static final String Id = "rcp_demo.Editor.EmpCommand"; 

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

     IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event); 
      IWorkbenchPage page = window.getActivePage(); 
      IEditorReference[] editors = page.getEditorReferences(); 
      EmployeeEditorInput input = new EmployeeEditorInput(); 

      //All Comments are easily understand 
      //public class EmployeeEditorInput implements IEditorInput{} 

      for (int i=0; i<editors.length; i++) { 

      //List out all Exist editor 
      //compare with EmployeeEditor.Id="rcp_demo.Editor.emp"; 

       if (editors[i].getId().equals(EmployeeEditor.Id)) { 

       //public class EmployeeEditor extends EditorPart 
       //{ 
       // public static final String Id="rcp_demo.Editor.emp"; 
       //  public void createPartControl(Composite parent) {.....} 
       //} 

        page.activate(editors[i].getEditor(true)); 
        System.out.println("set focus an existing editor(Employee)"); 
        return null; 
       } 
      } 
      try { 

       //open new Editor like EmployeeEditor.Id="rcp_demo.Editor.emp"; 
       page.openEditor(input,EmployeeEditor.Id); 
       System.out.println("open Editor(Employee) "); 
      } catch (PartInitException e) { 
       e.printStackTrace(); 
      } 
     return null; 
    } 
} 
Các vấn đề liên quan