В двух словах:
- Make the tabs draggable, watch for the drag event and mark the
tab-strip as your "safe" zone
- When a tab is dragged and then "dropped" (as in, the drag event ends) you do a check:
> Is the tab within the safe area?
No: Create a new Ext.Window at the x/y of the mouse, copy the components/HTML
out of the original panel and insert them into the new window. Destroy the
original panel.
Yes: Do nothing.
К сожалению, я до сих пор не совсем понимаю, как изучать D & D в ExtJS3, поэтому я не могу предложить какую-либо помощь по этому и реальному коду, касающемуся ExtJS 4, однако эта концепция мне кажется относительно простой. Я бы сказал, что вы, вероятно, захотите сделать все возможное, чтобы это не было броским - если вам НЕ ДЕЙСТВИТЕЛЬНО ДЕЙСТВИТЕЛЬНО это нужно, я не буду беспокоиться о том, чтобы показывать содержимое панели при перетаскивании вкладки, а тем более показывать саму панель. , Просто дайте элементу табуляции перемещаться по экрану и копируйте его, когда он выходит за пределы безопасной зоны.