アクションメニューの拡張の演習
推定所要時間
Creo Elements/Direct Model Manager のアクションメニューには、項目を追加できます。
このレッスンでは、Creo Elements/Direct Model Manager のアクションメニューを作成する方法について学習します。
説明:
5 分
演習:
15 分
説明
アクションメニューは、Creo Elements/Direct Model Manager ワークスペースでさまざまな項目にアクションを実行するために使用します。項目を選択すると、メイン メニューバーと右クリックのどちらでもその項目のアクション メニューを表示できます。
デフォルトのアクションメニューモデルは、いくつかのセクションから構成されています。各セクションにはいくつかのアクションが含まれており、セクションはメニューセパレータで区切られています。デフォルトのセクションは次のとおりです。
セクション
#
アクションの例
アクション
1.0
ロード、BOM のスキャン、ファイルのエクスポート
プロパティ
2.0
DB プロパティ、テーブル編集、状態変更
編集
3.0
切り取り、コピー、貼り付け
パーミッション
4.0
専有、専有解除
関連追加
5.0
新規追加 (パーツ、サムネイル、変更記事)
初期値
6.0
比較、変更通知設定
デフォルトの各セクションの番号を参照してそこにアクションを追加することも、また、別の番号を参照して独自のセクションを作成することもできます。新しいセクションは、既存のセクションを基準に番号順に配置されます。たとえば、セクション 1.8743 は、アクション (セクション 1.0) とプロパティ (セクション 2.0) の間に作成されます。
CoCreate Model Manager 12.0 に作成したアクションメニューは CoCreate Model Manager 2005 以上で使用できます。今後の Creo Elements/Direct のリリースで行われる変更に対応できるように、新規にカスタマイズを行う場合は、新しいモデルの使用をお勧めします。
リリース 13.20A から、XML 設定ファイルでメニューを定義できるようになりました。それ以前のリリース 13.X のアクションメニューも引き続き使用できます。
以下の演習を活用して、Creo Elements/Direct Model Manager メニューにアクションを追加する方法を学習してください。
演習
この演習では、アクション メニューの既存のセクションに新しいアクションを追加し、さらにアクション メニューにいくつかのアクションからなる新しいセクションを追加します。
この演習は、ビジネスロジックの拡張の演習が終了していることを前提としています。
アクション メニューを拡張する主な手順は以下のとおりです。
アクションの作成
メニュー項目をクリックするときに呼び出されるアクションを作成します。
1. com ディレクトリに、com.acme.action という名前でパッケージを作成します。
2. com.acme.action に、AcmeAction という名前のクラスを追加します。
3. アクションを実装するために com.osm.action.WMAbstractAction を拡張します。2 つのメソッドを書き換える必要があります(どちらのスキーマでも同じ Java コードを使用します)。
isEnabled() - このメソッドはよく呼び出されるため、このメソッドにはクエリを作成しないでください。パーミッション チェックを遅らせると、パフォーマンスが向上します。さらに、単にアクションを無効にするのではなく、アクションを実行できない正当な理由をユーザに示すことができます。
actionPerformed (ActionEvent e) – ユーザがアクションをクリックすると呼び出されます。
package com.acme.action;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.osm.action.*;
import com.osm.datamgmt.ui.*;
public class AcmeAction extends WMAbstractAction {
/** Creates a new instance of AcmeAction */
public AcmeAction() {
super ("Acme Action");
}
public boolean isEnabled() {
return true;
}
public void actionPerformed(ActionEvent e) {
// Display a dialog that says hello world
String msg = "Hello World";
Component parentComp = WindowManager.getInstance().getActiveWindow();
JOptionPane.showMessageDialog(parentComp, msg);
}
}
4. AcmeAction クラス ファイルを保存します。
5. AcmeAction クラスのファイルをコピーして貼り付け、AcmeAction_1 クラスと AcmeAction_2 クラスを作成します。
6. コンストラクタの Acme Action をそれぞれ Acme Action 1Acme Action 2 に変更します。
7. actionPerformed(ActionEvent e)Hello World をそれぞれ Acme Action 1Acme Action 2 に変更します。
8. 追加したクラス ファイルを保存します。
XML ファイルへの拡張の追加
この拡張を XML ファイルの AcmeModel3D クラスに追加します。
1. NetBeans で、acme.xml ファイルを開きます。
2. モデルクラスに <ActionMenuSection> タグと <Action> タグを追加します。
<ActionMenuSection> の後の値は、アクションの挿入先となるセクションです。ページ上部の表に示すように、既存のセクションには 1.0、2.0 などの番号が付けられています。既存のセクションのいずれかを指定すると、アクションはそのセクションに追加されます。別の値を指定すると、新しいセクションが追加され、セクションはすべて番号順に配置されます。
Data Management スキーマ:
<Class extends="DMModel, DMReleaseProcess">
<Name catalog="awm_stda" msg_num="258">MODEL_3D</Name>
<ActionMenuSection>1.0
<Action>com.acme.action.AcmeAction</Action>
</ActionMenuSection>
<ActionMenuSection>1.5
<Action>com.acme.action.AcmeAction_1</Action>
<Action>com.acme.action.AcmeAction_2</Action>
</ActionMenuSection>
</Class>
Desktop スキーマ:
<Class extends="DTModel, DTReleaseProcess">
<Name catalog="awm_stda" msg_num="10">me_model</Name>
<ActionMenuSection>1.0
<Action>com.acme.action.AcmeAction</Action>
</ActionMenuSection>
<ActionMenuSection>1.5
<Action>com.acme.action.AcmeAction_1</Action>
<Action>com.acme.action.AcmeAction_2</Action>
</ActionMenuSection>
</Class>
3. 変更を acme.xml ファイルに保存します。
コードのテスト
コードは、インストールしなくても、NetBeans から実行できます。
1. NetBeans で dev.properties ファイルを表示し、run.modeStandalone に設定します。
2. 主プロジェクトを構築スクリプトを実行します。
3. 主プロジェクトを実行スクリプトを実行します。
4. ワークスペースの任意の場所でモデルまたはアセンブリを選択します。
5. 右クリックします。メニューの最上部に「Acme Action」が表示され、「Actions」セクションと「Properties」セクションの間に「Acme Action」セクションが表示されます。
6. 「Acme Action」を選択すると、「Hello World」ダイアログが表示されます。
7. 「Acme Action 1」を選択すると、「Acme Action 1」ダイアログが表示されます。
これは役に立ちましたか?