{"id":740,"date":"2012-07-07T19:13:04","date_gmt":"2012-07-07T17:13:04","guid":{"rendered":"http:\/\/hasselba.ch\/blog\/?p=740"},"modified":"2012-07-07T19:13:04","modified_gmt":"2012-07-07T17:13:04","slug":"xpages-application-events-create-your-own-applicationlistener-2","status":"publish","type":"post","link":"https:\/\/hasselba.ch\/blog\/?p=740","title":{"rendered":"XPages application events: Create your own ApplicationListener (2)"},"content":{"rendered":"<p>There is another interface available which provides the additional method <em>applicationRefreshed.<\/em> This event is always raised if the method <em>refresh()<\/em> of the <em>Application<\/em>-Object is fired.<\/p>\n<p>Instead of implement the interface <a title=\"XPages application events: Create your own ApplicationListener\" href=\"https:\/\/hasselba.ch\/blog\/?p=733\">described in the previous posting, <\/a>you have to use the interface named <em>com.ibm.xsp.application.events.ApplicationListener2<\/em>.<\/p>\n<pre>package ch.hasselba.jsf.debug;\r\n\r\nimport com.ibm.xsp.application.ApplicationEx;\r\nimport com.ibm.xsp.application.events.ApplicationListener2;\r\n\r\npublic class MyApplicationListener implements ApplicationListener2 {\r\n\r\n\u00a0\u00a0 \u00a0public void applicationCreated(ApplicationEx arg0) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0System.out.println(\"applicationCreated()\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\"ID: \" + arg0.getApplicationId());\r\n\u00a0\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0 \u00a0public void applicationDestroyed(ApplicationEx arg0) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0System.out.println(\"applicationDestroyed()\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0System.out.println(\"ID: \" + arg0.getApplicationId());\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0public void applicationRefreshed(ApplicationEx arg0) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0System.out.println(\"applicationRefreshed()\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0System.out.println(\"ID: \" + arg0.getApplicationId());\r\n\u00a0\u00a0 \u00a0}\r\n\r\n}<\/pre>\n<p>You can fire the refresh of the application manually. Here is a simple example how to do this:<\/p>\n<pre>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;xp:view xmlns:xp=\"http:\/\/www.ibm.com\/xsp\/core\"&gt;\r\n\u00a0\u00a0 &lt;xp:button value=\"Label\" id=\"button1\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;xp:eventHandler event=\"onclick\" submit=\"true\"\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 refreshMode=\"complete\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xp:this.action&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 &lt;![CDATA[#{javascript:\r\n                  facesContext.getApplication().refresh()\r\n               }]]&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/xp:this.action&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/xp:eventHandler&gt;\r\n\u00a0\u00a0 &lt;\/xp:button&gt;\r\n&lt;\/xp:view&gt;<\/pre>\n<p>By clicking the button, the refresh is fired:<\/p>\n<p><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAk8AAABCCAIAAADBpKXOAAAN6ElEQVR4nO1ZW47kug6rpd+lZWnn4yKFdGxR1MNxVQ0DouF2FEqiZHka83q9\/vd\/HMfxXk933r927Vto5Hd9tftlPJJRYd341Lp4LGOXkNnZmEiCp7HKq9PvEh84nYppHZPerFt0xgztdRT24VzhQUZOB9z31q+ggys3UKJNV+QLvOTiwQw5PRkebAxsKtcSz8P0FfOty8PEv2JEhtIH+5XYXDbGIBRANOsovyvIilIKm3CuwGmxWgq\/CtmTfkP7x9+HVKQ93+knfIWiDCHdQjxuUtj+bRCti8XD1AVwMnWM6sAnlcDoiynlNKOoX5CXG8ZUoqjfacWteHL8lpcVpRQ24Vypro9BUguCIDyOc6V\/zqyGFBYEQdiH\/REIgiAIwmqcK\/3lsRpSWBCeR9f\/81W8bxdhaYI4609SAAZtxQoaaLqfGPTR7uSDyfm1LLG9FWolnmN4nuHBloCh3gyWbl317e2TaF7CM4j2bZfT3+4H6zR9pAh20NfN69sxE5IE2DB+o\/tuYCG\/7qyfbvLGoXi69MxFxevv3iJk8FOervo28rj5VjBN\/5g9YH98RboeSYDZbWeFGnUBv4I5XbLH4p+25RaVCNihWGmQ+wk5Wvy6+0W\/zLfvHWsoMLVh4k\/EVglpau\/ydx0A7Ki9r9J6LjrVufT5cx2NYcpzG8eLpnOLgF\/BvJq87oJvpw\/oBDsUZjqA7idtxvMQnUpLp1juZsKf5zjTVF08ln1l+qdHLfNrsa+iPGkxV6TPh5cugXVebjauntjd+5k6YvZxZYHx1MVt85g9Lv90fxo\/0Arka7kOxc\/w4JZwS\/A47DimxYhWC9hfXzF+K\/uWd9cvUx4gnZUyUxssy\/M8JCHP3+jXajnm8y6edF6LZCfDC0V708oSc\/wJ9Iy6vjG4+3WJQlKECgd6b6qepSTposXGjZmX4nHQJa9kblWFUcStKI7zHdXtVFwfwFMJ2PqcLDmg5UkaedKEzFlK+H0Z9c2VqYUnLSmZ\/rRvoyKPiadLMJ6dq4b8CQq5dmOI1iV3ItxjTlri+AFzMR03\/oTO0bPzOIgykNmmu3CR36jQ0W4Dut2eaCRMXnzfdPGAfEMGOb\/uJ+m+audZdKRzdcT92RLDOO\/Gn+mUx2jTc4CUCARsnWu+M0FUrrZ8OiBOPn6LB8jl1rrSDB2gmyPdbXwzLeXP+eX7mDcgS47z4vumi4dMx22kqFPyq3RftfMsOtK5OvaG556R8VSm3bXPAVKihBnfmSCq6PyJNnA0\/nYdGIPF4BIGKVmvyC48jiPaAfx+VGUm3xBnqI3IeDBDTk+Ghzl4TL7pjg+d\/JAOvTyLjrR7jviMumJgwmDOeyjfG4O73yURyBRnRH4I8iXDDu278TM8uSmxD0Ru1gjAr0L2pN\/ovuUUwM332oUgL6BqSzwh+xYenK9r\/zZgdGN4cH2jOtR5QJwtGN0xpZwmG\/WL9Qm5C8ky1fP420U3R3yoeH+aNagvUGm6M1qCX6dOgYxMkEz8rjHTAMyrp\/BBofwrkNSCkIZ1fHSsPgTTi\/wzqvM3oI8J6wchhQWhDt12n4\/b36AfU5r9EQiCILDQbSdkca70l8dqSGFBEIR9OFfgX0zjKzC4p\/uJQW8Zh\/YTtwtvzyRlhVqJ5xieZ3iwJWCoN4OlW1d9e\/skmpewF6CfVcrfwrnCc\/n6dhxeJAmwYfxG993AQn7dWT\/d5I1D8XTpmYuK198dGWTwU56u+jbyLB2R0\/SP2QP2x1ek65EEmN120vm2BM8nFW0D4dtwrtySW42ODwCwt1D06+4X\/TLfvi7DiDFO65aIrRLS1N7lB+Qhv9hRe1+l9Vw0K3Pp8+c6GsOU53Z5TO+SB7JudCH8EM5V7rYD3U\/ajOeh61ZrmWK5mwl\/nuNMU3XxWPaV6Z8etcyvxb6K8qTFXJE+H166BNZ5udm4elayZupVdyH8Cs5V6FQc5zMaWK+sLqxPJWafOQNWOq6IQDorZaY2XVO1i4ck5Pkb\/TJTNdcnPE86r0Wyk+GFor1pZYk5\/gR6VrKu81sujvNZUUphE85V6FQwk8K1t8BMJWb\/9bdlr\/a3B\/BUArY+J49Qbrqt40kTWi6KU+ll1DdXphaetKRk+tO+jYo8Jp4uwXh2rhryJ2iv2qML9wgL34lz5bbR2NnFfQuL+HN+o1+9vKnEcDJ58YewiwfkGzLI+XU\/SfdVO8+i+ZirI+7PlhjGu2H8uSjrFrV7D4jwwThX\/BTr2rewiD\/nt3fCkl8xeW257Zh0mHmUmyC67VrSqYRH3nbTxYqsW9TWbffP4FzhQTZtaPyKvI2O4wAdXLz5cHa5fEOclduO17CuJ8ODjfl80+ODCSCnQy\/PovmYG8q914PLxhiEAohmHeV3Y15UTWEHzhU4LVZL4Vche9JvdN9yCuDme510IC+gaks8IfsWHpyva\/82YHRjeHB9ozrUeUCcLRjdMaWcJhv1i\/UJueNlwRWP1svlv324ooLCbpwr1fUxSGpBEITHca4W\/YNUkMKCIAgfgP0RCIIgCMJqnCv95bEaUlgQnkfX\/\/NVvO9NvJ22\/fNrnCsV83KY+gYNNN1PDPpod\/LB5PxaltjeCrUSzzE8z\/BgS8BQbwZLt676tvNEUxMeQLRvu5xuaYZ1TovM1ql5RDSYw3vz+naMjCThxZr6je67gYX84kEWOkh8Ia14uvTMRcXr745+MvgpT1d9G\/skrWda82P2gP3xFel6JAFmt51eHboE\/ArmqfhfnSw4xetTsKmtsMj9RHotft39ol+yMO+hk64iE38itkpIU3uXv6uhsaP2vqromZB0Ufr8uY7GMOW5DeXojF6Kj70A0pp\/Y7J8+y1IwaZmpgNTCWwznofoVFo6xUjFLfUqVwsTP0PVxWPZu\/xdDR0a9\/W+ivIUJe1Nny9HugTWebnZuHpid+9n6ojZx5UFxlMXt81j9rj8032cF58CiAe45vcrPDgdt2Rl2LzTYiSqZW1eXzF+K\/uWd9cvIzeQzkqZqQ2W5XkekpDnb\/RrtRzzeRfP1T6a2grZyXKEQr1pZYk5\/gR6Rl3fGNz9ukQhKUKFA71n9ScZwzSpKScu5TQdtw1A\/LxuZCEioEteycRVkPEb3X+HdPw9dcfwAJ5KwNbnZAlx+\/J90MWTJgTHpuL3ZdQ3V6YWnqKwrt9p30bDGBNPl2A8O1cN+RMUcu3GwCSeKCiWMW3J5MVUvD19qzei+uNzx4vcAVqddFbRZlrEn\/ObqMcxPLkSRrt5NQ\/IN2SQ8+t+ku6rXTzF9NNhgM7MxTDOr\/FnOuUx2vQcICUCAVvnmu9MEJWb12hgxRNNH\/Ng5mt4oXoxveEaBEGrk+42vpmW8uf88n3MG5AlJJvsMR4yHeaY5Zq4txa9fZLgKaafDqMSmHtGxlOZdtc+B0iJEmZ8Z4Ko3LyO48g5DeUVTcEtdFo3MrYIIO80EzJ6sgtvJSS\/LSruisuUJNoliRLyJ7moJ8ODjfl80x3MBJDToZ2nkiZJSKoKgm8pgRsGc95D+d4Y3P0uiUCmOCPyQ5Bv3WkofWzDxAm+TUyVPhBaWCMAvwrZk36j+5ZTXFec77W6IC+gaks8IfsWHpyva\/82YHRjeHB9ozr08jB5RTHKy5RyGmTUL9Yn5C4kzrTux98uujniQ8X706yn8bgqgT5hlARmVjDRuk95SGYmnuuOGyfzKouF1MIckloQ0rCOj47Vl2J6oa6p5l8Hy9wIUlgQGqDb7vcw\/k25xtHuPAVBEHjothOyOFf6y2M1pLAgCMI+nCvwL6bxFRjc0\/3EoLeMQ\/uJ24W3Z5KyQq3EcwzPMzzYEjDUm8HSrau+7TzR1ISNAP2sOv4WzhWey9e34\/AiSYAN4ze67wYW8uvO+ukmbxyKp0vPXFS8\/u7IIIOf8nTVt7FP0nqmNT9mD9gfX5GuRxJgdttJ59sSPJ\/UutoJn4Fz5ZbcanR8AIC9haJfd7\/ol\/n2dRlGjHFat0RslZCm9i4\/IA\/5xY7a+6qiZ0LSRenz5zoaw5TndnlM75IHsm50IfwQzlXutgPdT9qM56HrVmuZYrmbCX+e40xTdfFY9i4\/IE+PWubXYl9FeYqS9qbPlyNdAuu83GxcPStZM\/WquxB+BecqdCqO8xkNrFdWF9anErPPnAErHVdEIJ2VMlOb6DlfzUMS8vyNfpmpmusTnudqH01thexkOUKh3rSyxBx\/Aj0rWdf5LRfr6ijsw7kKnQpmUrj2FpipxOy\/\/rbs1f72AJ5KwNbn5BHKTbd1PGlCy0VxKr2M+ubK1MJTFNb1O+3baBhj4ukSjGfnqiF\/gipq13UeXbhHWPhOnCu3jcbOLu5bWMSf8xv96uVNJYaTyYs\/hF08IN+QQc6v+0m6r3bxFNNPhwE6MxfDeDeMPxdl3aJz7wERPhjnip9iXfsWFvHn\/PZOWPIrJq8ttx2TDjOPchNEt11LGJXAyNtuuliRdYvOuu3+GZwrPMimDY1fkbfRcRygg4s3H84ul2+Is3Lb8RrW9WR4sDGfb3p8MAHkdGjnqaRJEpKq9l4PLhtjEAogmnWU3425vY7CPpwrcFqslsKvQvak3+i+5RTAzfc66UBeQNWWeEL2LTw4X9f+bcDoxvDg+kZ16OVh8opilJcp5TTIqF+sT8gdLw6ueLReLv\/tw3V1FPbhXKmuj0FSC4IgPI5ztfSfpYIUFgRB2Ir9EQiCIAjCauyPQBAEQRBWY38EgiAIgrAa+yMQBEEQhNXYH4EgCIIgrMV\/VVeOWVxMKz8AAAAASUVORK5CYII=\" alt=\"\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There is another interface available which provides the additional method applicationRefreshed. This event is always raised if the method refresh() of the Application-Object is fired. Instead of implement the interface described in the previous posting, you have to use the &hellip; <a href=\"https:\/\/hasselba.ch\/blog\/?p=740\">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":[38,89,26,74],"tags":[33,7,39,31,86,32,3],"class_list":["post-740","post","type-post","status-publish","format-standard","hentry","category-extensibility-api","category-java","category-jsf","category-xpages","tag-8-5-3","tag-domino","tag-extenisbility-api","tag-java","tag-jsf","tag-tipp","tag-xpages"],"_links":{"self":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/740","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=740"}],"version-history":[{"count":5,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/740\/revisions"}],"predecessor-version":[{"id":745,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/740\/revisions\/745"}],"wp:attachment":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=740"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}