private void removeEntry() {
   List selElements = fProjectsList.getSelectedElements();
   for (int i = selElements.size() - 1; i >= 0; i--) {
     Object elem = selElements.get(i);
     if (elem instanceof CPListElementAttribute) {
       CPListElementAttribute attrib = (CPListElementAttribute) elem;
       if (attrib.isBuiltIn()) {
         String key = attrib.getKey();
         Object value = null;
         if (key.equals(CPListElement.ACCESSRULES)) {
           value = new IAccessRule[0];
         }
         attrib.getParent().setAttribute(key, value);
       } else {
         removeCustomAttribute(attrib);
       }
       selElements.remove(i);
     }
   }
   if (selElements.isEmpty()) {
     fProjectsList.refresh();
     fClassPathList.dialogFieldChanged(); // validate
   } else {
     fProjectsList.removeElements(selElements);
   }
 }
  private void projectPageSelectionChanged(DialogField field) {
    List selElements = fProjectsList.getSelectedElements();
    fProjectsList.enableButton(IDX_EDIT, canEdit(selElements));
    fProjectsList.enableButton(IDX_REMOVE, canRemove(selElements));

    boolean noAttributes = containsOnlyTopLevelEntries(selElements);
    fProjectsList.enableButton(IDX_ADDPROJECT, noAttributes);
  }
 protected void projectPageKeyPressed(TreeListDialogField field, KeyEvent event) {
   if (field == fProjectsList) {
     if (event.character == SWT.DEL && event.stateMask == 0) {
       List selection = field.getSelectedElements();
       if (canRemove(selection)) {
         removeEntry();
       }
     }
   }
 }
 /** Method editEntry. */
 private void editEntry() {
   List selElements = fProjectsList.getSelectedElements();
   if (selElements.size() != 1) {
     return;
   }
   Object elem = selElements.get(0);
   if (fProjectsList.getIndexOfElement(elem) != -1) {
     editElementEntry((CPListElement) elem);
   } else if (elem instanceof CPListElementAttribute) {
     editAttributeEntry((CPListElementAttribute) elem);
   }
 }
 protected void projectPageDoubleClicked(TreeListDialogField field) {
   List selection = fProjectsList.getSelectedElements();
   if (canEdit(selection)) {
     editEntry();
   }
 }
 /*
  * @see BuildPathBasePage#getSelection
  */
 public List getSelection() {
   return fProjectsList.getSelectedElements();
 }