Issue #2247 - Fix permission displays in UserAdmin Dialogs

Change-Id: I2b5e1a717cd741a38ae48e8df0d429a993d88fe4

Former-commit-id: 3959e7e9f8 [formerly e319928638] [formerly 097028ec59] [formerly 3959e7e9f8 [formerly e319928638] [formerly 097028ec59] [formerly e791617acc [formerly 097028ec59 [formerly ca3499309373b553874e7a89e8f38f30e9b041e6]]]]
Former-commit-id: e791617acc
Former-commit-id: d0df6c3107 [formerly b70b7a0681] [formerly ba7884d6eb75737a8c3c26d231fc65031b3c02a1 [formerly 081d30db4f]]
Former-commit-id: 89dc750c21817a4d6c345dc5b21e6c5789869dd4 [formerly 242f34efa9]
Former-commit-id: 622f835330
This commit is contained in:
Mike Duff 2013-08-12 12:55:10 -05:00
parent aaab00ce8b
commit bf7bfbb742
2 changed files with 95 additions and 126 deletions

View file

@ -44,8 +44,9 @@ import com.raytheon.viz.ui.widgets.duallist.IMenuData;
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 01, 2012 mpduff Initial creation
* Jun 01, 2012 mpduff Initial creation.
* Nov 06, 2012 1306 djohnson Use API rather than implementation for role data.
* Aug 12, 2013 2247 mpduff Call getName() on IPermission.
*
* </pre>
*
@ -166,7 +167,7 @@ public class DualListMenuData implements IMenuData {
messageText.append("\n\nPermissions: ");
for (IPermission perm : permissions) {
messageText.append("\n ").append(
perm.toString());
perm.getName());
}
}
roleFlag = true;
@ -174,10 +175,9 @@ public class DualListMenuData implements IMenuData {
}
}
if (roleFlag == false) {
for (IPermission perm : man
.getPermissions(application)) {
if (perm.toString().equals(selection)) {
if (!roleFlag) {
for (IPermission perm : man.getPermissions(application)) {
if (perm.getName().equals(selection)) {
messageText.append("Permission: ")
.append(selection);
messageText.append("\nDescription: ").append(
@ -189,7 +189,8 @@ public class DualListMenuData implements IMenuData {
if (messageText.length() == 0) {
messageText.append("No Description");
}
MessageBox messageDialog = new MessageBox(shell, SWT.ICON_INFORMATION);
MessageBox messageDialog = new MessageBox(shell,
SWT.ICON_INFORMATION);
if (roleFlag) {
messageDialog.setText("Role Description");
} else {

View file

@ -26,7 +26,6 @@ import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
@ -62,9 +61,10 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 23, 2012 mpduff Initial creation.
* Nov 26, 2012 1347 mpduff Make resizable.
* Jan 09, 2013 1412 djohnson Listen for user authentication data changes.
* May 23, 2012 mpduff Initial creation.
* Nov 26, 2012 1347 mpduff Make resizable.
* Jan 09, 2013 1412 djohnson Listen for user authentication data changes.
* Aug 12, 2013 2247 mpduff Dialog cleanup and consistency.
*
* </pre>
*
@ -344,83 +344,11 @@ public class UserAdminSelectDlg extends CaveSWTDialog implements
@Override
public void mouseDown(MouseEvent arg0) {
if (arg0.button == 3) {
Menu menu = new Menu(shell, SWT.POP_UP);
MenuItem item1 = new MenuItem(menu, SWT.PUSH);
item1.setText("Description...");
item1.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
String selection = userPermList
.getItem(userPermList.getSelectionIndex());
StringBuilder messageText = new StringBuilder();
boolean roleFlag = false;
NwsRoleDataManager man = NwsRoleDataManager.getInstance();
for (RoleXML role : man.getRoleData(
selectedApplication).getRoleList()) {
if (selection.equals(role.getRoleId())) {
messageText.append("Role: " + selection);
messageText.append("\n\nDescription: "
+ role.getRoleDescription().trim());
if (role.getPermissionList().size() > 0) {
messageText.append("\n\nPermissions: ");
for (String perm : role
.getPermissionList()) {
messageText.append("\n " + perm);
}
}
roleFlag = true;
break;
}
}
if (roleFlag == false) {
for (PermissionXML perm : man.getRoleData(
selectedApplication)
.getPermissionList()) {
if (perm.getId().equals(selection)) {
messageText.append("Permission: "
+ selection);
messageText.append("\nDescription: "
+ perm.getDescription());
break;
}
}
}
if (messageText.length() == 0) {
messageText.append("No Description");
}
MessageBox messageDialog = new MessageBox(shell,
SWT.ICON_INFORMATION);
if (roleFlag) {
messageDialog.setText("Role Description");
} else {
messageDialog.setText("Permission Description");
}
messageDialog.setMessage(messageText.toString());
messageDialog.open();
}
});
shell.setMenu(menu);
menu.setVisible(true);
showPermissionMenu(userPermList);
}
}
});
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
/************************************************************************************************/
// Roles tab
roleTab = new TabItem(tabFolder, SWT.NONE);
@ -466,53 +394,13 @@ public class UserAdminSelectDlg extends CaveSWTDialog implements
populatePermissionList();
}
});
roleList.addMouseListener(new MouseListener() {
@Override
public void mouseUp(MouseEvent arg0) {
// Not Implemented
}
roleList.addMouseListener(new MouseAdapter() {
@Override
public void mouseDown(MouseEvent arg0) {
if (arg0.button == 3) {
Menu menu = new Menu(shell, SWT.POP_UP);
MenuItem item1 = new MenuItem(menu, SWT.PUSH);
item1.setText("Description...");
item1.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
String selection = roleList.getItem(roleList
.getSelectionIndex());
String messageText = null;
NwsRoleDataManager man = NwsRoleDataManager.getInstance();
String app = appCombo.getItem(appCombo
.getSelectionIndex());
for (RoleXML role : man.getRoleData(app)
.getRoleList()) {
if (selection.equals(role.getRoleId())) {
messageText = role.getRoleDescription();
break;
}
}
MessageBox messageDialog = new MessageBox(shell,
SWT.ICON_INFORMATION);
messageDialog.setText("Role Description");
messageDialog.setMessage(messageText.toString());
messageDialog.open();
}
});
shell.setMenu(menu);
menu.setVisible(true);
showPermissionMenu(roleList);
}
}
@Override
public void mouseDoubleClick(MouseEvent arg0) {
// Not implemented
}
});
gd = new GridData(SWT.DEFAULT, SWT.CENTER, false, false);
@ -572,6 +460,15 @@ public class UserAdminSelectDlg extends CaveSWTDialog implements
rolePermList = new List(permComp, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL
| SWT.H_SCROLL);
rolePermList.setLayoutData(listData);
rolePermList.addMouseListener(new MouseAdapter() {
@Override
public void mouseDown(MouseEvent arg0) {
if (arg0.button == 3) {
showPermissionMenu(rolePermList);
}
}
});
}
private void populateLists() {
@ -717,6 +614,77 @@ public class UserAdminSelectDlg extends CaveSWTDialog implements
}
}
private void showPermissionMenu(final List list) {
Menu menu = new Menu(shell, SWT.POP_UP);
MenuItem item1 = new MenuItem(menu, SWT.PUSH);
item1.setText("Description...");
item1.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
String selection = list.getItem(list.getSelectionIndex());
StringBuilder messageText = new StringBuilder();
boolean roleFlag = false;
NwsRoleDataManager man = NwsRoleDataManager.getInstance();
for (RoleXML role : man.getRoleData(selectedApplication)
.getRoleList()) {
if (selection.equals(role.getRoleId())) {
messageText.append(getRoleDetails(role));
roleFlag = true;
break;
}
}
if (!roleFlag) {
for (PermissionXML perm : man.getRoleData(
selectedApplication).getPermissionList()) {
if (perm.getId().equals(selection)) {
messageText.append(getPermissionDetails(perm));
break;
}
}
}
if (messageText.length() == 0) {
messageText.append("No Description");
}
MessageBox messageDialog = new MessageBox(shell,
SWT.ICON_INFORMATION);
if (roleFlag) {
messageDialog.setText("Role Description");
} else {
messageDialog.setText("Permission Description");
}
messageDialog.setMessage(messageText.toString());
messageDialog.open();
}
});
shell.setMenu(menu);
menu.setVisible(true);
}
private String getRoleDetails(RoleXML role) {
StringBuilder details = new StringBuilder();
details.append("Role: ").append(role.getRoleId());
details.append("\n\nDescription: ").append(
role.getRoleDescription().trim());
if (!role.getPermissionList().isEmpty()) {
details.append("\n\nPermissions: ");
for (String perm : role.getPermissionList()) {
details.append("\n ").append(perm);
}
}
return details.toString();
}
private String getPermissionDetails(PermissionXML perm) {
StringBuilder details = new StringBuilder();
details.append("Permission: ").append(perm.getId());
details.append("\n\nDescription: ").append(perm.getDescription());
return details.toString();
}
private void handleOK() {
NwsRoleDataManager manager = NwsRoleDataManager.getInstance();
manager.save(selectedApplication);