{"id":321,"date":"2011-11-03T22:45:52","date_gmt":"2011-11-03T20:45:52","guid":{"rendered":"http:\/\/hasselba.ch\/blog\/?p=321"},"modified":"2011-11-03T22:45:52","modified_gmt":"2011-11-03T20:45:52","slug":"quick-n-dirty-manipulation-von-ui-komponenten-via-ssjs-2","status":"publish","type":"post","link":"https:\/\/hasselba.ch\/blog\/?p=321","title":{"rendered":"Quick-n-Dirty: Manipulation von UI Komponenten via SSJS (2)"},"content":{"rendered":"<p>Ist einer der Items durch einen Mehrfachwert definiert worden,\u00a0 muss das entsprechende Item anders behandelt werden. Eine Definition wie folgt&#8230;<\/p>\n<pre>&lt;xp:comboBox id=\"comboBox1\"&gt;\r\n\u00a0\u00a0 &lt;xp:selectItems&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;xp:this.value&gt;&lt;![CDATA[#{javascript:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 var vItem = new java.util.Vector();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vItem.add(\"A|1\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vItem.add(\"B|2\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vItem.add(\"C|3\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vItem\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }]]&gt;&lt;\/xp:this.value&gt;\r\n\u00a0\u00a0 &lt;\/xp:selectItems&gt;\r\n&lt;\/xp:comboBox&gt;<\/pre>\n<p>&#8230;ist auch intern als Array zu behandeln. Eine Funktion, die mit beiden Item-Typen umgehen kann (auch im Mix), kann dann wie folgt aufgebaut sein:<\/p>\n<pre>function getSelectableValues( id ) {\r\n\u00a0\u00a0 var ComboBox = getComponent( id );\r\n\u00a0\u00a0 var ChildrenList:java.util.ListIterator;\r\n   ChildrenList = ComboBox.getChildren().listIterator()\r\n\u00a0\u00a0 while (ChildrenList.hasNext()) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 var Child = ChildrenList.next();\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 if( typeof( Child ) == 'com.ibm.xsp.component.UISelectItemsEx' ){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>var hlp = Child.getValue();<\/strong>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 for( var i=0; i&lt; hlp.length; i++ ){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print( hlp[i].getLabel() + \"|\" + hlp[i].getValue() );\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 hlp[i].setLabel(\"ABC\" + i );\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0hlp[i].setValue(\"123\" + i );\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0hlp[i].setDisabled(true);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>Child.setValue(hlp);<\/strong>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 if( typeof( Child ) == 'com.ibm.xsp.component.UISelectItemEx' ){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print( Child.getItemLabel() + \"|\" + Child.getItemValue() );\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0 }\r\n}\r\n\r\ngetSelectableValues( 'comboBox1' );<\/pre>\n<p><em>[Fett: Wenn \u00c4nderungen am Mehrfachwert-Item vorgenommen werden, muss das Item nach der Bearbeitung mit &#8222;setValue()&#8220; erneuert werden]<\/em><\/p>\n<p>Die Namen der Methoden sind ohne &#8222;Item&#8220; zu verwenden, z.B. <em>setItem()<\/em> anstelle von <em>setItemValue()<\/em>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ist einer der Items durch einen Mehrfachwert definiert worden,\u00a0 muss das entsprechende Item anders behandelt werden. Eine Definition wie folgt&#8230; &lt;xp:comboBox id=&#8220;comboBox1&#8243;&gt; \u00a0\u00a0 &lt;xp:selectItems&gt; \u00a0\u00a0\u00a0\u00a0\u00a0 &lt;xp:this.value&gt;&lt;![CDATA[#{javascript: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 var vItem = new java.util.Vector(); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vItem.add(&#8222;A|1&#8220;); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vItem.add(&#8222;B|2&#8220;); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vItem.add(&#8222;C|3&#8220;); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vItem &hellip; <a href=\"https:\/\/hasselba.ch\/blog\/?p=321\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,89,9,82,76,74],"tags":[7,31,4,86,25,5,3],"class_list":["post-321","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-java","category-javascript","category-server","category-ssjs","category-xpages","tag-domino","tag-java","tag-js","tag-jsf","tag-partial-refresh","tag-ssjs","tag-xpages"],"_links":{"self":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=321"}],"version-history":[{"count":1,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/321\/revisions"}],"predecessor-version":[{"id":322,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/321\/revisions\/322"}],"wp:attachment":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}