code: public static String buildSelectProperty(
          CmsObject cms,
          String selectValue,
          String attributes,
          String selectedValue) {
  
          List propertyDef = new ArrayList();
          try {
              // get all property definitions
              propertyDef = cms.readAllPropertyDefinitions();
          } catch (CmsException e) {
              // should usually never happen
              if (LOG.isInfoEnabled()) {
                  LOG.info(e);
              }
          }
  
          int propertyCount = propertyDef.size();
          List options = new ArrayList(propertyCount + 1);
          List values = new ArrayList(propertyCount + 1);
          options.add(CmsEncoder.escapeXml(selectValue));
          values.add("");
          int selectedIndex = 0;
          int count = 1;
  
          for (int i = 0; i < propertyCount; i++) {
              // loop property definitions and get definition name
              CmsPropertyDefinition currDef = (CmsPropertyDefinition)propertyDef.get(i);
              if (currDef.getName().equals(selectedValue)) {
                  selectedIndex = count;
              }
              options.add(CmsEncoder.escapeXml(currDef.getName()));
              values.add(CmsEncoder.escapeXml(currDef.getName()));
              count += 1;
          }
  
          CmsDialog wp = new CmsDialog(null);
          return wp.buildSelect(attributes, options, values, selectedIndex);
      }
docs: Builds the html for the property definition select box.<p>
  
  @param cms the CmsObject
  @param selectValue the localized value for the "Please select" option
  @param attributes optional attributes for the &lt;select&gt; tag
  @param selectedValue the value that is currently selected
  @return the html for the property definition select box