Revision: 3309
Author: ferguson.sebastian
Date: Thu Feb 18 08:05:59 2010
Log: Added support for login in the SPServerInfoManagerPanel, and fixed a bug where listeners were not correctly added to all children in the object model (the type SQLIndex.Column was being ignored)
http://code.google.com/p/power-architect/source/detail?r=3309

Modified:
 /trunk/src/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java
 /trunk/src/ca/sqlpower/architect/swingui/ArchitectFrame.java
/trunk/src/ca/sqlpower/architect/swingui/enterprise/ServerProjectsManagerPanel.java

=======================================
--- /trunk/src/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java Wed Feb 17 14:46:02 2010 +++ /trunk/src/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java Thu Feb 18 08:05:59 2010
@@ -261,7 +261,6 @@
String responseBody = httpClient.execute(request, new JSONResponseHandler());
                List<ProjectLocation> workspaces = new 
ArrayList<ProjectLocation>();
                JSONArray response = new JSONArray(responseBody);
-               logger.debug("Workspace list:\n" + responseBody);
                for (int i = 0; i < response.length(); i++) {
                        JSONObject workspace = (JSONObject) response.get(i);
                        workspaces.add(new ProjectLocation(
@@ -320,9 +319,7 @@
public static ProjectLocation createNewServerSession(SPServerInfo serviceInfo, String name) throws URISyntaxException, ClientProtocolException, IOException, JSONException {
        HttpClient httpClient = createHttpClient(serviceInfo);
        try {
-
HttpUriRequest request = new HttpGet(getServerURI(serviceInfo, "/jcr/projects/new", "name=" + name));
-               System.out.println(request.getURI());
String responseBody = httpClient.execute(request, new JSONResponseHandler());
                JSONObject response = new JSONObject(responseBody);
                logger.debug("New Workspace:" + responseBody);
=======================================
--- /trunk/src/ca/sqlpower/architect/swingui/ArchitectFrame.java Thu Feb 11 14:26:15 2010 +++ /trunk/src/ca/sqlpower/architect/swingui/ArchitectFrame.java Thu Feb 18 08:05:59 2010
@@ -120,6 +120,7 @@
 import ca.sqlpower.architect.swingui.olap.action.ImportSchemaAction;
 import ca.sqlpower.architect.swingui.olap.action.OLAPEditAction;
 import ca.sqlpower.architect.swingui.olap.action.OLAPSchemaManagerAction;
+import ca.sqlpower.enterprise.client.SPServerInfo;
 import ca.sqlpower.sqlobject.SQLColumn;
 import ca.sqlpower.sqlobject.SQLDatabase;
 import ca.sqlpower.sqlobject.SQLObjectException;
@@ -220,20 +221,44 @@
         public void actionPerformed(ActionEvent e) {

final JDialog d = SPSUtils.makeOwnedDialog(ArchitectFrame.this, "Server Connections");
+
             Action closeAction = new AbstractAction("Close") {
                 public void actionPerformed(ActionEvent e) {
                     d.dispose();
                 }
             };

-            Action loginAction = new AbstractAction("Login") {
+ final SPServerInfoManagerPanel sim = new SPServerInfoManagerPanel(session.getContext().getServerManager(),
+                    ArchitectFrame.this, closeAction);
+            sim.setLoginAction(new AbstractAction("Login") {
                 public void actionPerformed(ActionEvent e) {
- JOptionPane.showMessageDialog(ArchitectFrame.this, "Login not yet supported");
-                }
-            };
-
- SPServerInfoManagerPanel sim = new SPServerInfoManagerPanel(session.getContext().getServerManager(),
-                    ArchitectFrame.this, loginAction, closeAction);
+                    SPServerInfo si = sim.getSelectedServer();
+                    if (si != null) {
+ final JDialog dialog = SPSUtils.makeOwnedDialog(ArchitectFrame.this, "Projects");
+                        Action closeAction = new AbstractAction("Close") {
+                            public void actionPerformed(ActionEvent e) {
+                                dialog.dispose();
+
+ if (!((JButton) e.getSource()).getAction().getValue(Action.NAME).equals("Close")) {
+                                    d.dispose();
+                                }
+                            }
+                        };
+ ServerProjectsManagerPanel spm = new ServerProjectsManagerPanel(si, session.getContext(),
+                                ArchitectFrame.this, closeAction);
+ dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
+                        dialog.setContentPane(spm.getPanel());
+
+                        SPSUtils.makeJDialogCancellable(dialog, null);
+                        dialog.pack();
+                        dialog.setLocationRelativeTo(ArchitectFrame.this);
+                        dialog.setVisible(true);
+                    } else {
+ JOptionPane.showMessageDialog(ArchitectFrame.this, "Please select a server", "", JOptionPane.INFORMATION_MESSAGE);
+                    }
+                }
+            });
+
             d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
             d.setContentPane(sim.getPanel());

=======================================
--- /trunk/src/ca/sqlpower/architect/swingui/enterprise/ServerProjectsManagerPanel.java Wed Feb 17 14:46:02 2010 +++ /trunk/src/ca/sqlpower/architect/swingui/enterprise/ServerProjectsManagerPanel.java Thu Feb 18 08:05:59 2010
@@ -158,13 +158,65 @@
     };

     private boolean connected = false;
-
-    public ServerProjectsManagerPanel(ArchitectSessionContext context,
-            Component dialogOwner, Action closeAction) {
+    private SPServerInfo serverInfo = null;
+
+    public ServerProjectsManagerPanel(
+            SPServerInfo serverInfo,
+            ArchitectSessionContext context,
+            Component dialogOwner,
+            Action closeAction)
+    {
+        this.serverInfo = serverInfo;
         this.dialogOwner = dialogOwner;
         this.context = context;
         this.closeAction = closeAction;

+        DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout(
+                "pref:grow, 5dlu, pref",
+                "pref, pref, pref"));
+
+        servers = null;
+
+        projects = new JList(new DefaultListModel());
+        projects.addMouseListener(new MouseAdapter() {
+            @Override
+            public void mouseClicked(MouseEvent e) {
+                refreshPanel();
+ if (e.getClickCount() == 2 && SwingUtilities.isLeftMouseButton(e)) {
+                    openAction.actionPerformed(null);
+                }
+            }
+        });
+
+        JScrollPane projectsPane = new JScrollPane(projects);
+        projectsPane.setPreferredSize(new Dimension(250, 300));
+
+        refreshInfoList();
+        CellConstraints cc = new CellConstraints();
+ builder.add(new JLabel(serverInfo.getName() + "'s projects:"), cc.xyw(1, 1, 2));
+        builder.nextLine();
+        builder.add(projectsPane, cc.xywh(1, 2, 1, 2));
+
+ DefaultFormBuilder buttonBarBuilder = new DefaultFormBuilder(new FormLayout("pref"));
+        buttonBarBuilder.append(new JButton(refreshAction));
+        buttonBarBuilder.append(new JButton(newAction));
+        buttonBarBuilder.append(new JButton(openAction));
+        buttonBarBuilder.append(new JButton(deleteAction));
+        buttonBarBuilder.append(new JButton(closeAction));
+        builder.add(buttonBarBuilder.getPanel(), cc.xy(3, 2));
+        builder.setDefaultDialogBorder();
+        panel = builder.getPanel();
+    }
+
+    public ServerProjectsManagerPanel(
+            ArchitectSessionContext context,
+            Component dialogOwner,
+            Action closeAction)
+    {
+        this.dialogOwner = dialogOwner;
+        this.context = context;
+        this.closeAction = closeAction;
+
         DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout(
                 "pref:grow, 5dlu, pref:grow, 5dlu, pref",
                 "pref, pref, pref"));
@@ -286,6 +338,8 @@
     }

     private SPServerInfo getSelectedServerInfo() {
+        if (serverInfo != null) return serverInfo;
+
         int index = servers.getSelectedIndex();
         Object obj;

Reply via email to