private void update() {
    fBlockNotification = true;

    if (fInput != null) {
      fNameText.setValue(fInput.getName(), true);
      fVersionText.setValue(fInput.getVersion(), true);
      fOptionalButton.setSelection(fInput.isOptional());
      int searchLocation = fInput.getSearchLocation();
      fSearchRootButton.setSelection(searchLocation == IFeatureChild.ROOT);
      fSearchSelfButton.setSelection(searchLocation == IFeatureChild.SELF);
      fSearchBothButton.setSelection(searchLocation == IFeatureChild.BOTH);
    } else {
      fNameText.setValue(null, true);
      fVersionText.setValue(null, true);
      fOptionalButton.setSelection(false);
      fSearchRootButton.setSelection(true);
      fSearchSelfButton.setSelection(false);
      fSearchBothButton.setSelection(false);
    }
    boolean editable = fInput != null && isEditable();
    fNameText.setEditable(editable);
    fVersionText.setEditable(editable);
    fOptionalButton.setEnabled(editable);
    fSearchRootButton.setEnabled(editable);
    fSearchSelfButton.setEnabled(editable);
    fSearchBothButton.setEnabled(editable);

    fBlockNotification = false;
  }
 private void setValue(String property) {
   if (fCurrentCategoryDefinition == null) {
     clearField(property);
   } else {
     if (property.equals(PROPERTY_NAME))
       fNameText.setValue(fCurrentCategoryDefinition.getName(), true);
     else if (property.equals(PROPERTY_TYPE))
       fLabelText.setValue(fCurrentCategoryDefinition.getLabel(), true);
     else if (property.equals(PROPERTY_DESC)) {
       ISiteDescription siteDesc = fCurrentCategoryDefinition.getDescription();
       if (siteDesc == null) {
         clearField(property);
       } else {
         fDescriptionText.setValue(siteDesc.getText(), true);
       }
     }
   }
 }
 private void clearFields() {
   fNameText.setValue(null, true);
   fLabelText.setValue(null, true);
   fDescriptionText.setValue(null, true);
 }
 private void clearField(String property) {
   if (property.equals(PROPERTY_NAME)) fNameText.setValue(null, true);
   else if (property.equals(PROPERTY_TYPE)) fLabelText.setValue(null, true);
   else if (property.equals(PROPERTY_DESC)) fDescriptionText.setValue(null, true);
 }