Замена класса Application в Vaadin 7

Я предполагаю, что класс Application был удален из Vaadin 7, и setMainWindow() больше не работает.

public class MyApplication extends Application {   //ERROR coz there's no Application class
    public void init() {
        Window mainWindow = new Window("My Application");
        setMainWindow(mainWindow);          //Error setMainWindow not defined
        mainWindow.getContent().setSizeFull();

        MyComposite myComposite = new MyComposite();
        mainWindow.addComponent(myComposite);
    }
}

Хотя приведенный выше код работает в Vaadin 6, он не работает в Vaadin 7. Кто-нибудь знает, как это исправить? Какой класс использовать вместо Application? Пожалуйста помоги


person MEOW    schedule 07.03.2013    source источник


Ответы (1)


Новый UI класс

Вам следует расширить com.vaadin.ui.UI в Vaadin 7. Этот класс представляет всю область содержимого окна / вкладки веб-браузера (или области просмотра портала), в котором отображается приложение Vaadin. Каждое приложение Vaadin имеет один экземпляр пользовательского интерфейса; каждое из дополнительных открытых окон также имеет экземпляр пользовательского интерфейса.

Для получения дополнительной информации посетите страницу вики, Переход с Vaadin 6 на Vaadin 7.

Первый пример в этом Руководстве показывает минимальное приложение как в Vaadin 6, так и в 7, как показано ниже.

Ваадин 7

Приложения версии 7 расширяют класс UI.

import com.vaadin.server.VaadinRequest;
import com.vaadin.ui.*;

@Theme("mytheme")
public class MyApplicationUI extends UI {

    @Override
    protected void init(VaadinRequest request) {
        VerticalLayout view = new VerticalLayout();
        view.addComponent(new Label("Hello Vaadin!"));
        setContent(view);
    }
}

Ваадин 6

Приложения версии 6 расширяют класс Application.

import com.vaadin.Application;
import com.vaadin.ui.*;

public class V6tm1Application extends Application {
    @Override
    public void init() {
        Window mainWindow = new Window("V6tm1 Application");
        Label label = new Label("Hello Vaadin!");
        mainWindow.addComponent(label);
        setMainWindow(mainWindow);
        setTheme(“mytheme”);
    }

}
person Henri Kerola    schedule 07.03.2013
comment
@MEOW Это правильный ответ на ваш вопрос, поэтому вы должны принять его. - person Henri Kerola; 07.03.2013
comment
Совет: Использование подключаемого модуля Vaadin для Eclipse или NetBeans создаст для вас новый проект Vaadin. IntelliJ также может иметь поддержку Vaadin (подробностей я не знаю). - person Basil Bourque; 23.09.2014
comment
В начальном классе я расширяю класс com.vaadin.ui.UI и внес в него необходимые изменения, я очистил развернутый портлет, и получил исключение error.java.lang.ClassCastException: MyClass нельзя преобразовать в com.vaadin.Application. Пожалуйста, подскажите, как это решить. - person nakul; 22.10.2015