mttc said:
JComboBox as master, JList as detail. both components fill the model
from DB.
How make it work, when i change the master, the detail update list
automatically.
comment: I prepare load all records of details at once, there is few
records. but I not see on DefaultListModel any method for filter view
according the master key
Of course. There's no reason for (Default)ListModel to provide filter
methods. There are many ways to implement a filter but it depends on
interpretation, the concrete situation and the design of the
application, of course.
A simple approach could look like the following:
interface Entity {
int getParentId();
}
class DetailsListModel extends AbstractListModel {
private List<Entity> details;
private List<Entity> data;
private int filterId;
public DetailsListModel(List<Entity> details) {
this.details = details;
filter();
}
public void setFilterId(int id) {
this.filterId = id;
filter();
}
private void filter() {
if ( filterId == 0 )
data = details;
else {
data = new ArrayList<Entity>();
// add matching elements to data
}
fireContentsChanged(this, 0, data.size());
}
// implement abstract methods based on data
// getSize
// getElementAt
}
To get a reusable filter one could implement an observable filter class
that uses Comparator or bean introspection. A ListModel can then use and
observe an instance of this filter class.
Bye
Michael