af:Switcher

Sunday, September 7, 2008
Language: JAVA

Technology: Oracle ADF Framework

IDE : JDeveloper 10


فرض کنید سناریویی داریم که می خواهد در موقعیت های مختلف و یا با یک اکشن مورد نظر کامپوننت یا کامپوننت هایی را نشان داده یا مخفی کنیم af:switcher. دقیقاً برای این منظور طراحی شده است .

دراین مثال سعی دارم زمانی که

کاربر دکمه ی Table را کلیک کرد در صفحه کامپوننت
جدول را نمایش دهم و زمانی که
Tree را کلیک کرد کامپوننت درخت.


af:switcher چگونه کار می کند؟

همانطور که می دانید f:facet ها place holder هایی هستند که در بیشتر کامپوننت ها با اسامی ثابت و از پیش تعریف شده ای وجود دارند و این قابلیت را دارند که یک کامپوننت یا چندین کامپوننت را ؛ در محل خاصی در صفحه رندر کنند .

برای راه اندازی af:switcher باید خودتان دستی( به میزان مورد نیاز) f:facet ها را در این کامپوننت اضافه کنید و به آنها اسم بدهید . مثلاً من در مثال بالا به دو f:facet احتیاج دارم که کامپوننت های مورد نظر(درخت و جدول) را در آنها قرار دهم.(اسم های آنها را Tree و Table می گذارم)


af:switcher یک property با نام facetName دارد که نام facet که می خواهید در آن نمایش دهید را باید در آن set کنید . مثلاً اگر در این property رشته ی Table نوشته شود فقط facet ؛ Table نمایش داده می شود . در مثال بالا , باید ترتیبی دهیم که زمانی که کاربر دکمه ی Table را کلیک کرد این property با رشته ی Table پر شود و همینطور برای دکمه ی Tree به همین صورت.

پس اولین قدم Bind کردن af:switcher به یک manage bean می باشد.


سپس اضافه کردن دو af:setActionListener برای دو دکمه ی Tree و :Table

دکمه ی :Tree

دکمه یTable
به همین سادگی . و این هم نتیجه ی زمان اجرا