IceFaces中的EffectQueue和链接效果1.8

时间:2012-08-15 14:33:41

标签: icefaces icefaces-1.8

我目前正在使用IceFaces 1.8,并且一直在尝试找到一种在UI组件上链接效果的简单方法。例如,我在页面右上角有一个“显示帮助”链接。单击时,帮助文本将显示在用户的某些控件下方。我希望通过向下滑动然后突出显示此文本。

我的bean上有一个基本的isRenderHelp()方法返回true或false,并使用它来使用fire标记上的<ice:effect>属性渲染效果,所以它看起来像这样:

<ice:effect effectType="slidedown" fire="#{myBean.renderHelp}">

<ice:effect effectType="slideup" fire="#{!myBean.renderHelp}">

这会导致帮助部分滑入和滑出,因为帮助链接会切换bean中的renderHelp标志。有一个小异常,即renderHelp在第一次单击链接之前返回null,以防止在第一页渲染上触发幻灯片动画。

现在,我注意到通过1.8的展示代码查看了一个扩展了Effect的EffectQueue类。这允许我将mutliple Effects添加到我的bean中的队列,并从getEffect方法返回队列,然后我可以将其分配给panelGroup effect属性。但是,尽管设置了优先级,但它不会执行队列中的事件。我确定我没有正确使用它,我想知道它应该如何使用。

通常我会将jQuery用于此类事情,但UI会使用许多部分提交。我们的页面通过Liferay portlet显示,所以在任何partialSubmit上重新渲染视图,撤消jQuery对DOM的任何修改。

那么在IceFaces 1.8中有任何简单的链接效果方法吗?建议?

1 个答案:

答案 0 :(得分:3)

这是我如何实现effectQueue来显示和淡化文本。

private EffectQueue effectQueue;
public Effect getSaveSettingsEffect() {
    return effectQueue;
}
public void fireEffect(ActionListener e) {
    if(effectQueue == null) {
        effectQueue = new EffectQueue("apperAndFade");
        Appear appear = new Appear();
        appear.setDuration(2);
        effectQueue.add(appear);
        Fade fade = new Fade();
        fade.setDuration(3);
        effectQueue.add(fade);
        effectQueue.setTransitory(true);
    }
    effectQueue.setFired(false);
}

的facelet:

<ice:commandButton value="fireEffect" action="#{bean.fireEffect}"/>
<ice:outputText value="text" style="display: none;" effect="#{bean.effectQueue}"/>