United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-4656461 : Cannot Ctrl-Shift-Click to create disjoint selection interval in list

Details
Type:
Enhancement
Submit Date:
2002-03-21
Status:
Resolved
Updated Date:
2005-01-15
Project Name:
JDK
Resolved Date:
2005-01-15
Component:
client-libs
OS:
linux
Sub-Component:
javax.swing
CPU:
x86
Priority:
P4
Resolution:
Fixed
Affected Versions:
1.4.0
Fixed Versions:

Related Reports
Backport:
Backport:

Sub Tasks

Description

Name: jk109818			Date: 03/21/2002


FULL PRODUCT VERSION :
java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)


Observed on RedHat Linux 6.1, JDK 1.4.0 and 1.3.1_02, kernel
2.2.12, Enlightenment window manager. Same on Win2K/1.4.0.

A DESCRIPTION OF THE PROBLEM :
In Metal L&F, I would expect that the gesture
Ctrl-Shift-Click on a list or tree would extend a selection
from the previously selected item (like Shift-Click does)
without clearing other disjoint selections (like Ctrl-Click
does). At least on Windows, this is normal behavior, and I
expected it to work in Metal L&F as well, but it did not.

Compare NetBeans/Forte for Java bug, closed as a Swing
problem:

http://www.netbeans.org/issues/show_bug.cgi?id=3714

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run demo program. Click "one" in the list. Ctrl-click
"three". Ctrl-shift-click "five".

EXPECTED VERSUS ACTUAL BEHAVIOR :
Expected: one, three, four, and five are selected. Actual:
one, three, and five are selected, but four is not - same as
if the last step had been to ctrl-click "five" without the
Shift modifier.

This bug can be reproduced always.

---------- BEGIN SOURCE ----------
import javax.swing.*;
public class TreeSelectionTest {
    public static void main(String[] args) {
        JTree tree = new JTree(new Object[] {
            "one",
            "two",
            "three",
            "four",
            "five",
        });
        JList list = new JList(new Object[] {
            "one",
            "two",
            "three",
            "four",
            "five",
        });
        JFrame f = new JFrame("Test tree selection");
        f.getContentPane().add(new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, tree,
list));
        f.pack();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}

---------- END SOURCE ----------

CUSTOMER WORKAROUND :
If no long ranges (only short ones) need be selected, just
use Ctrl-click for every item. If only one long range need
be selected, do it first with Shift-click, then add
individual items with Ctrl-click. If more than one long
range needs to be selected, you are out of luck.
(Review ID: 144376) 
======================================================================

                                    

Comments
EVALUATION

Yes, it would be nice to implement this behavior.
###@###.### 2003-08-05

Fix is in progress. Table, tree, and list will be changed to support this type of selection. The fix involves minor changes in BasicListUI, BasicTableUI, and BasicTreeUI to handle the CTRL-SHIFT combination. In addition, the spec of JTable.changeSelection will change slightly.
###@###.### 2005-1-05 16:32:03 GMT
                                     
2005-01-05



Hardware and Software, Engineered to Work Together