Revision: 3440
Author: ferguson.sebastian
Date: Wed Apr  7 13:00:40 2010
Log: Improved the UI for security
http://code.google.com/p/power-architect/source/detail?r=3440

Modified:
/trunk/src/main/java/ca/sqlpower/architect/enterprise/NetworkConflictResolver.java /trunk/src/main/java/ca/sqlpower/architect/swingui/action/enterprise/RefreshProjectAction.java /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/GroupEditorPanel.java /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/ProjectSecurityPanel.java /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/SecurityPanel.java /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/UserEditorPanel.java

=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/enterprise/NetworkConflictResolver.java Tue Apr 6 10:20:51 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/enterprise/NetworkConflictResolver.java Wed Apr 7 13:00:40 2010
@@ -159,7 +159,8 @@
             }
             updateListeners.removeAll(listenersToRemove);
             if (promptSession != null) {
- promptSession.createUserPrompter("You do not have sufficient privileges to perform that action.\n" +
+                promptSession.createUserPrompter(
+ "You do not have sufficient privileges to perform that action. " + "Please hit the refresh button to synchonize with the server.",
                         UserPromptType.MESSAGE,
                         UserPromptOptions.OK,
@@ -284,7 +285,8 @@
                                }
updateListeners.removeAll(listenersToRemove);
                                if (promptSession != null) {
- promptSession.createUserPrompter("You do not have sufficient privileges to perform that action.\n" +
+                                   promptSession.createUserPrompter(
+ "You do not have sufficient privileges to perform that action. " + "Please hit the refresh button to synchonize with the server.",
                                            UserPromptType.MESSAGE,
                                            UserPromptOptions.OK,
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/action/enterprise/RefreshProjectAction.java Mon Mar 15 12:14:01 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/action/enterprise/RefreshProjectAction.java Wed Apr 7 13:00:40 2010
@@ -30,7 +30,6 @@

 public class RefreshProjectAction extends AbstractAction {

-    //TODO: Find/Create this image!
private static final ImageIcon REFRESH_ICON = new ImageIcon(RefreshProjectAction.class.getResource("/icons/arrow_refresh16.png"));

     final ArchitectSession session;
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/GroupEditorPanel.java Tue Apr 6 14:59:57 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/GroupEditorPanel.java Wed Apr 7 13:00:40 2010
@@ -42,6 +42,8 @@
 import ca.sqlpower.enterprise.client.GroupMember;
 import ca.sqlpower.enterprise.client.User;
 import ca.sqlpower.swingui.DataEntryPanel;
+import ca.sqlpower.swingui.LessthanGreaterthanIcon;
+import ca.sqlpower.swingui.LessthanGreaterthanIcon.Type;

 import com.jgoodies.forms.builder.ButtonBarBuilder;
 import com.jgoodies.forms.builder.DefaultFormBuilder;
@@ -71,7 +73,7 @@

     private final Action closeAction;

-    private final Action addAction = new AbstractAction(">") {
+    private final Action addAction = new AbstractAction() {
         public void actionPerformed(ActionEvent e) {
             Object[] selection = availableUsersList.getSelectedValues();

@@ -90,7 +92,7 @@
         }
     };

-    private final Action removeAction = new AbstractAction("<") {
+    private final Action removeAction = new AbstractAction() {
         public void actionPerformed(ActionEvent e) {
             Object[] selection = currentUsersList.getSelectedValues();

@@ -138,7 +140,6 @@
         this.username = username;
         this.closeAction = closeAction;

-        final Dimension prefButtonDimension = new Dimension(25, 25);
         final Dimension prefScrollPaneDimension = new Dimension(250, 300);

         nameLabel = new JLabel("Group Name");
@@ -175,9 +176,9 @@
         }

         JButton addButton = new JButton(addAction);
-        addButton.setPreferredSize(prefButtonDimension);
+        addButton.setIcon(new LessthanGreaterthanIcon(Type.GREATERTHAN));
         JButton removeButton = new JButton(removeAction);
-        removeButton.setPreferredSize(prefButtonDimension);
+        removeButton.setIcon(new LessthanGreaterthanIcon(Type.LESSTHAN));

         CellConstraints cc = new CellConstraints();
DefaultFormBuilder upperPanelBuilder = new DefaultFormBuilder(new FormLayout(
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/ProjectSecurityPanel.java Tue Apr 6 15:57:06 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/ProjectSecurityPanel.java Wed Apr 7 13:00:40 2010
@@ -36,6 +36,7 @@
 import javax.swing.AbstractAction;
 import javax.swing.Action;
 import javax.swing.DefaultListModel;
+import javax.swing.ImageIcon;
 import javax.swing.JButton;
 import javax.swing.JComponent;
 import javax.swing.JLabel;
@@ -52,6 +53,7 @@
 import javax.swing.table.TableModel;

 import ca.sqlpower.architect.ArchitectProject;
+import ca.sqlpower.architect.swingui.action.enterprise.RefreshProjectAction;
 import ca.sqlpower.enterprise.client.Grant;
 import ca.sqlpower.enterprise.client.Group;
 import ca.sqlpower.enterprise.client.GroupMember;
@@ -66,6 +68,9 @@

 public class ProjectSecurityPanel implements DataEntryPanel{

+ private static final ImageIcon ADD_ICON = new ImageIcon(RefreshProjectAction.class.getResource("/icons/famfamfam/add.png")); + private static final ImageIcon REMOVE_ICON = new ImageIcon(RefreshProjectAction.class.getResource("/icons/famfamfam/delete.png"));
+
     private final JPanel panel;
     private final JLabel panelLabel;

@@ -105,7 +110,7 @@

         CellConstraints cc = new CellConstraints();
         DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout(
- "pref:grow", "pref:grow, 5dlu, pref:grow, pref:grow, 5dlu, pref:grow, pref:grow, 5dlu, pref:grow")); + "pref", "pref:grow, 5dlu, pref:grow, pref:grow, 5dlu, pref:grow, pref:grow, 5dlu, pref:grow"));
         builder.add(panelLabel, cc.xy(1,1));

         // User list and headers
@@ -334,7 +339,7 @@
             headerRow[3] = new JLabel("Modify");
             headerRow[4] = new JLabel("Delete");
             headerRow[5] = new JLabel("Grant");
-            headerRow[6] = new JButton(new AbstractAction("+") {
+            JButton addButton = new JButton(new AbstractAction() {
                 public void actionPerformed(ActionEvent e) {

                     JList list = new JList(new DefaultListModel());
@@ -372,6 +377,10 @@
                     }
                 }
             });
+            addButton.setIcon(ADD_ICON);
+            addButton.setBorderPainted(false);
+
+            headerRow[6] = addButton;
             rows.add(headerRow);

             if (subject != null) {
@@ -401,7 +410,7 @@
                     specific.getViewPrivilege().setText(null);
                     specific.getGrantPrivilege().setText(null);

- JButton removeButton = new JButton(new AbstractAction("-") { + JButton removeButton = new JButton(new AbstractAction() {
                         public void actionPerformed(ActionEvent e) {
                             try {
                                 object.removeChild(specific.getGrant());
@@ -412,6 +421,8 @@
                             refreshPanel();
                         }
                     });
+                    removeButton.setIcon(REMOVE_ICON);
+                    removeButton.setBorderPainted(false);

                     Component [] rowComponents = new Component[numColumns];
                     rowComponents[0] = new JLabel(object.getName());
@@ -439,7 +450,7 @@
                     global.getViewPrivilege().setText(null);
                     global.getGrantPrivilege().setText(null);

- JButton removeButton = new JButton(new AbstractAction("-") { + JButton removeButton = new JButton(new AbstractAction() {
                         public void actionPerformed(ActionEvent e) {
                             try {
                                 object.removeChild(global.getGrant());
@@ -450,6 +461,8 @@
                             refreshPanel();
                         }
                     });
+                    removeButton.setIcon(REMOVE_ICON);
+                    removeButton.setBorderPainted(false);

                     Component [] rowComponents = new Component[numColumns];
                     rowComponents[0] = new JLabel(object.getName());
@@ -512,7 +525,7 @@
                 col.setCellEditor(new RowCellEditor(this));
             }

-            table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
+            //table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.getColumnModel().getColumn(6).setPreferredWidth(table.getRowHeight());

             JScrollPane scrollpane = new JScrollPane(table);
@@ -526,6 +539,7 @@
             }

scrollpane.setPreferredSize(new Dimension(preferredWidth, preferredHeight));
+            scrollpane.setBackground(Color.WHITE);

             return scrollpane;
         }
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/SecurityPanel.java Tue Apr 6 15:57:06 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/SecurityPanel.java Wed Apr 7 13:00:40 2010
@@ -57,7 +57,6 @@
 import ca.sqlpower.enterprise.client.Group;
 import ca.sqlpower.enterprise.client.SPServerInfo;
 import ca.sqlpower.enterprise.client.User;
-import ca.sqlpower.object.ObjectDependentException;
 import ca.sqlpower.object.SPObject;
 import ca.sqlpower.swingui.DataEntryPanel;
 import ca.sqlpower.swingui.SPSUtils;
@@ -182,29 +181,6 @@
         }
     };

-    private final Action deleteAction = new AbstractAction("Delete") {
-        public void actionPerformed(ActionEvent e) {
-            if (promptForUnsavedChanges()) {
- DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent(); - if (dmtn != null && dmtn.isLeaf() && dmtn != groupsNode && dmtn != usersNode) {
-
-                    if (promptForDelete((SPObject) dmtn.getUserObject())) {
-                        try {
- securityWorkspace.removeChild((SPObject) dmtn.getUserObject());
-                        } catch (IllegalArgumentException e1) {
- throw new RuntimeException("Unable to delete: ", e1);
-                        } catch (ObjectDependentException e1) {
- throw new RuntimeException("Unable to delete: ", e1);
-                        }
-
-                        refreshTree();
- tree.setSelectionPath(new TreePath(usersNode.getFirstChild()));
-                    }
-                }
-            }
-        }
-    };
-
     private final MessageDigest digester;
     private final Dialog dialog;
     private final ArchitectSession session;
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/UserEditorPanel.java Tue Apr 6 15:57:06 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/UserEditorPanel.java Wed Apr 7 13:00:40 2010
@@ -60,6 +60,8 @@
 import ca.sqlpower.enterprise.client.SPServerInfo;
 import ca.sqlpower.enterprise.client.User;
 import ca.sqlpower.swingui.DataEntryPanel;
+import ca.sqlpower.swingui.LessthanGreaterthanIcon;
+import ca.sqlpower.swingui.LessthanGreaterthanIcon.Type;
 import ca.sqlpower.util.UserPrompter.UserPromptOptions;
 import ca.sqlpower.util.UserPrompter.UserPromptResponse;
 import ca.sqlpower.util.UserPrompterFactory.UserPromptType;
@@ -79,6 +81,7 @@
     private final JLabel usernameLabel;
     private final JLabel fullnameLabel;
     private final JLabel emailLabel;
+    private final JButton passwordButton;

     private final JTextField usernameField;
     private final JTextField fullnameField;
@@ -98,7 +101,7 @@

     private final Action closeAction;

-    private final Action addAction = new AbstractAction(">") {
+    private final Action addAction = new AbstractAction() {
         public void actionPerformed(ActionEvent e) {
             Object[] selection = availableGroupsList.getSelectedValues();

@@ -117,7 +120,7 @@
         }
     };

-    private final Action removeAction = new AbstractAction("<") {
+    private final Action removeAction = new AbstractAction() {
         public void actionPerformed(ActionEvent e) {
             Object[] selection = currentGroupsList.getSelectedValues();

@@ -157,16 +160,12 @@
public void removeUpdate(DocumentEvent e) { hasUnsavedChanges = true; }
     };

-    private final ArchitectSession session;
-
public UserEditorPanel(User baseUser, String username, Action closeAction, final Dialog d, final ArchitectSession session) {
         this.user = baseUser;
         this.securityWorkspace = (ArchitectProject) user.getParent();
         this.username = username;
         this.closeAction = closeAction;
-        this.session = session;
-
-        final Dimension prefButtonDimension = new Dimension(25, 25);
+
         final Dimension prefScrollPaneDimension = new Dimension(250, 300);

         usernameLabel = new JLabel("User Name");
@@ -214,9 +213,9 @@
         }

         JButton addButton = new JButton(addAction);
-        addButton.setPreferredSize(prefButtonDimension);
+        addButton.setIcon(new LessthanGreaterthanIcon(Type.GREATERTHAN));
         JButton removeButton = new JButton(removeAction);
-        removeButton.setPreferredSize(prefButtonDimension);
+        removeButton.setIcon(new LessthanGreaterthanIcon(Type.LESSTHAN));

         CellConstraints cc = new CellConstraints();
DefaultFormBuilder upperPanelBuilder = new DefaultFormBuilder(new FormLayout(
@@ -228,9 +227,7 @@
         upperPanelBuilder.add(emailLabel, cc.xy(1, 4));
         upperPanelBuilder.add(emailField, cc.xy(3, 4));

- ButtonBarBuilder passwordBuilder = ButtonBarBuilder.createLeftToRightBuilder();
-        passwordBuilder.addGlue();
- passwordBuilder.addGridded(new JButton(new AbstractAction("Change Password") { + passwordButton = new JButton(new AbstractAction("Change Password") {
             public void actionPerformed(ActionEvent e) {

                 final JDialog dialog = new JDialog(d);
@@ -310,8 +307,12 @@
                 dialog.setLocationRelativeTo(d);
                 dialog.setVisible(true);
             }
-            }));
-
+        });
+
+ ButtonBarBuilder passwordBuilder = ButtonBarBuilder.createLeftToRightBuilder();
+        passwordBuilder.addGlue();
+        passwordBuilder.addGridded(passwordButton);
+
DefaultFormBuilder buttonPanelBuilder = new DefaultFormBuilder(new FormLayout(
                 "pref", "pref:grow, pref, 5dlu, pref, pref:grow"));
         buttonPanelBuilder.add(addButton, cc.xy(1,2));
@@ -507,6 +508,7 @@
             usernameField.setEnabled(false);
             fullnameField.setEnabled(false);
             emailField.setEnabled(false);
+            passwordButton.setEnabled(false);
         }

         if (disableModifyGroups) {


--
To unsubscribe, reply using "remove me" as the subject.

Reply via email to