Widgetの説明 Part1

#目次
1.Widgetとは？
2.Widgetの作成方法
3.共通のプロパティの説明
4.各Widgetの説明
本記事では
・FlexContainer
・FlexScrollContainer
・Tab
・TabPane
・Label
・RichText
・TextArea
の紹介をしています。

#1.Widgetとは？
Wigdetとは、アプリ作成の際に使える便利な部品のこと。
ラベルや、テキストボックス、フレックスボックスやカレンダーなどが標準搭載されている。

フォームにWigdetを追加したい場合は、
下記画像参照
2のメニューから使いたいWigdetを3のエディタ画面にドラックアンドドロップすることで
Wigdetを設置することができます。

![図38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/63b0a8c5-4ef4-0199-5f80-cb1ac864efc0.png)
1.ナビゲーターエリア
アプリ開発に必要なファイル一覧を表示
Project：画面の構成要素とスクリプトファイルを表示
Skin：Wigdetのスキンの一覧を表示
Template：Wigdetのテンプレートやコンポーネントを表示
Assets：メディアファイルやフォントを表示
__2.ライブラリーエリア__
__Wigdet等を一覧で表示__
3.エディタエリア
画面編集やスクリプト編集が可能
4.デバックエリア
各種デバック機能を提供
5.ユーティリティエリア
詳細の設定が可能

#2.Widgetの作成方法
Widgetを作成する方法は２通りあります。
・方法１
左下2のパネルから、必要なウィジェットを３のエリアにドラッグ&ドロップします。
![図38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/63b0a8c5-4ef4-0199-5f80-cb1ac864efc0.png)

・方法2
フォームのController.jsにコーディングすることでWidgetを生成できます。
下記画像参照
![図39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/f374e747-71ba-1ff8-2677-12aa0e62ca78.png)
#3.共通のプロパティの説明
__Lookプロパティ__
![図40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/b164bb09-5dc8-658b-e399-6bd2205227a2.png)
Left、Right、Top、Bottom：ウィジェットの位置を指定できます。
Width、Height、Max Width、Min Width, Max Height：Widgetの幅、高さなどのサイズを指定できます。
CenterX, CenterY:Widgetの中心のX軸、Y軸の位置を指定する。Widgetを中央寄せにしたい場合は、50%に設定できます。
Z Index:Widgetの並び順を指定します。Z Indexが高いものが低いものよりも前に来るようになります。
↑描画ツールなどのレイヤーの考え方と同じ。

__Skinプロパティ__
Widgetの色などデザインを設定するのに役立ちます
![図41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/c2c6534f-a9db-3ffa-3391-ffba95d24422.png)
Skinプロパティでは次のことができる：
カスタムCSSの設定(CustomCSSにチェックを入れて設定)
背景の設定(BackGround)
枠線(Borderで設定)
影とテキスト影(Shadowで設定)
#4.各Widgetの説明
##__FlexContainer__
FlexContainerはコンテナWidgetであり、通常アプリケーションに追加する最初のWidgetとなります。
画面上の他のすべてのWidgetのコンテナとして機能します。![スクリーンショット 2020-03-12 16.35.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/d3498d01-06af-4cfe-17d1-5e9ebcaf6698.png)

![図42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/2e51a336-7e81-1c69-c67f-c1c58dd730d6.png)
Clip Bounds:子Widgetが境界外に配置される時、切り取りするかどうかを指定する。フレックスコンテナに影を付けたい場合などは、この設定をOffに設定する。
Layout Type:WidgetのLayout Typeをフリーフォーム、
水平または垂直のいずれにするかを指定する。
Enable Blur:Widgetがぼやけてみえるようにする。
Snap to Grid:グリット線に応じてWidgetが移動するかを設定する。 
Sizeの設定でグリッド幅を変更することができる。
##__FlexScrollContainer__
FlexScrollContainerは、コンテンツを水平方向または垂直方向にスクロールできるスクロール可能なコンテナです。
__FlexScrollContainer(web)__
![図43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/ea089f73-56fa-e3fe-b655-084c734f8f43.png)
Scroll Direction:スクロールする方向を指定する
contentOffset:dpに測定されたスクロール可能領域の左上のxとy座標を指定する。
contentSize:コンテンツの幅と高さを指定する
__FlexScrollContainer(Mobile/Tablet)__
![スクリーンショット 2020-03-12 16.50.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/944bd65e-0e13-9cd6-9459-c8101d6a3eb4.png)
zoomScale:FlexScrollContainerに適用される現在の倍率を指定します。
maxZoomScale:スクロールビューに適用できる最大スケール係数を指定します。
minZoomScale:スクロールビューに適用できる最小スケール係数を指定します。
bouncesZoom:スケーリングが最大制限または最小制限を超えたときに、スクロールビューのスケーリングをアニメーション化するかどうかを指定します。
##__Tab__
タブwigdetを使用して、TabPaneにタブを追加することができます。
__Tab(web)__
![図44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/4178ab7b-9c0b-5acf-63c7-51df868c324a.png)
Image:表示する画像を指定する editをクリックすると画像を指定できる。
Tab name:タブのタイトル
Layout Type:wigdetのアレンジメントをフリーフォーム、
水平または垂直のいずれにするかを指定する。
他のプロパティはデフォルトに設定される。

__Tab(Tablet/Mobile)__
tablet/Mobileでもこちらは表示変わりません。
##__TabPane__
TabPanewigdetは、その中に複数のタブを整理できるコンテナwigdetです。
__tabPane(web)__
![図45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/855c034c-5b2e-7a25-8bd0-14fc7e60d195.png)
Active tabs: 選択したタブインデックスを示す。
インデックスは0から始まる。
ViewType:Tab Paneが表示するビュータイプを指定する。
Position:タブの位置を指定する。
Header Container Weight:タブの幅の割合を指定します
Left/Top image:タブの左上の画像を指定する
Right/Bottom Image:タブの右下の画像を指定する

__tabPane(tablet/mobile)__
![スクリーンショット 2020-03-12 17.14.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/5099935f-6379-b03c-be69-9b2393cbb74a.png)
tabHeaderHeight:タブヘッダーの高さをピクセル単位で指定します。
##__Textbox__
Textboxウィジェットを使用すると、ユーザーから単一行の入力を取得できます。
例：ログイン画面でユーザー名とパスワードを取得する際の入力部分など。
__Textbox(web)__
![図46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/bb5e9ce7-b727-c38d-c615-7e3aaf0d4438.png)
Max Characters: 入力できる最大文字数を指定する。
Input Mode: AnyとNumeric onlyを指定できる。
Numeric onlyの場合は数字のみ入力可能となる。
Height Mode:固有のコンテンツまたはシステムのデフォルトによって、テキストボックスの高さを決定する方法を指定します。
デフォルトのオプションは、iPhoneおよびSPAプラットフォームでのみ使用可能です。
__Keyboard Style__
Default→ デフォルトのキーボード
Decimal→ 小数点ありのナンバーパッド
Number Pad→ 暗証番号を入れるための、数字のみのキーボード
Phone Pad→ 電話用。ゆえに"#"や"*"のボタンがある
Placeholder:入力欄の例を指定する。
Tool tip:カーソルがウィジェットをクリックしないでホバーするときのヒントテキストを指定する。

__Textbox(tablet/mobile)__
![スクリーンショット 2020-03-12 17.28.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/bb2e0cd5-50f2-25a7-cd3b-8b8a5c027b3b.png)
PasteBoardType:システム全体またはアプリケーション固有のペーストボードを使用して、アプリケーション内または別のアプリケーションとデータを共有できます。
closeButton:キーパッドに表示される「完了」ボタンのon/offを切り替えます。
closeButtonText:キーパッドに表示される「完了」ボタンを置き換えるテキストを指定します。
KeyboardActionLabel:キーボードのアクションキーに表示するテキストを指定します。
##__Label__
ラベルウィジェットは、フォームに固定のテキストを表示するために使用されます。
__Label(web)__
![図47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/30d46ab2-1c88-4896-0b38-567488d69c85.png)
Tool Tip:カーソルがウィジェットをクリックしないでホバーするときのヒントテキストを指定する。
Enable Blur:ウィジェットのぼかし効果を有効または無効にすることができる。
__Label(tablet/mobile)__
![スクリーンショット 2020-03-12 18.09.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/68e0b65f-be3f-12fe-87d9-44a5d0a98b54.png)
maxNumberOfLine:ラベルウィジェットで許可されるテキストの最大行数を定義します。
wrapping:ラベルが境界値までに達すると、ラッピングする。
textCopyable:ウィジェットが有効な状態のときに、ラベルウィジェットからテキストをコピーできます。
##__RichText__
リッチテキストウィジェットは、ユーザー定義のHTML文字列を表示します。
テキスト、リンク、画像を表示できます。
__RichText(web)__
![図48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/081fe118-17b0-e782-0d1e-26d9be09e1d9.png)
Tool Tip :カーソルがウィジェットをクリックしないでホバーするときのヒントテキストを指定する。
__RichText(tablet/mobile)__
tablet/Mobileでもこちらは表示変わりません。
##__TextArea__
TextAreaウィジェットを使用すると、複数行のテキストを入力できます。
例：コメントや、フィードバック等
__TextArea(web)__
![図49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/1c1e22a5-adcc-bf85-b5b9-2feffb82aa65.png)
Max Characters:入力できる最大文字数を指定する。
Placeholder:入力欄の期待値を記述する短いヒントを指定する。
Tool tip:カーソルがウィジェットをクリックしないでホバーするときのヒントテキストを指定する。
Auto Capitalize:先頭の大文字化を自動で行うかどうかを指定する。
__TextArea(tablet/mobile)__
![スクリーンショット 2020-03-12 18.41.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/f4e26e00-9f4f-0861-27ec-09b42e827138.png)
PasteBoardType:システム全体またはアプリケーション固有のペーストボードを使用して、アプリケーション内または別のアプリケーションとデータを共有できます。
closeButton:キーパッドに表示される「完了」ボタンのon/offを切り替えます。
closeButtonText:キーパッドに表示される「完了」ボタンを置き換えるテキストを指定します。
KeyboardActionLabel:キーボードのアクションキーに表示するテキストを指定します。


【参考】
https://docs.kony.com/konylibrary/visualizer/viz_widget_prog_guide/Default.htm