JDK-4304078 : Add GetList to ComboModel(Speed up Large LookupList)
  • Type: Enhancement
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 1.2.2
  • Priority: P5
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic
  • CPU: generic
  • Submitted: 2000-01-12
  • Updated: 2001-11-14
  • Resolved: 2001-11-14
Related Reports
Duplicate :  
Description

Name: mc57594			Date: 01/11/2000


java version "1.3beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3beta-O)
Java(TM) HotSpot Client VM (build 1.3beta-O, mixed mode)

Need a way to speed up load of displayLists in JComboboxes.

We have some Lookup's that are in the order of 20,000 elements.
The load of the List takes in the order of 10 seconds(200MHz PPro).
The time is spent copying the display list.

  Solution:
Add the following method(s) to ComboModel

    List getDisplayList()
    
This means that the ComboModel controls the DisplayList used by
the UI delegate.

========================================================
Date: Mon, 10 Jan 2000 23:17:24 -0600 (EST)
From: JR Andreassen <###@###.###>
To: chamness <###@###.###>
Subject: Re: (Review ID: 99799) Add GetList to ComboModel(Speed up Large LookupList)

First off, let me say thanks for responding. I appriciate
you guy's taking the time to look my/our issue.

OK... Here it is.
  
   We make Data-Entry applications which often contain
a lot of Lookups. The problem is that the content of the 
lookups is not static. We load the LKUP Tables from a
JDBC source and put them into our own list/vectors that are 
referenced by the ComboModel. 
 The problem arrises when we load a "new"/Cloned panel. 
The UI delegate(BasicCombo) Synchronizes the "Display" list.
In essence it creating a new list(more or less a dup) of the 
one we have in the ComboModel.
  That's just fine when the lists are small. But when they are
in the order of thousands, it takes a while.

 So, what I propose is that the UI delegate should ask the
ComboModel for the List, thus saving the whole copy procedure.
You can make the method return null by default and do it
the "Old-Fashion" way. Or as in our case, we would give you a
valid List, all ready-to-go..

 On 1.3(or 1.2.3), I am using it.. It's concidderably faster.
The hot-spot makes a huge difference. 
I'm anxiousely(sp?) awaiting the release.
But, 1.3 doesn't solve the problem though, it's still too slow.

  Thanks again
    JR  

(Review ID: 99799) 
======================================================================

Comments
EVALUATION A solution has been implemented for 1.4 in which a prototye value may be specified. Most of the bottleneck of loading a combo box is figuring out how large to layout the combo popup based on the width of the elements. For more details see RFE 4289100. ###@###.### 2001-11-13
13-11-2001