|
推定所要時間
|
||
|---|---|---|
|
Creo Elements/Direct Model Manager のクラスをカスタマイズして、新しい属性を追加します。
このレッスンでは、Java ビジネスロジックで計算される新しい属性を含めるよう、Creo Elements/Direct Model Manager のクラスを拡張します。
|
説明:
|
1 分
|
|
演習:
|
20 分
|
|
|
|
Java では任意のディレクトリ名を使用できますが、後でコードを見つけやすいように、Creo Elements/Direct は一貫したディレクトリ構造を使用することをお勧めします。このガイドでは、ディレクトリ構造として、最初に com を使用し、次に会社名、その次にクラスのタイプを示すディレクトリを使用します。この演習で拡張するクラスは dm\biz ディレクトリにあり、ここでビジネスロジックが保持されます。
|
package com.acme.biz;
import com.osm.biz.*;
import com.osm.exception.*;
public class AcmeTimeAttribute extends DefaultAttribute {
public AcmeTimeAttribute(Object value, WMAttribute att, WMObject wmObject)
throws WMException {
super(value, att, wmObject);
}
public AcmeTimeAttribute(WMAttribute att, WMObject wmObject)
throws WMException {
super(att, wmObject);
}
@Override
public Object getValue() throws WMException {
return System.currentTimeMillis();
}
@Override
public void setValue(Object obj) throws WMException {
// don’t support set.
}
}
<Class extends="DMModel, DMReleaseProcess">
<Name catalog="awm_stda" msg_num="258">MODEL_3D</Name>
<Attribute>SimpleAttribute
<DisplayName>Simple Attribute</DisplayName>
<BusinessObjectClass>com.acme.biz.AcmeTimeAttribute</BusinessObjectClass>
<Visible>true</Visible>
</Attribute>
</Class>
<Class extends="DTModel, DTReleaseProcess">
<Name catalog="awm_stda" msg_num="10">me_model</Name>
<Attribute>Attribute
<DisplayName>Simple Attribute</DisplayName>
<BusinessObjectClass>com.acme.biz.AcmeTimeAttribute</BusinessObjectClass>
<Visible>true</Visible>
</Attribute>
</Class>

package com.acme.editor;import com.osm.biz.*;
import com.osm.exception.*;
import com.osm.editor.WMAttEditorTextField;.
public class AcmeTimeAttributeEditor extends WMAttEditorTextField {
public AcmeTimeAttributeEditor(WMAttribute wmAttribute)
throws WMException {
super(wmAttribute);
}
public AcmeTimeAttributeEditor(WMAttribute wmAttribute, boolean enabled)
throws WMException {
super(wmAttribute, enabled);
}
@Override
public void setAttributeVal(Object val) {
if (val instanceof AcmeTimeAttribute) {
AcmeTimeAttribute att = (AcmeTimeAttribute) val;
try {
setText(String.valueOf(att.getValue()));
} catch (WMException ex) {
ex.printStackTrace();
}
}
}
@Override
public Object getAttributeVal() {
return getText();
}
}
<Class extends="DMModel, DMReleaseProcess">
<Name catalog="awm_stda" msg_num="258">MODEL_3D</Name>
<Attribute>SimpleAttribute
<DisplayName>Simple Attribute</DisplayName>
<BusinessObjectClass>com.acme.biz.AcmeTimeAttribute</BusinessObjectClass>
<AttributeEditorClass>com.osm.datamgmt.editor.AcmeTimeAttributeEditor</AttributeEditorClass>
<Visible>true</Visible>
</Attribute>
</Class>
<Class extends="DTModel, DTReleaseProcess">
<Name catalog="awm_stda" msg_num="10">me_model</Name>
<Attribute>SimpleAttribute
<DisplayName>Simple Attribute</DisplayName>
<BusinessObjectClass>com.acme.biz.AcmeTimeAttribute</BusinessObjectClass>
<AttributeEditorClass>com.osm.datamgmt.editor.AcmeTimeAttributeEditor</AttributeEditorClass>
<Visible>true</Visible>
</Attribute>
</Class>
<Class>
<Name>SIMPLE_ATT_DEF</Name>
<Attribute>SimpleAttribute
<DisplayName>Simple Attribute</DisplayName>
<AttributeEditorClass>com.osm.datamgmt.biz.SimpleAttributeEditor</AttributeEditorClass>
<BusinessObjectClass>com.osm.datamgmt.biz.SimpleAttribute</BusinessObjectClass>
<Visible>true</Visible>
<SendPseudoAttributeTextReferencesToCad>true</SendPseudoAttributeTextReferencesToCad>
</Attribute>
</Class>
<Class extends="DMModel, DMReleaseProcess, SIMPLE_ATT_DEF">
<Name catalog="awm_stda" msg_num="258">MODEL_3D</Name>
</Class>
<Class extends="DMMasterdata, DMReleaseProcess, SIMPLE_ATT_DEF">
<Name catalog="awm_stda" msg_num="251">MASTERDATA</Name>
</Class>
<Class extends="DMDrawing, DMReleaseProcess, SIMPLE_ATT_DEF">
<Name catalog="awm_stda" msg_num="254">DRAWING_2D</Name>
</Class>
<Class extends="BASE_CHANGENOTE_2D, SIMPLE_ATT_DEF">
<Name catalog="awm_stda" msg_num="255">CHANGENOTE_2D</Name>
</Class>