2017-01-12 6 views
8

मौजूदा या वर्तमान संपादक कर सकते हैं फिर से खुल ही संपादक का उपयोग कर, लेकिन जैसे ही संपादक नाम कुछ समस्या है (मैचों को दिखाने के लिए पुन: उपयोग संपादकों। ) संपादक विंडोग्रहण आरसीपी: rcp3 ग्रहण</p> <p>मैं हूँ जो सफलतापूर्वक खोलने के कई संपादक बनाने के संपादक विंडो में खुला एक ही संपादक विंडो में

मैं मौजूदा या वर्तमान संपादक पर फ़ोकस-सेट की तरह मिल गया पर प्रदर्शित कर सकते हैं और एक ही संपादक नाम संपादक विंडो पर प्रदर्शित नहीं कर सकता।

पैकेज का नाम: rcp_demo.Editor

वर्ग के नाम: UserCommand.java, UserEditor.java और UserEditorInput.java

वर्ग के नाम: EmpCommand.java, EmployeeEditor.java और EmployeeEditorInput। जावा

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

संपादक सूची

<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> 

कमान सूची

<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> 

से पहले उत्पादन


छात्र संपादक खुला

कर्मचारी संपादक खुला

छात्र संपादक खुला

कर्मचारी संपादक खुला


(के बाद) मेरी आवश्यक उत्पादन


छात्र संपादक खुला

कर्मचारी संपादक खुला

छात्र संपादक मौजूद ..........

कर्मचारी संपादक मौजूद .........

छात्र संपादक मौजूद हैं ..........

कर्मचारी संपादक मौजूद हैं .........


सब तैयार खुला संपादक नहीं कर सकते हैं दूसरी बार खुला ...

+0

क्षमा करें, लेकिन मुझे समझ नहीं आता कि तुम क्या पूछ रहे हैं। –

+0

रीप्ले के लिए धन्यवाद ... पूर्ण इस प्रश्न का वर्णन करें .. –

+0

क्षमा करें, लेकिन मुझे अभी भी समझ में नहीं आता कि समस्या क्या है। यदि आप एक और संपादक खोलना चाहते हैं तो आप भाग शीर्षक क्यों देख रहे हैं? –

उत्तर

2

मैं इस सवाल का


पैकेज नाम का समाधान है: rcp_demo.Editor

वर्ग का नाम: EmpCommand.java, EmployeeEditor.ja va और 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; 
    } 
} 
संबंधित मुद्दे