java - 在 focframework 的 Table 中添加按钮

标签 java

我正在使用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/

相关文章:

java - 从 dotnet web 应用程序启动 JNLP

java - 在 SSL 握手中接受任何客户端证书

java - Maven 对 Nexus 中 jar 的依赖

java - 将 AngularJS 与 JSP 页面集成

java - 位移位 - 为什么此代码使用 24、16 和 8 右移?

java - 类中 "with"方法的用途

java - 解析没有文档开始和结束标记的 XML

java - 将 Talend Expression 解码为 Java 公式

java - Java 中用户选择最小值和最大值的间隔

java - Android:将数据从 ViewPager2 和 TabLayout 管理的 fragment 发送到包含的 Activity