Eclipseplugins
InsertSnapshotEventHandler.java
1 package com.proalpha.java.oea.plugins.querygenerator.handlers;
2 
3 import org.eclipse.core.commands.AbstractHandler;
4 import org.eclipse.core.commands.ExecutionEvent;
5 import org.eclipse.core.commands.ExecutionException;
6 import org.eclipse.ui.IEditorInput;
7 import org.eclipse.ui.IEditorPart;
8 import org.eclipse.ui.IWorkbenchPage;
9 import org.eclipse.ui.IWorkbenchWindow;
10 import org.eclipse.ui.PlatformUI;
11 import org.eclipse.ui.texteditor.ITextEditor;
12 
13 import com.proalpha.java.oea.plugins.querygenerator.EditorTools;
14 
15 public class InsertSnapshotEventHandler extends AbstractHandler {
16 
17  @Override
18  public Object execute(ExecutionEvent event) throws ExecutionException {
19 
20 // IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
21 // MessageDialog.openInformation(window.getShell(), "QueryGenerator", "Publish snapshot Event");
22 
23  IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
24  IWorkbenchPage page = window.getActivePage();
25  IEditorPart editorPart = page.getActiveEditor();
26  ITextEditor editor = (ITextEditor) editorPart.getAdapter(ITextEditor.class);
27 
28  if (editor != null) {
29 
30  IEditorInput editorInput = editor.getEditorInput();
31 
32  String insertString = "";
33 
34  if (editorInput.getName().endsWith(".cls"))
35  insertString = "publish 'qgEvt_Snapshot':U from source-procedure%n"
36  + " (${<Handle>},%n"
37  + " ${<Snapshot-Name>},%n"
38  + " ${<Where-Option>}).";
39 
40  else
41  insertString = "publish 'qgEvt_Snapshot':U%n"
42  + " (${<Handle>},%n"
43  + " ${<Snapshot-Name>},%n"
44  + " ${<Where-Option>}).";
45 
46 
47  EditorTools.getInstance().insertText(editor, String.format(insertString));
48 
49  window.getShell().setMinimized(false);
50  editor.setFocus();
51 
52  }
53  return null;
54 
55  }
56 
57  @Override
58  public boolean isEnabled() {
59  return true;
60  }
61 
62  @Override
63  public boolean isHandled() {
64  return true;
65  }
66 
67 }