基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > UI の情報の表示 > カスタムグラフィック製品表現の作成 > 手順 - 簡潔なカスタムグラフィック製品表現の作成
  
手順 - 簡潔なカスタムグラフィック製品表現の作成
新規カスタムグラフィック製品表現を作成する方法を示すために、"多重状態アイコンコンポーネント" を新規作成します。
既成の "信号機" グラフィックコンポーネント (参照で説明) は、多重状態アイコンコンポーネントの例です。このモデルに従ったほかのカスタムグラフィックコンポーネントの作成は、簡単に行うことができます。たとえば、より多くの状態を持つ信号機タイプのコンポーネントを作成することも、"雨または晴" グラフィックコンポーネントを新規作成することもできます。次に、"雨または晴" コンポーネントを新規作成する方法について説明します。
"雨または晴" カスタムグラフィック製品表現クラスの作成
カスタムコンポーネントクラスによって、用意されている MultiStateIconComponent クラスを拡張し、getIconComponent() の実装を定義する必要があります。一般的に、使用可能な値とレンダリングされるイメージを含んでいる列挙も、このクラスによって定義されます。
"雨または晴" コンポーネントは次のようになります。
public class RainOrShineComponent extends MultiStateIconComponent {
public enum RainOrShineEnum {
// Maps an integer to a specific .gif graphical representation
// All possible states supported are listed here
RAIN(0, "com/mycompany/images/rain.gif", "Rain"),
SHINE(1, "com/mycompany/images/sunshine.gif", "Shine");
private final int key;
private final String image;
private final String tooltip;
private RainOrShineEnum(int key, String image, String tooltip) {
this.key = key;
this.image = image;
this.tooltip = tooltip;
}
@Override
public IconComponent getIconComponent() {
// create the icon component using the correct image path
final IconComponent component = new IconComponent(image);
// set the tooltip
component.setTooltip(tooltip);
return component;
}
@Override
public static RainOrShineEnum getElement(int key) throws WTException {
for (RainOrShineEnum tls : values()) {
if (key == tls.key) {
return tls;
}
}
LOGGER.error("Undefined RainOrShineState: " + key);
LOGGER.error("Change the formula to return one of the
following states: 0, 1");
throw new WTException("Undefined RainOrShineState: " + key);
}
}
@Override
public IconComponent getIconComponent(int key) throws WTException {
return RainOrShineEnum.getElement(key).getIconComponent();
}
}
グラフィック製品表現の列挙へのエントリの追加
「タイプおよび属性の管理」ユーティリティを使用して、グラフィック製品表現の列挙にエントリを追加します。この列挙は "グラフィック属性の製品表現" という名前で、"PTC 列挙" という名前のシステムレベルのオーガナイザーにあります。エントリの内部名を覚えておいてください。次のステップで使用します。この例では、新規エントリの内部名は "rainOrShine" とします。
コンポーネントの xconf マッピングの作成
グラフィック製品表現の列挙エントリの内部名を、作成したカスタム "RainOrShineComponent" クラスにマッピングする xconf エントリを追加します。"雨または晴" コンポーネントの新規エントリは次のようになります。セレクタは前のセクションの列挙エントリの内部名と一致している必要があり、serviceClass はカスタムコンポーネントクラスの完全修飾名と一致している必要があります。
<Service name=
"com.ptc.core.lwc.common.graphicalatts.GraphicalAttRepresentationHandler">
<Option serviceClass="com.mycompany.RainOrShineComponent" requestor="null"
selector="rainOrShine" />
</Service>
xconf ファイルを更新した後、Windchill シェルで XConfManager ("xconfmanager -pF") を実行して、このファイルをプロパティファイルに適用し、メソッドサーバーを再起動する必要があります。
テスト
1. まず、「タイプおよび属性の管理」ユーティリティで新規計算属性 (できれば「ドキュメント」または「部品」タイプ) を作成します。
2. 次に、この属性で、「グラフィック製品表現」プロパティを "雨または晴" に設定し、式を 0 または 1 に設定します。
3. 変更内容を保存します。
4. Windchill で、このタイプのインスタンスに移動します (または新規インスタンスを作成します)。
この属性は、Windchill で "ビュー" モードで表示されるたびに、"rain.gif" または "sunshine.gif" イメージとして表示されます。