Вернуть в jTable результаты поиска без SQL (с DAOMock)
У меня есть это действие ActionFindPeople
и я хочу найти в БД людей по имени и фамилии, вставленных в 2 различных текстовых поля.
public class ActionFindPeople extends AbstractAction{
private Control control;
public ActionFindPeople (Control control) {
this.control = control;
this.putValue(Action.NAME, "FIND");
this.putValue(Action.SHORT_DESCRIPTION, "Find People");
this.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_F));
this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke("CTRL F"));
}
public void actionPerformed(ActionEvent e) {
Vist vist = (Vist) this.control.getVist();
PanelInitial pi = (PanelInitial ) vist.getUnderVist(Costant.PANEL_INITIAL);
PannelResult pr = (PannelResult) vist.getUnderVist(Costant.PANEL_RESULT);
Model model = (Model) this.control.getModel();
String name = pi.getTextFieldName().getText();
String surname = pi.getTextFieldSurname().getText();
Db db= (Db) control.getModel().getBean(Costant.DB);
Person personToFind = findPerson(name, surname, db);
if(personToFind != null) {
model.putBean(Costant.PERSON_FOUND, personToFind );
prp.changeComponent((Person) this.control.getModel().getBean(Costant.PERSON_FOUND));
vist.changePanel();
} else {
vist.windowError("Insesistent people for " + name+ " " + surname);
}
}
public Person findPerson(String name, String surname, Db db) {
List<Person> listPerson = db.getListPerson();
for (Person p : listPerson){
if(p.getName().equalsIgnoreCase(name) && p.getSurname().equalsIgnoreCase(surname)){
return p;
}
}
return null;
}
}
Я хочу попытаться поместить людей с одинаковыми именами и фамилиями в jTable, но когда я это сделаю, если люди будут существовать, я верну всех людей из базы данных! Как я могу решить эту проблему??? Вот это также код для обновления модели таблицы.
public void refreshModel() {
Model model = (Model) this.vist.getModel();
Person person = (Person) model.getBean(Costanti.PERSON);
Db a = (Db) model.getBean(Costanti.DB);
ModelTable mt = new ModelTable (a);
this.jTable.setModel(mt);
this.jTable.setSelectionMode(SINGLE_SELECTION);
this.jScrollPane1.setViewportView(this.jTable);
}