package org.nightlabs.jfire.trade.ui.overview.account; import java.util.Collection; import javax.jdo.FetchPlan; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.nightlabs.base.ui.table.AbstractTableComposite; import org.nightlabs.jdo.NLJDOHelper; import org.nightlabs.jdo.query.QueryCollection; import org.nightlabs.jfire.accounting.Account; import org.nightlabs.jfire.accounting.AccountType; import org.nightlabs.jfire.accounting.dao.AccountDAO; import org.nightlabs.jfire.accounting.query.AccountQuery; import org.nightlabs.jfire.base.ui.overview.Entry; import org.nightlabs.jfire.base.ui.overview.search.JDOQuerySearchEntryViewer; import org.nightlabs.jfire.trade.LegalEntity; import org.nightlabs.progress.ProgressMonitor; /** * implementation of a {@link JDOQuerySearchEntryViewer} for searching and * displaying {@link Account}s * * @author Daniel.Mazurek [at] NightLabs [dot] de * @author Marius Heinzmann - marius[at]nightlabs[dot]com */ public class AccountEntryViewer extends JDOQuerySearchEntryViewer<Account, AccountQuery> { private Boolean openAcountEditor; public AccountEntryViewer(Entry entry, boolean openAccountEditor) { super(entry); this.openAcountEditor = openAccountEditor; } @Override public AbstractTableComposite<Account> createListComposite(Composite parent) { return new AccountListComposite(parent, SWT.NONE, openAcountEditor); } // @Override // public AbstractQueryFilterComposite createFilterComposite(Composite parent) { // return new AccountFilterComposite(parent, SWT.NONE); // } public static final String[] FETCH_GROUPS_ACCOUNTS = new String[] { // Account.FETCH_GROUP_THIS_ACCOUNT, // we don't need the summaryAccounts that are included in this - better specify individually Account.FETCH_GROUP_NAME, Account.FETCH_GROUP_OWNER, Account.FETCH_GROUP_CURRENCY, Account.FETCH_GROUP_ACCOUNT_TYPE, AccountType.FETCH_GROUP_NAME, FetchPlan.DEFAULT, LegalEntity.FETCH_GROUP_PERSON }; @Override public Class<Account> getTargetType() { return Account.class; } @Override protected Collection<Account> doSearch(QueryCollection<? extends AccountQuery> queryMap, ProgressMonitor monitor) { return AccountDAO.sharedInstance().getAccountsForQueries( queryMap, FETCH_GROUPS_ACCOUNTS, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, monitor ); } /** * The ID for the Quick search registry. */ public static final String QUICK_SEARCH_REGISTRY_ID = AccountEntryViewer.class.getName(); @Override protected String getQuickSearchRegistryID() { return QUICK_SEARCH_REGISTRY_ID; } }