Is it possible to get the vertical/horizontal scroll bar visible when the SWT List is in disabled state?

StackOverflow https://stackoverflow.com/questions/22450462

  •  15-06-2023
  •  | 
  •  

Question

I have a list in a composite and is defined in the following way :

List list = new List(composite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);

when the list is in disabled state (list.setEnabled(false);), and the values inside the list are more than the height of the list, is there any way to make the vertical scroll bar enabled?

Was it helpful?

Solution

The scroll bars are handled by the OS. Consequently, the OS will decide when to show/hide the scroll bars and when to let the user use them. You can't influence that.

There is a very similar question here.


However, you can wrap your List in a ScrolledComposite. This way, you can still scroll even if the List is disabled:

public static void main(String[] args)
{
    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());

    final ScrolledComposite composite = new ScrolledComposite(shell, SWT.V_SCROLL);
    composite.setLayout(new FillLayout());

    List list = new List(composite, SWT.NONE);

    for (int i = 0; i < 20; i++)
    {
        list.add("Item: " + i);
    }

    composite.setContent(list);
    composite.setExpandHorizontal(true);
    composite.setExpandVertical(true);
    composite.setMinSize(list.computeSize(SWT.DEFAULT, SWT.DEFAULT));
    list.setEnabled(false);

    shell.pack();
    shell.setSize(100, 150);
    shell.open();
    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

Looks like this:

enter image description here

OTHER TIPS

Context

I had encountred this issue last week i had to enable scrollbars in a disabled table view to prevent users from checking items checkboxes.

Solution

Since we can't enable vertical and horizontal scrollbars in disabled table view, i just prevent user from checking the checkboxes when he is not supposed to, and i also make item on gray foreground when the table is supposed to be disabled.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top