Select All in Swing Tables

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.

Status

November 03, 2013: Feature is ready for integration.

Contributors

MJMcKay

Overview

Feature Request: https://adempiere.atlassian.net/browse/ADEMPIERE-241

The feature enhancement to the miniTable adds a select-all feature to the Swing tables similarly to the implementation in ZK. Clicking this checkbox in the header will select or deselect all the records in the table. This works across all implementations of the miniTable including info forms (product multi-select), create from forms (bank statements), payment selection, GL reconciliation and others.

Currently, only forms that had a "select all" button can select all.

SelectAllExample.png

Purpose

Purpose of the fix is:

  • to enable select all functionality in any table that has read/write IDColumn or boolean colums with multi-select capability.

References

Design Considerations

The table headers currently serve the function of identifying the columns and providing sort capabilities. The header of the selection column will behave differently and will not have sort capability. Clicking the column header will toggle the select/deselect and affect all rows in the table accordingly.

Assumptions

Dependencies

Constraints

The changes will not impact any existing functionality other than the sort of the selection columns.

Glossary

Functional Requirements

Functional team

  • Volunteers for analyzing:
  • Result of analysis:

User roles & profiles

No impact

Business process definition

Can now use info fields to look up info on closed records. Example: looking at an invoice that has an overdue payment, the business partner field will identify the business partner. Clicking the info button in the field will display info about that business partner including contact info.

User stories

Functional requirements based on business processes

User Interface Mockups

Acceptance criteria

All current processes and documents that use tables function as expected.

QA and test cases

The swing implementation was tested by hand.

Basic testing involves:

  • Open a form that has a table and that uses multi-selection. Search for and display some data.
  • Verify that the selection column has a checkbox in the header.
  • Click the header checkbox and verify that all records are selected
  • Click the header again and verify that all records are deselected
  • Click the header again to select all records and then deselect any record in a row in the table. The header checkbox should also be deselected.
  • Repeat the above steps, click on other areas of the rows to select/deselect records and verify that the header checkbox is deselected and remains deselected.
  • Select all the rows and verify that the form processes the data correctly.


Development infrastructure

Technical Requirements

Technical team

  • Volunteers for analyzing:
  • Result of analysis:

Data Requirements

Non-Functional Requirements

Open Discussion Items

Closed Discussion Items