Package com.xpn.xwiki.objects.classes
Class DBTreeListClass
- java.lang.Object
-
- com.xpn.xwiki.objects.BaseElement<R>
-
- com.xpn.xwiki.objects.BaseCollection<ClassPropertyReference>
-
- com.xpn.xwiki.objects.classes.PropertyClass
-
- com.xpn.xwiki.objects.classes.ListClass
-
- com.xpn.xwiki.objects.classes.DBListClass
-
- com.xpn.xwiki.objects.classes.DBTreeListClass
-
- All Implemented Interfaces:
PropertyClassInterface
,ElementInterface
,ObjectInterface
,PropertyInterface
,Serializable
,Cloneable
,Comparable<PropertyClass>
public class DBTreeListClass extends DBListClass
- Version:
- $Id: 669efd0bc7331e05b9b54b654a7af14ef7f82e68 $
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.xpn.xwiki.objects.classes.ListClass
ListClass.MapComparator
-
-
Field Summary
-
Fields inherited from class com.xpn.xwiki.objects.classes.DBListClass
DEFAULT_QUERY
-
Fields inherited from class com.xpn.xwiki.objects.classes.ListClass
DEFAULT_SEPARATOR, DISPLAYTYPE_CHECKBOX, DISPLAYTYPE_INPUT, DISPLAYTYPE_RADIO, DISPLAYTYPE_SELECT, FREE_TEXT_ALLOWED, FREE_TEXT_DISCOURAGED, FREE_TEXT_FORBIDDEN, SEPARATOR_ESCAPE
-
Fields inherited from class com.xpn.xwiki.objects.classes.PropertyClass
cachedCustomDisplayer
-
Fields inherited from class com.xpn.xwiki.objects.BaseCollection
currentReferenceDocumentReferenceResolver, fields, fieldsToRemove, number, relativeEntityReferenceResolver
-
Fields inherited from class com.xpn.xwiki.objects.BaseElement
documentReference, ownerDocument, referenceCache
-
-
Constructor Summary
Constructors Constructor Description DBTreeListClass()
DBTreeListClass(PropertyMetaClass wclass)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addToList(Map<String,List<ListItem>> map, String key, ListItem item)
protected void
addToSelect(org.apache.ecs.xhtml.select select, List<String> selectlist, Map<String,ListItem> map, Map<String,List<ListItem>> treemap, String parent, String level, XWikiContext context)
protected void
addToTreeList(List<ListItem> treelist, Map<String,List<ListItem>> treemap, Map<String,ListItem> map, String parent, XWikiContext context)
void
displayEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context)
protected void
displayTreeSelectEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context)
void
displayView(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context)
protected List<ListItem>
getCachedDBTreeList(XWikiContext context)
Get the ordered list of tree nodes that is currently cached, if any.String
getParentField()
String
getQuery(XWikiContext context)
Computes the query corresponding to the current XProperty.protected List<ListItem>
getTreeList(Map<String,List<ListItem>> treemap, Map<String,ListItem> map, XWikiContext context)
Gets an ordered list of items in the tree.Map<String,List<ListItem>>
getTreeMap(XWikiContext context)
protected String
renderItemsList(List<List<ListItem>> resList)
protected void
setCachedDBTreeList(List<ListItem> cachedDBTreeList, XWikiContext context)
Store the ordered list of tree nodes in a cache.void
setParentField(String parentField)
-
Methods inherited from class com.xpn.xwiki.objects.classes.DBListClass
flushCache, getCachedDBList, getClassname, getDBList, getIdField, getList, getMap, getSql, getValue, getValueField, makeList, returnCol, setCachedDBList, setClassname, setIdField, setSql, setValueField
-
Methods inherited from class com.xpn.xwiki.objects.classes.ListClass
displayHidden, displayRadioEdit, displaySelectEdit, fromList, fromList, fromString, fromStringArray, getDefaultValue, getDisplayType, getDisplayValue, getDisplayValue, getElementValue, getFirstSeparator, getFreeText, getListFromString, getListFromString, getListFromString, getMapFromString, getSeparator, getSeparators, getSize, getSort, getStringFromList, getStringFromList, isCache, isLargeStorage, isMultiSelect, isPicker, isRelationalStorage, mergeNotOrderedListProperty, mergeProperty, newProperty, newPropertyfromXML, setCache, setDefaultValue, setDisplayType, setFreeText, setLargeStorage, setMultiSelect, setPicker, setRelationalStorage, setSeparator, setSeparators, setSize, setSort, toFormString, toList
-
Methods inherited from class com.xpn.xwiki.objects.classes.PropertyClass
clone, compareTo, createReference, displayCustom, displayEdit, displayEdit, displayHidden, displayHidden, displayView, displayView, fromValue, fromXML, getCachedDefaultCustomDisplayer, getClassName, getClassType, getCustomDisplay, getDefaultCustomDisplayer, getFieldFullName, getFullQueryPropertyName, getHint, getId, getName, getNumber, getObject, getPrettyName, getPrettyName, getTooltip, getTooltip, getTranslatedPrettyName, getValidationMessage, getValidationRegExp, getXClass, getxWikiClass, initLazyCollections, isCustomDisplayed, isDisabled, isUnmodifiable, isValidColumnTypes, renderContentInContext, renderContentInContext, setClassType, setCustomDisplay, setDisabled, setHint, setId, setName, setNumber, setObject, setPrettyName, setTooltip, setUnmodifiable, setValidationMessage, setValidationRegExp, setxWikiClass, toFormString, toString, toXML, toXML, validateProperty
-
Methods inherited from class com.xpn.xwiki.objects.BaseCollection
addField, addPropertyForRemoval, apply, equals, get, getCurrentReferenceDocumentReferenceResolver, getCustomMappingMap, getDateValue, getDiff, getDoubleValue, getField, getFieldList, getFieldsToRemove, getFloatValue, getIntValue, getIntValue, getLargeStringValue, getListValue, getLongValue, getProperties, getPropertyList, getPropertyNames, getRelativeEntityReferenceResolver, getRelativeXClassReference, getSetValue, getSortedIterator, getStringValue, getXClassReference, merge, merge, mergeField, put, removeField, safeget, safeput, setClassName, setDateValue, setDBStringListValue, setDocumentReference, setDoubleValue, setFields, setFieldsToRemove, setFloatValue, setIntValue, setLargeStringValue, setLongValue, setOwnerDocument, setSetValue, setStringListValue, setStringValue, setXClassReference, toXMLString
-
Methods inherited from class com.xpn.xwiki.objects.BaseElement
fromXML, getDocumentReference, getLocalEntityReferenceSerializer, getLocalization, getLocalKey, getLocalUidStringEntityReferenceSerializer, getMergeManager, getOwnerDocument, getReference, getXWikiContext, hashCode, localizePlain, localizePlainOrKey, merge, toString, toXMLString
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.xpn.xwiki.objects.ElementInterface
apply, getDocumentReference, getReference, merge, merge, setDocumentReference, toString
-
Methods inherited from interface com.xpn.xwiki.objects.ObjectInterface
get, put, safeget, safeput
-
Methods inherited from interface com.xpn.xwiki.objects.classes.PropertyClassInterface
displayView
-
-
-
-
Constructor Detail
-
DBTreeListClass
public DBTreeListClass(PropertyMetaClass wclass)
-
DBTreeListClass
public DBTreeListClass()
-
-
Method Detail
-
getParentField
public String getParentField()
-
setParentField
public void setParentField(String parentField)
-
getCachedDBTreeList
protected List<ListItem> getCachedDBTreeList(XWikiContext context)
Get the ordered list of tree nodes that is currently cached, if any.- Parameters:
context
- the current request context- Returns:
- the cached list, or
null
if not already cached
-
setCachedDBTreeList
protected void setCachedDBTreeList(List<ListItem> cachedDBTreeList, XWikiContext context)
Store the ordered list of tree nodes in a cache.- Parameters:
cachedDBTreeList
- the list to cachecontext
- the current request context
-
getTreeMap
public Map<String,List<ListItem>> getTreeMap(XWikiContext context)
-
getTreeList
protected List<ListItem> getTreeList(Map<String,List<ListItem>> treemap, Map<String,ListItem> map, XWikiContext context)
Gets an ordered list of items in the tree. This is necessary to make sure children are coming right after their parents.- Parameters:
treemap
- the unordered list of tree nodesmap
- the mapping between a node name and its corresponding tree nodecontext
- the current request context- Returns:
- ordered list of
ListItem
tree nodes
-
addToTreeList
protected void addToTreeList(List<ListItem> treelist, Map<String,List<ListItem>> treemap, Map<String,ListItem> map, String parent, XWikiContext context)
-
displayView
public void displayView(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context)
- Specified by:
displayView
in interfacePropertyClassInterface
- Overrides:
displayView
in classDBListClass
-
displayEdit
public void displayEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context)
- Specified by:
displayEdit
in interfacePropertyClassInterface
- Overrides:
displayEdit
in classDBListClass
-
addToSelect
protected void addToSelect(org.apache.ecs.xhtml.select select, List<String> selectlist, Map<String,ListItem> map, Map<String,List<ListItem>> treemap, String parent, String level, XWikiContext context)
-
displayTreeSelectEdit
protected void displayTreeSelectEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context)
-
getQuery
public String getQuery(XWikiContext context)
Computes the query corresponding to the current XProperty. The query is either manually specified by the XClass creator in the
sql
field, or, if the query field is blank, constructed using theclassname
,idField
,valueField
andparentField
properties. The query is constructed according to the following rules:- If no classname, id and value fields are selected, return a query that return no rows, as the parent is not enough to make a query.
- If no parent field is provided, use the document "parent" medatada.
- If only the classname is provided, select all document names which have an object of that type, preserving the hierarchy defined by the parent field.
- If only one of id and value is provided, use it for both columns.
- If no classname is provided, assume the fields are document properties.
- If the document is not used at all, don't put it in the query.
- If the object is not used at all, don't put it in the query.
The generated query always selects 3 columns, the first one is used as the stored value, the second one as the displayed value, and the third one defines the "parent" of the current value.
- Overrides:
getQuery
in classDBListClass
- Parameters:
context
- The currentcontext
.- Returns:
- The HQL query corresponding to this property.
-
-