Пример #1
0
  private void showAddMemberDialog() {
    Slice slice = (Slice) sliceList.getSelectedValue();
    HashSet<String> existingMembers = new HashSet<String>();
    for (int i = 0; i < slice.members.size(); i++) existingMembers.add(slice.members.get(i).urn);

    HashSet<String> nonMembers = new HashSet<String>();
    Object[] allMembers = mainGUI.getMembersArray();

    for (int i = 0; i < allMembers.length; i++) {
      Member m = (Member) allMembers[i];

      // Ignore Revoked members
      if (MemberAuthorityAPI.crl.getRevokedCertificate(m.cert) != null) continue;

      String urn = m.urn;
      if (!existingMembers.contains(urn)) nonMembers.add(urn);
    }

    String[] choiceArray = nonMembers.toArray(new String[0]);
    if (choiceArray.length == 0) {
      JOptionPane.showMessageDialog(
          Slices.this,
          "There are no more active members to add to this slice.",
          "Add Member",
          JOptionPane.INFORMATION_MESSAGE);
    } else {
      String newMember =
          (String)
              JOptionPane.showInputDialog(
                  null,
                  "Select new member for slice " + slice.name + "\n",
                  "Add Member",
                  JOptionPane.PLAIN_MESSAGE,
                  null,
                  choiceArray,
                  choiceArray[0]);
      if (newMember != null) {
        Membership mem = SliceAuthorityAPI.addMember(slice.urn, newMember, "SLICE");
        if (mem != null) {
          tableModel.add(newMember, "MEMBER");
          slice.members.add(mem);
        } else showErrorMessage();
      }
    }
  }