@Override public List<String> getList(XWikiContext context) { String sort = getSort(); if (StringUtils.isEmpty(sort) || "none".equals(sort)) { return getListFromString(getValues()); } Map<String, ListItem> valuesMap = getMap(context); List<ListItem> values = new ArrayList<ListItem>(valuesMap.size()); values.addAll(valuesMap.values()); if ("id".equals(sort)) { Collections.sort(values, ListItem.ID_COMPARATOR); } else if ("value".equals(sort)) { Collections.sort(values, ListItem.VALUE_COMPARATOR); } List<String> result = new ArrayList<String>(values.size()); for (ListItem value : values) { result.add(value.getId()); } return result; }
safeput("rows", rows_class); StaticListClass editor_class = new StaticListClass(this); editor_class.setName("editor"); editor_class.setPrettyName("Editor"); editor_class.setValues("---|Text|PureText|Wysiwyg"); editor_class.setRelationalStorage(false); editor_class.setDisplayType("select"); editor_class.setMultiSelect(false); editor_class.setSize(1); safeput("editor", editor_class); StaticListClass contenttype_class = new StaticListClass(this); contenttype_class.setName("contenttype"); contenttype_class.setPrettyName("Content"); contenttype_class.setValues("FullyRenderedText|VelocityCode|PureText"); contenttype_class.setRelationalStorage(false); contenttype_class.setDisplayType("select"); contenttype_class.setMultiSelect(false); contenttype_class.setSize(1); safeput("contenttype", contenttype_class);
/** * @since 1.8M1 */ public boolean addStaticListField(String fieldName, String fieldPrettyName, int size, boolean multiSelect, boolean relationalStorage, String values, String displayType, String separators) { if (get(fieldName) == null) { StaticListClass list_class = new StaticListClass(); list_class.setName(fieldName); list_class.setPrettyName(fieldPrettyName); list_class.setSize(size); list_class.setMultiSelect(multiSelect); list_class.setRelationalStorage(relationalStorage); list_class.setValues(values); if (displayType != null) { list_class.setDisplayType(displayType); } if (separators != null) { list_class.setSeparators(separators); list_class.setSeparator(separators.substring(0, 1)); } list_class.setObject(this); put(fieldName, list_class); return true; } return false; }
if (getDisplayType().equals("input")) { input input = new input(); BaseProperty prop = (BaseProperty) object.safeget(name); input.setSize(getSize()); input.setName(prefix + name); input.setID(prefix + name); input.setDisabled(isDisabled()); if (isPicker()) { input.setClass("suggested"); String path = ""; String classname = this.getObject().getName(); String fieldname = this.getName(); String secondCol = "-", firstCol = "-"; + "&firCol=" + firstCol + "&secCol=" + secondCol + "&\""; String varname = "\"input\""; String seps = "\"" + this.getSeparators() + "\""; if (isMultiSelect()) { input.setOnFocus("new ajaxSuggest(this, {script:" + script + ", varname:" + varname + ", seps:" + seps + "} )"); } else if (getDisplayType().equals("radio") || getDisplayType().equals("checkbox")) { displayRadioEdit(buffer, name, prefix, object, context); } else { displaySelectEdit(buffer, name, prefix, object, context);
public BooleanMetaClass() { super(); setPrettyName("Boolean"); setName(BooleanClass.class.getName()); StaticListClass type_class = new StaticListClass(this); type_class.setName("displayFormType"); type_class.setPrettyName("Display Form Type"); type_class.setValues("radio|checkbox|select"); safeput("displayFormType", type_class); StringClass value_class = new StringClass(this); value_class.setName("displayType"); value_class.setPrettyName("Display Type"); value_class.setSize(20); safeput("displayType", value_class); NumberClass default_value_class = new NumberClass(this); default_value_class.setName("defaultValue"); default_value_class.setPrettyName("Default Value"); default_value_class.setSize(5); default_value_class.setClassType("integer"); safeput("defaultValue", default_value_class); }
Map<String, ListItem> knownValues = propertyClass.getMap(this.xcontextProvider.get()); Object propertyValue = property.getValue();
} else if (propertyClass instanceof StaticListClass && ((StaticListClass) propertyClass).isMultiSelect()) { indexStaticList(luceneDoc, baseObject, (StaticListClass) propertyClass, propertyName, context); } else if (propertyClass instanceof DateClass) {
public BaseCollection newObject(XWikiContext context) { return new StaticListClass(); } }
private void getProperties() { XWikiDocument doc = getGeneXClassDoc(); if (doc == null || doc.isNew()) { // Inaccessible or deleted document return; } BaseClass gene = doc.getXClass(); if (gene == null) { return; } StaticListClass statusProp = (StaticListClass) gene.get(STATUS_KEY); StaticListClass stategyProp = (StaticListClass) gene.get(STRATEGY_KEY); if (statusProp != null) { statusValues = statusProp.getList(this.context); } if (stategyProp != null) { strategyValues = stategyProp.getList(this.context); } }
/** * add tags to the document. */ public void setTags(String tagsStr, XWikiContext context) throws XWikiException { BaseClass tagsClass = context.getWiki().getTagClass(context); StaticListClass tagProp = (StaticListClass) tagsClass.getField(XWikiConstant.TAG_CLASS_PROP_TAGS); BaseObject tags = getObject(XWikiConstant.TAG_CLASS, true, context); tags.safeput(XWikiConstant.TAG_CLASS_PROP_TAGS, tagProp.fromString(tagsStr)); setMetaDataDirty(true); }
setName(ListClass.class.getName()); StaticListClass type_class = new StaticListClass(this); type_class.setName("displayType"); type_class.setPrettyName("Display Type"); type_class.setValues("input|select|radio|checkbox"); safeput("displayType", type_class); safeput("separator", separator_class); StaticListClass sort_class = new StaticListClass(this); sort_class.setName("sort"); sort_class.setPrettyName("Sort"); sort_class.setValues("none|id|value"); safeput("sort", sort_class);
private void indexStaticList(Document luceneDoc, BaseObject baseObject, StaticListClass prop, String propertyName, XWikiContext context) { Map<String, ListItem> possibleValues = prop.getMap(context); String fieldFullName = baseObject.getClassName() + "." + propertyName; for (String value : (List<String>) baseObject.getListValue(propertyName)) { ListItem item = possibleValues.get(value); if (item != null) { // We index the key of the list String fieldName = fieldFullName + ".key"; addFieldToDocument(fieldName, item.getId(), Field.Store.YES, Field.Index.ANALYZED, OBJECT_PROPERTY_BOOST, luceneDoc); // We index the value fieldName = fieldFullName + ".value"; addFieldToDocument(fieldName, item.getValue(), Field.Store.YES, Field.Index.ANALYZED, OBJECT_PROPERTY_BOOST, luceneDoc); // If the key and value are not the same, we index both // The key is always indexed outside the if block, so here we just index the value if (!item.getId().equals(item.getValue())) { addFieldToDocument(fieldFullName, item.getValue(), Field.Store.YES, Field.Index.ANALYZED, OBJECT_PROPERTY_BOOST, luceneDoc); } } addFieldToDocument(fieldFullName, value, Field.Store.YES, Field.Index.ANALYZED, OBJECT_PROPERTY_BOOST, luceneDoc); } }
public PasswordMetaClass() { super(); setPrettyName("Password"); setName(PasswordClass.class.getName()); StaticListClass storageType_class = new StaticListClass(this); storageType_class.setName("storageType"); storageType_class.setPrettyName("Storage type"); storageType_class.setValues(HASH + SEPARATOR + CLEAR);// + SEPARATOR + ENCRYPTED storageType_class.setRelationalStorage(false); storageType_class.setDisplayType("select"); storageType_class.setMultiSelect(false); storageType_class.setSize(1); safeput("storageType", storageType_class); StringClass encryptAlgorithm_class = new StringClass(this); encryptAlgorithm_class.setName(ALGORITHM_KEY); encryptAlgorithm_class.setPrettyName("Encryption/hash algorithm"); encryptAlgorithm_class.setSize(20); safeput(ALGORITHM_KEY, encryptAlgorithm_class); }
public NumberMetaClass() { super(); // setType("numbermetaclass"); setPrettyName("Number"); setName(NumberClass.class.getName()); StaticListClass type_class = new StaticListClass(this); type_class.setName("numberType"); type_class.setPrettyName("Number Type"); type_class.setValues("integer|long|float|double"); type_class.setRelationalStorage(false); type_class.setDisplayType("select"); type_class.setMultiSelect(false); type_class.setSize(1); safeput("numberType", type_class); NumberClass size_class = new NumberClass(this); size_class.setName("size"); size_class.setPrettyName("Size"); size_class.setSize(5); size_class.setNumberType("integer"); safeput("numberType", type_class); safeput("size", size_class); }