schuetzejanett
Erfahrenes Mitglied
Hallo,
habe mehrer Tabellen in meiner rcp anwendung und generiere mir für jeden tableviewer einen eigenen contend und labelprovieder. Jetzt benötige ich allerdings eine tabelle die ich eigentlich schon mal habe nur ändert sich der inhalt einer spalte. Wie kann ich meine provider anpassen, so dass je nach aufrufender Klasse die richtige spalte angepasst wird.
Kann ich das mit is instanceOf Klasse prüfen und dann Spalte ändern hinkriegen?
habe mehrer Tabellen in meiner rcp anwendung und generiere mir für jeden tableviewer einen eigenen contend und labelprovieder. Jetzt benötige ich allerdings eine tabelle die ich eigentlich schon mal habe nur ändert sich der inhalt einer spalte. Wie kann ich meine provider anpassen, so dass je nach aufrufender Klasse die richtige spalte angepasst wird.
Code:
public class PrintJobLabelProvider extends LabelProvider implements ITableLabelProvider {
String[] titles = { "PrintJobID", "ProzessID","Papierart","EntaxRefNr" ,"Status", "JobTyp", "VP",
"GenerierungsDatum", "Anhang", "Inland" , "Seitenzahl"};
public Image getColumnImage(Object element, int columnIndex)
{
return null;
}
public String getColumnText(Object element, int columnIndex)
{
String result = "";
switch (columnIndex)
{
case 0:
result = ""+ ((PrintJob)element).getPrintJobID();
break;
case 1:
result = ""+ ((PrintJob)element).getProzessID();
break;
case 2:
result = ""+ ((PrintJob)element).getPaperKind().getName();
break;
case 3:
result = ""+ ((PrintJob)element).getEntaxRefNr();
break;
case 4:
result = ""+ ((PrintJob)element).getState();
break;
case 5:
result = ""+ ((PrintJob)element).getJobType().getName();
break;
case 6:
result = ""+ ((PrintJob)element).getContractPartner().getName();
break;
case 7:
SimpleDateFormat df = new SimpleDateFormat( "dd-MM-yyyy HH:mm:ss" );
result = df.format(((PrintJob)element).getDatePJ());
break;
case 8:
result = (((PrintJob)element).isAttach()) ? "J" : "N";
break;
case 9:
result = (((PrintJob)element).isInland()) ? "J" : "N";
break;
case 10 :
result = ""+ ((PrintJob)element).getNumberOfPages();
break;
default:
break;
}
return result;
}
public void createColumns( Table table )
{
for( int i = 0; i < titles.length; i++ ) {
TableColumn column = new TableColumn(table, SWT.CENTER, i);
column.setText(titles[i]);
column.setWidth(100);
column.setResizable(false);
}
}
public class PrintJobContentProvider implements IStructuredContentProvider {
public Object[] getElements(Object inputElement)
{
return ((PrintJobViewResponse) inputElement).getAPJ().toArray();
}