Ext.js 4.x Dock-способное окно как вкладка - PullRequest
9 голосов
/ 23 марта 2012

Кто-нибудь видел реализацию или плагин для extjs, где вы можете «вытащить» или «закрепить» вкладки / окна так же, как в браузере?Возможно ли это вообще?

Поиск не выявил много, но я наткнулся на предложенное решение в более старой версии: http://www.sencha.com/forum/showthread.php?16842-Dockable-floatable-panels-in-ExtJS

@ DmitryB

Чтобы уточнить, вchrome, если у меня несколько вкладок в одном и том же окне, например: Before detaching tab

И я «перетаскиваю» одну из вкладок, она открывается в новом окне:

after detaching tab

Я думаю, вы могли бы сделать это, переместив содержимое панели вкладок в окно, но не знаете, как это сделать.

1 Ответ

1 голос
/ 19 апреля 2012

В двух словах:

- 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, однако эта концепция мне кажется относительно простой. Я бы сказал, что вы, вероятно, захотите сделать все возможное, чтобы это не было броским - если вам НЕ ДЕЙСТВИТЕЛЬНО ДЕЙСТВИТЕЛЬНО это нужно, я не буду беспокоиться о том, чтобы показывать содержимое панели при перетаскивании вкладки, а тем более показывать саму панель. , Просто дайте элементу табуляции перемещаться по экрану и копируйте его, когда он выходит за пределы безопасной зоны.

...