たとえば、StarSuite のプロキシ構成設定を Desktop Manager で使用したいとします。
次のテンプレートは GUI の最初の実装を提供します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE apt:template SYSTEM "policytemplate.dtd"> <apt:template> <category apt:name="StarOffice" apt:label="StarSuite"> <category apt:name="Internet" apt:label="インターネット"> <page apt:name="Proxy" apt:label="プロキシ"> <section apt:name="Settings" apt:label="設定"> <property apt:name="ProxyServer" apt:label="プロキシサーバー" apt:dataPath="org.openoffice.Inet/Settings/ooInetProxyType" oor:type="xs:int"> <visual apt:type="radioButtons"/> <constraints> <enumeration oor:value="0" apt:label="なし"/> <enumeration oor:value="2" apt:label="手動"/> </constraints> </property> <property apt:name="HTTPProxy" apt:label="Http プロキシ" apt:dataPath="org.openoffice.Inet/Settings/ooInetHTTPProxyName" oor:type="xs:string"/> <property apt:name="HTTPPort" apt:label="Http ポート" apt:dataPath="org.openoffice.Inet/Settings/ooInetHTTPProxyPort" oor:type="xs:int"/> <property apt:name="FTPProxy" apt:label="Ftp プロキシ" apt:dataPath="org.openoffice.Inet/Settings/ooInetFTPProxyName" oor:type="xs:string"/> <property apt:name="FTPPort" apt:label="Ftp ポート" apt:dataPath="org.openoffice.Inet/Settings/ooInetFTPProxyPort" oor:type="xs:int"/> <property apt:name="NoProxyFor" apt:label="プロキシなし" apt:dataPath="org.openoffice.Inet/Settings/ooInetNoProxy" oor:type="xs:string"/> </section> </page> </category> </category> </apt:template> |
新しいテンプレートを Desktop Manager に通知するには、次の手順が必要です。
Desktop Manager をインストールしたマシンに root としてログインします。
/usr/share/webconsole/apoc/packages に HelloWorld/templates/StarSuite/Internet/Proxy というディレクトリを作成します。
先ほどリストにした XML テンプレートの内容で proxy.xml というファイルを作成します。ファイルを Proxy ディレクトリにコピーします。
ユーザー “noaccess” に Proxy ディレクトリへの読み取り/実行アクセス権を与えます。
ユーザー "noaccess" に proxy.xml ファイルへの読み取りアクセス権を与えます。
/usr/sbin/smreg add -a /usr/share/webconsole/apoc を実行します。
/usr/sbin/smcwebserver restart コマンドを使用して Web サーバーを再起動します。
Desktop Manager にログインすると、「StarSuite 7」という新しいトップレベルのカテゴリが表示されます。そのカテゴリを下に参照すると、作成したテンプレートで定義した「プロキシ」ページが表示されます。
テンプレートの最初の 2 行は XML の初期定義です。3 行目には apt:template というテンプレートのルート要素があり、これにテンプレートファイルで作成したプロファイルの定義がすべて含まれています。
次の 4 行には、テンプレートの主要構成要素が含まれています。apt:category の要素をネストして、構成プロファイルツリーのノードを作成します。構成プロファイルツリーは、Desktop Manager の GUI にプロファイルの階層を視覚的に表します (「ツリー」を参照)。apt:name 属性を指定すると、属性を使用してその要素が一意に示されます。apt:label 属性は、表示されるテキストを GUI のカテゴリとして指定します。 apt:label 属性を指定しなければ、表示されるテキストは apt:name 属性によって定義されます。したがって、apt:label 要素は必ず指定してください。この要素はローカライズにも使用されます。詳細は、「ローカライズ」を参照してください。
すべての apt:category 要素には、1 つまたは複数の apt:category 要素または apt:page 要素が含まれている必要があります。apt:page 要素は構成プロファイルツリーでリーフを表します。先ほど示した「プロキシ」ページはリーフの一例です。Desktop Manager ではページが単一の HTML ページとして表されるので、これを少なくとも 1 つの apt:section で分割する必要があります。apt:section 要素では、その子要素のすべてが見出し付きのテーブルで表されます。複数のセクションを使用すると、1 ページで設定をグループに分けることができます。
apt:section 要素には、構成設定を表す apt:property 要素が含まれています。「Hello, world!」テンプレートには、ProxyServer、 HTTPProxy、 HTTPPort、 FTPProxy、FTPPort、 NoProxyFor の 6 つのプロパティーがあり、各プロパティーに apt:dataPath 属性が含まれています。これは必要な属性で、構成ツリーのデータの場所を指定します。構成ツリーは、構成リポジトリに保存されている構成設定の階層を表します。詳細は、「ツリー」 を参照してください。
oor:type 属性は、構成リポジトリ内の構成設定のデータ型を定義します。ProxyServer、HTTPPort、および FTPPort は xs:int 型で、その他のプロパティーは xs:string 型です。整数型と文字列型は、デフォルトでは編集フィールドとして表示されます。
visual 要素は、Desktop Manager にプロパティーの表示方法を指示するために使用します。この要素を指定しなければ、プロパティー ProxyServer は、ラジオボタンのグループではなく編集フィールドを使って描画されます。この要素はオプションです。
Desktop Manager の GUI は、ドロップダウンリストを使用する代わりに、整数値 2 候補をラジオボタンのグループとして表す点で、元の StarSuite
の GUI と異なります。2 つの値を視覚化するには、ドロップダウンリストよりもラジオボタンを使用した方が操作性が向上します。たとえば、値を変更するために必要なクリックが 1 回か 2 回かの違いがあります。
constraints 要素は enumeration サブ要素とあわせて、描画するラジオボタンの数と、選択されるラジオボタンに応じてバックエンドに保存する整数値を指定するために使用します。apt:label 属性は、GUI に表示される各ラジオボタンの文字列を指定します。