MPS 2020.1 ヘルプ

アイコンの説明

アイコン記述言語は、さまざまな MPS 要素(概念、アクションなど)のアイコンの記述とインスタンス化に役立ちます

言語には 2 つの目的があります。
1. クイックアイコンプロトタイピング用のツールを提供します(例:コンセプト用の新しいアイコンの作成)
2. アイコンを拡張可能な言語構成にする

第一印象

MPS 言語定義言語でアイコンが必要な場合は、既存の .png ファイルを指す代わりに、目的のアイコンのテキスト説明を入力できます。

icon4

jetbrains.mps.lang.resources には 2 つの構造が含まれます。

  • アイコン {} は、イメージを javax.swing.Icon クラスのインスタンスとして表します。

  • iconResource {} は、jetbrains.mps.smodel.runtime.IconResource クラスのインスタンスを返します。

icon5

アイコンのプロトタイプを作成する

アイコンを説明するとき、アイコンの作成インテンションから支援を受けることができます。アイコンの作成は、アイコンのテキスト説明を自動的に作成して、プロトタイプをすばやく作成する方法を提供します。

icon1

インテンションを呼び出すと、簡単なアイコン定義が作成されます。

icon2

この定義は、内部に文字「X」が付いた円形アイコンを記述しています。再生成すると、生成されたアイコンが有効になり、UI に表示されます。

icon3

言語の説明

アイコンの説明はレイヤーで構成され、各レイヤーは次のいずれかになります。

  • 原始的な図形

  • ファイルからロードされたカスタムイメージ

  • キャラクター

これらのレイヤーは、アイコンを表す単一のイメージに結合されます。これらのアイコンの説明を使用できます。

  • 言語定義言語のさまざまな場所でアイコンを指定する - 概念、アクションなど、アイコンが期待される場所

  • アイコンを返すことになっている MPS UI のメソッド

言語の拡張

言語は拡張のために開かれています。新しいアイコンタイプを追加するには、新しいコンセプトを作成し、アイコンインターフェースを実装する必要があります。アイコンインターフェースは目的のアイコンを表し、make プロセス中に .png ファイルに変換されます。

モデルを生成した後、すべてのアイコンが出力モデルから収集され、それらの generate() メソッドが呼び出されます。これらは、対応するアイコンによって記述されたイメージに対応する .png ファイルを作成します。アイコンリソースが要求されると(たとえば、アイコン {} 構文を使用)、Icon.getResourceId() メソッドによって参照されるリソースは、対応するモジュールのクラスローダーを使用してロードされ、Java アイコンオブジェクトに変換されます。

icon {} vs iconResource {}

リソースをロードするために、リソース言語には 2 つの構造があります。アイコン {}javax.swing.Icon クラスのインスタンスとしてイメージをロードし、iconResource {}jetbrains.mps.smodel.runtime.IconResource クラスのインスタンスを返します。2 つ目は、javax.swing パッケージに依存しないコア MPS アスペクトで使用されます。すべての UI 関連コードはアイコン {} を使用します。

最終更新日 : 2020 年 6 月 18 日