如何在Components上设置主题id属性?

时间:2014-01-13 12:37:49

标签: themes custom-controls xpages

无论我做什么,只应用应用程序属性中设置的主题。主题ID无法按预期工作。

例如:

我有两个自定义控件,每个控件有5个视图。我尝试为第一个自定义控件中的所有视图设置视图标题属性,主题与第二个自定义控件相同,但主题(和标题)不同。

两个自定义控件都存在于同一页面上。

我试图解决的问题是,我不想为同一类型的每个组件的属性键入函数,而是只想在一个地方进行。在这种情况下,一个自定义控件中的所有视图或者面板中的所有视图......

1 个答案:

答案 0 :(得分:0)

关于主题:afaik我们只能为每个应用程序定义一个主题。此主题可以继承其他主题,但需要在整个服务器的文件系统级别安装和注册。

关于您的方案:

如果你真的想用主题解决这个问题,你可以使用单独的主题ID。但我真的没有看到在这里使用主题的好处。据我了解你的任务,我会使用自定义控件的自定义属性来解决它。然后计算视图标题以引用该属性,如

<xp:viewTitle xp:key="viewTitle" id="viewTitle1"
    value="#{javascript:compositeData.ccViewTitle}">
</xp:viewTitle>

在设计时,包含X页面或自定义控件会将适当的视图标题提供给子控件:

<xc:ccInner ccViewTitle="View Title for First CC in Page"></xc:ccInner>
<xc:ccInner ccViewTitle="View Title for Second CC in Page"></xc:ccInner>

如有必要,您还可以计算此值。