GWT

2014-12-04 8 views
7

में विजेट के रूप में कस्टम HTML तत्व को कैसे पंजीकृत करें हाय दोस्तों को किसी को भी कोई विचार है कि कस्टम HTML तत्व को GWT विजेट uiBinder के रूप में कैसे पंजीकृत करें और HTMLPanel में उपयोग करने के स्थान पर सीधे उनका उपयोग करें।GWT

उदा। अगर मैं अपने mgwt परियोजना में Google Polymer उपयोग कर रहा हूँ मैं कस्टम HTML तत्व

    <g:HTMLPanel > 
        <paper-shadow class="{style.card}"> 
         <mgwt:touch.TouchPanel ui:field="touchPanel"> 
          <mgwt:panel.flex.FlexPanel orientation="VERTICAL" alignment="CENTER"> 
           <g:Image url="{global.getDirection.getSafeUri.asString}" /> 
           <g:HTMLPanel>Take me to Deal</g:HTMLPanel> 
          </mgwt:panel.flex.FlexPanel> 
         </mgwt:touch.TouchPanel> 
        </paper-shadow> 
       </g:HTMLPanel> 

के रूप में मैं पंजीकृत करना चाहते हैं का उपयोग कर रहा/ताकि मैं इतना है कि के रूप में कोड लिख सकते हैं बनाने के कस्टम विजेट के रूप में कागज छाया अपनी handel करने के लिए आसान घटनाएं

   <polymer:paper-shadow class="{style.card}"> 
        <mgwt:touch.TouchPanel ui:field="touchPanel"> 
         <mgwt:panel.flex.FlexPanel orientation="VERTICAL" alignment="CENTER"> 
          <g:Image url="{global.getDirection.getSafeUri.asString}" /> 
          <g:HTMLPanel>Take me to Deal</g:HTMLPanel> 
         </mgwt:panel.flex.FlexPanel> 
        </mgwt:touch.TouchPanel> 
       <polymer:paper-shadow> 

उत्तर

0

जहां तक ​​मुझे पता है, आप आसानी से एक नया कस्टम तत्व नहीं जोड़ सकते हैं जो यूआईबिंदर समझ जाएगा। हालांकि, आप your custom widget में एक जोड़ सकते हैं।

आप देखेंगे GWT कस्टम इन कस्टम तत्वों पर जिम्मेदार बताते हैं, जैसे DockLayoutPanel में अनुमति देता है:

<g:DockLayoutPanel unit='EM'> 
    <g:north size='5'> 
    <g:Label>Top</g:Label> 
    </g:north> 
    <g:center> 
    <g:Label>Body</g:Label> 
    </g:center> 
    <g:west size='192'> 
    <g:HTML> 
     <ul> 
     <li>Sidebar</li> 
     <li>Sidebar</li> 
     <li>Sidebar</li> 
     </ul> 
    </g:HTML> 
    </g:west> 
</g:DockLayoutPanel> 

सूचना <g:north size='5'> तत्व - अगर आप DockLayoutPanel के स्रोत कोड में देखें, तो आप यह है कि देखेंगे इस विधि द्वारा नियंत्रित किया जाता है:

public void addNorth(Widget widget, double size) { 
    insert(widget, Direction.NORTH, size, null); 
} 

नहीं @UiChild एनोटेशन और एक अतिरिक्त पैरामीटर कुछ "जादुई" पर्दे के पीछे क्या हो रहा है इसका मतलब है। और पर्याप्त सच है, DockLayoutPanelParser कक्षा है जो इस विशेष मामले को संभालती है। आप देखेंगे कि यह ElementParser लागू करता है - दुर्भाग्यवश, it's not possible to "plug in" your own ElementParser

था एक परियोजना, gwt-customuibinder, कि इस सीमा sidestepping की कोशिश की है, लेकिन यह नए के लिए बहिष्कार किया गया है GWT संस्करण (2.5+?):

कृपया ध्यान दें कि GWT के नए रिलीज के साथ, इस परियोजना अब UiBinder को कस्टम तत्व पार्सर्स जोड़ने के लिए उपयोग की जाने वाली कई तकनीकों को हटा दिया गया है अब संभव नहीं है।

0

मैं उपयोग कर रहा हूँ और इस gwt-polymer wrap की this fork को बनाए रखने।

परीक्षण एप्लिकेशन आपको gwt में बहुलक विजेट का उपयोग के कई नमूने देख सकते हैं में, कैसे मौजूदा एचटीएमएल बहुलक तत्वों रैप करने के लिए, नए लोगों को, UiBinder के साथ प्रयोग, आदि

+0

धन्यवाद लोगों लेकिन यह जब बनाने का तरीका सवाल पूछा गया था कि यह lib उपलब्ध नहीं था –

+0

मेरी गलती। मुझे इस सवाल की तारीख नहीं मिली ... – vjrj