Java
@Theme("hellotheme")
public class HelloWorld extends UI {
protected void init(VaadinRequest request) {
... initialization code goes here ...
}
}
UI | UI は、Web ページ内で Vaadin アプリケーションが実行される HTML フラグメントを表します。
通常はページ全体を占めますが、ページの一部として動作することも可能です。
Vaadin Framework を使用してアプリケーションを開発する際は、UI クラスを拡張し、そこにコンテンツを追加するのが一般的です。> UI は本質的に、アプリケーションのユーザーセッションに接続されたビューポートであり、特にマルチウィンドウアプリケーションでは複数のビューを持つことができます。 通常、ユーザーが UI の URL で新しいページを開くと、そのページ用に新しい UI インスタンス(および関連する Page オブジェクト)が自動的に作成されます。 ただし、すべての UI は同じユーザーセッションを共有します。 現在の UI オブジェクトは、UI.getCurrent() を使用してグローバルにアクセスできます。 この静的メソッドは、現在処理中のリクエストに対応するスレッドローカルな UI インスタンスを返します。(「ThreadLocal Pattern」を参照) |
---|---|
Page | UI は Page オブジェクトと関連付けられており、この Page オブジェクトは、UI が実行されている Web ページおよびブラウザウィンドウを表します。
現在処理中のリクエストに対応する Page オブジェクトには、Vaadin アプリケーション内で Page.getCurrent() を使用してグローバルにアクセスできます。これは UI.getCurrent().getPage() を呼び出すのと同じ意味になります。 |
Vaadin Session | VaadinSession オブジェクトは、アプリケーション内で 1 つ以上の UI を開いているユーザーセッションを表します。 セッションは、ユーザーが最初に Vaadin アプリケーションの UI を開いたときに開始され、サーバー上でセッションが期限切れになるか、明示的に閉じられたときに終了します。 |
User Interface Components | ユーザーインターフェースは、アプリケーションによって作成されるコンポーネントで構成されます。 これらのコンポーネントは、特殊なレイアウトコンポーネントを使用して階層的に配置され、階層の最上位にはコンテンツルートレイアウトが存在します。 ユーザーがコンポーネントと対話すると、コンポーネントに関連するイベントが発生し、アプリケーションがそれを処理できます。 フィールドコンポーネントは値の入力を目的としており、フレームワークのデータモデルを使用してデータに直接バインドすることが可能です。 独自のユーザーインターフェースコンポーネントは、継承またはコンポジション(合成)を使用して作成できます。 ユーザーインターフェースコンポーネントの詳細なリファレンスについては「User Interface Components」、 レイアウトコンポーネントについては「Managing Layout」、 コンポーネントの合成については「Composition with Composite and CustomComponent」を参照してください。 |
Resources | ユーザーインターフェースには、画像を表示したり、Web ページやダウンロード可能なドキュメントへのリンクを含めたりすることができます。 これらは リソース として扱われ、外部リソースとして提供される場合もあれば、Web サーバーやアプリケーション自体によって提供される場合もあります。 リソースの種類についての実践的な概要は、「Images and Other Resources」を参照してください。 |
Themes | ユーザーインターフェースの プレゼンテーション(見た目) と ロジック は分離されています。 UI のロジックは Java コードとして処理される一方、プレゼンテーションは CSS または SCSS を使用したテーマ によって定義されます。 Vaadin にはいくつかの 組み込みテーマ が含まれています。 また、ユーザーが定義したカスタムテーマには、スタイルシートに加えて、独自のレイアウトを定義する HTML テンプレート や 画像などのテーマリソース を含めることができます。 テーマ の詳細については「Themes」、 カスタムレイアウト については「Custom Layouts」、 テーマリソース については「Theme Resources」を参照してください。 |
Data Binding | データバインディングを使用すると、Vaadin Framework の任意のフィールドコンポーネントを、JavaBeans などの ビジネスオブジェクトのプロパティ にバインドし、フォームとしてまとめることができます。 コンポーネントは、データモデルから直接値を取得したり、ユーザー入力をデータモデルに更新したりできるため、制御コードを記述する必要がありません。 同様に、任意の セレクトコンポーネント を データプロバイダー にバインドすることで、Java コレクションや SQL データベースなどのバックエンドからアイテムを取得できます。 Vaadin におけるデータバインディングの詳細な概要については、「Binding Components to Data」を参照してください。 |