Author: kono
Date: 2012-07-24 12:48:56 -0700 (Tue, 24 Jul 2012)
New Revision: 29975

Added:
   
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/CommandListUI.java
Modified:
   
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/CommandListAction.java
Log:
fixes #1299 CyCommand List had been moved to Help.

Modified: 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/CommandListAction.java
===================================================================
--- 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/CommandListAction.java
 2012-07-24 17:41:07 UTC (rev 29974)
+++ 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/CommandListAction.java
 2012-07-24 19:48:56 UTC (rev 29975)
@@ -37,7 +37,6 @@
 
 import java.awt.event.ActionEvent;
 
-import javax.swing.JOptionPane;
 import javax.swing.SwingUtilities;
 
 import org.cytoscape.application.swing.AbstractCyAction;
@@ -45,17 +44,19 @@
 import org.cytoscape.command.AvailableCommands;
 
 /**
- *
+ * Display a list of all available commands
  */
-public class CommandListAction extends AbstractCyAction {
+public final class CommandListAction extends AbstractCyAction {
 
        private static final long serialVersionUID = 8750641831904687541L;
+       
        private final CySwingApplication swingApp;
        private final AvailableCommands availableCommands;
 
        public CommandListAction(CySwingApplication swingApp, AvailableCommands 
availableCommands) {
-               super("List All Commands...");
-               setPreferredMenu("Tools.Command");
+               super("Show List of Available Commands...");
+               setPreferredMenu("Help.Cytoscape Commands");
+               setMenuGravity(100000f);
                this.swingApp = swingApp;
                this.availableCommands = availableCommands;
        }
@@ -64,27 +65,10 @@
        public void actionPerformed(ActionEvent ae) {
                SwingUtilities.invokeLater(new Runnable() {
                        public void run() {
-                               showCommandList();
+                               final CommandListUI ui= new 
CommandListUI(availableCommands);
+                               ui.setLocationRelativeTo(swingApp.getJFrame());
+                               ui.setVisible(true);
                        }
                });
        }
-
-       private final void showCommandList() {
-               final StringBuilder sb = new StringBuilder();
-               for (String namespace : availableCommands.getNamespaces()) {
-                       for (String command : 
availableCommands.getCommands(namespace)) {
-                               sb.append(namespace);
-                               sb.append(" ");
-                               sb.append(command);
-                               sb.append(" ");
-                               for (String arg : 
availableCommands.getArguments(namespace, command)) {
-                                       sb.append(arg);
-                                       sb.append(" ");
-                               }
-                               sb.append(System.getProperty("line.separator"));
-                       }
-               }
-               JOptionPane.showMessageDialog(swingApp.getJFrame(), 
sb.toString(), "List of All Available Commands",
-                               JOptionPane.INFORMATION_MESSAGE);
-       }
 }

Added: 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/CommandListUI.java
===================================================================
--- 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/CommandListUI.java
                             (rev 0)
+++ 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/CommandListUI.java
     2012-07-24 19:48:56 UTC (rev 29975)
@@ -0,0 +1,104 @@
+package org.cytoscape.internal.actions;
+
+import java.awt.Color;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.util.Stack;
+
+import javax.swing.BorderFactory;
+import javax.swing.BoxLayout;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.SwingConstants;
+import javax.swing.table.DefaultTableModel;
+
+import org.cytoscape.command.AvailableCommands;
+
+public class CommandListUI extends JDialog {
+
+       private static final long serialVersionUID = -2813178727566532080L;
+
+       private static final String TITLE = "Available CyCommands";
+       private static final String[] COLUMNS = { "Namespace", "Command", 
"Arguments" };
+
+       private final AvailableCommands availableCommands;
+
+       CommandListUI(final AvailableCommands availableCommands) {
+               this.availableCommands = availableCommands;
+
+               initUI();
+       }
+
+       private void initUI() {
+               this.setTitle(TITLE);
+               final Container cp = this.getContentPane();
+               cp.setBackground(Color.WHITE);
+               cp.setLayout(new BoxLayout(cp, BoxLayout.Y_AXIS));
+
+               final JScrollPane pane = new JScrollPane();
+               pane.setOpaque(false);
+               pane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
+
+               final JTable commandTable = new JTable();
+               commandTable.setBackground(Color.white);
+               final DefaultTableModel model = new DefaultTableModel() {
+                       private static final long serialVersionUID = 
-1338792823143882191L;
+
+                       @Override
+                       public boolean isCellEditable(int row, int col) {
+                               return false;
+                       }
+                       
+                       @Override
+                       public int getColumnCount() {
+                               return COLUMNS.length;
+                       }
+                       
+                       @Override
+                       public String getColumnName(final int columnIdx) {
+                               return COLUMNS[columnIdx];
+                       }
+               };
+
+               commandTable.getTableHeader().setPreferredSize(new 
Dimension(500, 30));
+               commandTable.getTableHeader().setFont(new Font("Dialog", 
Font.BOLD, 14));
+               final JLabel rend = (JLabel) 
commandTable.getTableHeader().getDefaultRenderer();
+               rend.setHorizontalAlignment(SwingConstants.CENTER);
+
+               commandTable.getTableHeader().setReorderingAllowed(false);
+
+               for (String namespace : availableCommands.getNamespaces()) {
+                       for (String command : 
availableCommands.getCommands(namespace)) {
+
+                               final Stack<String> row = new Stack<String>();
+                               row.add(namespace);
+                               row.add(command);
+
+                               final StringBuilder builder = new 
StringBuilder();
+                               for (String arg : 
availableCommands.getArguments(namespace, command)) {
+                                       builder.append(arg);
+                                       builder.append(", ");
+                               }
+                               final String argString = builder.toString();
+                               if (!argString.isEmpty())
+                                       row.add(argString.substring(0, 
argString.length() - 2));
+
+                               model.addRow(row);
+                       }
+               }
+
+               commandTable.setModel(model);
+
+               commandTable.getColumn(COLUMNS[0]).setPreferredWidth(120);
+               commandTable.getColumn(COLUMNS[1]).setPreferredWidth(350);
+               commandTable.getColumn(COLUMNS[2]).setPreferredWidth(350);
+
+               this.setMinimumSize(new Dimension(800, 500));
+               pane.setViewportView(commandTable);
+               cp.add(pane);
+               pack();
+       }
+}


Property changes on: 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/CommandListUI.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to