JList and ListModel have type parameters. Let's use 'em. (I'll fix the one

client that lives in the bowels of Yohoho.)
This commit is contained in:
Michael Bayne
2011-04-08 18:04:32 -07:00
parent 6b86064c33
commit 9059d5ac4d
@@ -5,6 +5,7 @@
package com.samskivert.swing; package com.samskivert.swing;
import java.util.List;
import javax.swing.JLabel; import javax.swing.JLabel;
import javax.swing.JList; import javax.swing.JList;
import javax.swing.JPanel; import javax.swing.JPanel;
@@ -15,7 +16,7 @@ import javax.swing.ListModel;
* can be collapsed. Each section of a list uses a {@link JList} instance * can be collapsed. Each section of a list uses a {@link JList} instance
* to render the section elements. * to render the section elements.
*/ */
public class CollapsibleList extends JPanel public class CollapsibleList<E> extends JPanel
{ {
/** /**
* Constructs an empty collapsible list. * Constructs an empty collapsible list.
@@ -31,15 +32,14 @@ public class CollapsibleList extends JPanel
} }
/** /**
* Constructs a collapsible list with the supplied section labels and * Constructs a collapsible list with the supplied section labels and models.
* models.
*/ */
public CollapsibleList (String[] sections, ListModel[] models) public CollapsibleList (List<String> sections, List<ListModel<E>> models)
{ {
this(); // set up our layout manager this(); // set up our layout manager
for (int i = 0; i < sections.length; i++) { for (int ii = 0, ll = sections.size(); ii < ll; ii++) {
addSection(sections[i], models[i]); addSection(sections.get(ii), models.get(ii));
} }
} }
@@ -59,10 +59,10 @@ public class CollapsibleList extends JPanel
* *
* @return the index of the newly added section. * @return the index of the newly added section.
*/ */
public int addSection (String label, ListModel model) public int addSection (String label, ListModel<E> model)
{ {
add(new JLabel(label)); add(new JLabel(label));
add(new JList(model)); add(new JList<E>(model));
return getSectionCount()-1; return getSectionCount()-1;
} }
@@ -78,9 +78,10 @@ public class CollapsibleList extends JPanel
/** /**
* Returns the list object associated with the specified section. * Returns the list object associated with the specified section.
*/ */
public JList getSectionList (int index) public JList<E> getSectionList (int index)
{ {
return (JList)getComponent(index*2+1); @SuppressWarnings("unchecked") JList<E> list = (JList<E>)getComponent(index*2+1);
return list;
} }
/** /**
@@ -88,7 +89,7 @@ public class CollapsibleList extends JPanel
*/ */
public void toggleCollapsed (int index) public void toggleCollapsed (int index)
{ {
JList list = getSectionList(index); JList<E> list = getSectionList(index);
list.setVisible(!list.isVisible()); list.setVisible(!list.isVisible());
} }
} }