Я хотел бы реализовать пользовательский TabLayoutPanel, который автоматически настраивал бы саму вкладку при добавлении виджета (с настраиваемыми действиями, такими как закрытие вкладки и т. Д.).
Я создал CustomTabPanel.ui.xml вместе с CustomTabPanel.java. Дизайн пользовательского интерфейса просто встраивает TabLayoutPanel, а часть кода предоставляет некоторые функции, которые мне нужны.
У меня также есть конструктор, который принимает те же 2 аргумента, что и TabLayoutPanel, которые я хотел бы передать в режиме дизайна пользовательского интерфейса, так же, как и с простым TabLayoutPanel.
Похоже, это
public class CustomTabPanel extends Composite{
/* ... here all the uiBinder things
already written by my eclipse plugin */
@UiField(provided=true)
TabLayoutPanel tabPanel;
public @UiConstructor CustomTabPanel(double barHeight, Unit barUnit){
tabPanel = new TabLayoutPanl(barHeight, barUnit);
initWidget(uiBinder.creatAndBindUi(this));
}
Я использую пользовательский составной виджет в другом .ui.xml
файле
Но затем, когда я запускаю и тестирую веб-приложение в своем браузере, я получаю следующую ошибку:
Класс CustomTabPanel не имеет подходящего метода setBarUnit ().
Элемент
Я следовал инструкциям, прочитанным на http://code.google.com/intl/fr/webtoolkit/doc/latest/DevGuideUiBinder.html#Using_a_widget, чтобы сделать это. Я думаю, что что-то упустил, но не могу понять, что это такое.
Также я пытался использовать наследование, создав производное class ExtendedTabLayoutPanel extends TabLayoutPanel{...}
и реализовав конструктор с аргументами. Это дает мне во время выполнения еще одну ошибку:
Строка xx: несоответствие типов: невозможно преобразовать TabLayoutPanel в ExtendedTabLayoutPanel
Надеюсь, я достаточно ясно ... Скоро прочитаю!