package org.nightlabs.jfire.issuetracking.ui.issue;
import java.util.Collection;
import java.util.HashSet;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.nightlabs.base.ui.composite.XComposite;
import org.nightlabs.base.ui.table.AbstractTableComposite;
import org.nightlabs.jfire.issue.Issue;
import org.nightlabs.jfire.issuetracking.ui.overview.IssueEntryListFactory;
import org.nightlabs.jfire.issuetracking.ui.overview.IssueEntryListViewer;
/**
* @author Chairat Kongarayawetchakun <!-- chairat [AT] nightlabs [DOT] de -->
*
*/
public class IssueSearchComposite extends XComposite
{
private IssueEntryListViewer issueEntryListViewer;
private Composite issueEntryListViewerComposite;
private Collection<Issue> selectedIssues = new HashSet<Issue>();
public IssueSearchComposite(Composite parent, int style) {
super(parent, style);
issueEntryListViewer = new IssueEntryListViewer(new IssueEntryListFactory().createEntry()) {
@Override
protected void addResultTableListeners(AbstractTableComposite<Issue> tableComposite) {
tableComposite.addDoubleClickListener(new IDoubleClickListener() {
@Override
public void doubleClick(DoubleClickEvent evt) {
// Do nothing!!!
}
});
tableComposite.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent e) {
selectedIssues = issueEntryListViewer.getResultTable().getSelectedElements();
}
});
}
};
issueEntryListViewerComposite = issueEntryListViewer.createComposite(parent);
GridData gridData = new GridData(GridData.FILL_BOTH);
issueEntryListViewerComposite.setLayoutData(gridData);
Display.getDefault().asyncExec(new Runnable() {
public void run() {
getShell().layout(true, true);
issueEntryListViewer.search();
}
});
issueEntryListViewer.getResultTable().setIsTableInWizard(true);
}
public Collection<Issue> getSelectedIssues() {
return selectedIssues;
}
public IssueEntryListViewer getIssueEntryListViewer() {
return issueEntryListViewer;
}
}