Creo Elements/Direct Model Manager の拡張
Creo Elements/Direct Model Manager 製品には、Java コード、XML ファイル、およびビルドスクリプトが付属しているため、パートナーは Creo Elements/Direct Model Manager を拡張して、カスタムビジネスルールおよびデータモデルを実装することが可能です。
一般に、Creo Elements/Direct Model Manager のカスタマイズは、Java クラスを記述して新規の動作を実装し、その後で xml ファイルを編集して新規の Java クラスを使用する、というパターンで行います。また、xml ファイルで値を組み込むことによって、カスタム Java クラスの動作を設定することもできます。
XML ファイル
Creo Elements/Direct Model Manager は、起動時に 2 つの XML ファイル (wmconf.xml ともう 1 つの XML ファイル) を読み込みます。3 つ以上の XML ファイルがある場合、ユーザはログイン ダイアログで XML ファイルを選択する必要があります。
wmconf.xml はファイルシステムに配置されなくなり、代わりにクラスパス (WorkManager.jar) からデフォルトの設定が読み込まれます。custom.xml ファイルは Creo Elements/Direct Model Manager のインストール時に作成され、インストールプロセス中に入力された構成が書き込まれています。ユーザは新しい XML ファイルを作成して、カスタマイズ内容を設定することができます。本文書で使用される「カスタム xml ファイル」という用語は、ユーザによりカスタマイズされた XML ファイルを指します。
カスタム XML ファイルには 2 種類の基本タグがあります。
プロパティ タグ
Java クラス割り当てタグ
プロパティ タグ
プロパティ タグは、一般的な動作を設定します。プロパティタグは通常、ontrue、またはファイル名といった、一定の値を持ちます。
たとえば、以下のタグは、プロジェクト機能を有効にするかどうかを制御します。
<EnableProjects>true</EnableProjects>
プロパティタグの例
CAD とデータベース属性との間の属性のマッピング
<InstanceNameAttributeName>
<DescriptionAttributeName>
動作の切り替え
<EnableCompare>
<EnableHistory>
<EnableProjects>
クラスおよび属性の設定
<CanCreateInUI>
<ChangeNoteClass>
<DraftingClass>
デフォルト値の定義
<InitialPositionNumber>
<InitialState>
<DisplayDateFormat>
設定の表示
<DisplayName>
<Searchable>
<Visible>
<Protect>
アイコン ファイルの場所
<DragIconFile>
<FileIcon>
タグの詳細については、「有効な XML タグ」を参照してください。
新しいタグを作成して、カスタム XML ファイルから拡張を設定できます。また、Creo Elements/Direct Model Manager で提供されているタグに基づいて、拡張を設定可能とすることもできます。たとえば、プロジェクト機能を有効化すると拡張の動作が変化する場合には、カスタム Java クラスが <EnableProjects> タグの値にアクセスできます。
Java クラス割り当てタグ
Java クラス割り当てタグは、一連の動作の制御に使用される特定の Java クラスを定義します。たとえば、<BusinessObjectClass> タグは、Creo Elements/Direct Model Manager と特定のデータベースクラスおよび属性との対話の制御に使用する Java クラスの名前を指定します。
Java クラス割り当てタグの値は、Creo Elements/Direct Model Manager の Java コード構造内のクラスです。製品に組み込まれているクラスを指定することも、ユーザ独自のカスタムクラスを使用するように Creo Elements/Direct Model Manager を設定することもできます。
たとえば、製品出荷時には、以下のタグによってデータベースクラス MODEL_3D からのデータの動作を制御する、Java クラスの名前が指定されています。
<BusinessObjectClass>com.osm.dm.biz.DMModel3D</BusinessObjectClass>
このタグで以下のように指定すると、ユーザ独自のカスタムクラスを使用するよう Creo Elements/Direct Model Manager を設定できます。
<BusinessObjectClass>com.custom.dm.biz.CustomDMModel3D</BusinessObjectClass>
Java クラス割り当てタグの例
データベース クラスおよび属性ビジネス オブジェクト
<AttributeEditorClass>
<BusinessObjectClass>
テーブル列モデル
<AnnotationLoadTableColumnModel>
<AnnotationSaveTableColumnModel>
リスナー
<PostApplyListener>
<PreApplyListener>
メニュー
<MainMenuBarMenu>
<BomManagerMenuBarMenu>
<DefaultSendToMenu>
エディタ
<EditorClass>
Java コードからの XML の値へのアクセス
Creo Elements/Direct Model Manager は、ユーザのログイン時に XML ファイルを読み込み、com.osm.biz.WMConfig オブジェクトのインスタンスを作成します。WMConfig クラスのメソッドを使用して、XML 設定の値にアクセスできます。
たとえば、getTagValue(String section, String tagValue) は、特定のセクション内の特定のタグの値を返します。
XML タグを読み取るその他の WMConfig メソッドの例
getClassAttributeTagValue (String className, String classType, String attributeName, String tag) - 特定のクラス名の定義内にある特定のタグの値を返します。
getClassTagValue (String className, String tag) - 特定のクラス内の特定のタグの値を返します。
getOption (String tagName) - Option セクション内にある指定されたタグの値を返します。
getOptionList (String tagName) - Option セクション内にある指定されたタグの値のリストを返します。
getTagValueList (String section, String tagValue) - 特定のセクション内の特定のタグについて、タグの値のリストを返します。
XML の値を読み取る Java コードの例
com.osm.biz.WMClasscanCreateInUI メソッドは、クラスタグ <CanCreateInUI> を読み取ります。このタグは、指定されたクラスの要素をワークスペースから作成可能とするかどうかを制御します。タグが xml ファイルに存在しない場合、このメソッドはデフォルトのブール値 false を返します。
wmconf.xml のセクションの例:
<Class extends="DB_PACKET">
<Name>BASE_DBR_DEFAULT_PACKET</Name>
<BusinessObjectClass>com.osm.biz.WMPacket</BusinessObjectClass>
<DisplayName catalog="eprojects" msg_num="1129">Default Packet
</DisplayName>
<CanCreateInUI>true</CanCreateInUI>
<CanCreateInUI> タグを読み取る Java コードの例:
public static boolean canCreateInUI(String className) {
synchronized (pdm.semaphore) {
try {
String canCreateNew =
WMConfig.getInstance().getClassTagValue(className, "CanCreateInUI");
if ((canCreateNew != null) && canCreateNew.equalsIgnoreCase("true")) {
return true;
}
} catch (WMException ignore) {
}
return false;
}
}
これは役に立ちましたか?