カスタム・レイアウト・マネージャの追加

JDeveloperは、Javaビジュアル・エディタと他のレイアウト・マネージャの統合をサポートしています。ユーザーは、次の場合にJavaビジュアル・エディタおよびプロパティ・インスペクタの両方を使用してレイアウト・マネージャを操作できます。

  1. LayoutManagerに関連付けるoracle.jdevimpl.uieditor.LayoutAssistant実装を記述する場合
  2. LayoutAssistant実装をIDEに登録する場合
  3. (オプション)java.beans.PropertyEditorをIDEに登録して特殊な制約タイプを処理する場合

カスタム・レイアウト・マネージャ・アシスタントを作成するには、次のようにします。

LayoutManagerをLayoutAssistant実装に関連付ける必要があります。 oracle.jdevimpl.uieditor.assistant.BasicLayoutAssistantクラスは、インタフェースoracle.jdevimpl.uieditor.LayoutAssistantの最小限の実装を提供し、明示的に登録されていないLayoutManagerに使用されます。インタフェースには複数の必須メソッドがありますが、このトピックの対象範囲を超えているため、ここでは説明しません。統合担当は、この最小限の実装からLayoutAssistant実装をサブクラス化できます。詳細は、LayoutAssistantインタフェースのJavadocを参照してください。

レイアウト・アシスタントを登録するには、次のようにします。

新規のレイアウト・アシスタントを登録するには、JDeveloper¥lib¥addins.xmlファイルのoracle.jdevimpl.uieditor.UIEditorAddinセクションに次のようにキー値の定義を追加する必要があります。


<property>
     <key>PREFIX.LAYOUT_MANAGER_CLASS_NAME</key>
     <value>LAYOUT_ASSISTANT_CLASS_NAME</value>
</property>

    

ここで

たとえば、java.awt.GridBagLayoutレイアウト・マネージャのLayoutAssistant実装oracle.jdevimpl.uieditor.assistant.GridBagLayoutAssistantを登録する場合、追加するプロパティは次のようになります。


<property>
     <key>jdeveloper.uiassistant.java.awt.GridBagLayout</key>
     <value>oracle.jdevimpl.uieditor.assistant.GridBagLayoutAssistant</value>
</property>    

レイアウト・アシスタントがプロパティ・インスペクタのlayoutプロパティ・リストに表示されるようにIDEから使用可能にするには、レイアウト・アシスタントをJDeveloper¥bin¥jdev.confファイル内でIDEClasspathにディレクティブとして追加する必要があることに注意してください。次に例を示します。

AddJavaLibFile <myAssistant.jar>

myAssistant.jarは、LayoutAssistant実装のコンパイル済クラス・ファイルが含まれているjarです。

レイアウト・マネージャの制約PropertyEditorを登録する手順は、次のとおりです。

カスタム・レイアウト・マネージャで制約クラスを使用する場合は、制約の編集に使用するjava.beans.PropertyEditorの実装クラスを登録できます。プロパティ・エディタ・クラスを、ide.propertiesファイル内でInspector.PropertyEditorの下で登録します。各項目の意味は次のとおりです。

たとえば、GridBagLayoutレイアウト・マネージャのGridBagConstraints用のプロパティ・エディタを登録する場合、ide.propertiesファイル内のエントリは次のようになります。

Inspector.PropertyEditor.count=1

Inspector.PropertyEditor.editor1.type=java.awt.GridBagConstraints
Inspector.PropertyEditor.editor1.editor=oracle.jdevimpl.uieditor.assistant.GridBagConstraintsEditor

注意:プロパティ・エディタ・クラスも、レイアウト・マネージャ・アシスタントについて前述したIDEClasspathに追加する必要があります。


プロパティのアクセッサの定義
プロパティ・エディタの作成