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.