Я разрабатываю приложение Wicket для колледжа и столкнулся с (несколько хитрой) проблемой.
Для контекста: я делаю приложение, использующее проигрыватель HTML5, и я решил дать конструктору страницы, содержащему проигрыватель, PageParamameters
, чтобы сделать запрос и получить источники для СМИ.
Теперь моя проблема в том, что я использую шаблон, поэтому я создал страницу, которая автоматически помещает верхний и нижний колонтитулы, но мой проигрыватель нуждается в PageParameters
, и я пытаюсь сделать так, чтобы он мог простирается от BasePage
, но конструктор с базовой страницы также имеет некоторые параметры, поэтому он может динамически изменять текст заголовка на основе страницы, на которой он находится в данный момент. Это делает сложным метод super()
:
protected BasePage(String tabHeader, String header) {
add(new Label("tab_title", tabHeader));
add(new Header("header", header));
add(new UserPanel("user_panel"));
add(new Footer("footer"));
}
И моя страница игрока:
public PlayerPage(PageParameters params) {
String name = params.get("name").toString();
MediaItem item = getItem(name.trim());
add(new Label("tab_title", "MaeGûl - " + name)); //trying to get rid of this
add(new Header("header", item.getName())); //and this
add(new UserPanel("user_panel")); //and this
if (item.getType().equals(ItemTypes.MUSIC)) {
add(new AudioPlayer("player", item.getMediaSources()));
} else if (item.getType().equals(ItemTypes.SERIES)
|| item.getType().equals(ItemTypes.MOVIES))
add(new VideoPlayer("player", item.getMediaSources()));
add(new Footer("footer")); //and this
}
Как вы можете видеть, если я добавлю super(tabHeader, header)
в свой конструктор PlayerPage
, ему понадобится параметр "name" для обновления заголовка и tabHeader BasePage
, так что я ошеломлен ...
Какие-нибудь решения для этого?