Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Validate table selection POC approach. #6113

Closed
jodator opened this issue Jan 22, 2020 · 1 comment
Closed

Validate table selection POC approach. #6113

jodator opened this issue Jan 22, 2020 · 1 comment
Assignees
Labels
package:engine package:table type:task This issue reports a chore (non-production change) and other types of "todos".

Comments

@jodator
Copy link
Contributor

jodator commented Jan 22, 2020

Provide a description of the task

This task considers finishing the basic table selection concept and plugin. As the plugin itself can be unusable at this stage the feature will have its own integration branch (although switch master to master is desirable).

However the engine part of this PR might be integrated to master if changes do not break anything.

@jodator
Copy link
Contributor Author

jodator commented Jan 23, 2020

The table selection POC has two PRs:

  1. The engine part PR: I/3202: Enable multi block selection. ckeditor5-engine#1817

    It introduces:

    • selection post-fixer changes (to allow multi-range selection)
    • MouseObserver has added another event types: 'mousemove', 'mouseup', 'mouseleave' alongside 'mousedown'. Could be moved to another type of observer (dunno the name as possible DnD would use such events also).
    • a SelectionRendererObserver that stops selection rendering during selection drag changed to fake selection
    • view Renderer changes - stop rendering selection changed to fake selection
    • minor set of tests (some are failing).

    The solution needs to be triaged to ensure I didn't forget about anything as pausing the selection rendering subject comes and goes (AFAIR last time it was mentioned together with IME changes). After using fake selection mechanism the selection rendering is not needed. It turned out that I was using it wrongly before. The key is to use 'low' priority when setting the fake selection to prevent other selection change listeners from mangling with the selection.

    Next steps:

    • Create MouseObserver PR to the engine (can be merged to master any time)
    • Create selection post fixer changes PR that enables multi-range selection (it may be postponed)
  2. The table part PR: I/3202 ckeditor5-table#228:

    It introduces:

    • TableSelection plugin - manages selection handling for mouse over a table - needs tests
    • MergeCells command - base implementation - might be extracted to own PR/branch and work to be finished later on
    • changes to some commands (failing tests after changes in multi-range selection) - might need fix together with TableSelection PR
    • TableEditing changes tableCell to isObject instaed of isLimit in the schema.
    • TableUI uses MergeCells command instead of current 4
    • manual test for table selection

    Next steps:

  3. Related issues

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
package:engine package:table type:task This issue reports a chore (non-production change) and other types of "todos".
Projects
None yet
Development

No branches or pull requests

1 participant