gpt4 book ai didi

java - 在 focframework 的 Table 中添加按钮

转载 作者:行者123 更新时间:2023-11-30 06:05:38 25 4
gpt4 key购买 nike

我正在使用focframework作为用 JAVA 开发 Web 应用程序的完整堆栈。

我想在表格中添加一列,并在该列中放置一个按钮。它也可以是任何其他组件,但目前我想放置一个按钮。例如,如下所示的红色部分:

enter image description here

我只知道如何添加列来显示表中显示的 FocObject 的属性。这在表单的 XML 中很容易实现,如下所示:

<GuiTable title="Employees" name="EMPLOYEE_GUI_TABLE" dataPath="DATAROOT" >
<TableColumn name="_LINE_NUMBER" />
<TableColumn name="FirstName" caption="FirstName" link="true"/>
<TableColumn name="LastName" caption="LastName" link="true"/>
<TableColumn name="StartShift" caption="StartShift" />
<TableColumn name="EndShift" caption="EndShift" />
</GuiTable>

我想添加一个新列,但内容不是 FocObject 的属性。有办法吗?

最佳答案

在 focframework 中,要添加不显示 FocObject 属性的自定义列,您首先要在 Form.xml 中添加您选择的名称,如下所示:

<GuiTable title="Employees" name="EMPLOYEE_GUI_TABLE" dataPath="DATAROOT" >
<TableColumn name="_LINE_NUMBER" />
...
<TableColumn name="EndShift" caption="EndShift" />
<TableColumn name="PRINT_BUTTON" caption="Print" />
</GuiTable>

请注意,PRINT_BUTTON 是我为专栏选择的名称。

现在,在您的 Form java 类中,您需要重写以下方法 table_getGenerateColumn ,如果您想让 FOC 管理组件创建,则该方法应返回 null,但在我们的例子中,对于该特定列名称 PRINT_BUTTON,我们想要返回一个特殊的生成器:

public ColumnGenerator table_getGeneratedColumn(String tableName, final FVTableColumn tableColumn) {
ColumnGenerator columnGenerator = null;
if ( tableColumn != null
&& tableColumn.getName() != null
&& tableColumn.getName().equals("PRINT_BUTTON")) {

columnGenerator = new ColumnGenerator() {
@Override
public Object generateCell(Table source, Object itemId, Object columnId) {
Button button = new Button("Print");
button.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
Globals.showNotification("Button Clicked", "The print button has been licked", IFocEnvironment.TYPE_HUMANIZED_MESSAGE);
}
});
return button;
}
};

}
return columnGenerator;
}

结果如下: enter image description here

关于java - 在 focframework 的 Table 中添加按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51403743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com