gvSIG CE and SEXTANTE GIS Bug Tracker on MantisBT
Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000854gvSIG Community EditionGraphical User Interface (GUI)public2016-04-13 15:362017-12-18 16:20
Assigned Tobenducke 
PlatformOSOS Version
Product VersiongvSIG CE (trunk) 
Target VersiongvSIG CE 1.0.0Fixed in Version 
Summary0000854: TOC: Improve drag'n'drop behaviour for TOC layer items
DescriptionCurrently, it is not possible to drag a layer out of a group if the group is the only root level node in the TOC. We need to reserve some pixels at the very top and bottom of the TOC, so that it is always possible to drag nodes there (perhaps two invisible pseudo nodes that are only 4 pixels high?).

Also, we should modify the JTree cell renderer during dnd, so that the user has a good preview of what will happen:

- If the mouse cursor is hovering over the UPPER half of a layer node:
  Display a red line above the layer's TOC entry
- If the mouse cursor is hovering over the LOWER half of a layer node
  or its legend:
- If the mouse cursor is hovering over the UPPER half of a group node:
  Display a red line above the group's TOC entry
- If the mouse cursor is hovering over the LOWER half of a group node:
  Display a red line below the group's TOC entry, indented to the right.
- If the mouse cursor is hovering at the very TOP of the TOC pane: Display a red
  line immediately above the first TOC entry.
- If the mouse cursor is hovering at the very BOTTOM of the TOC pane: Display a
  red line immediately below the last TOC entry
  line immediately above the last TOC entry.

-- Perhaps it would also be a good idea to collapse all layer nodes during dnd!

(If there is only one layer in the TOC: disable dnd!)

We also need to add auto-scrolling during dnd for long TOCs.
TagsNo tags attached.
Attached Filespng file icon UI-layers-dnd-menu.png [^] (11,226 bytes) 2017-12-18 16:20

- Relationships

-  Notes
benducke (developer)
2016-06-26 13:28

Another good idea could be to add a visible "root" group node by default into which every layer (including group layers) is placed that is not placed into another group.

The name of this root group should always be "All layers".

This would have two effects:
- Possibility to select/modify all layers at once.
- Provide a d'n'd target for allowing any layer to be dropped (this would fix the problem of not being able to drop a layer out of a group if there are no other drop targets in the TOC).

--> Need to make sure that this works with previously saved project files.
benducke (developer)
2016-06-26 14:56

A benefit of implementing an "All layers" root would also be that we could implement a consistent and logical way of loading layers straight into a group.

All that is needed is to add a "target group" selector to the "Add Layer(s)" window. By default, this should be "All layers".
benducke (developer)
2017-12-18 16:20

Using a line indicator to allow users to drop items in-between ToC entries is a common concept, but it does not work very well in practice. The problem is that there is normally very little vertical space between existing entries and so picking the drop target becomes a pain in the a** mouse operation, especially on displays with high DPI.

So the better alternative would be to allow users to drop on an existing entry and then use a little pop-up menu to ask the user what the intention was:
- insert before
- insert after
- insert into group
- cancel?

In some cases, the intention might be clear, but in most it will be ambiguous and require interaction (see attached PNG with menu idea).

- Issue History
Date Modified Username Field Change
2016-04-13 15:36 benducke New Issue
2016-04-13 15:36 benducke Status new => assigned
2016-04-13 15:36 benducke Assigned To => benducke
2016-06-26 13:28 benducke Note Added: 0000799
2016-06-26 14:56 benducke Note Added: 0000800
2017-12-18 16:20 benducke File Added: UI-layers-dnd-menu.png
2017-12-18 16:20 benducke Note Added: 0000886

Copyright © 2000 - 2011 MantisBT Group
Hosted by Sourceforge.netPowered by Mantis Bugtracker