从某个中心点控制 Primefaces 对话框的位置属性
Controlling position attribute of a Primefaces Dialog from some central point
我发现这段代码在我们项目的左上角放置了一个 PrimeFaces 对话框:
<p:dialog styleClass="dialog-top-left" ...>
并在 .css 文件中:
.top-left-dialog {
top: 10px !important;
left: 10px !important;
}
现在这显然是错误的(它阻止了对话框被拖动),你实际上应该这样做:
<p:dialog position="top, left" ...>
然而,使用 CSS 的不正确版本有一个很好的优势:我只需更改 CSS 即可更改所有具有 dialog-top-left
class。有没有办法从某个中心点控制 position =
属性(例如 CSS 变体的 .css 文件)?
您可以为此创建一个 ApplicationFactory
。在 ApplicationWrapper
中使用类似的东西:
@Override
public UIComponent createComponent(FacesContext context, String componentType, String rendererType) {
final UIComponent component = super.createComponent(context, componentType, rendererType);
if (component instanceof Dialog) {
final Dialog dialog = (Dialog) component;
dialog.setPosition("top, left");
}
return component;
}
如需完整示例,请访问链接的文档页面。
我发现这段代码在我们项目的左上角放置了一个 PrimeFaces 对话框:
<p:dialog styleClass="dialog-top-left" ...>
并在 .css 文件中:
.top-left-dialog {
top: 10px !important;
left: 10px !important;
}
现在这显然是错误的(它阻止了对话框被拖动),你实际上应该这样做:
<p:dialog position="top, left" ...>
然而,使用 CSS 的不正确版本有一个很好的优势:我只需更改 CSS 即可更改所有具有 dialog-top-left
class。有没有办法从某个中心点控制 position =
属性(例如 CSS 变体的 .css 文件)?
您可以为此创建一个 ApplicationFactory
。在 ApplicationWrapper
中使用类似的东西:
@Override
public UIComponent createComponent(FacesContext context, String componentType, String rendererType) {
final UIComponent component = super.createComponent(context, componentType, rendererType);
if (component instanceof Dialog) {
final Dialog dialog = (Dialog) component;
dialog.setPosition("top, left");
}
return component;
}
如需完整示例,请访问链接的文档页面。