管理画面にメニューを追加してみよう

Aug,6 2004.
Yutaka Yasuda, Cobalt Users Group.
(yasuda@cobaltqube.org)

概要

Cobalt の管理画面は、Cobalt の管理エンジンである Sausalito が XML で書かれたメニューデータから動的に HTML を生成して表示しています。 そのため新しいメニューを追加するために必要な作業は、この XML のデータを追加することだけです。

ここではその具体的な方法について説明します。


実際の追加作業

まず結果からお見せします。以下の図に示すように、左側メニューに通常は存在しない「HELLO」階層メニューを追加してみました。 (参考文献「Sausalito で遊ぼう!(文献 2.)」)

これは /usr/sausalito/ui/menu/ ディレクトリ以下に下記の二つの XML ファイルを置いただけの結果です。 このディレクトリ以下に何かサブディレクトリを作り、そこに入れても構いません。
---- hello.xml
<item id="base_hello" 
   label="HELLO" 
   description="Hello DAYO"
   requiresChildren="1">
   <parent id="base_sysmanage" order="90"/>
</item>

---- hello_world.xml
<item id="base_helloWorld"
   label="Say Hello!"
   description="Say Hello to the bird."
   url="/hello/hello.html" >
   <parent id="base_hello" order="10"/>
</item>
hello.xml がまず左側のメニューバーに HELLO という項目を追加し、 hello_world.xml が HELLO 項目のサブ項目 Say Hello! となり、それをクリックすると、 url パラメタに書かれた hello.html をメインのフレーム内に表示するようになります。

HTML ファイルのトップディレクトリは /usr/sausalito/ui/web/ ですので、今回の url="/hello/hello.html" は /usr/sausalito/ui/web/ の直下に hello というディレクトリを作り、hello.html を置くことになります。
今回は簡単にただイメージを表示するだけの HTML ファイルを作ってみました。
---- hello.html
<HTML>
<BODY>
HO HO HO!<BR>
<IMG SRC="tori.jpg">
</BODY>
</HTML>
XML ファイルに書かれた item の id と、parent id による親子関係などがわかるでしょうか。 これらのパラメタに従って、以下のことが自動的に処理されます。
  • 親子関係が階層メニューとなって表現される
  • label に現れる文字が項目名になる
  • description の値がヘルプとして画面左下に表示される(マウスポイントを重ねたときに反応する)
  • メニューを選ぶと url で指定された画面が表示される
item id, parent id パラメタに注目すると、base_sysmanage → base_hello → base_helloWorld という構造が表示されている画面構成とうまく重なっているのがわかるでしょう。
base_sysmanage は画面左側のメニューバー、order はその中での並び順を意味します。今回は 90 としたため一番下に出ますが、33 などにすればもっと上に入り込みます。

label や description は上の例ではハードコードしましたが、通常なら .po 形式のメッセージファイルの msgid を指定して、国際化に自動的に対応させるようにします。

今回は非常に単純なメニューで、ただ hello.html を表示するだけなのですが、普通はここに各種の製品の設定画面が表示されているわけです。
さあ、自分のメニューを追加しましょう!


参考文献

  1. Sausalito Developer's Guide
    ftp://ftp-eng.cobalt.com/pub/developer/TechNotes/SSDK.pdf
  2. Sausalito で遊ぼう!, 2002, Masahiro Watanabe
    http://bluequartz.org/docs/sausalito2.pdf
  3. Cobalt サーバの管理システム BlueQuartz 登場
    Linux Magazine 2004.5 pp.74-79

[BACK]