public VerticalPanel buildUsersListPanel() {
    DockPanel headerDockPanel = new DockPanel();
    headerDockPanel.add(deleteUserBtn, DockPanel.EAST);
    VerticalPanel spacer = new VerticalPanel();
    spacer.setWidth("2"); // $NON-NLS-1$
    headerDockPanel.add(spacer, DockPanel.EAST);
    headerDockPanel.add(addUserBtn, DockPanel.EAST);
    Label label = new Label("Users"); // $NON-NLS-1$
    headerDockPanel.add(label, DockPanel.WEST);
    headerDockPanel.setCellWidth(label, "100%"); // $NON-NLS-1$
    VerticalPanel userListPanel = new VerticalPanel();
    userListPanel.add(headerDockPanel);
    userListPanel.add(usersList);
    userListPanel.add(new Label(Messages.getString("filter"))); // $NON-NLS-1$
    userListPanel.add(filterTextBox);

    userListPanel.setCellHeight(usersList, "100%"); // $NON-NLS-1$
    userListPanel.setCellWidth(usersList, "100%"); // $NON-NLS-1$
    userListPanel.setHeight("100%"); // $NON-NLS-1$
    userListPanel.setWidth("100%"); // $NON-NLS-1$
    usersList.setHeight("100%"); // $NON-NLS-1$
    usersList.setWidth("100%"); // $NON-NLS-1$
    filterTextBox.setWidth("100%"); // $NON-NLS-1$
    deleteUserBtn.setEnabled(false);

    filterTextBox.addKeyboardListener(this);
    usersList.addChangeListener(this);
    addUserBtn.addClickListener(this);
    deleteUserBtn.addClickListener(this);
    return userListPanel;
  }
Beispiel #2
0
 public static void checkUsersList(UsersList usersList) {
   // Check optional fields
   if (usersList.getUsers() != null) {
     for (Reference user : usersList.getUsers()) {
       checkReferenceType(user);
     }
   }
 }
  private void assignSelectedUsers() {

    AsyncCallback<Object> callback =
        new AsyncCallback<Object>() {
          public void onSuccess(Object result) {
            userAssignmentsModified = true;
            hide();
          }

          public void onFailure(Throwable caught) {
            MessageDialogBox messageDialog =
                new MessageDialogBox(
                    ExceptionParser.getErrorHeader(caught.getMessage()),
                    ExceptionParser.getErrorMessage(
                        caught.getMessage(), Messages.getString("errorAssigningSelectedUsers")),
                    false,
                    false,
                    true); //$NON-NLS-1$
            messageDialog.center();
          }
        };
    UserAndRoleMgmtService.instance()
        .setUsers(
            role, accumulatedUsersList.getObjects().toArray(new ProxyPentahoUser[0]), callback);
  }
  private void userSelectionChanged() {
    List<ProxyPentahoUser> selectedUsers = usersList.getSelectedObjects();
    if (selectedUsers.size() == 1) {
      userDetailsPanel.setUser(selectedUsers.get(0));
      List<ProxyPentahoRole> roleList =
          Arrays.asList(UserAndRoleMgmtService.instance().getRoles(selectedUsers.get(0)));
      assignedRolesList.setObjects(roleList);
    } else {
      userDetailsPanel.setUser(null);
      List<ProxyPentahoRole> emptyRoleList = Collections.emptyList();
      assignedRolesList.setObjects(emptyRoleList);
    }
    userDetailsPanel.setEnabled(selectedUsers.size() == 1);
    updateUserBtn.setEnabled(selectedUsers.size() == 1);

    if (selectedUsers.size() > 0) {
      deleteUserBtn.setEnabled(true);
    } else {
      deleteUserBtn.setEnabled(false);
    }

    if (selectedUsers.size() == 1) {
      addRoleAssignmentBtn.setEnabled(true);
    } else {
      addRoleAssignmentBtn.setEnabled(false);
    }

    userDetailsPanel.getUserNameTextBox().setEnabled(false);
    assignedRoleSelectionChanged();
  }
  private void unassignSelectedRoles() {
    List<ProxyPentahoUser> selectedUsers = usersList.getSelectedObjects();
    if (selectedUsers.size() == 1) {
      ArrayList<ProxyPentahoRole> assignedRoles = new ArrayList<ProxyPentahoRole>();
      assignedRoles.addAll(
          Arrays.asList(UserAndRoleMgmtService.instance().getRoles(selectedUsers.get(0))));
      final List<ProxyPentahoRole> rolesToUnassign = assignedRolesList.getSelectedObjects();
      assignedRoles.removeAll(rolesToUnassign);

      AsyncCallback<Object> callback =
          new AsyncCallback<Object>() {
            public void onSuccess(Object result) {
              assignedRolesList.removeObjects(rolesToUnassign);
            }

            public void onFailure(Throwable caught) {
              MessageDialogBox messageDialog =
                  new MessageDialogBox(
                      ExceptionParser.getErrorHeader(caught.getMessage()),
                      ExceptionParser.getErrorMessage(
                          caught.getMessage(), Messages.getString("errorUnassigningRoles")),
                      false,
                      false,
                      true); //$NON-NLS-1$
              messageDialog.center();
            }
          };
      UserAndRoleMgmtService.instance()
          .setRoles(
              selectedUsers.get(0),
              (ProxyPentahoRole[]) assignedRoles.toArray(new ProxyPentahoRole[0]),
              callback);
    }
  }
  private void deleteSelectedUsers() {
    final List<ProxyPentahoUser> selectedUsers = usersList.getSelectedObjects();
    if (selectedUsers.size() > 0) {
      AsyncCallback<Boolean> callback =
          new AsyncCallback<Boolean>() {
            public void onSuccess(Boolean result) {
              usersList.removeObjects(selectedUsers);
              userSelectionChanged();
            }

            public void onFailure(Throwable caught) {
              MessageDialogBox messageDialog =
                  new MessageDialogBox(
                      ExceptionParser.getErrorHeader(caught.getMessage()),
                      ExceptionParser.getErrorMessage(
                          caught.getMessage(), Messages.getString("errorDeletingUsers")),
                      false,
                      false,
                      true); //$NON-NLS-1$
              messageDialog.center();
            }
          };
      UserAndRoleMgmtService.instance()
          .deleteUsers(selectedUsers.toArray(new ProxyPentahoUser[0]), callback);
    }
  }
 public void setRole(ProxyPentahoRole role) {
   userAssignmentsModified = false;
   this.role = role;
   if (role != null) {
     ArrayList<ProxyPentahoUser> unassignedUsers = new ArrayList<ProxyPentahoUser>();
     unassignedUsers.addAll(Arrays.asList(UserAndRoleMgmtService.instance().getUsers()));
     ArrayList<ProxyPentahoUser> assignedUsers = new ArrayList<ProxyPentahoUser>();
     assignedUsers.addAll(Arrays.asList(UserAndRoleMgmtService.instance().getUsers(role)));
     unassignedUsers.removeAll(assignedUsers);
     availableUsersList.setObjects(unassignedUsers);
     accumulatedUsersList.setObjects(assignedUsers);
   } else {
     List<ProxyPentahoUser> emptyList = Collections.emptyList();
     availableUsersList.setObjects(emptyList);
     accumulatedUsersList.setObjects(emptyList);
   }
 }
 public void onClick(Widget sender) {
   if (sender == updateUserBtn) {
     updateUserDetails(sender);
   } else if (sender == deleteUserBtn) {
     if (usersList.getSelectedObjects().size() > 0) {
       confirmDeleteUsersDialog.center();
     }
   } else if (sender == addUserBtn) {
     addNewUser();
   } else if (sender == deleteRoleAssignmentBtn) {
     if (assignedRolesList.getSelectedObjects().size() > 0) {
       confirmRemoveRoleAssignmentDialog.center();
     }
   } else if (sender == addRoleAssignmentBtn) {
     List<ProxyPentahoUser> selectedUsers = usersList.getSelectedObjects();
     if (selectedUsers.size() == 1) {
       modifyRoleAssignments(selectedUsers.get(0));
     }
   }
 }
 public void onKeyUp(Widget sender, char keyCode, int modifiers) {
   if (filterTextBox == sender) {
     usersList.setFilter(new UserNameFilter(filterTextBox.getText()));
     userSelectionChanged();
   }
 }
 public void refresh() {
   List<ProxyPentahoUser> userList = Arrays.asList(UserAndRoleMgmtService.instance().getUsers());
   usersList.setObjects(userList);
   userSelectionChanged();
 }