如何推导getSelectedModel的viewPath

时间:2015-05-13 09:07:03

标签: jspresso

从视图中由多个边框,拆分等构成的操作,我想要访问位于视图的不同表中的数据。

为此,我尝试推导出getSelectedModel,getModel方法的viewPath参数。

视图的结构是什么,如何在不同的表之间导航并演绎viewPath以调用getSelectedModel / getModel ...?

1 个答案:

答案 0 :(得分:1)

视图路径是一个索引数组,允许在包含层次结构中从视图导航到另一个视图。它在所有操作扩展的AbstractActionContextAware类的几个方法中使用,但您也可以从需要实用程序方法的任何应用程序类扩展,以探索操作上下文。 / p>

此视图路径背后的基本原理是从触发操作的视图开始,并按照视图路径到达目标视图,例如,获取其选定的索引。

导航规则如下:

  • 路径中的负步​​骤索引( -n )表示向上导航至第n 个父
  • 路径中的正步骤索引( + n )表示向下导航至第n 个孩子

找到肯定步骤时子视图的索引取决于您所使用的容器类型。以下是规则:

  • 子索引从零开始。
  • 边境容器的子项按此固定顺序编入索引:西中心。我有一个孩子失踪然后没有考虑到,例如在只有北方和中心儿童视图的边界中,中心儿童的索引 1
  • 网格容器的子项(甚至约束),标签容器的索引是声明顺序
  • 拆分容器的子项从顶部索引到底部左侧右侧取决于其方向。

例如,给定以下UI:

split_horizontal {
  left {
    tabs {
      form
      table('A')
    }
  }
  right {
    border {
      top {
        form
      }
      center {
        table('B')
      }
    }
  }
}

从表格`A`到表格`B`的观看路径将是: [-1, -1, 1, 1]