`
louisling
  • 浏览: 143123 次
  • 性别: Icon_minigender_1
  • 来自: ZhuHai
社区版块
存档分类
最新评论

Add a new Row when click table blank row

    博客分类:
  • RCP
 
阅读更多
/**
 * Add a new Row when click on the blank row of the table
 */
void addNewRow(MouseEvent e, Table mTable) {
    TableItem item = mTable.getItem(new Point(e.x, e.y));
    if (item == null) {
        if (mTable.getItemCount() == 0) {
            item = new TableItem(mTable, SWT.NONE);
            item.setText("New Row");
        } else {
            item = mTable.getItem(mTable.getItemCount() - 1);
            int newRowY = item.getBounds().y + item.getBounds().height;
            if (mTable.getLinesVisible())
                newRowY += 1;
            if (e.y > newRowY) {
                item = new TableItem(mTable, SWT.NONE);
                item.setText("New Row");
            }
        }
    }
}


Add blank row when click on the table.
TableViewer:

/**
 * Add a new Row when click on the space of the table
 */
addBlankRowListener(final TableViewer tableViewer, final Class<?> recordClass) {
    final Table mTable = tableViewer.getTable();

    mTable.addMouseListener(new MouseAdapter() {
        public void mouseDown(MouseEvent e) {
            TableItem item = mTable.getItem(new Point(e.x, e.y));

            if (item == null)
                addBlankRow();

            if (item == null) {
                if (mTable.getItemCount() == 0) {
                    addBlankRow();
                }
                else {
                    item = mTable.getItem(mTable.getItemCount() - 1);
                    int newRowY = item.getBounds().y + item.getBounds().height;
                    if (mTable.getLinesVisible())
                        newRowY += 1;
                    if (e.y > newRowY)
                        addBlankRow();
                }
            }
        }

        @SuppressWarnings("unchecked")
        private void addBlankRow() {
            Object record = BaseUtils.newInstance(recordClass);
            List list = (List) tableViewer.getInput();
            list.add(record);

            tableViewer.refresh();
        }
    });
}
分享到:
评论

相关推荐

    DevExpress GridControl GridView 新增行/删除行 AddNewRow /InitNewRow

    针对DevExpress GridControl GridView 新增行AddNewRow() 很多人加了代码也无法实现添加行或者添加行后InitNewRow这个事件没有触发, 其中主要原因见附件实例代码!

    Android源码——点按钮添加TableRow源码_new_57.7z

    TableRow newRow = new TableRow(context); // 添加子视图,例如TextView或Button TextView textView = new TextView(context); textView.setText("新行"); newRow.addView(textView); // 将新行添加到...

    Android 点按钮添加TableRow源码.zip

    TableRow newRow = new TableRow(context); // 添加视图到TableRow TextView textView = new TextView(context); textView.setText("新行数据"); newRow.addView(textView); // 将新的TableRow添加到...

    Android程序研发源码Android 点按钮添加TableRow源码.rar

    TableRow newRow = new TableRow(context); Button newButton = new Button(context); newButton.setText("新按钮"); newRow.addView(newButton); TableLayout tableLayout = findViewById(R.id.table_layout)...

    Android 点按钮添加TableRow源码.rar

    TableRow newRow = new TableRow(context); // 使用Activity或Fragment的Context // 添加一些视图到新行 TextView textView1 = new TextView(context); textView1.setText("Column 1"); newRow.addView(textView1);...

    android 点按钮添加TableRow

    在这个特定的场景中,`Add Button`可能是一个示例项目,它演示了如何在`TableRow`中动态添加`Button`。下面我们将详细讨论这两个组件以及如何将它们结合起来使用。 `Button`是Android SDK中的一个视图组件,常用于...

    asp.net table控件自动添加删除行功能代码

    TableRow newRow = new TableRow(); TableCell cell1 = new TableCell(); cell1.Text = "新数据1"; TableCell cell2 = new TableCell(); cell2.Text = "新数据2"; newRow.Cells.Add(cell1); newRow.Cells.Add...

    table实现动态添加行

    dynamicTable.Rows.Add(newRow); } ``` 在上述代码中,我们首先创建了一个新的`TableRow`对象,然后为该行添加了两个`TableCell`,分别设置它们的文本内容。最后,我们将这个新行添加到了`dynamicTable`的`Rows`...

    LayUI 数据表增加数据行Demo (Html)

    &lt;button class="layui-btn" onclick="addRow({id: 3, name: '王五', age: 30})"&gt;添加行 ``` 通过以上步骤,我们成功地在LayUI数据表中实现了动态添加数据行的功能。这个过程涉及到LayUI的组件引用、表格初始化、...

    jquery实现json数据填充到table表格中并且实现remove add 数据

    $('#your_table_id').append(newRow); }); }); ``` 对于添加功能,可以添加一个按钮,点击时触发一个函数,这个函数会创建一个新的空白行并添加到表格末尾。例如: ```javascript $('#add_row').on('click', ...

    table 使用js 高效 动态添加行

    table.tBodies[0].appendChild(newRow); ``` 三、动态添加行的优化 1. 使用模板字符串:通过模板字符串,可以更方便地生成动态内容。 ```javascript var cellContent = `新内容${index}`; var newCell = document....

    table动态添加行

    var newRow = $('&lt;tr&gt;&lt;td&gt;New Data&lt;/td&gt;&lt;td&gt;New Data&lt;/td&gt;&lt;/tr&gt;'); $('#myTable tbody').append(newRow); }); }); ``` 这段代码中,`$(document).ready()`确保在页面加载完成后再执行函数。`$('#addRowButton')`...

    New Microsoft Word Document_Table_DataTable_

    dataTable.Rows.Add(newRow); ``` 4. **查询数据**:`DataTable`提供`Select()`方法,可以基于表达式进行查询。例如,查找特定列值的行: ```csharp DataRow[] foundRows = dataTable.Select("ColumnName = '...

    动态定义table

    使用`NewRow()`方法创建一个新的数据行,然后通过索引或列名向行中添加值,最后使用`Rows.Add()`将行添加到table中。 ```csharp DataRow row = table.NewRow(); row[col1] = "G001"; row[col2] = "yanxiangliang"; ...

    gridview动态添加空白行

    - **添加行**:通过调用`dt.NewRow()`创建新的数据行,并使用索引或列名来设置该行的值,最后通过`dt.Rows.Add(newrow)`将新行添加到表中。 #### GridView控件的基本用法 `GridView`是ASP.NET中非常常用的数据显示...

    javascript table 增加删除行,巧妙实现

    var newRow = table.insertRow(-1); // 在表格的末尾插入新行 for (var i = 0; i ; i++) { var newCell = newRow.insertCell(i); newCell.innerHTML = data[i]; } } // 使用方法 addRow('myTable', ['李四', ...

    密码管理专家个人修改版源码

    dsKey.Tables["UserKey"].Rows.Add(newRow); } int number = dsKey.Tables["UserKey"].Rows.Count; for (int i = 0; i ; i++) { dsKey.Tables["UserKey"].Rows[i]["Number"] = i + 1; } //foreach ...

    add-or-delete-table-.rar_Table

    本项目“add-or-delete-table-.rar_Table”聚焦于动态实现页面上表格的增删功能,允许用户根据需求添加或删除表格行,并且设置了一个关键规则:只有新添加的行才可删除。这一功能在数据录入、管理界面等场景中尤为...

    js 操作 增加删除Table行

    var newRow = table.insertRow(-1); // 在末尾插入新行 var cell1 = newRow.insertCell(0); var cell2 = newRow.insertCell(1); cell1.innerHTML = '新数据1'; cell2.innerHTML = '新数据2'; } ``` 在这...

Global site tag (gtag.js) - Google Analytics