改写maximo中dialog 类

在应用程序中,有多个签名字段,初步设计为 点击字段后的按钮,弹出对话框,在其中验证用户名和密码,验证通过将用户的displayname 写入签名字段。

 

问题在于,如果使用现在的dialog类,无法获取到对话框是从哪个字段弹出的,所以需要每个字段绑定一个dialog。

 

后来在treeControlBean中发现,tree可以获取到dataattribute,即触发源字段。 仿照tree类,改写dialog。

 

 

public class Dialog extends psdi.webclient.controls.Dialog {
 
 private String sourceDataAttribute;
 private ControlInstance sourceControl;
 private DialogContrloBean dialogDataBean;

 public String getSourceDataAttribute() {
  return sourceDataAttribute;
 }

 public void setSourceDataAttribute(String sourceDataAttribute) {
  this.sourceDataAttribute = sourceDataAttribute;
 }
 
 public Dialog(){
  super();
  sourceDataAttribute = null; 
  dialogDataBean = null;
 }
 
 /**
  * 获取dialog的sourceDataAttribute。
  */
    public void initialize() {
        super.initialize();
        sourceControl = getWebClientSession().getCurrentEvent().getSourceControlInstance();
       
        if(sourceControl != null)
        {
            sourceDataAttribute = sourceControl.getProperty("dataattribute");
           
            if(sourceDataAttribute.equals("") || null==sourceDataAttribute){
             return;
            }
        }       

        dialogDataBean = (DialogContrloBean)getDataBean();
        dialogDataBean.setSourceDataattribute(sourceDataAttribute);
    }

}

这样就可以在databean类里面获取到源字段。

 

在control-registry.xml 修改组件dialog对应的类,指定到自己的类即可。

<control-descriptor name="dialog" descriptor-class="psdi.webclient.system.runtime.DatasrcDescriptor"  instance-class="${package}.Dialog" >

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章