2013-04-06 4 views
1

У меня такая же проблема, как here.GWT: SplitLayoutPanel UiBinder

Есть ли способ переопределить метод onResize и использовать его в uibinder?

SplitLayoutPanel mainPanel = new SplitLayoutPanel() { 
    @Override 
    public void onResize() { 
     super.onResize(); 
     //some other resizing stuff 
    }   
}; 

ответ

0

Да. Определить класс:

package com.foo; 

public class MySplitLayoutPanel extends SplitLayoutPanel() { 
    @Override 
    public void onResize() { 
    super.onResize(); 
    //some other resizing stuff 
    }   
}; 

Затем связать пакет, в котором класс пребывает, к XML-пространства вашего выбора (что не конфликтует с другими, определенными в UiBinder шаблоне):

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' 
      xmlns:g='urn:import:com.google.gwt.user.client.ui' 
      xmlns:foo='urn:import:com.foo'> 

И затем ссылаться на ваш класс через пространство имен (как вы бы очень другой виджет обычно используемый g имен):

<foo:MySplitLayoutPanel /> 

Это для UiBinder, но я не думаю, что ответ, который вы связали, является решением вообще, поскольку onResize() будет также вызван (и в основном), когда окно браузера изменится.