hi,
hier einmal mein code:
mein problem ist, dass nur in der ersten tabellenspalte die werte stehen, d.h. in der Spalte "Bezeichnung".
Die übrigen Spalten sind leer (d.h. kategorie, sprache, hinweis usw...). ich habe auch noch nie mit JFace gearbeitet - freue mich über jeden hinweis
danke im vorhinein!
hier einmal mein code:
Java:
protected void createTable(Composite parent) {
Section engagementSection = this.toolkit.createSection(parent,
Section.DESCRIPTION | Section.TITLE_BAR | Section.TWISTIE
| Section.EXPANDED);
/* engagementSection.addExpansionListener(new ExpansionAdapter() {
@Override
public void expansionStateChanged(ExpansionEvent e) {
KuenstlerEditor.this.form.reflow(true);
}
});*/
engagementSection.setText("Veranstaltungen");
engagementSection.setLayoutData(new GridData(GridData.FILL_BOTH));
this.tableViewer = new TableViewer(engagementSection, SWT.BORDER
| SWT.FULL_SELECTION);
this.tableViewer.getTable().setLayoutData(
new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
TableLayout layout = new TableLayout();
layout.addColumnData(new ColumnWeightData(28, 100, true));
layout.addColumnData(new ColumnWeightData(28, 100, true));
layout.addColumnData(new ColumnWeightData(28, 100, true));
layout.addColumnData(new ColumnWeightData(28, 100, true));
layout.addColumnData(new ColumnWeightData(28, 100, true));
layout.addColumnData(new ColumnWeightData(28, 100, true));
this.tableViewer.getTable().setLayout(layout);
this.tableViewer.getTable().setLinesVisible(true);
this.tableViewer.getTable().setHeaderVisible(true);
this.tableViewer.setContentProvider(new ArrayContentProvider());
IVeranstaltungService ivs = new VeranstaltungService();
tableViewer.setInput(ivs.findAllVeranstaltung().toArray());
this.tableViewer.setLabelProvider(new ITableLabelProvider() {
@Override
public Image getColumnImage(Object arg0, int arg1) {
return null;
}
@Override
public String getColumnText(Object element, int index) {
Veranstaltung e = (Veranstaltung) element;
switch (index) {
case 0:
if (e != null) {
return e.getBezeichnung();
} else {
return "";
}
case 1:
if (e != null) {
return e.getKategorie();
} else {
return "";
}
case 2:
if (e != null) {
return e.getSpracheton();
} else {
return "";
}
case 3:
if (e != null) {
return e.getHinweis();
} else {
return "";
}
case 4:
if (e != null) {
return e.getFreigabe();
} else {
return "";
}
case 5:
if (e.getDauer() == null) {
return "";
} else {
return e.getDauer().toString();
}
}
return null;
}
@Override
public void addListener(ILabelProviderListener listener) {
// nothing to do
}
@Override
public void dispose() {
// nothing to do
}
@Override
public boolean isLabelProperty(Object arg0, String arg1) {
return true;
}
@Override
public void removeListener(ILabelProviderListener arg0) {
// nothing to do
}
});
TableColumn colBezeichnung = new TableColumn(this.tableViewer
.getTable(), SWT.LEFT);
colBezeichnung.setText("Bezeichnung");
TableColumn colKategorie = new TableColumn(this.tableViewer.getTable(),
SWT.LEFT);
colKategorie.setText("Kategorie");
TableColumn colSpracheton = new TableColumn(this.tableViewer.getTable(),
SWT.LEFT);
colSpracheton.setText("Sprache");
TableColumn colHinweis = new TableColumn(this.tableViewer.getTable(),
SWT.LEFT);
colHinweis.setText("Hinweis");
TableColumn colFreigabe = new TableColumn(this.tableViewer.getTable(),
SWT.LEFT);
colFreigabe.setText("Freigabe");
TableColumn colDauer = new TableColumn(this.tableViewer.getTable(),
SWT.LEFT);
colDauer.setText("Dauer");
this.toolkit.adapt(this.tableViewer.getTable(), true, true);
engagementSection.setClient(this.tableViewer.getTable());
}
}
mein problem ist, dass nur in der ersten tabellenspalte die werte stehen, d.h. in der Spalte "Bezeichnung".
Die übrigen Spalten sind leer (d.h. kategorie, sprache, hinweis usw...). ich habe auch noch nie mit JFace gearbeitet - freue mich über jeden hinweis
danke im vorhinein!