高度なカスタマイズ > ビジネスロジックのカスタマイズ > Windchill ProjectLink のカスタマイズ > カスタム Windchill ProjectLink アルゴリズムの作成 > 進行状況アイコン表示のカスタマイズ
  
進行状況アイコン表示のカスタマイズ
ハンドラクラスの作成
インタフェース HealthStatusIconHandler.java は、進行状況アイコン表示用のカスタムクラスを提供する機能を拡張することを目的としています。このインタフェースは以下のように定義されています。
public HashMap<Object, Object> getHealthStatusImageIcon(List objects);
public Object getIcon(HealthStatusType healthStatusType, boolean isComplete, boolean isCancelled,
AbstractPlanActivity activity) throws WTException, WTPropertyVetoException;
public String getIconForCompletedLate();
public String getIconForCompletedPlannables();
public String getIconForCancelledPlannables();
PlannableHealthStatusIconHandler という名前の '既成の' アイコンハンドラが提供されています。カスタマイズを行うには、上記のインタフェースを実装してこの既成のハンドラを拡張するカスタムクラスを作成し、その目的に応じて該当するメソッドをオーバーライドする必要があります。
以下の表に、カスタマイズの内容およびオーバーライドする必要があるメソッドを示します。
カスタマイズ
オーバーライドが必要なメソッド
期限後に完了したアクティビティまたはサブ計画
getIconForCompletedLate()
期限までに完了したアクティビティまたはサブ計画
getIconForCompletedPlannables()
キャンセルされたアクティビティまたはキャンセルされたサブ計画
getIconForCancelledPlannables()
進行状況: 赤色
getIcon()
進行状況: 黄色
getIcon()
進行状況: 緑色
getIcon()
進行状況: なし
getIcon()
これらのオーバーライドされたメソッドは、return netmarkets/images/xxxxx.png などのイメージパスを含む文字列を返す必要があります。
進行状況が '赤色' であるアクティビティに進行状況ステータスアイコンを設定するカスタムアルゴリズムのコード例を以下に示します。
package com.ptc.projectmanagement.plan;
public class CustomHealthStatusCalculation extends PlannableHealthStatusIconHandler {
@Override
public Object getIcon(HealthStatusType healthStatusType, boolean isComplete, boolean isCancelled, AbstractPlanActivity activity) throws WTException, WTPropertyVetoException {
Object statusIcon = "";
Locale locale = SessionHelper.getLocale();
if(healthStatusType != null){
if(HealthStatusType.RED.equals(healthStatusType)){
statusIcon = getStatusIcon("netmarkets/images/red.gif", healthStatusType.getDisplay(locale));
}
else{
super.getIcon(healthStatusType, isComplete, isCancelled, activity);
}
}
}
}
ハンドラクラスの設定
グラフィック進行状況ステータスアイコンを設定するカスタムアルゴリズムを作成した後は、xconf ファイルで以下を設定します。
「タイプおよび属性の管理」ユーティリティから「内部名」をコピーし、ファイル projectmanagement.service.properties.xconf に以下のエントリを挿入します。この場所は ${WT_HOME}/Windchill/codebase/com/ptc/projectmanagement/projectmanagement.service.properties.xconf であり、windchill シェルで xconfmanager -p を実行します。
<Service context="default"
name="com.ptc.projectmanagement.plan.HealthStatusIconHandler">
<Option cardinality="singleton" requestor= "null"
selector = "<internal type name>"
serviceClass="<fully qualified handler class name>"/>
</Service>
サンプルコードエントリを以下に示します。
<Service context="default"
name="com.ptc.projectmanagement.plan.HealthStatusIconHandler">
<Option cardinality="singleton" requestor= "null"
selector = " org.rnd.VW_AutoHealthAutoDeadline " serviceClass= "com.ptc.projectmanagement.plan.HealthStatusIconForRed"/>
</Service>
タイプ 'PlanActivity' には、以下のように定義された既成のハンドラがあります。
<Service context="default" name="com.ptc.projectmanagement.plan. HealthStatusIconHandler ">
<Option cardinality="singleton" requestor= "null"
selector = "com.ptc.projectmanagement.plan.Plannable" serviceClass="com.ptc.projectmanagement.plan.PlannableHealthStatusIconHandler"/>
</Service>