【问题标题】:Is there an event for collapsing a rich:tree node?是否有折叠 Rich:tree 节点的事件?
【发布时间】:2009-10-02 14:45:27
【问题描述】:

如果用户使用以下方法扩展我的客户端处理树的节点,我终于设法接收事件:

public void processExpansion(NodeExpandedEvent event) throws AbortProcessingException {
 if (event != null && event.getSource() != null && event.getSource() instanceof HtmlTree) {
  this.expandedNodes.add(((UITree) event.getSource()).getRowData());
 }
}

由于 recursiveTreeNodesAdaptor,我不得不使用 #getRowData()。

如何获得用户再次折叠节点的通知?我找不到合适的听众。

【问题讨论】:

    标签: java ajax tree events richfaces


    【解决方案1】:

    你可以使用ChangeExpandListener

    <rich:changeExpandListener> 表示在节点上的展开/折叠事件时收到通知的操作侦听器方法。

    编辑:

    第一个 changeExpandListener 必须声明为 <rich:treeNode> 的属性,如果声明为整个树,则在您编写时工作(事件在选择事件之后处理)。 所以:

    <rich:tree value="#{simpleTreeBean.treeNode}" var="item" >
        <rich:treeNode changeExpandListener="#{simpleTreeBean.processExpansion}">
             <h:outputText value="#{item}" />
        </rich:treeNode>                   
    </rich:tree>
    

    processExpansion方法必须以NodeExpandedEvent为参数,但不需要实现接口org.richfaces.event.NodeExpandedListener。 p>

    public void processExpansion(NodeExpandedEvent evt) {
    
      Object source = evt.getSource();
      if (source instanceof HtmlTreeNode) {
        UITree tree = ((HtmlTreeNode) source).getUITree();
        if (tree == null) {
          return;
        }
        // get the row key i.e. id of the given node.
        Object rowKey = tree.getRowKey();
        // get the model node of this node.
        TreeRowKey key = (TreeRowKey) tree.getRowKey();
    
        TreeState state = (TreeState) tree.getComponentState();
        if (state.isExpanded(key)) {
          System.out.println(rowKey + " - expanded");
        } else {
          System.out.println(rowKey + " - collapsed");
        }
      }
    }
    

    这应该有帮助

    【讨论】:

    • 如何区分折叠和展开?我使用客户端折叠并在提交树时触发事件侦听器 - 例如在更改选择时。在这一点上,每个展开的节点都有一个事件......到目前为止,还没有看到任何折叠节点的事件。
    猜你喜欢
    • 2014-11-02
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多