पैनल, उस जगह की प्रॉपर्टी के बारे में बताता है जहां वह मौजूद है. साथ ही, यह ऐप्लिकेशन कंटेनर के तौर पर काम करता है. एक्सएमएल कॉन्फ़िगरेशन का इस्तेमाल करके पैनल तय किए जाते हैं. इससे यूज़र इंटरफ़ेस (यूआई) को अपनी पसंद के मुताबिक बनाने के लिए, बिना कोड वाली और फ़्लेक्सिबल अप्रोच मिलती है. सिस्टम, इंस्टेंस और स्थितियों को मैनेज करने के लिए, तय किए गए पैनल को ट्रैक करता है.
पैनल की सूची
सिस्टम यूज़र इंटरफ़ेस (यूआई), अपने पैनल की परिभाषाएं window_states नाम के ऐरे रिसॉर्स से लोड करता है. यह संसाधन ऐरे, उन एक्सएमएल फ़ाइलों की ओर इशारा करता है जिनमें पैनल के अलग-अलग कॉन्फ़िगरेशन तय किए जाते हैं. इस सेंट्रलाइज़्ड अप्रोच का मतलब है कि Scalable UI से मैनेज किए गए पैनल, उम्मीद के मुताबिक लोड होते हैं और सिस्टम के इस्तेमाल के लिए तैयार होते हैं.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="window_states">
<item>@xml/app_panel</item>
<item>@xml/back_panel</item>
...
</array>
</resources>
पैनल की डेफ़िनिशन
स्केलेबल यूज़र इंटरफ़ेस (यूआई) फ़्रेमवर्क में हर पैनल को <TaskPanel> या <DecorPanel> नाम वाले एक्सएमएल टैग से तय किया जाता है. <TaskPanel>, ऐप्लिकेशन कंटेनर की प्रॉपर्टी के बारे में बताता है. वहीं, <DecorPanel>, व्यू कंटेनर की प्रॉपर्टी के बारे में बताता है.
सिस्टम यूज़र इंटरफ़ेस (यूआई), पैनल की इन परिभाषाओं को लोड करता है और तब तक पैनलों को ट्रैक करता है, जब तक कोई दूसरा कॉन्फ़िगरेशन लोड नहीं हो जाता. उदाहरण के लिए, रोटेशन की वजह से कॉन्फ़िगरेशन में बदलाव होने या सिस्टम के किसी अनुरोध की वजह से. <TaskPanel> और <DecorPanel>, कॉन्फ़िगर किए जा सकने वाले यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट के ज़रिए, पसंद के मुताबिक अनुभव बनाने के लिए बुनियादी कॉम्पोनेंट के तौर पर काम करते हैं.
एक्सएमएल एट्रिब्यूट
<TaskPanel> टैग में ये एट्रिब्यूट शामिल हो सकते हैं. इनका इस्तेमाल करके, स्टेटस और ट्रांज़िशन तय किए जा सकते हैं.
| एट्रिब्यूट | स्थिति | ब्यौरा |
|---|---|---|
id |
ज़रूरी है | यह पैनल के लिए यूनीक आइडेंटिफ़ायर तय करता है. इस एट्रिब्यूट का इस्तेमाल, PanelPool से पैनल को वापस पाने और सिस्टम में उसकी स्थिति को मैनेज करने के लिए किया जाता है. |
role |
ज़रूरी है | इससे सिस्टम में पैनल के मकसद या फ़ंक्शन के बारे में पता चलता है. वैल्यू, स्ट्रिंग रिसॉर्स, कॉम्पोनेंट के नामों की स्ट्रिंग ऐरे या लेआउट आईडी के बारे में बता सकती है. उदाहरण के लिए, यह ऐसी स्थायी गतिविधियां तय कर सकता है जिन्हें हमेशा पैनल पर दिखाया जाना चाहिए या लेआउट को बड़ा किया जाना चाहिए. |
defaultVariant |
वैकल्पिक | यह उस वैरिएंट का आईडी तय करता है जिसे पैनल को लोड होने पर, शुरुआत में अपनाना चाहिए. अगर इसे तय नहीं किया जाता है, तो सिस्टम पहले से तय किए गए वैरिएंट को डिफ़ॉल्ट के तौर पर इस्तेमाल कर सकता है. |
displayId |
वैकल्पिक | इससे उस डिसप्ले का आईडी तय होता है जिस पर पैनल को दिखाना है. |
defaultLayer |
वैकल्पिक | अगर वैरिएंट में लेयर के बारे में साफ़ तौर पर नहीं बताया गया है, तो पैनल के वैरिएंट के लिए डिफ़ॉल्ट Z-ऑर्डर तय किया जा सकता है. |
controller |
ज़रूरी नहीं, बदलाव हो सकता है |
यह किसी ऐसे संसाधन (आम तौर पर, एक्सएमएल आईडी) को रेफ़रंस देता है जो पैनल के हिसाब से कंट्रोलर तय करता है. इससे कॉन्फ़िगरेशन वैल्यू को कस्टम पैनल कंट्रोलर में सेव और पास किया जा सकता है. इन कंट्रोलर को |
एक्सएमएल चाइल्ड एलिमेंट
<TaskPanel> और <DecorPanel> टैग में इन चाइल्ड एलिमेंट को शामिल किया जा सकता है, ताकि विशेषताओं और डिफ़ॉल्ट व्यवहारों को तय किया जा सके.
| एट्रिब्यूट | ब्यौरा |
|---|---|
<Variant> |
नेस्ट किया गया टैग, किसी भी समय पैनल के लिए खास विज़ुअल कॉन्फ़िगरेशन के बारे में बताता है. किसी पैनल के कई वैरिएंट हो सकते हैं. हर वैरिएंट की पहचान, यूनीक आईडी से होती है. हर वैरिएंट, उस कॉन्फ़िगरेशन के लिए बाउंड्री, दिखने की स्थिति, लेयर, ऐल्फ़ा, कॉर्नर रेडियस, और इंसर्ट जैसी प्रॉपर्टी तय करता है. वैरिएंट, पैरंट वैरिएंट से भी प्रॉपर्टी इनहेरिट कर सकते हैं. |
<KeyFrameVariant> |
<Variant> को बढ़ाने से, अलग-अलग वैरिएंट के बीच विज़ुअल प्रॉपर्टी का इंटरपोलेशन किया जा सकता है. यह इंटरपोलेशन, लगातार फ़्रैक्शन वैल्यू (0 से 1) पर आधारित होता है. इसका इस्तेमाल, स्मूथ और डाइनैमिक ट्रांज़िशन के लिए किया जाता है. जैसे, खींचने की कार्रवाई के दौरान, जब पैनल की स्थिति लगातार इनपुट पर निर्भर करती है. जैसे, खींचने की दूरी. |
<Transitions> |
नेस्ट किए गए टैग में, हर |
<TaskPanel> टैग में, इन खास चाइल्ड एलिमेंट को भी शामिल किया जा सकता है. इससे टास्क के हिसाब से व्यवहार तय किए जा सकते हैं.
| एट्रिब्यूट | ब्यौरा |
|---|---|
<Restart> |
यह नेस्ट किया गया टैग है. इसका इस्तेमाल, रीस्टार्ट करने की उस नीति के बारे में बताने के लिए किया जाता है जिसे तब लागू किया जाना है, जब TaskPanel खाली हो जाता है. यह टैग इन एट्रिब्यूट के साथ काम करता है:
policy, जिसे DEFAULT या LAST पर सेट किया जा सकता है. साथ ही, maxRetry, जो यह बताता है कि टाइम आउट होने से पहले, रीस्टार्ट करने की कितनी बार कोशिश की जाएगी. |
<TaskBehavior> |
यह नेस्ट किया गया टैग है. इसका इस्तेमाल, इस पैनल पर टास्क लॉन्च करने के तरीके के बारे में बताने के लिए किया जाता है. यह टैग, newTaskLaunchPolicy एट्रिब्यूट के साथ काम करता है. यह एट्रिब्यूट, TaskPanel से लॉन्च किए गए नए टास्क के व्यवहार को कॉन्फ़िगर करता है. इस नीति के लिए, कॉन्फ़िगरेशन की मान्य वैल्यू DEFAULT, REMAIN_IN_SOURCE या REPARENT_TO_SOURCE हैं. |
नमूना कोड
<TaskPanel id="@+id/panelId"
role="@array/roleValue"
defaultVariant="@id/closed"
displayId="0" >
<Variant id="@+id/base">
<Bounds left="0" top="0" width="100%" height="100%"/>
</Variant>
<Variant id="@+id/opened" parent="@id/base">
<Visibility isVisible="true"/>
</Variant>
<Variant id="@+id/closed" parent="@id/base">
<Visibility isVisible="false"/>
</Variant>
<Transitions>
<Transition fromVariant="@id/closed"
toVariant="@id/opened"
onEvent="open_event"/>
<Event id="_System_TaskOpenEvent" panelId="@id/panelId" />
</Transition>
</Transitions>
</TaskPanel>