刚进公司没多久,正在学习windchill,并试着写filter来控制action的可用以及显示问题。下面即是我的操作(是通过验证的操作):
一、注册action
先在*-actionModels.xml和*-action.xml里面注册自己需要添加的action,如图:
二、写一个控制action的filter类,如图:
此filter类需要继承DefaultSimpleValidationFilter类,并重写preValidateAction方法,然后在codebase下面建文件夹。路径和你这个类的包名一致,例如我这里是ext.hui.test.ValidatorTest,所以要在codebase下面建文件夹ext->hui->test。然后将类编译的class文件拷贝到此目录下,如图:
三、编写自定义的xconf文件,我这里就定义了文件名为test.properties.xconf的文件,和对应的filter类同目录,内容如下图:
四、编写好xconf文件后,在Windchill Shell里面执行语句:xconfmanager -i codebase/ext/hui/test/test.properties.xconf -p
注:codebase/ext/hui/test/test.properties.xconf是你自己定义的xconf路径
执行命令后,可以在
同时,在你自定义的xconf文件同目录下,多出一个test.properties文件,如图:
test.properties内容如图:
五、重启服务,可看到结果,我这里是右键部件,如果部件的视图是"Manufacturing",则按钮显示但不可用,如果视图是"Design",则按钮可用。测试结果主要看你自己的filter类的逻辑控制,这里只是一个简单的测试,来共享如何实现一个按钮可用、不可用以及是否显示。上面注册action的resourceBundle里面的类,主要是用来控制按钮在界面显示的汉子、图标和tooltip等。
如果这里有不足之处,请大家多多指教,共同学习!!!!