LoginSignup
1
1

More than 5 years have passed since last update.

【SAPUI5】コントロールとコントローラは何が違うのか?

Posted at

はじめに

前回の記事で、Shellcontrolについてご紹介しましたが、ふと「そもそもコントロールって何? コントローラとどう違うの?」という疑問がわいたので、コントロールについて調べてみました。

コントロールとは

公式ドキュメントによれば、画面のパーツの見た目や動作を定義するために使われるものだそうです。
たとえば、画面にボタンを表示するために以下のようなソースを書きました。ここで使われているButtonはControlの一種です。一方コントローラはビューを操作するためのロジックのことでしたね。

<mvc:View
   controllerName="test.helloworld.controller.App"
   xmlns="sap.m"
   xmlns:mvc="sap.ui.core.mvc">
   <Button
      text="Say Hello"
      press="onShowHello"/>
</mvc:View>

APIリファレンスを見てみると

sap.m.ButtonのAPIリファレンスを見てみます。
Extends:のところに"sap.ui.core.Control"とあり、"sap.ui.core.Control"という抽象クラスを継承したものであることがわかります。このように、すべてのコントロールはsap.ui.core.Controlクラスを継承して作られています。
WS000027.JPG

また、その下にはProperties, Associations, Events, Methodsとあります。これらはコントローラのメタデータと呼ばれます。Buttonにはありませんが、Aggregationを定義しているコントロールもあります。

メタデータの属性 意味
Properties 外部からアクセス可能なプロパティ text, type
Associations コントロールと他の要素とカーディナリティ Buttonに対して0~nのラベルを定義できる
Aggregation コントロールとその子要素のカーディナリティ Toolbarの中に0~nの子要素を配置できる
Events コントロールに対して定義されたイベント press:ボタンが押されたときのイベント
Methods コントロールに対して定義された外部からアクセス可能なメソッド getText:textの値を取得

まとめ

  • コントローラは画面のパーツの見た目や動作を定義するために使われるもの
  • "sap.ui.core.Control"クラスを継承して作られている
  • プロパティを設定することで見た目を変えたり、イベントやメソッドを利用して動作を定義することができる

参考にしたページ

[SAPUI5/OpenUI5]カスタムUIコントロールを作成する方法(前編)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1