AEMクラシックUIには、プログラマがpredicate
属性を指定して選択可能なページをフィルタできるようにするpathfield
xtypeがあります。AEM Granite UIパスブラウザで表示されるページをフィルタリングする方法は?
predicate
属性の値によって、どのページがパスフィールドに表示されるかが決まります。 OOTBの数がなど'hierarchy'
、'folder'
、'hierarchyNotFile'
、
一つとしてorg.apache.commons.collections.Predicate
クラスを実装するOSGiサービスを書き込むことによって、カスタム述語を提供することができ述語があります。具体的には、実装はpredicate.name
プロパティの値によって選択されます。例えば
:
@Service(Predicate.class)
@Component(metatype = false)
@Properties(@Property(name = "predicate.name", value = "productPage"))
public class ProductPagePredicate extends com.day.cq.commons.predicate.AbstractNodePredicate {
@Override
public boolean evaluate(Node n) {
// return true or false depending on the state of the node
}
}
は、次の方法を使用することができます
<productPath
jcr:primaryType="cq:Widget"
allowBlank="false"
predicate="[productPage]" <-- refers to the OSGi service
fieldLabel="Product"
name="./productPath"
xtype="pathfield"/>
はパスフィールドのタッチUIと同等にカスタマイズ同様のレベルを達成するための方法はありますか?
私は、ウィジェットgranite/ui/components/foundation/form/pathbrowser
が多くのOOTBコンポーネント(特にfoundation/components/image
)によって使用されていることがわかります。これは、新しいインターフェースのパスフィールドの1:1置換のように見えます。それは1ページまたはアセットを選択することができます素敵なインタフェースを起動します
はクリック:しかし、私は、フィールドが次のようになりますGranite UI documentation for AEM 6.2
にそれへの参照を見つけることができません。
どのように私はタッチUIパスブラウザで利用可能なページをフィルタリングすることができますか? Classic UIで使用するために定義済みのPredicate
を使用する方法はありますか?