Feature #14
ui: transform, result, form view
| Status: | New | Start: | ||
|---|---|---|---|---|
| Priority: | High | Due date: | ||
| Assigned to: | Cambell Prince | % Done: | 0% |
|
| Category: | application | Spent time: | - | |
| Target version: | V2.0.x | |||
| Resolution: |
Description
3 pane view
- 2 x schema plus transform
- Result view of exceptions
- Form view of data
Should hitting the "Transform" cause a warning dialog to pop up if it would overwrite an existing output file (which the user may have already edited)?
The transform engine needs to have a target schema associated it, since we don't really have a use case where the user is transforming data without specifying what the data should look like after the transform. The source schema is less essential, but I (Jon) believe that a transform is potentially dangerous if applied to a tree that has not been validate against a schema that is identical to the target schema except for the transformation.
Because we can't guarantee that a transform should be applied to 100% of the records that it matches, the user needs the option to step through one by one, similar to a Find/Replace dialog having a "Replace" button in addition to a "Replace All" button. One alternative would be to apply all and then give the user a list of all modified records, but that is less satisfactory because the user must review all of them in one sitting or else reject them all, whereas a stepping-through approach can be safely aborted halfway through.
Transforms needed:
- infer-parent (may be included in the schema and hardcoded)
- reorder-siblings (target schema would require one order)
- swap-with-parent (e.g. swap sn with ps; non-trivial)
- rename-marker
- find-replace-value
- delete-record (essentially a record filter)
- delete-value (a field/object filter)
- copy (the identity transform)
Some of these can be done Toolbox (find-replace-value is fully supported; delete-record and delete-value can be done via filtered export). Others can be done in Notepad (rename-marker; Toolbox can do this for all but the record marker). Presumably these transforms are of lower priority, just as range sets are a low priority for our schemas.
History
Updated by Jon C - almost 5 years ago
The transform engine needs to have a target schema associated it, since we don't really have a use case where the user is transforming data without specifying what the data should look like after the transform. The source schema is less essential, but I (Jon) believe that a transform is potentially dangerous if applied to a tree that has not been validate against a schema that is identical to the target schema except for the transformation.
Because we can't guarantee that a transform should be applied to 100% of the records that it matches, the user needs the option to step through one by one, similar to a Find/Replace dialog having a "Replace" button in addition to a "Replace All" button. One alternative would be to apply all and then give the user a list of all modified records, but that is less satisfactory because the user must review all of them in one sitting or else reject them all, whereas a stepping-through approach can be safely aborted halfway through.
Transforms needed:- infer-parent (may be included in the schema and hardcoded)
- rename-marker
- find-replace-value
- delete-record (essentially a record filter)
- delete-value (a field/object filter)
- copy (the identity transform)
Some of these can be done Toolbox (find-replace-value is fully supported; delete-record and delete-value can be done via filtered export). Others can be done in Notepad (rename-marker; Toolbox can do this for all but the record marker). Presumably these transforms are of lower priority, just as range sets are a low priority for our schemas.
Updated by Jon C - almost 5 years ago
Replying to [comment:2 jcoombs]:
Oops, I meant to put this in the description. I'll update it there.