Eclipseplugins
EditorInsertCommandHandler.java
1 package com.proalpha.java.oea.plugins.querygenerator.handlers;
2 
3 import org.eclipse.swt.widgets.Display;
4 import org.eclipse.ui.IEditorPart;
5 import org.eclipse.ui.IWorkbenchPage;
6 import org.eclipse.ui.IWorkbenchWindow;
7 import org.eclipse.ui.PlatformUI;
8 import org.eclipse.ui.texteditor.ITextEditor;
9 
10 import com.openedge.core.runtime.IAVMInputCommandHandler;
11 import com.openedge.core.runtime.IAVMInputRequest;
12 import com.proalpha.java.oea.plugins.querygenerator.EditorTools;
13 
14 public class EditorInsertCommandHandler implements IAVMInputCommandHandler {
15 
16  private static int requestId = 0;
17 
18  private String responseValue = "";
19 
20  @Override
21  public String getName() {
22  return "InsertTextToEditor";
23  }
24 
25  @Override
26  public String getResponse() {
27  return responseValue;
28  }
29 
30  @Override
31  public boolean needResponse() {
32  return true;
33  }
34 
35  @Override
36  public void processRequest(IAVMInputRequest inputRequest) {
37 
38  if (inputRequest == null)
39  return;
40 
41  responseValue = "";
42  Display.getDefault().syncExec(new InsertCommand(inputRequest.getMessage()));
43 
44  }
45 
46  private class InsertCommand implements Runnable {
47 
48  private String insertString = "";
49 
50  public InsertCommand(String insertString) {
51  super();
52  this.insertString = insertString;
53  }
54 
55  @Override
56  public void run() {
57 
58  IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
59  IWorkbenchPage page = window.getActivePage();
60  IEditorPart editorPart = page.getActiveEditor();
61  ITextEditor editor = (ITextEditor) editorPart.getAdapter(ITextEditor.class);
62 
63  EditorTools.getInstance().insertText(editor, insertString);
64 
65  window.getShell().setMinimized(false);
66  editor.setFocus();
67 
68  // Put window handle into the response value
69  responseValue = String.format("IDEWindowHandle=%d", window.getShell().handle);
70 
71  }
72 
73  }
74 
75  public static int getRequestId() {
76  return requestId;
77  }
78 
79  public static void setRequestId(int requestId) {
80  EditorInsertCommandHandler.requestId = requestId;
81  }
82 
83 }