code: private I_CmsStringModel createStringModel(final CmsUUID id, final String propName, final boolean isStructure) {
  
          final CmsClientProperty property = m_properties.get(propName);
  
          return new I_CmsStringModel() {
  
              private boolean m_active;
  
              private EventBus m_eventBus = new SimpleEventBus();
  
              public HandlerRegistration addValueChangeHandler(ValueChangeHandler<String> handler) {
  
                  return m_eventBus.addHandler(ValueChangeEvent.getType(), handler);
              }
  
              /**
               * @see com.google.gwt.event.shared.HasHandlers#fireEvent(com.google.gwt.event.shared.GwtEvent)
               */
              public void fireEvent(GwtEvent<?> event) {
  
                  m_eventBus.fireEvent(event);
              }
  
              public String getId() {
  
                  return Joiner.on("/").join(id.toString(), propName, isStructure ? "S" : "R");
              }
  
              public String getValue() {
  
                  if (isStructure) {
                      return property.getStructureValue();
                  } else {
                      return property.getResourceValue();
                  }
              }
  
              public void setValue(String value, boolean notify) {
  
                  if (!m_active) {
                      m_active = true;
                      try {
                          String oldValue = getValue();
                          boolean changed = !Objects.equal(value, oldValue);
                          if (isStructure) {
                              property.setStructureValue(value);
                          } else {
                              property.setResourceValue(value);
                          }
                          if (notify && changed) {
                              ValueChangeEvent.fire(this, value);
                          }
                      } finally {
                          m_active = false;
                      }
                  }
              }
          };
      }
docs: Creates a string model which uses a field of a CmsClientProperty for storing its value.<p>
  
  @param id the structure id
  @param propName the property id
  @param isStructure if true, the structure value field should be used, else the resource value field
  
  
  @return the new model object