public void setSelectedItem(Object obj) {
   selectedSourceLevel = (obj == null ? null : ((SourceLevelKey) obj).getSourceLevel());
   fireContentsChanged(this, -1, -1);
   SourceLevelKey key = (SourceLevelKey) obj;
   if (key != null) {
     props.setJavacSourceLevel(key.getSourceLevel().toString());
     props.setJavacTargetLevel(key.getSourceLevel().toString());
   }
 }
 public Object getSelectedItem() {
   for (SourceLevelKey key : getSourceLevels()) {
     SpecificationVersion ver = key.getSourceLevel();
     if (ver.toString()
         .equals(selectedSourceLevel == null ? "" : selectedSourceLevel.toString())) {
       return key;
     }
   }
   return null;
 }
 public Component getListCellRendererComponent(
     JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
   String message;
   if (value == null) {
     message = ""; // NOI18N
   } else {
     assert value instanceof SourceLevelKey;
     SourceLevelKey key = (SourceLevelKey) value;
     if (key.isBroken()) {
       message =
           "<html><font color=\"#A40000\">" // NOI18N
               + NbBundle.getMessage(
                   PlatformUiSupport.class,
                   "TXT_InvalidSourceLevel", // NOI18N
                   key.getDisplayName());
     } else {
       message = key.getDisplayName();
     }
   }
   return delegate.getListCellRendererComponent(list, message, index, isSelected, cellHasFocus);
 }