Author: koen.aers(a)jboss.com
Date: 2011-08-05 11:32:17 -0400 (Fri, 05 Aug 2011)
New Revision: 33633
Modified:
trunk/forge/plugins/org.jboss.tools.forge.runtime.ext/org.jboss.tools.forge.runtime.ext/src/org/jboss/tools/forge/runtime/ext/MetaCommandTriggeredAction.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/commands/ForgeCommandListHandler.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/dialog/ForgeCommandListDialog.java
Log:
cleanup of the generation of a popup with forge commands when issuing Cmd+4:
- only commands that are applicable in the current context
Modified:
trunk/forge/plugins/org.jboss.tools.forge.runtime.ext/org.jboss.tools.forge.runtime.ext/src/org/jboss/tools/forge/runtime/ext/MetaCommandTriggeredAction.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.runtime.ext/org.jboss.tools.forge.runtime.ext/src/org/jboss/tools/forge/runtime/ext/MetaCommandTriggeredAction.java 2011-08-05
14:45:13 UTC (rev 33632)
+++
trunk/forge/plugins/org.jboss.tools.forge.runtime.ext/org.jboss.tools.forge.runtime.ext/src/org/jboss/tools/forge/runtime/ext/MetaCommandTriggeredAction.java 2011-08-05
15:32:17 UTC (rev 33633)
@@ -3,10 +3,14 @@
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
import javax.inject.Inject;
import org.jboss.forge.shell.Shell;
+import org.jboss.forge.shell.command.PluginMetadata;
import org.jboss.forge.shell.command.PluginRegistry;
import org.jboss.forge.shell.spi.TriggeredAction;
@@ -36,15 +40,23 @@
}
private void handleHiddenCommand(String text) {
- if ("command-list-query".equals(text)) {
- shell.print(ESCAPE + "command-list-answer: " + getCommandList() + ESCAPE);
+ if ("plugin-candidates-query".equals(text)) {
+ shell.print(ESCAPE + "plugin-candidates-answer: " + getPluginCandidates() +
ESCAPE);
}
}
- private String getCommandList() {
+ private String getPluginCandidates() {
StringBuffer resultBuffer = new StringBuffer();
- for (String name : registry.getPlugins().keySet()) {
- resultBuffer.append(name).append(" ");
+ Map<String, List<PluginMetadata>> plugins = registry.getPlugins();
+ for (Entry<String, List<PluginMetadata>> entry : plugins.entrySet()) {
+ for (PluginMetadata pluginMeta : entry.getValue()) {
+ if (pluginMeta.hasCommands()) {
+ String pluginName = pluginMeta.getName();
+ if (pluginMeta.constrantsSatisfied(shell)) {
+ resultBuffer.append(pluginName).append(" ");
+ }
+ }
+ }
}
return resultBuffer.toString();
}
Modified:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/commands/ForgeCommandListHandler.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/commands/ForgeCommandListHandler.java 2011-08-05
14:45:13 UTC (rev 33632)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/commands/ForgeCommandListHandler.java 2011-08-05
15:32:17 UTC (rev 33633)
@@ -27,10 +27,8 @@
return null;
}
- String result = runtime.sendCommand("command-list-query");
+ new ForgeCommandListDialog(window, runtime).open();
- new ForgeCommandListDialog(window, result).open();
-
return null;
}
Modified:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/dialog/ForgeCommandListDialog.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/dialog/ForgeCommandListDialog.java 2011-08-05
14:45:13 UTC (rev 33632)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/dialog/ForgeCommandListDialog.java 2011-08-05
15:32:17 UTC (rev 33633)
@@ -11,12 +11,13 @@
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.List;
import org.eclipse.ui.IWorkbenchWindow;
+import org.jboss.tools.forge.core.process.ForgeRuntime;
public class ForgeCommandListDialog extends PopupDialog {
- private SortedSet<String> commandSet = new TreeSet<String>();
+ private ForgeRuntime runtime = null;
- public ForgeCommandListDialog(IWorkbenchWindow window, String commands) {
+ public ForgeCommandListDialog(IWorkbenchWindow window, ForgeRuntime runtime) {
super(window.getShell(),
SWT.RESIZE,
true,
@@ -26,23 +27,31 @@
true,
"Select the command you want Forge to execute",
null);
- StringTokenizer tokenizer = new StringTokenizer(commands);
+ this.runtime = runtime;
+ }
+
+ private SortedSet<String> getPluginCandidates() {
+ SortedSet<String> result = new TreeSet<String>();
+ String pluginCandidates = runtime.sendCommand("plugin-candidates-query");
+ StringTokenizer tokenizer = new StringTokenizer(pluginCandidates);
if (tokenizer.hasMoreTokens()) {
String first = tokenizer.nextToken();
- if ("command-list-answer:".equals(first)) {
+ if ("plugin-candidates-answer:".equals(first)) {
while (tokenizer.hasMoreTokens()) {
- commandSet.add(tokenizer.nextToken());
+ result.add(tokenizer.nextToken());
}
}
}
+ return result;
}
protected Control createDialogArea(Composite parent) {
Composite result = (Composite)super.createDialogArea(parent);
result.setLayout(new FillLayout());
List list = new List(result, SWT.SINGLE);
- for (String command : commandSet) {
- list.add(command);
+ SortedSet<String> pluginCandidates = getPluginCandidates();
+ for (String plugin : pluginCandidates) {
+ list.add(plugin);
}
return result;
}
Show replies by date