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.