DragDropLayouts
Drag & Drop for core layouts
Currently when you want to drag and drop between layouts you will have to wrap the source component in a DragAndDropWrapper. Many times this is adequate but it tends to add some complexity to the code and yet another element in the DOM. It would be much nicer if the layouts would handle this for you.
To solve this issue I have extended the core layouts and implemented the necessary functionality so the layouts are valid drag sources and drop targets. This means that in your code you don't have to concern yourself with the drag and drop when adding components, only enable drag&drop in the layout and you are ready to go!
Currently supported layouts are:
- AbsoluteLayout (DDAbsoluteLayout)
- HorizontalLayout (DDHorizontalLayout)
- VerticalLayout (DDVerticalLayout)
- GridLayout (DDGridLayout)
- HorizontalSplitPanel (DDHorizontalSplitPanel)
- VerticalSplitPanel (DDVerticalSplitPanel)
- TabSheet (DDTabSheet)
- Accordion (DDAccordion)
- CssLayout (DDCssLayout)
- FormLayout (DDFormLayout)
- Panel (DDPanel)
Please see the version table below to decide which version to use in your project:
Vaadin | DragDropLayouts |
6.x | 0.x |
7.0.x+ | 1.0.x |
7.2.x+ | 1.1.x |
7.6.x+ | 1.2.x |
7.7.x+ | 1.3.x |
8.x | 1.4.x |
Sample code
// Create a absolute layout DDAbsoluteLayout layout = new DDAbsoluteLayout(); // Enable dragging components layout.setDragMode(LayoutDragMode.CLONE); // Enable dropping components layout.setDropHandler(new DefaultAbsoluteLayoutDropHandler());
Links
Compatibility
Was this helpful? Need more help?
Leave a comment or a question below. You can also join
the chat on Discord or
ask questions on StackOverflow.
Version
Vaadin 8 support.
- Released
- 2016-12-16
- Maturity
- STABLE
- License
- Apache License 2.0
Compatibility
- Framework
- Vaadin 8.0+
- Vaadin 6.5+ in 0.4
- Vaadin 7.0+ in 1.0.0.alpha1
- Vaadin 7.2+ in 1.1
- Vaadin 7.6+ in 1.2
- Vaadin 7.7+ in 1.3.2
- Browser
- Firefox
- Safari
- Google Chrome
- iOS Browser
- Android Browser
- Internet Explorer
- Internet Explorer
DragDropLayouts - Vaadin Add-on Directory
Drag & Drop for core layoutsVaadin | DragDropLayouts |
6.x | 0.x |
7.0.x+ | 1.0.x |
7.2.x+ | 1.1.x |
7.6.x+ | 1.2.x |
7.7.x+ | 1.3.x |
8.x | 1.4.x |
Online Demo
Author Homepage
Issue Tracker
DragDropLayouts version 0.4
Support for the most common layouts:
AbsoluteLayout
HorizontalLayout
VerticalLayout
GridLayout
Please note that you will need a recent (08.12.2010->) nightly build of Vaadin 6.5 for this to work!
DragDropLayouts version 0.4.1
- Fixes issue with not being able to move layouts by dragging on its components when components are not in a layout with dragging enabled. (see "Dragging layouts" in the demo app for an example).
- Currently dragging layouts is not supported in IE due to some quirks, looking in to that later.
- Fixes issue with extraneous element in Horizontal/Vertical layouts
- Uses DomHandlers instead of NativePreview which caused some problems with the core drag&drop manager.
DragDropLayouts version 0.4.2
- Fixes layout dragging in IE8
- Adds support for drag&drop in SplitPanel
DragDropLayouts version 0.4.3
Adds Drag and Drop support for TabSheet
DragDropLayouts version 0.4.4
Drag & Drop for Accordion
DragDropLayouts version 0.4.5
Bugfix release
DragDropLayouts version 0.4.6
Adds support for dragging Iframe based components like RichTextArea and Embedded. If you do not want this behavior then it can be disabled by calling setShim(false).
DragDropLayouts version 0.5
Beta release.
DragDropLayouts version 0.5.1
Fixes issue with sub-window shadow not being removed when closing window and using ddlayouts.
DragDropLayouts version 0.5.2
Fixes issue with dynamically changing the drag mode or drop ratios after application has loaded.
DragDropLayouts version 0.6
Adds support for DragFilters which gives the developer better control over which components in a layout are draggable and which are not.
DragDropLayouts version 0.6.1
- Fixes Tabsheet issues with Vaadin 6.7.x
- Makes DragFilter serializable (Thank you Ralf Wiebicke for the patch)
DragDropLayouts version 0.6.2
The DragDropLayouts addon has relocated to a Google Code Git repository!
This means it is now possible to report issues with DragDropLayouts directly in its issue tracker and download the source code from the Git repository.
This also means that the package names have changed to reflect the relocation, so you will need to fix the imports when updating. This release only affects the package names and nothing else.
DragDropLayouts version 0.6.3
Fixes some more Vaadin 6.7 compatibility issues with Tabsheet/Accordion.
DragDropLayouts version 0.7
Adds drag and drop support to CssLayout
DragDropLayouts version 0.7.1
Added support for mobile browsers. (Touch event support)
DragDropLayouts version 0.7.3
Fixes Button IE9 issue mentioned in comments as well as TextField focus issues.
DragDropLayouts version 0.8
This release adds support for FormLayout
DragDropLayouts version 0.8.1
- Disabling layout using setEnabled(false) now disables the dragging and dropping as well (issue #7)
- Adds new drag mode (LayoutDragMode.CAPTION) to enable restricting component dragging to their captions only (issue #8)
- Fixes bug where changing dragmode to LayoutDragMode.NONE did not disable dragging (issue #10)
DragDropLayouts version 1.0.0.alpha1
I am happy to announce the first Vaadin 7 compatible version of DragDropLayouts.
A lot has been rewritten to take use of the new layouts and communication mechanism in Vaadin 7 so there is a good chance there still might be some bugs in this release. Please try this version and if you do find any issues the please report them to the issue tracker so they can be addressed.
DragDropLayouts version 1.0.0.alpha2
Fixes issues with onLoad/onUnload handler registrations. Thanks to Rushan Gilmullin for the patch!
Also fixes issue with text fields not being selectable when in a layout with layout filters.
DragDropLayouts version 0.8.2
Maintenance release with latest bugfixes.
DragDropLayouts version 1.0.0.alpha3
Fixes critical issue where Tabsheet and Accordion tabs could no longer be dragged. Also fixes issues with dragging panel in caption drag mode.
DragDropLayouts version 1.0.0.alpha4
Fixes issue with not being able to drag NativeSelect, Combobox and OptionGroup
DragDropLayouts version 1.0
First stable version for Vaadin 7.
DragDropLayouts version 1.0.1
Adds backwards compatibility with Java 6
DragDropLayouts version 1.1
- HTML5 text drop support in all layouts
- Ability to use another component as a drag image
DragDropLayouts version 1.1.1
- HTML5 text drop support in all layouts
- Ability to use another component as a drag image
DragDropLayouts version 1.1.2
Support for 7.4
DragDropLayouts version 1.1.3
Support for 7.4+
DragDropLayouts version 1.2
Adds support for Vaadin 7.6.
DragDropLayouts version 1.2.1
null
DragDropLayouts version 1.2.2
null
DragDropLayouts version 1.3.1
Support for Vaadin 7.7.x
DragDropLayouts version 1.3.2
Fixes the widgetset inherit issue in 1.3.1 https://github.com/johndevs/dragdroplayouts/issues/69
DragDropLayouts version 1.4
Vaadin 8 support.
DragDropLayouts version 1.4.1
* Built with Framework 8.0.0.rc1
* Support for FW8 compatibility layouts
DragDropLayouts version 1.4.2
Built with Framework 8.0.0
DragDropLayouts version 1.3.3
Fix drag hover timer issues