我使用ZK框架的项目中,我有足够的股利或窗口组件内的其他组件,任何一个可以告诉我如何可以禁用Div
或Window
在某些condition.As我检查部件没有任何disable
这些属性组件。
我们可以我任何其他方式disable
一个Div
或Window
,否则我必须禁用内部各组件Div
或Window
或Layout
我使用ZK框架的项目中,我有足够的股利或窗口组件内的其他组件,任何一个可以告诉我如何可以禁用Div
或Window
在某些condition.As我检查部件没有任何disable
这些属性组件。
我们可以我任何其他方式disable
一个Div
或Window
,否则我必须禁用内部各组件Div
或Window
或Layout
这里一个很简单的方法来禁用实现所有组件
Disable
接口。
@Wire("disable")
private List<Disable> allToDisable;
private disableAll(List<Disable> list){
for(Disable d : list){
d.setDisabled(true);
}
}
您可以编辑的路径@Wire
满足您的需求,
使用的方法Selectors
或任何其他方法
采用一个ZK选择路径。 只要让它与结束
"disable"
,所以应该选择各个组件
实现该接口。
我想,有没有简单的方法,我会尝试这样的事情(发现这个对谷歌,但我记得在做类似的事情在我的最后一个项目)
public static void disableComponents( AbstractComponent pComponent ) {
for( Object o : pComponent.getChildren() ) {
AbstractComponent ac = ( AbstractComponent ) o;
try {
Method m = ac.getClass().getMethod( "setDisabled", Boolean.TYPE );
m.invoke( ac, true );
} catch( Exception e ) {
}
List children = ac.getChildren();
if( children != null ) {
disableComponents( ac );
}
}
}
我们可以改善看门人(在9:22 5月16日'13)解决方案添加条件“如果”。 如果(AC的instanceof禁用){---代码 - }
public static void disableComponents( AbstractComponent pComponent ) {
for( Object o : pComponent.getChildren() ) {
AbstractComponent ac = ( AbstractComponent ) o;
try {
if (ac instanceof Disable) {
Method m = ac.getClass().getMethod("setDisabled", Boolean.TYPE);
m.invoke(ac, true);
}
} catch( Exception e ) {
e.printStackTrace();
}
List children = ac.getChildren();
if( children != null ) {
disableComponents( ac );
}
}
}