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;