Author: koen.aers(a)jboss.com
Date: 2011-08-12 09:02:40 -0400 (Fri, 12 Aug 2011)
New Revision: 33835
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/dialog/ForgeCommandListDialog.java
Log:
forge quick-access popup now contains plugins and commands organized as a tree
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-12
11:44:18 UTC (rev 33834)
+++
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-12
13:02:40 UTC (rev 33835)
@@ -10,6 +10,7 @@
import javax.inject.Inject;
import org.jboss.forge.shell.Shell;
+import org.jboss.forge.shell.command.CommandMetadata;
import org.jboss.forge.shell.command.PluginMetadata;
import org.jboss.forge.shell.command.PluginRegistry;
import org.jboss.forge.shell.spi.TriggeredAction;
@@ -50,10 +51,11 @@
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(" ");
+ List<CommandMetadata> commands = pluginMeta.getAllCommands();
+ if (!commands.isEmpty()) {
+ resultBuffer.append("p:").append(pluginMeta.getName()).append('
');
+ for (CommandMetadata commandMeta : commands) {
+ resultBuffer.append("c:").append(commandMeta.getName()).append('
');
}
}
}
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-12
11:44:18 UTC (rev 33834)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/dialog/ForgeCommandListDialog.java 2011-08-12
13:02:40 UTC (rev 33835)
@@ -1,7 +1,9 @@
package org.jboss.tools.forge.ui.dialog;
+import java.util.SortedMap;
import java.util.SortedSet;
import java.util.StringTokenizer;
+import java.util.TreeMap;
import java.util.TreeSet;
import org.eclipse.jface.dialogs.PopupDialog;
@@ -9,7 +11,8 @@
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.IWorkbenchWindow;
import org.jboss.tools.forge.core.process.ForgeRuntime;
@@ -30,28 +33,43 @@
this.runtime = runtime;
}
- private SortedSet<String> getPluginCandidates() {
- SortedSet<String> result = new TreeSet<String>();
+ private SortedMap<String, SortedSet<String>> getCandidates() {
+ SortedMap<String, SortedSet<String>> result = new TreeMap<String,
SortedSet<String>>();
String pluginCandidates = runtime.sendCommand("plugin-candidates-query");
+ SortedSet<String> currentCommands = null;
StringTokenizer tokenizer = new StringTokenizer(pluginCandidates);
if (tokenizer.hasMoreTokens()) {
String first = tokenizer.nextToken();
if ("plugin-candidates-answer:".equals(first)) {
while (tokenizer.hasMoreTokens()) {
- result.add(tokenizer.nextToken());
+ String token = tokenizer.nextToken();
+ if (token.indexOf("p:") != -1) {
+ currentCommands = new TreeSet<String>();
+ result.put(token.substring(2), currentCommands);
+ } else if (token.indexOf("c:") != -1) {
+ currentCommands.add(token.substring(2));
+ }
}
}
- }
+ }
return result;
}
protected Control createDialogArea(Composite parent) {
Composite result = (Composite)super.createDialogArea(parent);
result.setLayout(new FillLayout());
- List list = new List(result, SWT.SINGLE);
- SortedSet<String> pluginCandidates = getPluginCandidates();
- for (String plugin : pluginCandidates) {
- list.add(plugin);
+ Tree tree = new Tree(result, SWT.SINGLE | SWT.V_SCROLL);
+// List list = new List(result, SWT.SINGLE | SWT.V_SCROLL);
+ SortedMap<String, SortedSet<String>> candidates = getCandidates();
+ for (String plugin : candidates.keySet()) {
+ TreeItem pluginItem = new TreeItem(tree, SWT.NONE);
+ pluginItem.setText(plugin);
+ SortedSet<String> commands = candidates.get(plugin);
+ for (String command : commands) {
+ TreeItem commandItem = new TreeItem(pluginItem, SWT.NONE);
+ commandItem.setText(command);
+ }
+// list.add(plugin);
}
return result;
}
Show replies by date