Feature #14

ui: transform, result, form view

Added by Cambell Prince almost 5 years ago. Updated almost 5 years ago.

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.

Also available in: Atom PDF