Eclipseplugins
QueryGeneratorItem.java
1 package com.proalpha.java.oea.plugins.querygenerator;
2 
3 import java.util.ArrayList;
4 import java.util.HashMap;
5 import java.util.List;
6 import java.util.Map;
7 
8 import org.eclipse.jface.action.IContributionItem;
9 import org.eclipse.jface.action.Separator;
10 import org.eclipse.swt.SWT;
11 import org.eclipse.ui.actions.CompoundContributionItem;
12 import org.eclipse.ui.menus.CommandContributionItem;
13 import org.eclipse.ui.menus.CommandContributionItemParameter;
14 import org.eclipse.ui.menus.IWorkbenchContribution;
15 import org.eclipse.ui.services.IServiceLocator;
16 
17 import com.openedge.core.runtime.IAVMClient;
18 import com.openedge.pdt.project.IOpenEdgeProject;
19 import com.openedge.pdt.project.OEProjectPlugin;
20 
21 public class QueryGeneratorItem extends CompoundContributionItem implements
22  IWorkbenchContribution {
23 
24  private IServiceLocator serviceLocator;
25 
26  @Override
27  public void initialize(IServiceLocator serviceLocator) {
28  this.serviceLocator = serviceLocator;
29  }
30 
31  @Override
32  protected IContributionItem[] getContributionItems() {
33 
34  OEProjectPlugin projectPlugin = OEProjectPlugin.getDefault();
35  IOpenEdgeProject[] projects = projectPlugin.getOpenEdgeModel().getOpenEdgeProjects();
36 
37  List<IContributionItem> itemList = new ArrayList<IContributionItem>();
38 
39  // Add open projects.
40 
41  for (int i = 0; i < projects.length; i++) {
42 
43  IAVMClient runtime = projects[i].getRuntime();
44 
45  if (runtime != null && runtime.isConnected()) {
46 
47  Map<String, String> parameterMap = new HashMap<String, String>();
48  parameterMap.put("com.proalpha.java.oea.plugins.querygenerator.avmTypeParameter", "ProjectAVM");
49  parameterMap.put("com.proalpha.java.oea.plugins.querygenerator.avmNameParameter", runtime.getName());
50 
51  CommandContributionItemParameter itemParameter = new CommandContributionItemParameter(
52  serviceLocator,
53  "com.proalpha.java.oea.plugins.querygenerator.commands.startQueryGenerator",
54  "com.proalpha.java.oea.plugins.querygenerator.commands.startQueryGenerator",
55  SWT.PUSH);
56 
57  itemParameter.label = runtime.getName();
58  itemParameter.parameters = parameterMap;
59 
60  CommandContributionItem item = new CommandContributionItem(itemParameter);
61  item.setVisible(true);
62 
63  itemList.add(item);
64 
65  }
66 
67  }
68 
69  // Add separator.
70 
71  if (projects.length > 0) {
72  Separator separator = new Separator();
73  itemList.add(separator);
74  }
75 
76  // Add shared avm.
77 
78  Map<String, String> parameterMap = new HashMap<String, String>();
79  parameterMap.put("com.proalpha.java.oea.plugins.querygenerator.avmTypeParameter", "SharedAVM");
80 
81  CommandContributionItemParameter itemParameter = new CommandContributionItemParameter(
82  serviceLocator,
83  "com.proalpha.java.oea.plugins.querygenerator.commands.startQueryGenerator",
84  "com.proalpha.java.oea.plugins.querygenerator.commands.startQueryGenerator",
85  SWT.PUSH);
86 
87  itemParameter.label = "Shared AVM";
88  itemParameter.parameters = parameterMap;
89 
90  CommandContributionItem item = new CommandContributionItem(itemParameter);
91  item.setVisible(true);
92 
93  itemList.add(item);
94 
95  return itemList.toArray(new IContributionItem[itemList.size()]);
96 
97  }
98 
99 }