Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Scout/Concepts/Table"
m (Category changed) |
(→Description: add example from http://www.eclipse.org/forums/index.php/mv/msg/441016/989003/#msg_989003) |
||
Line 9: | Line 9: | ||
Table can contains a set of structured data: the structure of the entity is defined by the {{ScoutLink|Concepts|Column|columns}}. Each entity contained in the table is a {{ScoutLink|Concepts|TableRow| row}}. At the intersection of a column and a row is a {{ScoutLink|Concepts|Cell|Cell}}. A Cell describes how the value is represented (displayed text, colors, style, icon...). | Table can contains a set of structured data: the structure of the entity is defined by the {{ScoutLink|Concepts|Column|columns}}. Each entity contained in the table is a {{ScoutLink|Concepts|TableRow| row}}. At the intersection of a column and a row is a {{ScoutLink|Concepts|Cell|Cell}}. A Cell describes how the value is represented (displayed text, colors, style, icon...). | ||
− | + | == Example == | |
− | + | Imagine that you want to have a table of persons that are structured as followed: | |
* Name (String) | * Name (String) | ||
* First name (String) | * First name (String) | ||
Line 17: | Line 17: | ||
A such table needs to contains 4 columns : | A such table needs to contains 4 columns : | ||
− | * NameColumn a {{ScoutLink|Concepts|StringColumn|String Column}} | + | * <code>NameColumn</code> a {{ScoutLink|Concepts|StringColumn|String Column}} |
− | * FirstNameColumn a {{ScoutLink|Concepts|StringColumn|String Column}} | + | * <code>FirstNameColumn</code> a {{ScoutLink|Concepts|StringColumn|String Column}} |
− | * AgeColumn a {{ScoutLink|Concepts|IntegerColumn|Integer Column}} | + | * <code>AgeColumn</code> a {{ScoutLink|Concepts|IntegerColumn|Integer Column}} |
− | * | + | * <code>BirthDateColumn</code> a {{ScoutLink|Concepts|DateColumn|Date Column}} |
− | {{ | + | Here is how this table looks like in the {{ScoutLink|SDK|Explorer View|Explorer View of the SDK}}: |
+ | |||
+ | [[Image:Scout sdk example table.png]] | ||
=== Access to the data === | === Access to the data === | ||
Line 31: | Line 33: | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | === Add a rows in the table === | ||
+ | The table API (client-side) offers different ways to add rows in the table: | ||
+ | |||
+ | 1: One row, with type check on set value. (you get compile error if you change something in your table): | ||
+ | <source lang="java"> | ||
+ | ITableRow row = getTable().createRow(); | ||
+ | getTable().getNameColumn().setValue(row, "Smith"); | ||
+ | getTable().getFirstNameColumn().setValue(row, "John"); | ||
+ | getTable().getAgeColumn().setValue(row, 42); | ||
+ | getTable().getBirthDateColumn().setValue(row, DateUtility.parse("14.12.1970", "dd.MM.yyyy")); | ||
+ | getTable().addRow(row, true); | ||
+ | </source> | ||
+ | The second parameter correspond to "mark as inserted". <code>false</code> (default value - if the parameter is omitted) the row will be insterted with a row Status: <code>ITableRow.STATUS_NON_CHANGED</code>. If <code>true</code>, the row will be inserted with the status <code>ITableRow.STATUS_INSERTED</code>. | ||
+ | |||
+ | 2: One row as Object[] array. | ||
+ | <source lang="java"> | ||
+ | getTable().addRowsByArray( | ||
+ | new Object[]{"Johnny", "Mcgee", 26, DateUtility.parse("25.05.1986", "dd.MM.yyyy")}, | ||
+ | ITableRow.STATUS_INSERTED); | ||
+ | </source> | ||
+ | The second parameter indicate the status of the new row. <code>ITableRow.STATUS_INSERTED</code> is the default status (it could be omitted in this example). | ||
+ | |||
+ | 3: Multiple rows as Object[][] array. | ||
+ | <source lang="java"> | ||
+ | getTable().addRowsByMatrix(new Object[][]{ | ||
+ | new Object[]{"Isabella", "Barton", 32, DateUtility.parse("21.01.1980", "dd.MM.yyyy")}, | ||
+ | new Object[]{"Dana", "Reyes", 56, DateUtility.parse("16.08.1956", "dd.MM.yyyy")} | ||
+ | }, ITableRow.STATUS_INSERTED); | ||
+ | </source> | ||
+ | The second parameter indicate the status of the new row. <code>ITableRow.STATUS_INSERTED</code> is the default status (it could be omitted in this example). | ||
+ | |||
+ | For method 2 and 3 you need to be ensure that the array elements order match with the order of your table columns. | ||
== TODO == | == TODO == |
Revision as of 05:33, 7 December 2012
The Scout documentation has been moved to https://eclipsescout.github.io/.
A table is data structure that can be represented in a The Scout documentation has been moved to https://eclipsescout.github.io/. or a The Scout documentation has been moved to https://eclipsescout.github.io/..
- implements: The Scout documentation has been moved to https://eclipsescout.github.io/.
- extends: The Scout documentation has been moved to https://eclipsescout.github.io/.
Contents
Description
Table can contains a set of structured data: the structure of the entity is defined by the The Scout documentation has been moved to https://eclipsescout.github.io/.. Each entity contained in the table is a The Scout documentation has been moved to https://eclipsescout.github.io/.. At the intersection of a column and a row is a The Scout documentation has been moved to https://eclipsescout.github.io/.. A Cell describes how the value is represented (displayed text, colors, style, icon...).
Example
Imagine that you want to have a table of persons that are structured as followed:
- Name (String)
- First name (String)
- Age (Integer)
- Date of birth (Date)
A such table needs to contains 4 columns :
-
NameColumn
a The Scout documentation has been moved to https://eclipsescout.github.io/. -
FirstNameColumn
a The Scout documentation has been moved to https://eclipsescout.github.io/. -
AgeColumn
a The Scout documentation has been moved to https://eclipsescout.github.io/. -
BirthDateColumn
a The Scout documentation has been moved to https://eclipsescout.github.io/.
Here is how this table looks like in the The Scout documentation has been moved to https://eclipsescout.github.io/.:
Access to the data
To access a value of a table, the common pattern is to go throw the column. For example if you want to access the age of a person, at a precise row index r, the code is:
private Integer getAgeOfPersonAtRow(int r){ return getTable().getAgeColumn().getValue(r); }
Add a rows in the table
The table API (client-side) offers different ways to add rows in the table:
1: One row, with type check on set value. (you get compile error if you change something in your table):
ITableRow row = getTable().createRow(); getTable().getNameColumn().setValue(row, "Smith"); getTable().getFirstNameColumn().setValue(row, "John"); getTable().getAgeColumn().setValue(row, 42); getTable().getBirthDateColumn().setValue(row, DateUtility.parse("14.12.1970", "dd.MM.yyyy")); getTable().addRow(row, true);
The second parameter correspond to "mark as inserted". false
(default value - if the parameter is omitted) the row will be insterted with a row Status: ITableRow.STATUS_NON_CHANGED
. If true
, the row will be inserted with the status ITableRow.STATUS_INSERTED
.
2: One row as Object[] array.
getTable().addRowsByArray( new Object[]{"Johnny", "Mcgee", 26, DateUtility.parse("25.05.1986", "dd.MM.yyyy")}, ITableRow.STATUS_INSERTED);
The second parameter indicate the status of the new row. ITableRow.STATUS_INSERTED
is the default status (it could be omitted in this example).
3: Multiple rows as Object[][] array.
getTable().addRowsByMatrix(new Object[][]{ new Object[]{"Isabella", "Barton", 32, DateUtility.parse("21.01.1980", "dd.MM.yyyy")}, new Object[]{"Dana", "Reyes", 56, DateUtility.parse("16.08.1956", "dd.MM.yyyy")} }, ITableRow.STATUS_INSERTED);
The second parameter indicate the status of the new row. ITableRow.STATUS_INSERTED
is the default status (it could be omitted in this example).
For method 2 and 3 you need to be ensure that the array elements order match with the order of your table columns.
TODO
Load the data
in the page or in the field
add row
Display/Hide the data
Table provides support to sort, to filter how the content is represented.
Selection
Table also manages selection.
properties
Menu
Table can also contains Menus, to provide a possibility to trigger some actions (Menus are displayed in the context menu of the table).
Checkable
Summary Cell, Primary Columns
See Also
- The Scout documentation has been moved to https://eclipsescout.github.io/.
- The Scout documentation has been moved to https://eclipsescout.github.io/.
- The Scout documentation has been moved to https://eclipsescout.github.io/.
- The Scout documentation has been moved to https://eclipsescout.github.io/.
- The Scout documentation has been moved to https://eclipsescout.github.io/.