filter the table with viewerfilter [message #872309] |
Tue, 15 May 2012 21:52 |
reza let Messages: 2 Registered: May 2012 |
Junior Member |
|
|
Hey Pro's,
I have a big problem that i cant resolve it. i try everything and dont know why the table isnt filter :/
may anyone heeeelp me please.
package de.haza_computer.mysql.swt.hazarepair;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import java.util.List;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.events.FocusAdapter;
import org.eclipse.swt.events.FocusEvent;
import de.haza_computer.mysql.swt.hazarepair.daten.Kunde;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.jface.viewers.IStructuredContentProvider;
public class Kundenauswahl extends Dialog {
protected Object result;
protected Shell shell;
private Table table;
String kunde = new String();
private Text txtSuchbegriff;
private List<Kunde> kunden;
ViewerFilter searchFilter;
/**
* Create the dialog.
*
* @param parent
* @param style
*/
public Kundenauswahl(final Shell parent, final int style) {
super(parent, style);
setText("SWT Dialog");
}
/**
* Open the dialog.
*
* @return the result
*/
public Object open() {
createContents();
shell.open();
shell.layout();
final Display display = getParent().getDisplay();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
return result;
}
/**
* Create contents of the dialog.
*/
private void createContents() {
shell = new Shell(getParent(), SWT.CLOSE);
shell.setSize(625, 352);
shell.setText(getText());
final GridLayout gl_shell = new GridLayout(1, false);
shell.setLayout(gl_shell);
txtSuchbegriff = new Text(shell, SWT.BORDER);
txtSuchbegriff.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(final FocusEvent arg0) {
if (txtSuchbegriff.getText().equals("Suchbegriff")) {
txtSuchbegriff.setText("");
}
}
});
txtSuchbegriff.setText("Suchbegriff");
txtSuchbegriff.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
false, 1, 1));
final TableViewer tableViewer = new TableViewer(shell, SWT.BORDER
| SWT.FULL_SELECTION | SWT.VIRTUAL);
tableViewer.addFilter(searchFilter);
//table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.VIRTUAL);
table = tableViewer.getTable();
table.setLinesVisible(true);
final GridData gd_table = new GridData(SWT.FILL, SWT.FILL, true,
true, 1, 1);
gd_table.widthHint = 582;
gd_table.heightHint = 257;
table.setLayoutData(gd_table);
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseDoubleClick(final MouseEvent arg0) {
shell.close();
}
});
table.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent arg0) {
final TableItem item = table.getItem(table.getSelectionIndex());
kunde = item.getText(2) + ", " + item.getText(3);
}
});
table.setItemCount(1);
table.setHeaderVisible(true);
final TableColumn tableColumn = new TableColumn(table, SWT.NONE);
tableColumn.setWidth(100);
tableColumn.setText("ID");
final TableColumn tableColumn_1 = new TableColumn(table, SWT.NONE);
tableColumn_1.setWidth(100);
tableColumn_1.setText("Firma");
final TableColumn tableColumn_2 = new TableColumn(table, SWT.NONE);
tableColumn_2.setWidth(100);
tableColumn_2.setText("Nachname");
final TableColumn tableColumn_3 = new TableColumn(table, SWT.NONE);
tableColumn_3.setWidth(100);
tableColumn_3.setText("Vorname");
final TableColumn tableColumn_4 = new TableColumn(table, SWT.NONE);
tableColumn_4.setWidth(100);
tableColumn_4.setText("Mobiltelefon");
final TableColumn tableColumn_5 = new TableColumn(table, SWT.NONE);
tableColumn_5.setWidth(100);
tableColumn_5.setText("Telefon Privat");
final TableColumn tableColumn_6 = new TableColumn(table, SWT.NONE);
tableColumn_6.setWidth(100);
tableColumn_6.setText("Telefon gesch\u00E4ftlich");
final TableColumn tableColumn_7 = new TableColumn(table, SWT.NONE);
tableColumn_7.setWidth(100);
tableColumn_7.setText("Strasse");
searchFilter = new ViewerFilter() {
@Override
public boolean select(Viewer arg0, Object element,
Object arg02) {
System.out.println("filter2");
String suchbegriff = txtSuchbegriff.getText();
if (suchbegriff.equals("")) {
return true;
}
if (element instanceof Kunde) {
Kunde kunde = (Kunde) element;
return kunde.getNachname().contains(suchbegriff)
|| kunde.getVorname().contains(suchbegriff)
|| kunde.getFirma().contains(suchbegriff);
}
return false;
}
};
tableViewer.setLabelProvider(new ITableLabelProvider() {
@Override
public void removeListener(final ILabelProviderListener arg0) {
}
@Override
public boolean isLabelProperty(final Object arg0, final String arg1) {
return false;
}
@Override
public void dispose() {
}
@Override
public void addListener(final ILabelProviderListener arg0) {
}
@Override
public String getColumnText(final Object arg0, final int arg1) {
if (arg0 instanceof Kunde) {
final Kunde kunde = (Kunde) arg0;
switch (arg1) {
case 0:
return String.valueOf(kunde.getId());
case 1:
return kunde.getFirma();
case 2:
return kunde.getVorname();
case 3:
return kunde.getNachname();
case 4:
return kunde.getMobiltelefon();
case 5:
return kunde.getTelefonPrivat();
case 6:
return kunde.getTelefonGeschaeftlich();
case 7:
return kunde.getStrasse();
}
}
return null;
}
@Override
public Image getColumnImage(final Object arg0, final int arg1) {
return null;
}
});
tableViewer.setContentProvider(new IStructuredContentProvider() {
//tableViewer.setContentProvider(new ITreeContentProvider() {
@Override
public void inputChanged(final Viewer arg0, final Object arg1,
final Object arg2) {
}
@Override
public void dispose() {
}
@Override
public Object[] getElements(final Object arg0) {
if (arg0 instanceof List<?>) {
final List<?> list = (List<?>) arg0;
return list.toArray();
}
return null;
}
});
txtSuchbegriff.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(final KeyEvent arg0) {
//tableViewer.addFilter(searchFilter);
tableViewer.refresh();
}
});
tableViewer.setInput(kunden);
}
public void setInput(final java.util.List<Kunde> kunden) {
this.kunden = kunden;
}
}
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03061 seconds