9 属性エディタの設計

属性エディタは、フレックス・アセットとフレックス親アセットの新規フォームと編集フォームに表示されます。属性エディタを利用して、ユーザーが属性データをどのように入力するかを定義します。属性エディタの作成に役立つように、WebCenter Sitesにはpresentationobject.dtdファイルが用意されています。ここには、入力タイプ、属性エディタ・アセット(そのXMLコードではチェック・ボックスやラジオ・ボタンなど入力タイプのオプションの値を指定します)、および属性エディタ・エレメント(入力値を受け取って対象属性の形式と動作のベースとなるロジックを提供します)を定義します。

トピック:

属性エディタについて

属性エディタは他のアセットと同じようなものであるため、他のアセットと同じように編集、承認および管理します。属性エディタでは、ユーザーがフレックスまたはフレックス親アセットの新規フォームまたは編集フォームで属性のデータをどのように入力するかを定義できます。

属性エディタを属性に割り当てると、その属性のデフォルトの入力メカニズム(スタイル)のかわりに、その属性エディタが使用されます。デフォルトの入力スタイルは、その属性のデータ型に基づいています。属性エディタによって属性の入力メカニズムの形式が設定されるため、フレックス属性を設計するのと同じように属性エディタを設計します。ワークフロー機能およびリビジョン追跡機能を使用して、属性エディタを管理できます。

属性エディタは、次の3つの必須要素と2つのオプション要素で構成されます。

  • WebCenter Sitesのインストール・ディレクトリに配置されているpresentationobject.dtdファイル(必須)。これは、フレックス属性とそれらのスタイル・タグのすべての使用可能な入力スタイル(プレゼンテーション・オブジェクト)を定義するDTDファイルです。

  • 属性エディタ・アセット(必須)。属性エディタ・アセットは、このアセットが関連付けられている属性の入力オプションを提供するXMLコードを格納または参照しています。DTDで定義されたスタイル・タグを使用して、このXMLコードを作成します。

  • 属性が「新規」フォームまたは「編集」フォームに表示される場合に、その属性を形式設定する(編集メカニズムを表示する)エレメント(必須)。このエレメントは、検索できるようElementCatalog表のOpenMarket/Gator/AttributeTypesディレクトリに配置される必要があります。その名前は、属性エディタからそれを呼び出すスタイル・タグの名前と一致する必要があります。

  • 属性値が「調査」フォームに表示される場合に、その属性値を書式設定するエレメント(オプション)。このエレメントは、ElementCatalog表のOpenMarket/Gator/AttributeTypesディレクトリにも配置される必要があります。

    このエレメントの名前は、DisplayStyleTagという書式に従っている必要があります。ここでStyleTagは、それを属性エディタから呼び出すスタイル・タグの名前を表し、このスタイル・タグの名前と完全に一致している必要があります。

  • データベースに保存される前の属性データを書式設定するエレメント(オプション)。このエレメントは、ElementCatalog表のOpenMarket/Gator/AttributeTypesディレクトリにも配置される必要があります。

    このエレメントの名前は、StyleTagFlexAssetGatherという書式に従っている必要があります。ここでStyleTagは、それを属性エディタから呼び出すスタイル・タグの名前を表し、このスタイル・タグの名前と完全に一致している必要があります。

WebCenter Sitesでは、属性エディタの開発をサポートするために次のアイテムがデフォルトで用意されています。

  • presentationobject.dtdファイル。このファイルでは、属性エディタで使用できるいくつかの入力スタイル(プレゼンテーション・オブジェクト)が定義されています。したがって、このファイルに含まれている9個の入力スタイルでは不十分な場合を除いて、独自の入力スタイルを定義する必要はありません。

  • 属性エディタ・アセットを作成するために使用できるサンプルXMLが含まれた9個のテキスト・ファイル。これらのサンプルXMLを作成する属性エディタ・アセットにカット・アンド・ペーストできます。これらのファイルは、インストール・ディレクトリのSamples/Attribute_Editorsに配置されています。

  • 属性エディタ・アセットのサンプルXMLコードと組み合せて使用できる10個の表示エレメント。これらのエレメントは、ElementCatalog表のOpenMarket/Gator/AttributeTypesディレクトリに配置されています。

属性エディタを使用しない場合は、WebCenter Sitesでは、属性のデータ型に基づいてその属性のデフォルトの入力スタイルが使用されます。属性のデフォルトの入力スタイルを参照してください。属性エディタを作成するのは、デフォルトの入力スタイルが属性に対して十分でない場合にしてください。

トピック:

presentationobject.dtdファイル

presentationobject.dtdファイルでは、属性エディタを通じて実装できるすべての入力タイプ(プレゼンテーション・オブジェクト)が定義されています。デフォルトのpresentationobject.dtdファイルでは、9個の入力スタイル・タグと、これらのタグによって属性エディタから表示エレメントに渡すことができる引数が定義されています(「属性エディタのエレメント」を参照)。

次に、presentationobject.dtdファイルの全体を示します。これは、WebCenter Sitesのインストール・ディレクトリに配置されています。

<!-- PRESENTATIONOBJECT: An editor
-- PRESENTATIONOBJECT defines the presentation object for
-- instances of Gator attribute types. A presentation object
-- defines the properties of an editor for one of the following
-- controls: Text field, Text area, Pulldown menu
-- For additional information, refer to
-- com.openmarket.gator.interfaces.IPresentationObject.
-- You must specify one of TEXTFIELD, TEXTAREA, or PULLDOWN
-- elements.
-->
<!ELEMENT PRESENTATIONOBJECT (TEXTFIELD | TEXTAREA | PULLDOWN |
RADIOBUTTONS | CHECKBOXES | PICKASSET | FIELDCOPIER | DATEPICKER |
IMAGEPICKER | CKEDITOR | FCKEDITOR | IMAGEEDITOR | TYPEAHEAD |
UPLOADER)>
<!ATTLIST PRESENTATIONOBJECT NAME CDATA #REQUIRED>
<!-- TEXTFIELD: A text field of a specific width
-- You must specify the x dimension; the maximum number of
-- allowable characters defaults to 255.
-->
<!ELEMENT TEXTFIELD ANY>
<!ATTLIST TEXTFIELD XSIZE CDATA #IMPLIED>
<!ATTLIST TEXTFIELD WIDTH CDATA #IMPLIED>
<!ATTLIST TEXTFIELD MAXCHARS CDATA "255">
<!ATTLIST TEXTFIELD BLANKED (YES | NO) "NO">
<!ATTLIST TEXTFIELD MAXVALUES CDATA #IMPLIED>
<!-- TEXTAREA: A text area of a specific size
-- The wrap style defaults to soft.
-->
<!ELEMENT TEXTAREA ANY>
<!ATTLIST TEXTAREA XSIZE CDATA #IMPLIED>
<!ATTLIST TEXTAREA YSIZE CDATA #IMPLIED>
<!ATTLIST TEXTAREA WIDTH CDATA #IMPLIED>
<!ATTLIST TEXTAREA HEIGHT CDATA #IMPLIED><!ATTLIST TEXTAREA WRAPSTYLE (OFF | SOFT | HARD) "SOFT">
<!ATTLIST TEXTAREA DEPTYPE CDATA #IMPLIED>
<!ATTLIST TEXTAREA MAXVALUES CDATA #IMPLIED>
<!ATTLIST TEXTAREA RESIZE CDATA #IMPLIED>
<!-- PULLDOWN: A pulldown menu with an enumeration of items
-- You can specify zero or more list items; the fontsize defaults
-- to relative fontsize 3.
-->
<!ELEMENT PULLDOWN ((ITEM)* | QUERYASSETNAME)>
<!ATTLIST PULLDOWN FONTSIZE CDATA #IMPLIED>
<!-- RADIOBUTTONS: Radio buttons with an enumeration of items
-- You can specify zero or more list items; the fontsize defaults
to relative fontsize 3.
-->
<!ELEMENT RADIOBUTTONS ((ITEM)* | QUERYASSETNAME)>
<!ATTLIST RADIOBUTTONS FONTSIZE CDATA #IMPLIED>
<!ATTLIST RADIOBUTTONS LAYOUT (HORIZONTAL | VERTICAL) "VERTICAL">
<!-- CHECKBOXES: Check boxes with an enumeration of items
-- You can specify zero or more list items; the fontsize defaults
-- to relative fontsize 3.
-->
<!ELEMENT CHECKBOXES ((ITEM)* | QUERYASSETNAME)>
<!ATTLIST CHECKBOXES FONTSIZE CDATA #IMPLIED>
<!ATTLIST CHECKBOXES LAYOUT (HORIZONTAL | VERTICAL) "HORIZONTAL">
<!-- ITEM: A list item
-- You can specify zero or more characters of text.
-->
<!ELEMENT ITEM (#PCDATA)*>
<!-- SQL: Query to populate list of items
-- You can specify zero or more characters of text. Query must
-- return a 'value' column.
-->
<!ELEMENT QUERYASSETNAME (#PCDATA)*>
<!ELEMENT CKEDITOR ANY>
<!ATTLIST CKEDITOR ALLOWEDASSETTYPES CDATA #IMPLIED>
<!ATTLIST CKEDITOR SCRIPT CDATA #IMPLIED>
<!ATTLIST CKEDITOR IMAGEPICKERID CDATA #IMPLIED>
<!ATTLIST CKEDITOR IMAGEASSETTYPE CDATA #IMPLIED>
<!ATTLIST CKEDITOR TOOLBAR CDATA #IMPLIED>
<!ATTLIST CKEDITOR DEPTYPE CDATA #IMPLIED>
<!ATTLIST CKEDITOR WIDTH CDATA #IMPLIED>
<!ATTLIST CKEDITOR HEIGHT CDATA #IMPLIED>
<!ATTLIST CKEDITOR MAXVALUES CDATA #IMPLIED>
<!ATTLIST CKEDITOR RESIZE CDATA #IMPLIED>
<!ATTLIST CKEDITOR CONFIG CDATA #IMPLIED>
<!ATTLIST CKEDITOR CONFIGOBJ CDATA #IMPLIED>
<!-- Deprecated in Oracle WebCenter Sites 11gR1 release. -->
<!ELEMENT FCKEDITOR ANY>
<!ATTLIST FCKEDITOR XSIZE CDATA #IMPLIED>
<!ATTLIST FCKEDITOR YSIZE CDATA #IMPLIED>
<!ATTLIST FCKEDITOR LAZYLOAD CDATA #IMPLIED>
<!ATTLIST FCKEDITOR ALLOWEDASSETTYPES CDATA #IMPLIED>
<!ATTLIST FCKEDITOR SCRIPT CDATA #IMPLIED>
<!ATTLIST FCKEDITOR IMAGEPICKERID CDATA #IMPLIED>
<!ATTLIST FCKEDITOR TOOLBAR CDATA #IMPLIED>
<!ATTLIST FCKEDITOR DEPTYPE CDATA #IMPLIED>
<!ATTLIST FCKEDITOR WIDTH CDATA #IMPLIED>
<!ATTLIST FCKEDITOR HEIGHT CDATA #IMPLIED>
<!ATTLIST FCKEDITOR MAXVALUES CDATA #IMPLIED>
<!-- PICKASSET: When the tree is active, it's the "add from tree"
-- button.
-- When the tree is disabled, it's The Content Centre remember
-- widget. -->
<!ELEMENT PICKASSET ANY>
<!ATTLIST PICKASSET MAXVALUES CDATA #IMPLIED>
<!ATTLIST PICKASSET DISPLAYELEMENT CDATA #IMPLIED>
<!-- TYPEAHEAD: Type And Select the asset. -->
<!ELEMENT TYPEAHEAD ANY>
<!ATTLIST TYPEAHEAD MAXVALUES CDATA #IMPLIED>
<!ATTLIST TYPEAHEAD DISPLAYELEMENT CDATA #IMPLIED>
<!ATTLIST TYPEAHEAD PAGESIZE CDATA #IMPLIED>
<!-- UPLOADER: Upload a file from local disc. -->
<!ELEMENT UPLOADER ANY>
<!ATTLIST UPLOADER MAXVALUES CDATA #IMPLIED>
<!ATTLIST UPLOADER MAXFILESIZE CDATA #IMPLIED>
<!ATTLIST UPLOADER FILETYPES CDATA #IMPLIED>
<!ATTLIST UPLOADER MINWIDTH CDATA #IMPLIED>
<!ATTLIST UPLOADER MAXWIDTH CDATA #IMPLIED>
<!ATTLIST UPLOADER MINHEIGHT CDATA #IMPLIED>
<!ATTLIST UPLOADER MAXHEIGHT CDATA #IMPLIED>
<!-- FIELDCOPIER: A hidden field whose value is set from another
-- field.
-- ex. If you want an attribute whose value is always the name of
-- the asset:
-- <FIELDCOPIER SOURCEFIELD="name"/>
-->
<!ELEMENT FIELDCOPIER ANY>
<!ATTLIST FIELDCOPIER SOURCEFIELD CDATA #REQUIRED>
<!-- This describe the Date Picker -->
<!ELEMENT DATEPICKER ANY>
<!ATTLIST DATEPICKER COMPARETOFIELD CDATA #REQUIRED>
<!ATTLIST DATEPICKER MAXVALUES CDATA #IMPLIED>
<!-- This describe the ImagePicker -->
<!ELEMENT IMAGEPICKER ANY>
<!ATTLIST IMAGEPICKER ASSETTYPENAME CDATA #REQUIRED>
<!ATTLIST IMAGEPICKER ATTRIBUTETYPENAME CDATA #REQUIRED>
<!ATTLIST IMAGEPICKER ATTRIBUTENAME CDATA #REQUIRED>
<!ATTLIST IMAGEPICKER CATEGORYATTRIBUTENAME CDATA #IMPLIED>
<!ATTLIST IMAGEPICKER RESTRICTEDCATEGORYLIST CDATA #IMPLIED>
<!ATTLIST IMAGEPICKER MAXVALUES CDATA #IMPLIED>
<!-- Image Editor -->
<!ELEMENT IMAGEEDITOR ANY>
<!ATTLIST IMAGEEDITOR EDITORTYPE (oie | clarkii) "oie">
<!ATTLIST IMAGEEDITOR HEIGHT CDATA #REQUIRED>
<!ATTLIST IMAGEEDITOR WIDTH CDATA #REQUIRED>
<!ATTLIST IMAGEEDITOR FITIMAGE (true | false) "true">
<!ATTLIST IMAGEEDITOR SNAPSHOTPANEL (true | false) "false">
<!ATTLIST IMAGEEDITOR LIMITCROPPING (true | false) "false">
<!ATTLIST IMAGEEDITOR CROPHEIGHT CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR CROPWIDTH CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR ENABLEOIEFORMAT (true | false) "false">
<!ATTLIST IMAGEEDITOR LIMITSIZE (true | false) "false">
<!ATTLIST IMAGEEDITOR MAXHEIGHT CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR MAXWIDTH CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR MINHEIGHT CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR MINWIDTH CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR AUTORESAMPLE (true | false) "false">
<!ATTLIST IMAGEEDITOR AUTORESAMPLEPROPORTIONAL (true | false)
"false">
<!ATTLIST IMAGEEDITOR DEFAULTTEXTFONT CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR DEFAULTTEXTSIZE CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR DEFAULTTEXTCOLOR CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR ASSETTYPE CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR ATTRIBUTE CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR ATTRIBUTETYPE CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR CATEGORYATTRIBUTE CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR RESTRICTEDCATEGORYLIST CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR ENABLEIMAGEPICKER (true | false) "false">
<!ATTLIST IMAGEEDITOR OIEASSETTYPE CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR OIEATTRIBUTE CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR OIEATTRIBUTETYPE CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR OIECATEGORYATTRIBUTE CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR OIERESTRICTEDCATEGORYLIST CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR OIEENABLEIMAGEPICKER (true | false) "false">
<!ATTLIST IMAGEEDITOR TAGEDIT (true | false) "false">
<!ATTLIST IMAGEEDITOR BASE64JPEGQUALITY CDATA "95">
<!ATTLIST IMAGEEDITOR ASKTOSAVELOCALLY (true | false) "false">
<!ATTLIST IMAGEEDITOR DEFAULTSAVINGTYPE (gif | jpg | jpe | png | 
tif | bmp | oie) "gif">
<!ATTLIST IMAGEEDITOR ENABLEGIFSAVING (true | false) "true">
<!ATTLIST IMAGEEDITOR ENABLEJPEGSAVING (true | false) "true">
<!ATTLIST IMAGEEDITOR ENABLEPNGSAVING (true | false) "true">
<!ATTLIST IMAGEEDITOR ENABLETIFFSAVING (true | false) "true">
<!ATTLIST IMAGEEDITOR ENABLEBMPSAVING (true | false) "true">
<!ATTLIST IMAGEEDITOR GRIDVISIBLE (true | false) "false">
<!ATTLIST IMAGEEDITOR GRIDSNAP (true | false) "true">
<!ATTLIST IMAGEEDITOR GRIDSPACINGX CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR GRIDSPACINGY CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR MAXTHUMBNAILHEIGHT CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR MAXTHUMBNAILWIDTH CDATA #IMPLIED>
<!ATTLIST IMAGEEDITOR THUMBNAILFORMAT (gif | jpg | jpe | png | tif 
| bmp | oie) "gif">
<!ATTLIST IMAGEEDITOR MAXVALUES CDATA #IMPLIED>

デフォルトで使用可能になっているもの以外に、カスタム属性エディタを作成する場合は、まずXML入力スタイル・タグであるPRESENTATIONOBJECTタグをpresentationobject.dtdファイル内で定義する必要があります。新しいPRESENTATIONOBJECTタグを定義するには、次の操作を実行する必要があります。

  • 新しいタグ(プレゼンテーション・オブジェクト)を<!ELEMENT PRESENTATIONOBJECT...>文内のリストに追加します。

  • 新しいタグ(プレゼンテーション・オブジェクト)とこのタグが受け取る引数を定義する<!ELEMENT...>セクションを追加します。.dtdファイルの通常の構文ルールに従うとともに、presentationobject.dtdファイルで使用されている規則に従います。

属性エディタ・アセット

属性エディタ・アセットは、XMLコードを格納しているか、.xmlファイルを参照しています。そのXMLコードは、チェック・ボックス、ラジオ・オプション、ドロップダウン・リストなど、入力タイプのオプションの値を提供します。WebCenter Sitesでは、属性エディタ・アセットを作成するために使用できるサンプル・コードが含まれた9個のテキスト・ファイルが用意されていますが、属性エディタ・アセット自体は用意されていません。開発者は、どのオプションも使用するデータに適したものになるように、これらのサンプル・コードをカスタマイズする必要があるからです。

属性エディタを作成する場合は、本書のHTML版からコードをカット・アンド・ペーストするか(この項の後にいくつかのサンプルを掲載しています)、システム上のインストール・ディレクトリのSamplesサブディレクトリに配置されたテキスト・ファイルを使用します。

この項には次のトピックが含まれます:

構文とデフォルト・タグ

属性エディタ・アセット内のコードは、次の基本形式に従っています。

<?XML VERSION="1.0"?>
<!DOCTYPE PRESENTATIONOBJECT SYSTEM "presentationobject.dtd"> 

<PRESENTATIONOBJECT NAME="SomeName">
...
...
...

</PRESENTATIONOBJECT>

入力スタイル(プレゼンテーション・オブジェクト)の形式を記述しているタグはPRESENTATIONOBJECTタグのペアの間に埋め込まれています。このタグ内には追加のネストされたタグを配置できます。NAME属性はPRESENTATIONOBJECTタグに必須ですが、この属性は将来使用するために予約されています。

属性エディタ・アセットのコード内に含めるすべてのPRESENTATIONOBJECTタグの名前は、presentationobject.dtdファイルで定義されている必要があります。この.dtdファイルでは、次のPRESENTATIONOBJECTタグがデフォルトで定義されています(アルファベット順に示します)。

  • CHECKBOXES

  • CKEDITOR

  • DATEPICKER

  • FIELDCOPIER

  • IMAGEEDITOR

  • IMAGEPICKER

  • PICKASSET

  • PICKFROMTREE (非推奨のためPICKASSETをかわりに使用)

  • PULLDOWN

  • RADIOBUTTONS

  • TEXTAREA

  • TEXTFIELD

  • TYPEAHEAD

  • UPLOADER

属性エディタのコード内で使用するPRESENTATIONOBJECTタグは、その属性エディタ用に使用する表示エレメントの名前と完全に一致している必要があります。したがって、カスタム属性エディタの新しいタグを定義するには、作成するエレメントにはそのタグと同じ名前を付ける必要があります。

エレメントの詳細は、「属性エディタのエレメント」を参照してください。属性エディタのコード・サンプルは、次の項を参照してください。

CHECKBOXES

presentationobject.dtdではCHECKBOXESタグが定義されています。このタグを使用する属性エディタはCHECKBOXESエレメントを呼び出し、このエレメントはその属性の一連のチェック・ボックスを作成します。

CHECKBOXESタグは、次のパラメータを受け取ります。

  • ITEMまたはQUERYASSETNAME: チェック・ボックスの横に表示される名前のソース。名前を指定するには、ITEMパラメータを使用します。データベース表から動的に名前を取得する問合せアセットを指定するには、QUERYASSETNAMEパラメータを使用します。

    次の点に注意してください。

    • チェック・ボックスの横にリストされる名前のソースとしてITEMパラメータとQUERYASSETNAMEパラメータのどちらを使用するかとは関係なく、パラメータで複数の値が指定されていることを確認してください。単一の値の場合、チェック・ボックスのかわりにラジオ・ボタンが作成されます。

    • 問合せを使用するには、問合せアセットを使用する必要があります。SQL文は使用できません。

    • 問合せアセットのSQLでは、value列を返す必要があります。たとえば: select name as value from shippingtype

    • 属性エディタを使用する属性のデータ型がassetの場合、問合せではアセットのIDも返す必要があります。たとえば: select name as value, id as assetid from Product where...

  • LAYOUT: チェック・ボックスを垂直リストの形式で配置するのか水平方向に一列に並べるのかを指定します。有効なオプションは、HORIZONTALまたはVERTICALです。デフォルトはHORIZONTALです。

  • MAXVALUES: 1つの複数値属性に追加できる値の数を制限します。たとえば、MAXVALUES10に設定された場合、追加できる値は10個のみです。デフォルト値はありません。

次の属性エディタ・コードでは、CHECKBOXESエレメントがA Prodsという名前の問合せアセットの結果をチェック・ボックスの垂直リストの名前として使用することを指定しています。

<?XML VERSION="1.0"?>
<!DOCTYPE PRESENTATIONOBJECT SYSTEM "presentationobject.dtd"> 
<PRESENTATIONOBJECT NAME="CheckBox">
 <CHECKBOXES LAYOUT="VERTICAL">
  <QUERYASSETNAME>A Prods</QUERYASSETNAME>
 </CHECKBOXES>
</PRESENTATIONOBJECT>

ITEMパラメータの使用例を示すサンプル・コードについては、「PULLDOWNの例」を参照してください。

データ型に関するノート:

CHECKBOXES属性エディタは、次のデータ型の属性に適しています。

  • date

  • float

  • integer

  • money

  • string

  • asset (assetの場合、アセット名を返す問合せアセットの名前を指定する必要があります。)

CKEditor

presentationobject.dtdではCKEDITORタグが定義されています。このタグを使用する属性エディタはCKEDITORエレメントを呼び出し、このエレメントはCKEditorを起動します。フレックス・アセットの作成者は、属性の値をそのウィンドウで入力します。

  • CKEditorアプリケーションをインストールして正しく構成している必要があります。

  • CKEditorは、属性のデータ型がblobに設定されている場合にのみ使用することを強くお薦めします。blobデータ型のフィールドのサイズ設定については気にする必要がありません。

CKEDITORタグは、次のパラメータを受け取ります。

次のコードには、幅が400ピクセルで高さが200ピクセルのテキスト・ボックスを作成するCKEDITORタグが含まれています。

  • EMBEDDEDLINKS: YES値の場合、ユーザーは他のアセットへのリンクを作成できます。デフォルト値: NO

  • ALLOWEDASSETTYPES: CKEditorを通じて組込み可能またはリンク可能なアセット・タイプを指定できます。デフォルト値: ALL

  • DEPTYPE: メイン・アセットと埋込みアセットの間の承認依存性。有効なオプションは、EXISTSEXACTです。デフォルト値: EXACT

  • MAXVALUES: このパラメータは、1つの複数値属性に追加できる値の数を制限します。たとえば、MAXVALUES10に設定された場合、追加できる値は10個のみです。デフォルト値はありません。

  • MAXLENGTH: (CKEditorの「ソース」ボタンをクリックすると表示される) CKEditorのソース・ビュー内の文字数。デフォルト値: -1 (無制限)。

  • INSTRUCTION: フィールドのヘルプを提供するために使用されます。

CKEDITORタグは、CKEditorインスタンスの外観をカスタマイズするためのパラメータも受け取ります。1組のパラメータ・セットがWebCenter Sitesに定義されています。他のセットは、CKEditor Webサイトにあります。

WebCenter Sitesに定義されているパラメータは、CKEditorインスタンスのXMLフィールドに直接追加する必要があります。

  • TOOLBAR: ツールバーの名前。CONFIGパラメータで指定された構成ファイルから読み取られます。たとえば、CONFIG="myconfig.js"です。

  • WIDTH: テキスト・ボックスの幅(ピクセル単位)。WIDTHの値を指定しない場合、WebCenter Sitesによってデフォルトの幅が設定されます。サンプル値: 700px

  • HEIGHT: テキスト・ボックスの高さ(ピクセル単位)。HEIGHTの値を指定しない場合、WebCenter Sitesによってデフォルトの高さが設定されます。サンプル値: 300px

    ノート:

    WIDTHおよびHEIGHTパラメータは、非推奨のXSIZEおよびYSIZEパラメータに替わるものです。XSIZEおよびYSIZEを設定しても無効です。

  • RESIZE: trueの場合、ユーザーはテキスト・エリアをサイズ変更できます。デフォルト値: false

CKEditor Webサイトに表示されるパラメータは、CONFIGパラメータ内で指定されている構成ファイル、またはCONFIGOBJパラメータで指定されている必要があります。TOOLBARパラメータを除いて、それらがCKEditorのXMLフィールドに追加された場合、認識されません。CONFIGパラメータおよびCONFIGOBJパラメータの説明は次のとおりです。

  • CONFIG: デフォルトまたはカスタムのCKEditor構成ファイルへの相対パスを指定します。たとえば、CONFIG="myconfig.js"と設定すると、CKEditorベース・パス(CKEditorソース・フォルダ)からカスタムのmyconfig.jsファイルがロードされます。カスタム構成ファイルの場合、ユーザーはCONFIG属性でconfig.jsファイルのURLを指定することもできます。ベース・パスは、wcs_properties.jsonファイルのxcelerate.ckeditor.basepathプロパティで定義されています。

    構成ファイル内にCKEDITOR.editorConfig関数があります。ここで、http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.html#.editorConfigに表示されるCKEditorパラメータを指定します。このリストには、TOOLBARパラメータが含まれます。

  • CONFIGOBJ: JSON文字列を取ります。これには、http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.htmlに表示されるどのパラメータも含めることができます。(このリストには、TOOLBARパラメータが含まれます。)

    JSON文字列のフォーマットでは、二重引用符が使用されます。

    '{foo1:"value1",foo2:"value2"}' ...
    

    たとえば:

    CONFIGOBJ='{width:"300px",height:"300px",toolbar:"SITES",fullPage:true}'

ノート:

CKEditorパラメータは、次のような階層的順序で認識され、使用されます。

CKEditorのXMLフィールド内のパラメータは、CONFIGOBJ内のパラメータをオーバーライドします。CONFIGOBJ内のパラメータは、CONFIGパラメータで指定されている構成ファイル内のパラメータをオーバーライドします。たとえば、CKEditorのXMLフィールド内のTOOLBARパラメータは、CONFIGOBJ='{toolbar: "SITES",fullPage:true}'内のtoolbarパラメータをオーバーライドします。このtoolbarパラメータは、(CONFIG='myconfig.js'として指定されている)構成ファイルmyconfig.js内のtoolbarパラメータをオーバーライドします。CONFIGOBJ内のfullPageパラメータは、myconfig.js内の同じパラメータをオーバーライドします。

競合が発生する可能性を回避するには、各パラメータを、それが認識される場所(エディタのXMLフィールド、CONFIGOBJパラメータ、またはCONFIGパラメータで指定されている構成ファイルのいずれか)で1回のみ指定します。

次のコードには、幅が400ピクセルで高さが200ピクセルのCKEditorボックスを作成するCKEDITORタグが含まれています。

<?XML VERSION="1.0"?>
<!DOCTYPE PRESENTATIONOBJECT SYSTEM "presentationobject.dtd">

<PRESENTATIONOBJECT NAME="CKEditorTest">
  <CKEDITOR WIDTH="400px" HEIGHT="200px">
  </CKEDITOR>
</PRESENTATIONOBJECT>

データ型に関するノート:

CKEDITOR属性エディタを使用する属性のデータ型として最適なのはblobです。stringtextも使用できますが、その場合は問題があります。個々のHTMLマーカーはサイズ制限の対象としてカウントされるため、属性のフィールドに入力されるデータのサイズを予測するのが難しいからです。stringデータ型は256文字に制限されており、textのデータ型は2000文字に制限されています。そのため、CKEDITORを入力メカニズムとして使用する属性のデータ型にはblobを使用することをお薦めします。

PICKASSET

presentationobject.dtdではPICKASSETタグが定義されています。このタグを使用する属性エディタはPICKASSETエレメントを呼び出します。このエレメントは、ユーザーがツリーまたは検索結果リストからアセットをドラッグ・アンド・ドロップできる「ドロップ・ゾーン」フィールドを作成します。アセットが「ドロップ・ゾーン」フィールドにドロップされると、破線の境界線で囲まれたボックス内にアセットの名前が表示されます。アセットの名前をポイントすると、ツールチップが開いて、アセットに関する情報が表示されます。ツールチップのルック・アンド・フィールをカスタマイズするなど、PICKASSET属性エディタの動作を変更するには、「属性エディタの構築」を参照してください。

このタグは、MAXVALUESパラメータをとることができます。MAXVALUESパラメータは、1つの複数値属性に追加できる値の数を制限します。たとえば、MAXVALUES10に設定された場合、追加できる値は10個のみです。デフォルト値はありません。

PICKASSET属性エディタのカスタマイズの詳細は、「属性エディタの構築」を参照してください。

次に、PICKASSET属性エディタを作成するためのコードを示します。

<?XML VERSION="1.0"?>
<!DOCTYPE PRESENTATIONOBJECT SYSTEM "presentationobject.dtd">
<PRESENTATIONOBJECT NAME="PickAsset">

  <PICKASSET>
  </PICKASSET>
</PRESENTATIONOBJECT>

データ型に関するノート:

PICKASSET属性エディタは、assetのデータ型の属性にのみ適しています。

PULLDOWNの例

presentationobject.dtdではPULLDOWNタグが定義されています。このタグを使用する属性エディタはPULLDOWNエレメントを呼び出し、このエレメントは値のドロップダウン・リストが付随するフィールドを形式設定します。

このタグは、ドロップダウン・リスト内の名前のソースであるITEMまたはQUERYASSETNAMEパラメータをとります。名前を指定するには、ITEMパラメータを使用します。データベース表から動的に名前を取得する問合せアセットを指定するには、QUERYASSETパラメータを使用します。

次の点に注意してください。

  • 問合せを使用するには、問合せアセットを使用する必要があります。SQL文は使用できません。

  • 問合せアセットのSQLでは、value列を返す必要があります。たとえば: select name as value from shippingtype

  • 属性エディタを使用する属性のデータ型がassetの場合、問合せではアセットのIDも返す必要があります。たとえば: select name as value, id as assetid from Product where...

  • 日付オプションを含める場合、これらはYYY-MM-DD HH:MM:SSの形式である必要があります。

次の属性エディタ・コードでは、リストにRed、GreenおよびBlueというアイテムが含まれることを指定しています。

<?XML VERSION="1.0"?>
<!DOCTYPE PRESENTATIONOBJECT SYSTEM "presentationobject.dtd"> 

<PRESENTATIONOBJECT NAME="PulldownTest">
<PULLDOWN>
  <ITEM>Red</ITEM>
  <ITEM>Green</ITEM>
  <ITEM>Blue</ITEM>
</PULLDOWN>

ITEMのかわりにQUERYASSETNAMEパラメータを使用する方法を示すサンプル・コードについては、「CHECKBOXES」を参照してください。

データ型に関するノート:

PULLDOWN属性エディタは、次のデータ型の属性に適しています。

  • date

  • float

  • integer

  • money

  • string

  • asset

ドロップダウン・リストは、asset型の属性のデフォルトの入力スタイルです。このリストには、その型のすべてのアセットが表示されます。問合せアセットを使用してドロップダウン・リスト内のアイテムをさらに制限し、リストにその型のすべてのアセットが表示されないようにするには、PULLDOWN属性エディタを使用します。

RADIOBUTTONS

presentationobject.dtdではRADIOBUTTONSタグが定義されています。このタグを使用する属性エディタはRADIOBUTTONSエレメントを呼び出し、このエレメントはその属性の一連のラジオ・オプションを作成します。

RADIOBUTTONSタグは、次のパラメータを受け取ります。

  • ITEMまたはQUERYASSETNAME: ラジオ・ボタンの横に表示される名前のソース。名前を指定するには、ITEMパラメータを使用します。データベース表から動的に名前を取得する問合せアセットを指定するには、QUERYASSETパラメータを使用します。

    次の点に注意してください。

    • 問合せを使用するには、問合せアセットを使用する必要があります。SQL文は使用できません。

    • 問合せアセットのSQLでは、value列を返す必要があります。たとえば: select name as value from shippingtype

    • 属性エディタを使用する属性のデータ型がassetの場合、問合せではアセットのIDも返す必要があります。たとえば: select name as value, id as assetid from Product where...

  • LAYOUT: ボタンを垂直リストの形式で配置するのか水平方向に一列に並べるのかを指定します。有効なオプションは、HORIZONTALまたはVERTICALです。デフォルトはHORIZONTALです。

次の属性エディタ・コードでは、RADIOBUTTONSエレメントがA Prodsという名前の問合せアセットの結果をボタンの垂直リストの名前として使用することを指定しています。

<?XML VERSION="1.0"?>
<!DOCTYPE PRESENTATIONOBJECT SYSTEM "presentationobject.dtd"> 

<PRESENTATIONOBJECT NAME="RadioButtonTest">
  <RADIOBUTTONS LAYOUT="VERTICAL">
    <QUERYASSETNAME>A Prods</QUERYASSETNAME>
  </RADIOBUTTONS>
</PRESENTATIONOBJECT>

ITEMパラメータの使用例を示すサンプル・コードについては、「PULLDOWNの例」を参照してください。

データ型に関するノート:

RADIONBUTTON属性エディタは、次のデータ型の属性に適しています。

  • date

  • float

  • integer

  • money

  • string

  • asset (assetの場合、アセット名を返す問合せアセットの名前を指定する必要があります。)

ノート:

date型のRadioButton属性エディタは、presentation.dtdのサーバーのタイムゾーン(またはJVMで設定されているタイムゾーン)に入力された日付値を解釈します。この値は、アセット・フォームのレンダリング時に、ユーザーのタイムゾーンに変換されます。

タイムゾーンに関係なく同じ日付値を表示するには、string型の属性エディタの使用を検討してください。

TEXTAREA

presentationobject.dtdではTEXTAREAタグが定義されています。このタグを使用する属性エディタはTEXTAREAエレメントを呼び出し、このエレメントは、その属性のテキスト・ボックス・フィールドと、一対のラジオ・ボタンを作成します。ユーザーはこれらのラジオ・ボタンを使用して、その属性によって埋込みリンク・ボタンを表示するかどうかを指定できます。

TEXTAREAタグは、次のパラメータを受け取ります。

  • WIDTH: テキスト・ボックスの幅(ピクセル単位)。WIDTHの値を指定しない場合、WebCenter Sitesによってデフォルトの幅が設定されます。サンプル値: 700px

  • HEIGHT: テキスト・ボックスの高さ(ピクセル単位)。HEIGHTの値を指定しない場合、WebCenter Sitesによってデフォルトの高さが設定されます。サンプル値: 300px

    ノート:

    WIDTHおよびHEIGHTパラメータは、非推奨のXSIZEおよびYSIZEパラメータに替わるものです。XSIZEおよびYSIZEを設定しても無効です。

  • RESIZE: trueの場合、ユーザーはテキスト・エリアをサイズ変更できます。デフォルト値はfalseです。

  • WRAPSTYLE: ボックス内のテキストを折り返すかどうかを指定します。折り返す場合は、自動的に折り返すのか(ソフト)、ユーザーが[Enter]キーを押したときにのみ折り返すのか(ハード・リターン)を指定します。有効なオプションは、SOFTHARDおよびOFFです。デフォルトは、OFFです。

  • DEPTYPE: メイン・アセットと埋込みアセットの間の承認依存性。有効なオプションは、EXISTSEXACTです。デフォルトはEXACTです。

    • EXISTS: メイン・アセットが編集、承認および再パブリッシュされたときに、いずれかのバージョンの埋込みアセットがパブリッシュ先にすでに存在している場合は、埋込みアセットが承認および再パブリッシュされる必要はありません。

    • EXACT: メイン・アセットが編集、承認および再パブリッシュされたときに、埋込みアセットが編集されていた場合は、埋込みアセットも承認および再パブリッシュされる必要があります。

  • MAXVALUES: 1つの複数値属性に追加できる値の数を制限します。たとえば、MAXVALUES10に設定された場合、追加できる値は10個のみです。デフォルト値はありません。

次の属性エディタ・コードでは、XSIZEを40ピクセルに、YSIZEを5ピクセルに設定し、WRAPSTYLEOFFに設定してテキストの折返しを無効にし、埋込みアセットの承認依存性をEXISTSに設定しています。

<?XML VERSION="1.0"?>
<!DOCTYPE PRESENTATIONOBJECT SYSTEM "presentationobject.dtd"> 

<PRESENTATIONOBJECT NAME="TextAreaTest">
  <TEXTAREA XSIZE="40" YSIZE="5" WRAPSTYLE="OFF" DEPTYPE="EXISTS">
  </TEXTAREA>
</PRESENTATIONOBJECT>

データ型に関するノート:

TEXTAREA属性エディタは、textおよびblobのデータ型の属性に適しています。2,000文字以下を格納する必要がある場合は、textのデータ型を使用します。2,001文字以上を格納するには、blobのデータ型を使用します。

TEXTFIELD

presentationobject.dtdではTEXTFIELDタグが定義されています。このタグを使用する属性エディタは「新規」フォームと「編集」フォームからTEXTFIELDエレメントを呼び出し、その属性のテキスト・フィールドを作成します。ただし、その属性が「調査」フォームに表示される場合は、その属性エディタはDisplayTEXTFIELDエレメントを使用します。

TEXTFIELDタグは、次のパラメータを受け取ります。

  • XSIZE: フィールドの長さ(文字数)。

  • MAXCHARS: フィールドに入力できる文字数(最大256文字)。

  • BLANKED: 属性の値が「調査」フォームに表示される場合に、その値を一連のアスタリスクに置き換えるかどうかを指定します。たとえば、password属性の場合、パスワードの値が「調査」フォームに表示されないようにする必要があります。有効なオプションは、YESおよびNOです。デフォルトはNOです。

    BLANKEDパラメータを使用すると自動的に、そのフィールドは「新規」フォームと「編集」フォーム上では「調査」フォーム上とは異なる動作を示すことが必要になるため、TEXTFIELDタグはデフォルトで2つの使用可能なエレメントの両方とともに提供されています。

  • MAXVALUES: 1つの複数値属性に追加できる値の数を制限します。たとえば、MAXVALUES10に設定された場合、追加できる値は10個のみです。デフォルト値はありません。

次の属性エディタ・コードでは、XSIZEを60に設定して、最大文字数を80に設定しています。

<?XML VERSION="1.0"?>
<!DOCTYPE PRESENTATIONOBJECT SYSTEM "presentationobject.dtd"> 

<PRESENTATIONOBJECT NAME="TextFieldTest">
  <TEXTFIELD XSIZE="60" MAXCHARS="80">
  </TEXTFIELD>
</PRESENTATIONOBJECT>

データ型に関するノート:

TEXTFIELD属性エディタは、次のデータ型の属性に適しています。

  • float

  • integer

  • money

  • string

  • url

TYPEAHEAD

presentationobject.dtdではTYPEAHEADタグが定義されています。このタグを使用する属性エディタはTYPEAHEADエレメントを呼び出し、このエレメントはドロップダウン・メニュー属性を持つ先行入力の入力ボックスを作成します。属性がアセットの「新規」および「編集」ビューに表示され、ドロップダウン・フィールドの下矢印がクリックされると、ドロップダウン・メニューに、ユーザーが選択できるアセットの名前が表示されます。

TYPEAHEADタグは、次のパラメータを受け取ります。

  • PAGESIZE: 先行入力検索でドロップダウン・メニューに一度に表示される結果の数を制限します。たとえば、PAGESIZE5に設定された場合、ドロップダウン・メニューに一度に表示されるアセットの数は5つのみです。デフォルト値は10です。

  • MAXVALUES: 1つの複数値属性に追加できる値の数を制限します。たとえば、MAXVALUES10に設定された場合、追加できる値は10個のみです。デフォルト値はありません。

PAGESIZEパラメータを使用して、ドロップダウンに一度に表示される結果の数を制限できます。これにより、ドロップダウン・メニューに表示される結果がページ分けされます。たとえば、PAGESIZEパラメータを、ドロップダウン・メニューに一度に10件のアセットが表示されるように設定した場合、ユーザーは、「次の選択肢」をクリックして次の10件のアセットを表示できます。同様に、表示された直前の10件のアセットに戻るには、「前の選択肢」リンクをクリックします。

結果のリストは、入力ボックスに、アセットの最初の数文字を入力することでフィルタ処理することもできます。たとえば、入力ボックスにSkiと入力すると、ドロップダウン・メニューに表示される結果はすべてSkiで始まります(アルファベット順)。これは、Ski*という問合せの実行に類似しており、Skiという文字または言葉で始まるすべてのアセットが検出されます。先行入力の入力ボックスに入力すると、この図に示すように、ドロップダウン・メニューの最初の結果が自動的に入力されます。

図9-1 「関連コンテンツ」ダイアログ

図9-1の説明が続きます
「図9-1 「関連コンテンツ」ダイアログ」の説明

自動的に入力されたアセットを選択するには、キーボードの[Enter]を押します。ユーザーは、(キーボードの上矢印と下矢印を使用してドロップダウン・メニュー内を移動して)アセットを選択し、[Enter]キーを押すか、マウスを使用してアセットをクリックすることで、ドロップダウン・メニューから一度に1つの任意の結果を選択することもできます。アセットを選択すると、ドロップダウン・メニューの下にそのアセットが表示されます。ユーザーが選択したアセットをポイントすると、この図に示すように、ツールチップが表示されます。

図9-2 ツールチップ・メッセージ

図9-2の説明が続きます
「図9-2 ツールチップ・メッセージ」の説明

ツールチップのルック・アンド・フィールをカスタマイズするなど、TYPEAHEAD属性エディタの動作を変更するには、「属性エディタの構築」を参照してください。

データ型に関するノート:

TYPEAHEAD属性エディタは、assetのデータ型の属性にのみ適しています。

UPLOADER

presentationobject.dtdではUPLOADERタグが定義されています。このタグを使用する属性エディタはUPLOADERエレメントを呼び出し、このエレメントはアップロード属性を作成します。「アップロード」フィールドは、任意のタイプのファイルをアップロードできます。ただし、アップロードできるファイルのタイプを制限するには、FILETYPESパラメータを使用します。

ユーザーがファイルのアップロードをクリックすると、この図に示すように、アップロードの進行状況がアセットのツールバーに表示されます。

図9-3 アップロードの進行状況

図9-3の説明が続きます
「図9-3 アップロードの進行状況」の説明

アップロードされた各ファイルのサムネイル・イメージがアップローダ・フィールドに表示されます。ユーザーがアップロードされたイメージ・ファイルのサムネイルをクリックすると、イメージは実際のサイズでオーバーレイに表示されます。イメージ以外のファイル・タイプの場合、WebCenter Sitesでは、アップローダ・フィールド内のファイル・タイプに固有のサムネイル・イメージが表示されます。特定のファイル・タイプに固有のサムネイル・イメージが使用できない場合、任意のイメージがかわりに表示されます。

ユーザーがイメージ・ファイルのサムネイル・イメージをポイントすると、そのファイルの名前、タイプおよび大きさがツールチップに表示されます。ファイルの名前およびタイプは、この図に示すように、イメージではないファイルのツールチップに表示されます。

図9-4 イメージのツールチップ

図9-4の説明が続きます
「図9-4 イメージのツールチップ」の説明

UPLOADERタグは、次のパラメータを受け取ります。

  • MAXFILESIZE: アップロード可能なファイルの最大サイズを指定します。このパラメータの有効な単位は、BKBMBおよびGBです。デフォルト値: 1024KB。デフォルト単位: KB

  • FILETYPES: アップロード可能なファイルのタイプを指定します。たとえば、*.jpg*と指定します。このパラメータの値を指定しない場合、デフォルト値は任意のタイプ(*.*)になります。

  • MINWIDTH: アップロード可能なファイルの最小の幅(ピクセル単位)を指定します。たとえば、MINWIDTHを700pxに設定した場合、ユーザーは、700px以上の幅を持つファイルのみをアップロードできます。このパラメータの値を指定しない場合、デフォルト値は任意の幅になります。有効な単位: px

  • MAXWIDTH: アップロード可能なファイルの最大の幅(ピクセル単位)を指定します。たとえば、MAXWIDTHを700pxに設定した場合、ユーザーは、700px以下の幅を持つファイルのみをアップロードできます。このパラメータの値を指定しない場合、デフォルト値は任意の幅になります。有効な単位: px

  • MINHEIGHT: アップロード可能なファイルの最小の高さ(ピクセル単位)を指定します。たとえば、MINHEIGHTを700pxに設定した場合、ユーザーは、700px以上の高さを持つファイルのみをアップロードできます。このパラメータの値を指定しない場合、デフォルト値は任意の高さになります。有効な単位: px

  • MAXHEIGHT: アップロード可能なファイルの最大の高さ(ピクセル単位)を指定します。たとえば、MAXHEIGHTを700pxに設定した場合、ユーザーは、700px以下の高さを持つファイルのみをアップロードできます。このパラメータの値を指定しない場合、デフォルト値は任意の高さになります。有効な単位: px

  • MAXVALUES: 1つの複数値属性に追加できる値の数を制限します。たとえば、MAXVALUES10に設定された場合、追加できる値は10個のみです。デフォルト値はありません。

データ型に関するノート:

UPLAODER属性エディタは、blobのデータ型の属性にのみ適しています。

属性エディタのエレメント

対応する属性エディタから渡される入力値を受け取るエレメントは、フォームに表示されるときの対象属性の形式と動作のベースとなるロジックを提供します。たとえば、このロジックは、追加の値をフィールドに入力可能にするために、複数値属性のループ・シーケンスを実行する場合があります。

表9-1に、ElementCatalog表のOpenMarket/Gator/AttributeTypesに配置されているデフォルトのフレックス属性表示エレメントを示します。これらのエレメントの名前は、presentationobject.dtdファイルで定義されているカスタムXMLタグの名前と完全に一致しています。

表9-1 属性エディタのエレメント

エレメント 説明

CHECKBOXES

属性の入力スタイルを一連のチェック・ボックス・オプションとして形式設定します。属性エディタは、これらのオプションの名前を指定するか、これらの名前を取得するために使用する問合せアセットの名前を指定する必要があります。

CKEDITOR

CKEditorテキスト・エディタを呼び出します。属性エディタは、テキスト・ボックスの高さと幅のピクセル数を指定する必要があります。

PULLDOWN

属性の入力スタイルをドロップダウン・リスト付きの選択フィールドとして形式設定します。属性エディタは、リストに表示されるアイテムを指定するか、それらの値を取得するために使用する問合せアセットの名前を指定する必要があります。

RADIOBUTTONS

属性の入力スタイルを一連のラジオ・オプションとして形式設定します。属性エディタは、これらのオプションの名前を指定するか、これらの名前を取得するために使用する問合せアセットの名前を指定する必要があります。

TEXTAREA

属性の入力スタイルをテキスト・ボックスとして形式設定して、このテキスト・ボックスで埋込みリンクが許可されるかどうかをユーザーが指定するためのラジオ・ボタンを表示します。属性エディタは、このボックスのX軸方向とY軸方向のサイズを指定する必要があります。

TEXTFIELD

属性の入力スタイルをテキスト・フィールドとして形式設定します。属性エディタは、このフィールドの長さと入力可能な文字数を指定する必要があります。

DisplayTEXTFIELD

「調査」フォームに表示されるときのテキスト・フィールド属性値の表示形式を設定します。属性エディタがBLANKEDパラメータをYESに設定した場合は、このエレメントはフィールドの値を一連のアスタリスクとして表示します。通常は、パスワード・フィールド用に使用されます。

PICKASSET

属性の入力スタイルを、ユーザーがツリーまたは検索結果リストからアセットをドラッグ・アンド・ドロップできる「ドロップ・ゾーン」フィールドとして形式設定します。

PICKFROMTREE

非推奨。PICKASSETを使用してください。

TYPEAHEAD

属性の入力スタイルをドロップダウン・メニュー付きの先行入力の入力ボックスとして形式設定します。アセットがアセットの「新規」または「編集」ビューに表示され、ドロップダウン・フィールドの下矢印がクリックされると、ドロップダウン・メニューに、ユーザーが選択できるアセットの名前が表示されます。ドロップダウン・メニューに一度に表示される結果の数を制限するには、PAGESIZEパラメータを使用します。

UPLOADER

upload属性を作成します。アップロード・フィールドは、任意のタイプのファイルをアップロードできます。アップロードできるファイルのタイプを制限するには、FILETYPESパラメータを使用します。

属性エディタのエレメントの規則

WebCenter Sitesでは、属性エディタのエレメントが次の規則に従っている場合、このエレメントを使用できます。

  • そのエレメントの名前は、属性エディタ・コードからそのエレメントをコールする入力スタイル・タグと同じ名前である必要があります。たとえば、デフォルトのCHECKBOXESタグはデフォルトのCHECKBOXES.xmlエレメントを持っています。

  • そのエレメントは、OpenMarket/Gator/AttributeTypes/nameというネーミング規則に従ってElementCatalog内に配置されている必要があります。

カスタム属性エディタの独自の表示エレメントを作成するには、作成する属性エディタ・エレメントに最も類似しているエレメントを見つけてから、そのエレメントのできるかぎり多くの内容をコピーします。参考のために、デフォルトの属性エディタ・エレメント内のコードを調べて、これらのエレメント内の変数と構文に関する次の説明を参照してください。

変数:

WebCenter Sitesは、属性エディタを使用するフォームをロードするときに、そのコンピュータ名を持つエレメントをコールします。次の変数内の情報を表示エレメントに渡します。

  • PresInst: 現在のプレゼンテーション・オブジェクトのインスタンス。

  • AttrName: 現在の属性の名前。

  • AttrType: 現在の属性のデータ型。

  • EditingStyle: 属性が複数の値を持つことができるかどうかを指定します(属性の「値の数」フィールドの値に基づく)。この変数は、singleまたはmultipleに設定します。

  • RequiredAttr: 属性が現在のアセットに対して必須であるかどうかを指定します。この変数は、trueまたはfalseに設定します。

  • MultiValueEntry: 複数の値を持つことができる属性の値を処理する方法をWebCenter Sitesに指示します。

    この値をyesに設定した場合、表示エレメントによって作成されたウィジェットはユーザーがそのウィジェット内で複数の値を選択することを可能にするという想定の下で(複数選択ドロップダウン・リストなど)、表示エレメントが1度コールされます。

    この値をnoに設定した場合、WebCenter Sitesは、その属性の考えられる値ごとに表示エレメントを1度コールして、格納できる値ごとに1つのウィジェットを表示します。

    この値は常にyesに初期設定されています。

  • doDefaultDisplay: この型の属性のデフォルトの入力スタイルを使用するかどうかを指定します。リストについては、「属性のデフォルトの入力スタイル」を参照してください。WebCenter Sitesが表示エレメントをコールする場合、この変数は最初にyesに設定されます。エレメントによって作成された入力ウィジェットを使用するには、このエレメントでこの変数をnoにリセットする必要があります。

  • AttrValueList: この属性のすべての値のリスト。

  • TempVal: 単一属性値の値。

他の必須の構文:

表示エレメント内のコードは、次の規則にも従う必要があります。

  • 属性値を検証する方法に関する情報をRequireInfoという名前の変数に格納する必要があります。WebCenter Sitesは、この変数を、JavaScriptを使用して属性値を検証するエレメントに渡します。これらのエレメントは次のとおりです。

    OpenMarket/Gator/FlexibleAssets/FlexAssets/ContentForm1
    OpenMarket/Gator/FlexibleAssets/FlexGroups/ContentForm1
    

    このJavaScriptは、コントロールのタイプ、データ型および他の予測可能な特性に基づいて既定のエラー・チェックと検証を実行します。RequireInfo変数に格納して渡される情報を通じて、属性エディタのカスタム要件がこのJavaScriptに通知されます。

  • 表示エレメント内のウィジェットの名前は(INPUT NAME)、次の規則に従っている必要があります。

    • 単一値属性の場合は、この属性の名前と同じである必要があります。

    • 複数値属性の場合は、各属性値について1から始まるカウンタ値が属性名の先頭に付加される必要があります(たとえば、1color、2color、3color)。

例については、「属性エディタのカスタマイズ」を参照してください。

属性エディタの作成

属性エディタの作成を実地体験できるように、SamplesサブディレクトリにサンプルのXMLが用意されています。オンライン・サイトのフレックスまたはフレックス親アセットのフォームに追加する属性エディタを作成している場合には、独自のXMLコードを記述するか、サンプル・コードを適切に編集します。

  1. Adminインタフェースを開きます。
  2. 「新規」をクリックして、ショートカット・リストから新規属性エディタを選択します。

    「属性エディタ」フォームが開きます。

    図9-5 「属性エディタ」ダイアログ

    図9-5の説明が続きます
    「図9-5 「属性エディタ」ダイアログ」の説明
  3. 「名前」フィールドで、最大64文字(空白は除く)の一意の名前を入力します。
  4. 「説明」フィールドで、この属性エディタの目的を簡潔に記述します。
  5. 「XML」フィールドで、本書のHTML版から、またはインストール・ディレクトリのSamplesサブディレクトリにあるサンプル・テキスト・ファイルから、適切なサンプルXML属性エディタ・コードを貼り付けます。
  6. コードを必要に応じて編集します。たとえば、CHECKBOXESまたはRADIOBUTTONSの属性エディタの場合、これらのチェック・ボックスまたはラジオ・ボタンの名前を指定する必要があります。PULLDOWN属性エディタを作成する場合は、このドロップダウン・リストの値を指定する必要があります。
  7. 「保存」をクリックします。

    ノート:

    もう1つの方法は、属性エディタのXMLを別個の.xmlファイル内にコーディングすることです。この場合は、コードを「XML」フィールドに直接入力するかわりに、「ファイル内のXML」フィールドの横にある「参照」をクリックして、そのファイルを選択します。

  8. この属性エディタを管理システムに対してパブリッシュできるように、この属性エディタを承認します。

    ノート:

    この属性エディタで問合せアセットを使用する場合は、この属性エディタとその問合せアセットの両方を必ず承認してください。

    属性エディタとその問合せアセットの間の依存性は、その属性エディタ内のXMLコードで指定されるため、承認システムは、その依存性を検知することはできず、その問合せアセットが管理システム上に存在することを確認できません。

属性エディタのカスタマイズ

カスタムの属性エディタが多くの点でサンプルのエディタに似ることがあります。そのため、サンプル・コードおよび表示エレメントをカスタム・エディタで使用するように変更できます。新しい入力スタイルを使用するには、presentationobject.dtdファイルに新しいPRESENTATIONOBJECTタグが必要です。デフォルト・タグはいずれも使用できません。

カスタムのPRESENTATIONOBJECTタグを作成する場合は、このタグに対して次のような適切な表示エレメントも提供する必要があります。

  • 必須: 属性が「新規」フォームまたは「編集」フォームに表示される場合に、その属性を形式設定する(編集メカニズムを表示する)エレメント。

  • オプション: 属性が「調査」フォームに表示される場合に、その属性を形式設定するエレメント。

  • オプション: データベースに保存される前の属性データを形式設定するエレメント。

属性エディタの表示エレメントで使用される変数と規則については、「属性エディタのエレメント」を参照してください。

ファイルをアップロードできる属性エディタを作成またはカスタマイズするには(たとえば、UPLOADER属性エディタをカスタマイズする場合)、アップロード対象のファイルが有効であることを確認するカスタム・ロジックを属性エディタ・コードに追加します。アップロード対象のファイルを検証するためのカスタム・ロジックの追加を参照してください。

例: カスタマイズされた属性エディタ

この例では、ユーザーが適切な権限を持っていない場合にテキスト・ボックスを使用不能にする属性エディタを作成するために、presentationobject.dtdファイル内のTEXTAREAタグの記述内容およびTEXTAREAエレメントをカスタマイズする方法を示します。

この作業は次の3つのステップからなります。

  • ステップ1: presentationobject.dtd内のTEXTAREAタグの記述内容を編集して、PERMISSIONSという名前の新しいパラメータをサポートします。

  • ステップ2: 属性エディタのコードを記述して、属性エディタを作成します。

  • ステップ3: PERMISSIONSの値をチェックするようにTEXTAREAエレメントを編集します。

ステップ1: presentationobject.dtdファイルの編集

新しいパラメータをサポートするには、presentationobject.dtd内のTEXTAREAの記述内容に1つのコード行を追加します。

  • 次のコードに示すように、TEXTAREAタグのデフォルトの説明の終わりに新しい行を追加します。

    <!-- TEXTAREA: A text area of a specific size. You must specify
    -- the x and y dimensions; the wrap style defaults to soft.
    -->
    <!ELEMENT TEXTAREA ANY>
    <!ATTLIST TEXTAREA XSIZE CDATA #REQUIRED>
    <!ATTLIST TEXTAREA YSIZE CDATA #REQUIRED>
    <!ATTLIST TEXTAREA WRAPSTYLE (OFF | SOFT | HARD) "SOFT">
    <!ATTLIST TEXTAREA PERMISSION CDATA>
    
ステップ2: 属性エディタの例に対する権限の指定

ここでは、新しいパラメータを使用したサンプル・コードを示します。

  • 次のコードに示すように、フィールドを表示するためにPERMISSIONの値としてAdministratorsがユーザーに割り当てられている必要があることを指定します。

    <?XML VERSION="1.0"?>
    <!DOCTYPE PRESENTATIONOBJECT SYSTEM "presentationobject.dtd"> 
    
    <PRESENTATIONOBJECT NAME="TextAreaTest">
      <TEXTAREA XSIZE="40" YSIZE="10" WRAPSTYLE="SOFT" PERMISSION="Administrators">
      </TEXTAREA>
    </PRESENTATIONOBJECT>
ステップ3: TEXTAREAエレメントの編集

3つ目のステップはTEXTAREAエレメントの編集です。

  • 次のコードで太字で示されている行を追加し、PERMISSIONパラメータの値に基づいてフィールドを有効または無効にします。

    <?XML VERSION="1.0" ?>
    <!DOCTYPE FTCS SYSTEM "futuretense_cs.dtd">
    <FTCS Version="1.1">
    <!-- OpenMarket/Gator/AttributeTypes/TEXTAREA
    --
    -- INPUT
    --
    -- OUTPUT
    --
    -->
    
    <!-- Display one TEXTAREA per attribute value -->
    <IF COND="Variables.MultiValueEntry=no">
    <THEN>
    
    <!-- Don't want default display field  -->
    <setvar NAME="doDefaultDisplay" VALUE="no"/>
    
    <!-- Get all parameters from Attribute Editor xml -->
    <presentation.getprimaryattributevalue
    NAME="Variables.PresInst"
    ATTRIBUTE="FONTSIZE" VARNAME="FONTSIZE"/> 
       <if COND="Variables.errno!=0">
    <then>
    <setvar NAME="FONTSIZE" VALUE="2"/>
    </then>
    </if>
    
    <presentation.getprimaryattributevalue
    NAME="Variables.PresInst"
    ATTRIBUTE="WRAPSTYLE" VARNAME="WRAPSTYLE"/> 
    <if COND="IsVariable.WRAPSTYLE!=true">
    <then>
    <setvar NAME="WRAPSTYLE" VALUE="OFF"/>
    </then>
    </if>
    
    <presentation.getprimaryattributevalue
    NAME="Variables.PresInst"
    ATTRIBUTE="XSIZE" VARNAME="XSIZE"/> 
    <if COND="IsVariable.XSIZE!=true">
    <then>
    <setvar NAME="XSIZE" VALUE="24"/>
    </then>
    </if>
    
    <presentation.getprimaryattributevalue
    NAME="Variables.PresInst" 
    ATTRIBUTE="YSIZE" VARNAME="YSIZE"/> 
    <if COND="IsVariable.YSIZE!=true">
    <then>
    <setvar NAME="YSIZE" VALUE="20"/>
    </then>
    </if>
    
    <setvar NAME="disableTextArea" VALUE="no"/>
    <presentation.getprimaryattributevalue
    NAME="Variables.PresInst" 
    ATTRIBUTE="PERMISSION" VARNAME="PERMISSION"/> 
    <if COND="IsVariable.PERMISSION=true">
    <then>
    <setvar NAME="errno" VALUE="0"/>
    <USERISMEMBER GROUP="Variables.PERMISSION"/>
    <IF COND="Variables.errno=0">
    <THEN>
    <setvar NAME="disableTextArea" VALUE="yes"/>
    </THEN>
    </IF>
    </then>
    </if>
    
    <tr> 
    
    <!-- Standard element to display attribute name or description
    -->
    <callelement NAME="OpenMarket/Gator/FlexibleAssets/Common
    /DisplayAttributeName"/>
    <td></td>
    <td>
    
    <!-- Single valued attributes -->
    <if COND="Variables.EditingStyle=single">
    <then>
    
    <!-- Special case: TEXTAREA for URL attributes -->
    <IF COND="Variables.AttrType=url">
    <THEN>
    <setvar NAME="errno" VALUE="0"/>
    <BEGINS STR="AttrValueList.urlvalue"
    WHAT="AttrValueList."/>
    <IF COND="Variables.errno=1">
    <THEN>
    <setvar NAME="filename" VALUE="CS.UniqueID.txt"/>
    </THEN>
    <ELSE>
    <setvar NAME="filename"
    VALUE="AttrValueList.urlvalue"/>
    </ELSE>
    </IF>
    
    <INPUT TYPE="hidden" NAME="Variables.AttrName_file"
    VALUE="Variables.filename" 
    REPLACEALL="Variables.AttrName,Variables.filename"/>
    
    <setvar NAME="errno" VALUE="0"/>
    <BEGINS STR="AttrValueList.@urlvalue"
    WHAT="AttrValueList."/>
    <IF COND="Variables.errno=1">
    <THEN>
    <setvar NAME="MyAttrVal" VALUE="Variables.empty"/>
    </THEN>
    <ELSE>
    <setvar NAME="MyAttrVal"
    VALUE="AttrValueList.@urlvalue"/>
    </ELSE>
    </IF>
    </THEN>
    </IF>
    
    <!-- Display a TEXTAREA with all parameters from Attribute
    --Editor xml -->
    <!-- The NAME of the input must be the attribute name -->
    <IF COND="Variables.disableTextArea=yes">
    <THEN>
    <TEXTAREA DISABLED="yes" NAME="Variables.AttrName"
    ROWS="Variables.YSIZE" COLS="Variables.XSIZE"
    WRAP="Variables.WRAPSTYLE"
    REPLACEALL="Variables.AttrName,Variables.XSIZE,
    Variables.YSIZE,Variables.WRAPSTYLE,Variables.empty">
    
    <!-- For most single valued attrs, the value is contained in
    MyAttrVal -->
    <csvar NAME="Variables.MyAttrVal"/>
    </TEXTAREA>
    </THEN>
    <ELSE>
    <TEXTAREA NAME="Variables.AttrName"
    ROWS="Variables.YSIZE" COLS="Variables.XSIZE"
    WRAP="Variables.WRAPSTYLE"
    REPLACEALL="Variables.AttrName,Variables.XSIZE,
    Variables.YSIZE,Variables.WRAPSTYLE,Variables.empty">
    <!-- For most single valued attrs, the value is
    contained in MyAttrVal -->
    <csvar NAME="Variables.MyAttrVal"/>
    </TEXTAREA>
    </ELSE>
    </IF>
    </then>
    <else>
    <!-- Multiple valued attributes -->
    <!-- For single value attributes we can usually use the
    default RequireInfo -->
    <!-- For multiple value attributes we need to append to
    RequireInfo for each value -->
    <if COND="Variables.RequiredAttr=true">
    <then>
    <setvar NAME="RequireInfo"
    VALUE="Variables.RequireInfo*Counters.TCounterVariables.
    AttrName*ReqTrue*Variables.AttrType!"/>
    </then>
    <else>
    <setvar NAME="RequireInfo"
    VALUE="Variables.RequireInfo*Counters.TCounterVariables
    .AttrName*ReqFalse*Variables.AttrType!"/>
    </else>
    </if>
    
    <!-- Display a TEXTAREA with all parameters from Attribute
    Editor xml -->
    <!-- The NAME of the input must be the attribute name
    prepended by the TCounter counter -->
    <IF COND="Variables.disableTextArea=yes">
    <THEN>
    <TEXTAREA DISABLED ="yes" NAME="Counters.TCounterVariables.AttrName"
    ROWS="Variables.YSIZE" COLS="Variables.XSIZE"
    WRAP="Variables.WRAPSTYLE"
    REPLACEALL="Counters.TCounter,
    Variables.AttrName,Variables.XSIZE,
    Variables.YSIZE,Variables.WRAPSTYLE">
    <csvar NAME="Variables.tempval"/> </TEXTAREA>
    </THEN>
    <ELSE>
    <TEXTAREA NAME="Counters.TCounterVariables.AttrName"
    ROWS="Variables.YSIZE" COLS="Variables.XSIZE"
    WRAP="Variables.WRAPSTYLE"
    REPLACEALL="Counters.TCounter,
    Variables.AttrName,Variables.XSIZE,
    Variables.YSIZE,Variables.WRAPSTYLE">
    <csvar NAME="Variables.tempval"/> </TEXTAREA>
    </ELSE>
    </IF>
    </else>
    </if>
    </td>
    </tr>
    </THEN>
    </IF> <!-- MultiValueEntry -->
    </FTCS>

アップロード対象のファイルを検証するためのカスタム・ロジックの追加

アップロード対象のファイルを検証するには、属性エディタのコードにカスタム・ロジックを追加します。

  1. パスCustomElements/fatwire/ui/utilValidateFileUploadという名前のJSPエレメントを作成します。
  2. JSPエレメントで、ics.GetCgi("fileBytes")をコールして、リクエスト範囲内のアップロード対象のファイル・データを含むファイル名およびバイト配列を取得します。このコールにより、FTVALが返され、ここから、getBlob()メソッドをコールし、アップロード対象のBLOB用のbyte[]を取得できます。
    byte[] fileBytes = null;  
    if(ics.GetCgi("fileBytes") != null){  
    fileBytes = ics.GetCgi("fileBytes").getBlob();         
    } 
  3. (オプション) アップロード対象のファイル・データが有効であることを確認するためのカスタム・ロジックを記述します。
    • ファイル・データが有効な場合、ics.SetVar("fileValidated","true")をコールして、変数fileValidatedtrueに設定します。これにより、ファイルはWebCenter Sitesサーバーに確実にアップロードされます。

    • ファイル・データが無効な場合、ics.SetVar("fileValidated","false")をコールして、fileValidated変数をfalseに設定します。また、カスタム・エレメントのics.SetVar("fileUploadFailureMessage",<CustomErrorMessage>)をコールして、fileUploadFailureMessage変数でカスタム検証失敗メッセージを設定します。これにより、ユーザーがアップロードしたデータが拒否され、アップロード中のファイルのプログレス・バー付近にカスタム・エラー・メッセージが表示されます。fileUploadFailureMessage変数が設定されておらず、fileValidatedfalseに設定されている場合、WebCenter Sitesは汎用メッセージUpload Failed: <fileName>を表示します。

ノート:

サンプル・コード(検証ロジックを除く)は、ベース・エレメントfatwire/ui/util/ValidateFileUploadで使用可能です。このエレメントは変更しないでください。また、カスタム・コードはステップ1で指定したようにCustomElementsパス内に記述する必要があります。

属性エディタの編集に関する考慮事項

属性エディタに変更を加えてもデータが損失しない場合もあれば、変更を加えたためにデータが影響を受ける場合もあります。

  • スキーマを変更せずに、「名前」を変更できます。

  • データ消失を発生せずに、「説明」を変更できます。

  • 属性エディタ内のコードを変更する場合:

    • 入力オプションを追加できます。

    • 既存のデータがある場合は、入力オプションを削除しないでください。入力オプションを削除すると、一部の既存データが無効になり、データベース内を検索してそれらのデータを修正することが必要になります。

    • 入力スタイルを変更した場合は、データの不一致が生じるおそれがあります。