/**
*
*/
package org.sinnlabs.dbvim.ui.modeltree;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.sinnlabs.dbvim.config.ConfigLoader;
import org.sinnlabs.dbvim.model.CharacterMenu;
import org.sinnlabs.dbvim.model.DBConnection;
import org.sinnlabs.dbvim.model.Form;
import org.sinnlabs.dbvim.model.SearchMenu;
import com.j256.ormlite.stmt.QueryBuilder;
import com.j256.ormlite.stmt.Where;
/**
* @author peter.liverovsky
*
*/
public class MenusTreeNode implements Serializable {
/**
*
*/
private static final long serialVersionUID = -8821032822201751576L;
private List<Object> menus;
public MenusTreeNode(DBConnection connection) throws SQLException {
// Get list of forms
QueryBuilder<Form, String> qb = ConfigLoader.getInstance().getForms().queryBuilder();
Where<Form, String> w = qb.where();
w.eq(Form.CONNECTION_FIELD_NAME, connection.getName());
qb.selectColumns(Form.NAME_FIELD_NAME);
// Get list of menus
QueryBuilder<SearchMenu, String> queryBuilder =
ConfigLoader.getInstance().getSearchMenus().queryBuilder();
queryBuilder.where().in(SearchMenu.FORM_FIELD_NAME, qb);
List<SearchMenu> searchMenus = queryBuilder.query();
List<CharacterMenu> characterMenus = ConfigLoader.getInstance().getCharacterMenu().queryForAll();
menus = new ArrayList<Object>();
menus.addAll(searchMenus);
menus.addAll(characterMenus);
}
public boolean isLeaf() {
return false;
}
public Object getChild(int index) {
return new MenuTreeNode(menus.get(index));
}
public int getChildCount() {
return menus.size();
}
}