QuickFilterPane in tables with many many columns.

This forum is used by users to request and discuss new product features. Please do not use this forum for technical support including bug reports.

Moderator: JIDE Support

Forum rules
Product suggestions only. Please do not use this forum for technical support including bug reports.

QuickFilterPane in tables with many many columns.

Postby vladimir.atehortua » Wed Sep 28, 2005 9:43 am

QuickFilterPane contains one list for each column of the quickfiltered JTable. Each list contains all possible values for that column.

currently it has a very poor layour for those lists: it puts them on a horizontal flow.

When one wants to allow filtering on many columns of the table (or one column is wide), the QuickFilterPane does not fit on a horizontal screen. If you put the QuickFilterPane inside a JScrollPane it just looks awful.

QuickFilterPane should have a more intelligent layout, for example using a jtabbed pane where each tab has for title the name of the column it filters. Maybe there could be an option to choose for which layour the developer wants, or it could default to flowlayout and switch to tabbedlayout if there are more than 4 columns to filter.
vladimir.atehortua
 
Posts: 1
Joined: Wed May 12, 2004 12:45 pm

Postby JIDE Support » Wed Sep 28, 2005 10:00 am

We just followed iTune to design the QuickFilterPane. Idealy we should allow user to determine how to layout those JLists. I'll consider your request and make it possible. Most likely it will be a method you can override. Something like this.

Code: Select all
createQuickFilterPane(JList[] lists);


By default, we will use JideSplitPane. You can override it to do whatever you want.

Thanks,
JIDE Software Technical Support Team
JIDE Support
Site Admin
 
Posts: 37219
Joined: Sun Sep 14, 2003 10:49 am

Postby JIDE Support » Fri Sep 30, 2005 9:21 am

In 1.8.4.02 we just released, we make your requirement possible. See http://www.jidesoft.com/history/ for more details. You can override two methods below to do what you want.

Code: Select all
    /**
     * Creates a panel for the list which is used as filter for a column.
     *
     * @param list the list which is used as filter for a column.
     * @param name the name of the list. If you specify displayName, the name will be the display name.
     *             Otherwise, it will be the corresponding column name.
     * @return a panel that contains the list. By default, the name is used in a JLabel and
     *         set as the column header of the JList.
     */
    protected Component createListComponent(JList list, String name);

    /**
     * Creates a component that contains all the lists.
     *
     * @param components the list of components. Each component contains a JList which is used as filter. The component
     *                   is created by {@link #createListComponent(javax.swing.JList, String)}.
     * @return a component that contains all the lists. By default, it will create a JideSplitPane and add those components
     *         into that split pane. Subclass can override to customize the layout. For example, if there are too many lists,
     *         you can add them into a multiple-row grid layout. Or you can even add then to tabbed pane.
     */
    protected Component createListsComponent(Component[] components);
JIDE Software Technical Support Team
JIDE Support
Site Admin
 
Posts: 37219
Joined: Sun Sep 14, 2003 10:49 am


Return to Product Suggestions

Who is online

Users browsing this forum: No registered users and 70 guests