ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

Screen Widget

 
Post new topic   Reply to topic    ParsX.com Forum Index -> Java
View previous topic :: View next topic  
Author Message
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 2970
Location: Tehran

PostPosted: Wed Nov 26, 2014 3:14 pm    Post subject: Screen Widget Reply with quote

هر View از MVC ها با یک اسکرین یا شامل شده درون یک اسکرین می باشد. هر اسکرین با یک screen widget مشخص می شود.
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 2970
Location: Tehran

PostPosted: Wed Nov 26, 2014 3:31 pm    Post subject: Reply with quote

ویجت ها ابزارهای OFBIZ هستند نه Tomcat . آفبیز تمام درخواست های کاربران نهایی را با یک موجودیت تنها به نام control servlet تفسیر می کند . Control Servlet در web.xml تعریف می شود.
<servlet>
<servlet-name>ControlServlet</servlet-name>
<servlet-class>org.ofbiz.webapp.control.ControlServlet</servlet-
class>
</servlet>
<servlet-mapping>
<servlet-name>ControlServlet</servlet-name>
<url-pattern>/control/*</url-pattern>
</servlet-mapping>

در اینجا درخواست های ControlServlet را که با control/ شروع می شوند تفسیر می کند تنظیم کرده ایم .
هر پترن درخواستی دیگری که می آید توسط تام کت کنترل می شود.
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 2970
Location: Tehran

PostPosted: Wed Nov 26, 2014 3:35 pm    Post subject: r Reply with quote

اسکرین ویجت ها توسط هندلرهای اسکرین ویجت ها در آفبیز پردازش می شوند .
<handler name="screen" type="view"
class="org.ofbiz.widget.screen.ScreenWidgetViewHandler"/>

در دستور فوق به کنترل سرولت گفتیم تمام اسکرین ویجت ها را با کلاس ScreenWidgetViewHandler هندل کند.
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 2970
Location: Tehran

PostPosted: Sat Nov 29, 2014 10:31 am    Post subject: Reply with quote

سرولت کنترلر با استفاده از فایل controller.xml تنظیم می شود. در این فایل سه المان تنظیم کننده وجود دارد . handler, request-map, view-map
المان request-map برای مچ شدن با درخواست واقعی می باشد. در نظر داشته باشید که نام webapp ما و کنترل توسط سرولت کانتینر مچ شده است که پردازش به این نقطه رسیده است. بنابراین باقیمانده آدرس در اینجا در URL فقط MAIN می باشد. چیزی شبیه به کد زیر:
<request-map uri="main">
    <security https="true" auth="true"/>
    <response name="success" type="view" value="main"/>
</request-map>

با اضافه کردن کد فوق درصورتی که درخواستی مشابه partymgr/control/main بیاید اتفاقی حاصل نمی شود چون هیچ رویدادی برای این درخواست صادر نشده است. باید بشرح ذیل عمل کرد:
در واقع خط reponse می گوید نوع جواب view می باشد با نام main.

المان VIEW-MAP این المان بشرح ذیل پر می شود:
<view-map name="main" type="screen" page="component://party/widget/partymgr/PartyScreens.xml#findparty"/>

نوع view همانطور که آمده از نوع screen می باشد و مشخصات screen نیز از مسیری که داده شده PartyScreens.xml#findparty آمده است . در واقع مشخص می شود اسکرینی داریم به نام findparty که باید آن نمایش داده شود. آفبیس در این مکانیزم سعی کرده است که جای داشتن چندین فایل xml کوچک که هر کدام مشخصات اسکرین ها را نمایش می دهند در یک فایل امکان تعریف چند اسکرین را فراهم آورد.

المان : هندلر:
باید در ابتدای فایل خط ذیل را اضافه کنیم :
<handler name="screen" type="view" class="org.ofbiz.widget.screen.ScreenWidgetViewHandler"/>
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 2970
Location: Tehran

PostPosted: Sat Nov 29, 2014 3:43 pm    Post subject: Reply with quote

المان اسکرین:‌
هر اسکرین می تواد شاملی تعدادی سکشن باشد.
هر سکشن میتواند شامل actions و widgets باشد.
المان ویجت:
در اینجا تمام سکشن اسکرین ما شامل فقط یک ویجت می باشد که decorator-screen نام دارد.
دکوراتور بصورت تحت الفظی محتویات اسکرین را نگه می دارد . مثلا در صفحه findparty اسکرین فرم جستجو شامل بعضی فیلد ها برچسب دکمه ثبت می باشد . اما وقتی صفحه در مرورگر تولید می شود باید شامل هدر فوتر و منو باشد . تمام این المان ها توسط دکوراتور اضافه می شود.
خصیصه location المان decorator-screen به محل تعریف دکوراتور اشاره می کند. در اکثر موارد دکوراتور را بعنوان قسمتی از فریم ورک می شناسیم . نه داخل برنامه کاربردی. متغیری مثل ${parameters.mainDecoratorLocation} می تواند به محل تعیین دکوراتور اشاره کند.
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 2970
Location: Tehran

PostPosted: Mon Dec 01, 2014 9:36 am    Post subject: CommonScreen Reply with quote

فایل CommonScreens.xml در دایرکتوری ویجت قرار دارد. این فایل شامل اسکرین های عمومی در طول کل پروژه می باشد. این اسکرین های عمومی هدر و فوتر دارند بنابراین هر اسکرین دیگری که بخواهد از این آیتم ها استفاده می کند .
<screen name="CommonPracticeDecorator">
      <section>
          <widgets>
               <decorator-section-include name="body"/>                     
          </widgets>
      </section>
</screen>
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 2970
Location: Tehran

PostPosted: Mon Dec 01, 2014 11:07 am    Post subject: Controller Servlet Reply with quote

کنترلر سرولت در فایل controller.xml تنظیم می شود این فایل سه المان مهم دارد :
handler, request-map, view-map
المان request-map
خصیصه uri جهت نقش نمودن request-map به درخواست واقعی استفاده می شود. در نظر داشته باشید که نام webapp و کنترل قبلا از طریق آدرس صفحه داده شده است. بنابراین باقیمانده آدرس که main می باشد parsx/control/main بشرح ذیل می باشد
<request-map uri="main">
    <security https="true" auth="true"/>
    <response name="success" type="view" value="main"/>
</request-map>

نکته حایز اهمیت این است که اگر ما در پروژه auth=true بگذاریم کاربر باید لاگین کند یعنی به صفحه login هدایت شود که در اینجا ما هنوز برای LOGIN چیزی تعریف نکرده ایم .

المان VIEW-MAP

<view-map name="main" type="screen" page="component://party/widget/partymgr/PartyScreens.xml#findparty"/>

در مکانیزم آفبیس وقتی می بیند type=screen نوشته ایم قسمت تعریف اسکرین findparty را جدا می کند و می خواند.

المان HANDLER
امشخصات تعریف شده در view-map توسط هندلر تعریف شده در این المان که معمولا اولین قسمت فایل controller.xml می باشد تفسیر می شود.

<handler name="screen" type="view" class="org.ofbiz.widget.screen.ScreenWidgetViewHandler"/>
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ParsX.com Forum Index -> Java All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum