2014-12-04 12 views
7

Merhaba arkadaşlar Birisi, özel html öğesinin GWT widget uiBinder olarak nasıl kaydedileceğini ve bunları doğrudan HTMLPanel'de kullanım yerine nasıl kullanacağını biliyordu.GWT'de Özel HTML Öğesini pencere öğesi olarak kaydetme

Örneğin; O kadar olduğu gibi kod yazmak, böylece ben Kayıt olmak istiyorum

    <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> 

olarak özel html elemanı kullanıyorum benim mgwt projesinde Google Polymer kullanıyorsam/özel widget olarak kağıt gölge oluşturmak onun handel kolay olaylar

   <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> 

cevap

0

Bildiğim kadarıyla, kolayca UIBinder'ın anlayacağı yeni bir özel öğe ekleyemezsiniz. Yine de, your custom widget'a bir tane ekleyebilirsiniz.

GWT özel DockLayoutPanel olduğu gibi bu özel öğeleri niteliklerini izin verdiğini fark edeceksiniz:

<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> 

Bildirim <g:north size='5'> eleman - Eğer DockLayoutPanel 'ın kaynak koduna bakarsanız, öyle görürsünüz Bu yöntemle işlenir:

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

No @UiChild açıklama ve ekstra parametre perde arkasında neler olup "sihirli" bir anlamı vardır. Ve gerçekten doğru, bu özel durumu ele alan bir DockLayoutPanelParser sınıfı var. Ne yazık ki, ElementParser - ne yazık ki, it's not possible to "plug in" your own ElementParser uygular.

yoktu

bir bu sınırlamayı sidestepping çalıştı proje, gwt-customuibinder, ancak yeni için kullanımdan kaldırılmış GWT sürümleri (2.5 +?):

Unutmayın ki GWT daha yeni sürümleri bu proje şimdi UiBinder'a özel eleman ayrıştırıcıları eklemek için kullanılan tekniklerin çoğu artık mümkün olmadığı için kullanımdan kaldırılmıştır.

0

Bunumaralı telefonu kullanıyorum ve gwt-polymer wrap numaralı telefonu kullanıyorum. Eğer GWT polimer widget Kullanım birkaç örneklerini görebileceğiniz testi uygulamasında

, html polimer elemanları mevcut sarmak için nasıl yeni vs olanları, UiBinder ile kullanımını

+0

teşekkürler millet ama ne zaman bu nasıl oluşturulacağını Soru soruldu Bu lib mevcut değildi –

+0

Benim hatam. Bu sorunun tarihini görmedim ... – vjrj

İlgili konular