Préférences de portlet dans le bean Portlet
Il est possible d'obtenir et de paramétrer des préférences sur les instances de portlet. Etant donné que les beans Portlet spécifient uniquement un portlet statique et non une instance de portlet figurant sur une page, les instances de portlet sont identifiées par les deux valeurs d'ID suivantes : l'ID du portlet qui spécifie le portlet et piid qui permet d'ancrer une instance du portlet dans une page.
La commande prefnames permet d'obtenir une liste des noms de préférence disponibles. Les préférences de portlet peuvent être dotées de plusieurs valeurs. Par conséquent, la commande getpref accepte un attribut index numérique. L'attribut index numérique indique le numéro de la valeur à obtenir. Par exemple, 0 indique que la première valeur de préférence doit être renvoyée, 1 indique que la deuxième valeur doit être renvoyée. Le nombre total de valeurs de préférence disponibles pour un nom de préférence spécifique est renvoyé par la commande prefcount.
La commande addpref permet d'ajouter une valeur de préférence de portlet à la liste de préférences de portlet. Vous pouvez définir des préférences de portlet en lecture seule. Pour cela, utilisez les commandes spprof (définir l'indicateur d'accès en lecture seule pour une préférence de portlet) et gpprof (obtenir l'indicateur d'accès en lecture seule pour une préférence de portlet).
Portlet.prefnames(ID, piid)
Portlet.getpref(ID, piid, name, "at", index)
Portlet.addpref(ID, piid, name, value)
Portlet.gpprof(ID, piid, name, ["numeric"])
Portlet.spprof(ID, piid, name, readonly_flag)
$Portlet prefnames ID piid
$Portlet getpref ID piid name at index
$Portlet addpref ID piid name value
$Portlet gpprof ID piid name [numeric]
$Portlet spprof ID piid name readonly_flagLe portlet est identifié par deux valeurs d'ID : l'ID du portlet et l'ID de l'entité de portlet. Vous pouvez obtenir l'ID de l'entité de portlet à l'aide de la commande $Layout get piid ou Layout.get("piid").
# example: set a portlet preference
# 1. locate the control where the portlet resides
# 2. obtain its portlet instance ID
# 3. set the portlet preference accordingly
ctl = Layout.find("all", "pid", Portlet.csn(), "select")
piid = Layout.get(ctl, "piid")
Portlet.addpref(piid, "MYKEY", "Value")
# example: list portlet preference values for key "MYKEY"
# the control ID is stored in the variable ctrl
for ix in range($Portlet.prefcount(piid, "MYKEY")):
print Portlet.getpref(piid, "MYKEY", "at", ix)
# example: drop all portlet preferences on a certain key
Portlet.droppref(piid, "MYKEY")# example: set a portlet preference
# 1. locate the control where the portlet resides
# 2. obtain its portlet instance ID
# 3. set the portlet preference accordingly
set ctl [$Layout find all pid [$Portlet csn] select]
set piid [$Layout get $ctl piid]
$Portlet addpref $piid MYKEY "SomeValue"
# example: list portlet preference values for key "MYKEY"
# the control ID is stored in the variable ctrl
for {set ix 0} {$ix < [$Portlet prefcount $piid MYKEY]} {incr ix} {
puts "[$Portlet getpref $piid MYKEY at $ix]"
}
# example: drop all portlet preferences on a certain key
$Portlet droppref $piid MYKEYEn fonction de la norme à laquelle le portlet répond, il existe des différences quant à la manipulation des préférences du portlet. Vous pouvez définir plusieurs valeurs de préférence sur une clé de préférence pour des portlets standard, mais les portlets HCL ne prennent en charge que des valeurs uniques sur chaque clé de préférence de portlet.