Пример Создания Веб-Приложения С Использованием Библиотек Vaadin

В 2016 году многие из нас обещали себе новые достижения, например, прочитать отложенную книгу, изучить новый вид спорта или язык программирования и т. д. Изучение новых технологий чем-то похоже на действия, описанные выше.

Итак, для таких энтузиастов небольшой обзор удобных «инструментов» для разработки веб-приложений на Java. Новая серия статей будет посвящена Ваадин И Ликвибаза .

В первой статье я хочу рассказать вам о нескольких этапах начала знакомства с этим.

FrameWork(Ваадин) .

О «загрузке» шаблона и добавлении элементов в «макет» мы поговорим впервые.

Давайте немного поговорим о Ликибазе.

В будущих статьях мы планируем добавить обработку xml-файлов.

Ваадин .

Для меня это «интерпретатор» Java-кода в пользовательский интерфейс.

По сути, я сводлю разработку к уровню управления уровня Java. Благодаря серверно-ориентированной архитектуре на базе JavaEE можно выкладывать слой сложной логики, не теряясь в настройках отдельных частей.

А уже подготовленная оптимизация под браузеры (я говорю о кроссбраузерности) сведет эту часть работы к минимуму.

Серверно-ориентированная модель позволяет быстро (вы это увидите позже) и создавать качественные приложения, снижая риск застревания на определенном этапе.

Вы разрабатываете на Java, а на клиенте вы увидите JavaScript. Дополнительно надо сказать, что использование AJAX обещает увеличение скорости обмена в интерфейсе.

В этом направлении сейчас разрабатывается множество программных продуктов.

Некоторые из них описаны в первой и четвертой статьях ниже.

Если говорить об использовании, то для средних и крупных компаний это отличный выбор (ИМХО).

Основная информация о Ваадине.

Официальный сайт Ваадина Ниже несколько ссылок на видео .

Я очень рекомендую его посмотреть.

На русском .

Здесь рассказывается о том, как визуально создать небольшое приложение.

На иностранном языке .

Лучшая практика — очень успешная история о том, как правильно создавать части интерфейса.

Статьи о FrameWork .

Ссылка на первую статью .

Небольшая статья об отличиях Ваадина от его «собратьев».

Ссылка на вторую статью .

Обзор возможностей FrameWork. Ссылка на третью статью .

Полезные функции.

Ссылка на четвертую статью .

Здесь про GWT и Vaadin. Обзор.

Чтобы создать свой первый шаблон, вы можете сделать следующее.

Первый — установить и настроить несколько частей для корректной разработки.

Если, например, вы используете IntelliJ ИДЕЯ , затем при создании нового проекта выберите Vaadin в разделе «Дополнительные библиотеки и FrameWorks».

После этого вам будет предложено указать «Дистрибутив Vaadin» и дополнительно можно ввести «Создать образец приложения»; перед этими действиями обязательно укажите путь к Project SDK и Серверу приложений (все эти настройки производятся в одном окне).

Кстати, есть шаблоны и для других IDE. Ссылки на шаблоны .

Плагин Vaadin для Eclipse .

Плагин Vaadin для NetBeans .

В проекте после запуска TomCat вы можете увидеть следующую надпись «Hello World».

Этим связь Вы можете наблюдать за процессом еще раз.

Что такое Ликвибаза и зачем она нам нужна? Ссылка на сайт Liquibase .

Хорошая статья об особенностях работы.

Другой отличный письменный материал.

Что случилось Ликвибаза ? Для меня это удобный механизм создания одинаковых типов объектов в разных базах данных (Oracle, PostgreSQL и других).

Очень хороший выбор для компаний, разрабатывающих программное обеспечение.

Если попытаться описать это очень кратко, то вы описываете таблицы, последовательности и прочие объекты в xml. В дальнейшем один и тот же файл можно использовать для установки на разные типы баз данных (с определёнными ограничениями).

В этой статье мы начнем создавать пользовательский интерфейс, например, для создания файлов Liquibase (ограничимся xml-версией).

Именно благодаря поддержке множества баз данных мы постараемся изучить и применить эту возможность.

Забыл упомянуть Apache Tomcat. Ссылка на сайт Томкат .

В предложенной мной версии можно использовать встроенную возможность запуска тестов прямо из среды разработки.

Начнем с пользовательского интерфейса Vaadin. Кстати, на самом сайте можно найти пример конструкции.

"Адресная книга" .

Мы попробуем пойти своим путем и создать хоть и похожее, но все же «свое» приложение.

Давай начнем.

Если вам удалось загрузить шаблон, он выглядит примерно так:

  
  
  
  
  
  
  
  
  
   

package com; import com.vaadin.server.VaadinRequest; import com.vaadin.ui.*; /** * Created by Terran on 20.01.2016. */ public class MyVaadinApplication extends UI { @Override public void init(VaadinRequest request) { VerticalLayout layout = new VerticalLayout(); setContent(layout); layout.addComponent(new Label("Hello, world!")); } }

В коде вы можете увидеть строку.



final VerticalLayout layout = new VerticalLayout();

По сути, это «макет», к которому мы будем добавлять элементы (сейчас помимо основных элементов на сайте можно найти огромное количество дополнительных).

Мы предложим будущему пользователю два варианта, первый — перейти к созданию элементов, второй — перейти по ссылке на хабрахабр.

ру .

Здесь вы можете использовать любой ресурс, в реальном приложении — это может быть сайт технической поддержки.

Для этого добавим несколько элементов.

Вот они:

final Label startVariant = new Label(); startVariant.setValue("Choose button"); layout.addComponent(startVariant); Button buttonClick = new Button("The option to create"); buttonClick.setStyleName(ValoTheme.BUTTON_TINY); layout.addComponent(buttonClick); Button buttonHabrahabr = new Button("Go habrahabr.ru"); buttonHabrahabr.setStyleName(ValoTheme.BUTTON_DANGER); layout.addComponent(buttonHabrahabr);

Когда вы запустите (я запускаю версию 7.0.65 с помощью Tomcat), у вас будет следующее.



Пример создания веб-приложения с использованием библиотек Vaadin

Будущему пользователю доступны два варианта, первый — перейти к созданию объектов, второй — перейти на habrahabr.ru. Итак, пользователь нажимает кнопку «Возможность создать».

Мы предложим вам выбор.

Для этого мы добавим в действие addClickListener. Что-то вроде этого:

buttonHabrahabr.addClickListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent clickEvent) { } });

Т.

к.

удобнее использовать лямбда-выражения; мы напишем все следующие обработчики, используя их.

-->

buttonHabrahabr.addClickListener((Button.ClickListener) clickEvent -> { });

Далее сделаем обработку, добавим к кнопке Listener (buttonClick), и при нажатии выведем еще один элемент ComboBox.

buttonClick.addClickListener((Button.ClickListener) clickEvent -> { final ComboBox boxChange; layout.addComponent(boxChange = new ComboBox("Choose creation variant ")); boxChange.addItems("Create Table", "Create PrimaryKey");

После перезапуска TomCat получаем следующий результат:

Пример создания веб-приложения с использованием библиотек Vaadin

Здесь сразу бросается в глаза расположение кнопок («Возможность создать» и «Перейти на habrahabr.ru»).

На мой взгляд они очень близки.

Это легко исправить.

Удалим добавление элементов и добавим новый горизонтальный слой («макет»), добавим к нему кнопки и новый слой к исходному макету.



layout.addComponent(buttonClick); layout.addComponent(buttonHabrahabr); final HorizontalLayout horizontalLayoutForButton = new HorizontalLayout(); horizontalLayoutForButton.addComponents(buttonClick,buttonHabrahabr); horizontalLayoutForButton.setSpacing(true); layout.addComponent(horizontalLayoutForButton);

Вот что мы получим после перезапуска сервера приложений (TomCat).



Пример создания веб-приложения с использованием библиотек Vaadin

Для «Создать таблицу» мы добавим следующую часть.



boxChange.addValueChangeListener((Property.ValueChangeListener) valueChangeEvent -> { if (Objects.equals(boxChange.getValue(), "Create Table")) { } else if (Objects.equals(boxChange.getValue(), "Create PrimaryKey")) { } }

Вносим небольшие изменения.

Например, после выбора элемент будет доступен только для чтения.

Добавим поля для ввода имени таблицы и автора будущего файла:

boxChange.addValueChangeListener((Property.ValueChangeListener) valueChangeEvent -> { if (Objects.equals(boxChange.getValue(), "Create Table")) { boxChange.setReadOnly(true); final TextField tableName = new TextField("Enter table name"); tableName.setWidth("300px"); tableName.setRequired(true); tableName.addValueChangeListener(event -> { String value = (String) event.getProperty().

getValue(); Notification.show("Value is: " + value); }); tableName.setImmediate(true); final TextField authorName = new TextField("Enter author name"); authorName.setWidth("300px"); authorName.setRequired(true); authorName.addValueChangeListener(event -> { String authorNameValue = (String) event.getProperty().

getValue(); Notification.show("Value is: " + authorNameValue); }); authorName.setImmediate(true); layout.addComponent(tableName); layout.addComponent(authorName);

Получаем результат, который показывает, что после выделения появилась возможность ввести имя таблицы и автора изменений.

Длина и другие параметры вводимых значений могут быть ограничены или изменены.



Пример создания веб-приложения с использованием библиотек Vaadin

Здесь мы остановимся на рассуждениях и напишем код для подведения итогов.

Мы немного взглянули на первоначальный макет Vaadin, попытались создать несколько элементов и добавили к ним некоторую обработку.

С этого момента давайте немного углубимся в Ликвибаза .

Для начала стоит просмотреть ссылки с примерами.

Создание таблицы — «Изменить: createTable» Пример создания.



<Эxml version="1.0" encoding="UTF-8"?> <databaseChangeLog xmlns=" http://www.liquibase.org/xml/ns/dbchangelog " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd "> <changeSet id="1" author="bob"> <createTable tableName="department"> <column name="id" type="int"> <constraints primaryKey="true" nullable="false"/> </column> <column name="name" type="varchar(50)"> <constraints nullable="false"/> </column> <column name="active" type="boolean" defaultValueBoolean="true"/> </createTable> </changeSet> </databaseChangeLog>

Чтобы создать файл, нам нужно добавить/записать данные в (id, автор, tableName, name, type) и затем собрать отдельные «кусочки» в один файл, потому что в реальной ситуации у нас может быть много разных полей.

Как мы с тобой это сделаем? Есть несколько вариантов.

Мы постараемся разобраться в них в следующей статье.

продолжение следует. В опросе могут участвовать только зарегистрированные пользователи.

Войти , Пожалуйста.

Использовали ли вы эти «инструменты» для создания приложений? 28,13% Да 9 12,5% Нет 4 59,38% Планирование 19 Проголосовали 32 пользователя.

8 пользователей воздержались.

Теги: #vaadin #java #ООП #программирование #разработка приложений #java ee #liquibase #framework #верстка #программирование #java #ООП

Вместе с данным постом часто просматривают: