Site Manager Developer Manual / Version 2101
Table Of ContentsPredicate classes enable selective view of objects. They can filter different types of objects.
Interface to implement
For own predicates you need to implement the interface
com.coremedia.common.util.Predicate<Object>
with the method include
.
Parameters to use
The include
method gets only one parameter of type Object
. Depending on the element of
the editor.xml
file where the predicate is used, the method can be called with different object types.
<Filter>
If the
<Predicate>
element is used in a<Filter>
element, the documents shown in the document overview of the Site Manager can be filtered, due to different conditions. Thus, the objects to be filtered are documents of the type hox.corem.editor.proxy.DocumentTypeModel.<Treefilter>
If the
<Predicate>
element is used in a<Treefilter>
element, the folders shown in the folder view of the Site Manager can be filtered. The objects to be filtered are folders of the type hox.corem.editor.proxy.ResourceHolder.<DocumentTypes>
If a
<Predicate>
or<DocumentTypePredicate>
element is used in a<DocumentTypes>
element, the document types which can be created, moved, copied or selected in document choosers are filtered. Thus, the objects to be filtered are document types hox.corem.editor.proxy.DocumentTypeModel.<Processes>
If the
<Predicate>
element is used in a<Processes>
element, the workflows offered for initiating in the Menu File|New Workflow... are filtered. The objects to be filtered are workflows of the typecom.coremedia.workflow.WfProcess.
Integrate your predicate into the Site Manager
using editor.xml
You can integrate your predicate into the Site Manager using the element
Predicate
or DocumentTypePredicate
of editor.xml
as shown in example.
<Explorer name="configurable-explorer-factory"> <Filter name="ownFilter> <Predicate class="mySimplePredicate"/> . . </Filter> <Editor>
Example 4.8. How to integrate the Predicate class
Example
The next example shows a predicate which simply returns "false" for all input. As a result, all items are filtered!
package com.customer.example; import com.coremedia.common.util.Predicate; import hox.corem.editor.Editor; public class NewPredicate implements Predicate<Object> { public boolean include(Object obj) { boolean result = false; Editor.getLog().debug("NewPredicate.include(): "+obj); return result; } }
Example 4.9. Example of a customized Predicate class