Author: ruschein
Date: 2011-04-06 16:40:38 -0700 (Wed, 06 Apr 2011)
New Revision: 24692
Added:
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/ui/
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/ui/UserNamePasswordDialog.java
Modified:
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/GSUtils.java
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/ListFilesInGenomeSpace.java
Log:
Added username/password entry dialog.
Modified:
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/GSUtils.java
===================================================================
---
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/GSUtils.java
2011-04-06 22:07:11 UTC (rev 24691)
+++
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/GSUtils.java
2011-04-06 23:40:38 UTC (rev 24692)
@@ -1,36 +1,71 @@
-
package cytoscape.genomespace;
+import cytoscape.Cytoscape;
+import cytoscape.genomespace.ui.UserNamePasswordDialog;
+
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.Collection;
+import javax.swing.JOptionPane;
import org.genomespace.client.GsSession;
+import org.genomespace.client.exceptions.AuthorizationException;
import org.genomespace.client.exceptions.GSClientException;
import org.genomespace.client.User;
import org.genomespace.datamanager.core.GSFileMetadata;
+
final class GSUtils {
-
private GSUtils() {};
private static GsSession session = null;
public static GsSession getSession() {
- if ( session == null || !session.isLoggedIn()) {
+ if (session == null || !session.isLoggedIn()) {
try {
+ final UserNamePasswordDialog
userNamePasswordDialog = new UserNamePasswordDialog();
+ userNamePasswordDialog.setVisible(true);
session = new GsSession();
- String username = "test";
- String password = "password";
- User user = session.login(username, password);
- } catch (Exception e) { throw new
GSClientException("failed to login",e); }
+ if (!loginToGenomeSpace())
+ throw new GSClientException("failed to
login!", null);
+ } catch (Exception e) {
+ throw new GSClientException("failed to login",
e);
+ }
}
return session;
}
+ public static boolean loginToGenomeSpace() {
+ for (;;) {
+ final UserNamePasswordDialog userNamePasswordDialog =
new UserNamePasswordDialog();
+ userNamePasswordDialog.setVisible(true);
+ final String userName =
userNamePasswordDialog.getUserName();
+ final String password =
userNamePasswordDialog.getPassword();
+ if (userName == null || userName.isEmpty() || password
== null || password.isEmpty())
+ return false;
+
+ try {
+ session.login(userName, password);
+ return true;
+ } catch (final AuthorizationException e) {
+
JOptionPane.showMessageDialog(Cytoscape.getDesktop(),
+ "Invalid user
name or password!",
+ "Login Error",
+
JOptionPane.ERROR_MESSAGE);
+ continue;
+ } catch (final Exception e) {
+
JOptionPane.showMessageDialog(Cytoscape.getDesktop(),
+ e.getMessage(),
+ "Login Error",
+
JOptionPane.ERROR_MESSAGE);
+ return false;
+ }
+ }
+ }
+
public static Map<String,GSFileMetadata>
getFileNameMap(Collection<GSFileMetadata> l) {
Map<String,GSFileMetadata> nm = new
HashMap<String,GSFileMetadata>();
for ( GSFileMetadata f : l )
Modified:
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/ListFilesInGenomeSpace.java
===================================================================
---
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/ListFilesInGenomeSpace.java
2011-04-06 22:07:11 UTC (rev 24691)
+++
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/ListFilesInGenomeSpace.java
2011-04-06 23:40:38 UTC (rev 24692)
@@ -1,5 +1,6 @@
package cytoscape.genomespace;
+
import cytoscape.Cytoscape;
import cytoscape.util.CytoscapeAction;
import cytoscape.util.FileUtil;
@@ -22,13 +23,13 @@
import org.genomespace.client.DataManagerClient;
import org.genomespace.client.User;
+
/**
* A simple action. Change the names as appropriate and
* then fill in your expected behavior in the actionPerformed()
* method.
*/
public class ListFilesInGenomeSpace extends CytoscapeAction {
-
private static final long serialVersionUID = 1234487711999989L;
private static final CyLogger logger =
CyLogger.getLogger(ListFilesInGenomeSpace.class);
@@ -39,24 +40,22 @@
// Set the menu you'd like here. Plugins don't need
// to live in the Plugins menu, so choose whatever
// is appropriate!
- setPreferredMenu("Plugins.GenomeSpace");
+ setPreferredMenu("Plugins.GenomeSpace");
}
public void actionPerformed(ActionEvent e) {
-
try {
+ GsSession client = GSUtils.getSession();
+ DataManagerClient dmc = client.getDataManagerClient();
- GsSession client = GSUtils.getSession();
- DataManagerClient dmc = client.getDataManagerClient();
+ // list the files present for this user
+ List<GSFileMetadata> myFiles =
dmc.listDefaultDirectory().getContents();
+ Vector<String> fileNames = new Vector<String>();
+ for (GSFileMetadata aFile: myFiles) {
+ fileNames.add(aFile.getName());
+ }
- // list the files present for this user
- List<GSFileMetadata> myFiles =
dmc.listDefaultDirectory().getContents();
- Vector<String> fileNames = new Vector<String>();
- for (GSFileMetadata aFile: myFiles) {
- fileNames.add(aFile.getName());
- }
-
- displayFiles(fileNames);
+ displayFiles(fileNames);
} catch (Exception ex) {
logger.error("GenomeSpace failed",ex);
Added:
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/ui/UserNamePasswordDialog.java
===================================================================
---
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/ui/UserNamePasswordDialog.java
(rev 0)
+++
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/ui/UserNamePasswordDialog.java
2011-04-06 23:40:38 UTC (rev 24692)
@@ -0,0 +1,103 @@
+package cytoscape.genomespace.ui;
+
+
+import cytoscape.Cytoscape;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.GridBagLayout;
+import java.awt.GridBagConstraints;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.border.LineBorder;
+
+
+public final class UserNamePasswordDialog extends JDialog {
+ private final JLabel userNameLabel;
+ private final JLabel passwordLabel;
+ private final JTextField userNameTextField;
+ private final JPasswordField passwordField;
+ private final JButton loginButton;
+ private final JButton cancelButton;
+
+ public UserNamePasswordDialog() {
+ super(Cytoscape.getDesktop(), "Genome Space Authentication", /*
modal = */ true);
+
+ final JPanel userNameAndPasswordPanel = new JPanel(new
GridBagLayout());
+ final GridBagConstraints constraints = new GridBagConstraints();
+ constraints.fill = GridBagConstraints.HORIZONTAL;
+
+ userNameLabel = new JLabel("GS User name: ");
+ constraints.gridx = 0;
+ constraints.gridy = 0;
+ constraints.gridwidth = 1;
+ userNameAndPasswordPanel.add(userNameLabel);
+
+ userNameTextField = new JTextField(20);
+ constraints.gridx = 1;
+ constraints.gridy = 0;
+ constraints.gridwidth = 2;
+ userNameAndPasswordPanel.add(userNameTextField);
+
+ passwordLabel = new JLabel("GS Password: ");
+ constraints.gridx = 0;
+ constraints.gridy = 1;
+ constraints.gridwidth = 1;
+ userNameAndPasswordPanel.add(passwordLabel);
+
+ passwordField = new JPasswordField(20);
+ constraints.gridx = 1;
+ constraints.gridy = 1;
+ constraints.gridwidth = 2;
+ userNameAndPasswordPanel.add(passwordField);
+
+ userNameAndPasswordPanel.setBorder(new LineBorder(Color.GRAY));
+
+ final JPanel buttonPanel = new JPanel();
+ loginButton = new JButton("Login");
+ loginButton.addActionListener(new ActionListener() {
+ public void actionPerformed(final ActionEvent e) {
+ if
(userNameTextField.getText().trim().isEmpty())
+
JOptionPane.showMessageDialog(UserNamePasswordDialog.this,
+ "Please
enter a non-empty user name!",
+ "Error",
+
JOptionPane.ERROR_MESSAGE);
+ else if (passwordField.getText().isEmpty())
+
JOptionPane.showMessageDialog(UserNamePasswordDialog.this,
+ "Please
enter a non-empty password!",
+ "Error",
+
JOptionPane.ERROR_MESSAGE);
+ else
+ dispose();
+ }
+ });
+ buttonPanel.add(loginButton);
+ getRootPane().setDefaultButton(loginButton);
+
+ cancelButton = new JButton("Cancel");
+ cancelButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ dispose();
+ }
+ });
+ buttonPanel.add(cancelButton);
+
+ getContentPane().add(userNameAndPasswordPanel,
BorderLayout.CENTER);
+ getContentPane().add(buttonPanel, BorderLayout.PAGE_END);
+
+ pack();
+ setResizable(false);
+ setLocationRelativeTo(Cytoscape.getDesktop());
+ }
+
+ public String getUserName() { return
userNameTextField.getText().trim(); }
+ public String getPassword() { return passwordField.getText(); }
+}
\ No newline at end of file
--
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.