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()));
- Container: Hmm how do i get the Container in order to operate on it?
- How to do the move?
- Look at TreeViewDropHandler#moveNode
- 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
- Item (Page/Contact/Folder) moved [before|inside|after] fdsfds/fdafds/fdsfads/fdsfds/fdsfds
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?