Ext.ux.panel.DDTabPanel extends Ext.TabPanel to support drag and drop operations to re-order the tabs.
This extension is the result of the work done in the topic "Draggable Panel in a TabPanel". When I started using the code in that thread, I found that clicking a tab to activate it didn't work any longer, you had to start dragging for it to activate. After some investigation, this was fixed by adding an onMouseDown event to activate the tab. As suggested by mabello, I decided to publish this great piece of work by giving it its own topic and by publishing it on the UX Repository.
This extension is based on the code of thommy and rizjoj and was then fixed, polished and published by myself.
JS File: http://extjs-ux.org/repo/authors/Mat.../DDTabPanel.js
UX Repository: http://extjs-ux.org/docs/index.html?...nel.DDTabPanel
Okay, it's in the repository now. Some small adjustments to the documentation have been done which will be reflected in the repository in approximately an hour (the interval between two repository updates).
This thread is open for suggestions, questions, bug reports and appreciations! :)
- The tab panel can't be made stateful.
It'd be very hard to do this as the default tab panel itself doesn't seem to support this either. Seen from a developer's point, it would be very hard too as some tabs are loaded dynamically through AJAX requests and such, how would one save those in a cookie?
- Allow tabs to be dropped on another tab panel by joining the drag and drop sources and targets.
- 1.0.7 (Jan 16, 2009)
- Implemented some more code optimizations from mystix.
- 1.0.6 (Jan 10, 2009)
- 1.0.5 (Dec 31, 2008)
- Tabs with an iconCls now have a left padding on the ghost text.
- 1.0.4 (Dec 19, 2008)
- Fixed bug with west region and code is much cleaner now. :)
- 1.0.3 (Dec 19, 2008)
- Fixed activeTab configuration not working.
- Added configuration option and method for tabs to enable/disable drag and drop on a per-tab basis.
- 1.0.2 (Dec 18, 2008)
- Fixed conflict between multiple DDTabPanels.
- 1.0.1 (Dec 18, 2008)
Thanks for doing that.
You made an excellent job.
Keep up the good work!
Thanks for share,
What about statefull panel order ?
Very good remark.
Originally Posted by gthe
It seems like this doesn't work properly. I also found that multiple DDTabPanels seem to interfere with each other when dragging a tab. Further investigation will follow in how to solve these problems.
+10. great job. =D>
p.s. a draggable option on each "tab" would be good.
An update has been sent to the SVN (version 1.0.2) which should fix the conflict between multiple DDTabPanels. This was caused by the class using the same drop target identifier for all panels and the helper class selecting the wrong drop header. Well, that's what you get when you try to get the most out of a quickly written extension I guess. Maintaining this thing sounds a lot more creepy now... :P But I can handle it. ;)
Thank you. :)
Originally Posted by mystix
That is a great idea indeed, I'll certainly have a look at it tomorrow.
Thank you very much for this extension!
There is, unfortunately, a problem with tabs dragging when 'west' region is set. Something is wrong with calculating X offset where to put a dragged tab. Please try adding this to the first window items in the demo file and try it yourself:
Moreover, I have the issue with drag "tip" rendering when tab has an icon set by iconCls property (see attached screenshot).
I would be very grateful if you could fix these issues.
Doesn't seem to work in IE. This is a great extension though.