JClientコントロールを使用したUIのナビゲートについて

ナビゲーション・バーの使用方法について

JClientでデフォルトのマスター/ディテール・フォームを作成すると、マスター・パネルとディテール・パネルの両方にナビゲーション・バーが作成されて配置され、ユーザーはそれぞれのパネルのデータを別々にスクロールできます。このかわりに、フォーカスのあるパネルに対して機能するナビゲーション・バーを1つ作成することもできます。

JClientのUIで、個々のパネルから、ナビゲーション・イベントがすべての子パネルに影響するレイアウト・パネルへ、ナビゲーション・バーのコードを移動する必要があります。たとえば、部門と社員のデータ・パネルからレイアウト・パネルへコードを移動します。

次のようなコードをマスターおよびディテールの両方のパネルから削除します。

// The declaration of the navigation bar
private JUNavigationBar navBar = new JUNavigationBar();

// The code which binds the navigation bar to the individual panel.
navBar.setModel(JUNavigationBar.getModelInstance(getPanelBinding(), "DepartmentsView", null, "DepartmentsViewIter"));

//Add the navigation bar to the panel
add(navBar, BorderLayout.NORTH);

このコードを削除したら、次に、マスターとディテールの両方のパネルを含むレイアウト・パネルにコントロール・バインドを追加します。

//The declaration of the navigation bar
private JUNavigationBar navBar = new JUNavigationBar();

//Bind the model for the navigation bar to the panel
navBar.setModel(JUNavigationBar.getModelInstance(getPanelBinding(),navBar)); 

//Add the navigation bar to the panel
add(navBar, BorderLayout.SOUTH); 
add(masterScroller, BorderLayout.NORTH); 
add(detailViewPanel, BorderLayout.CENTER);

ツリー・ナビゲーションの使用方法について

パネルにツリー・コントロールを追加する場合、JClientノード・モデルのプロパティ・エディタを使用してノードへの移入規則を作成します。プロパティ・エディタでは、ノードが選択されたときの処理を設定できません。パネルのコントロールにデータを移入するためにノード選択イベントを処理するには、JUTreeDefaultMouseListenerを使用して、選択されたノードのマスターとディテールのパネルを同期化します。次の例は、ツリー・コントロールにリスナーを追加する方法を示しています。



myTreeControl.addMouseListener(new JUTreeDefaultMouseListener
  ( panelBindingVar, new String [][] {
      { "NodeType1" , "DepartmentViewIter" }, {"NodeType2" , "EmployeeViewIter" } }
   )
);

リスナーは各ノードのバインドされたビュー・オブジェクトに対するイテレータ(この例では、DepartmentViewビュー・オブジェクトに対するDepartmentViewIter、およびEmployeeViewビュー・オブジェクトに対するEmployeeViewIter)を引数とします。ユーザーがノードを選択すると、ノードと同じイテレータ・バインドを共有するコントロールにデータが自動的に移入されます。たとえば、マスター・パネルにツリー・コントロールを作成してリスナーにイテレータ・バインドを設定すると、ディテール・パネルではこのイテレータ・バインドを取得および使用して、データ・バインドされたコントロールに属性値が表示されます。


ノード・コントロール・バインドの設定