Page tree
Skip to end of metadata
Go to start of metadata

 

UX Concept: https://s3-eu-west-1.amazonaws.com/uploads-eu.hipchat.com/20450/95112/74vjo63e8tcap03/Move%20-%20two%20trees.pdf

Still to check

  • Can i just inject the workbenchPresenter? NO.
  • Should i have 2 actions?
    • MoveNodeAction - just does it, optional notification.
    • AbstractChooseDialogAction
    • MoveChooseDialogAction 

Implementation
 

  • Create move Action
  • Add move action to Tree view.
  • Action opens choose dialog into current App
    • (is there a clever way to dynamically open the choose dialog into own application?
  • Choose dialog
    • Title: Choose destination
    • Has multiple buttons
      • Cancel 
      • Move Before
      • Move Inside
      • Move After
  • Perform the move:
    • Look at TreeViewDropHandler#moveNode
      • How to do the move?
        • Container: Hmm how do i get the Container in order to operate on it?
          • new HierarchicalJcrContainer(workbench);

          • Can i get the workbench from the app?
          • ANSWER inject the subappContext and get it from that. BUT then we need to move action to contentapp - but that's OK right?
        • Directly on the Session
          • node.getSession().getWorkspace().copy(node.getPath(), newPath);

          • jcrItem.remove();

          • Session.move
          • Workspace.move
          • But then also requires a reordering.
        • Just send an event - and someone catches and operates on it?
          • BrowserPresenter.addhandler ItemMovedEvent()
          • eventBus.fireEvent(new ContentChangedEvent(item.getWorkspace(), item.getItemId()));


             
  • Notification displayed after successful move
    • Item (Page/Contact/Folder) moved [before|inside|after] fdsfds/fdafds/fdsfads/fdsfds/fdsfds
      • With a link Go to: /fdsfds/fdsfds/fds/fds/fds/fd/s//fdsfdsfds
    • Should this be 

Ideas

Should we create a ChooseDialogAction which is like the ConfirmAction - where you pass it which action to operate on the chosen item.

Then there could be a Move action which takes some parameters.

Problems

  • Scrolling a table to a specific item:
    • This comment is in ListViewImpl#select
    • // do not #setCurrentPageFirstItemId because AbstractJcrContainer's index resolution is super slow.
    • Would it be faster to use 

      table.setCurrentPageFirstItemIndex(newIndex)

    • Could we get the index in an effcient way - for example could we get the index from the move dialog?

Does not seem to work even if I try inefficient method.

Researching and found this.

Noticed that pageLenght in table is still 15 which is not accurate for the table. - that is just the default.

http://stackoverflow.com/questions/7946031/vaadin-set-full-height-of-tab-content

// This will return current rendered rows count int shownRowsCount = table.getVisibleItemIds().size(); table.setPageLength(shownRowsCount);
But I doubt it because I just tried resizzing the page so that the treetable is 15 rows high. No matter what it seems not to scroll the table.

Note 

table#refreshRenderedCells gets called tons of times for each time i click on a favorite. 

  • Partly because TreeViewImpl.select() gets called twice.

Question

Can it operate on multiple items?

  • No labels