import java.lang.reflect.Field;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.swt.graphics.Image;
/**
* @author house
*
* TODO 要更改此生成的類型注釋的模板,請轉至
* 窗口 - 首選項 - Java - 代碼樣式 - 代碼模板
*/
public class TableViewerLabelProvider implements ITableLabelProvider {
/* (非 Javadoc)
* @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
*/
public Image getColumnImage(Object element, int columnIndex) {
// TODO 自動生成方法存根
return null;
}
/* (非 Javadoc)
* @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
*/
public String getColumnText(Object element, int columnIndex) {
// TODO 自動生成方法存根
Class pe = null;
pe=element.getClass();
Field[] field=pe.getFields();
try {
return field[columnIndex].get(element).toString();
} catch (IllegalArgumentException e1) {
// TODO 自動生成 catch 塊
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO 自動生成 catch 塊
e1.printStackTrace();
}
// if(columnIndex==0){return p.getId().toString();}
// if(columnIndex==1){return p.getName();}
// if(columnIndex==2){return p.getSex()? "man":"woman";}
// if(columnIndex==3){return p.getDate().toString();}
return "";
}
/* (非 Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
*/
public void addListener(ILabelProviderListener listener) {
// TODO 自動生成方法存根
}
/* (非 Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
*/
public void dispose() {
// TODO 自動生成方法存根
}
/* (非 Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
*/
public boolean isLabelProperty(Object element, String property) {
// TODO 自動生成方法存根
return false;
}
/* (非 Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
*/
public void removeListener(ILabelProviderListener listener) {
// TODO 自動生成方法存根
}
}
用
Class pe = null;
pe=element.getClass();
Field[] field=pe.getFields();
return field[columnIndex].get(element).toString();
取代原有的// if(columnIndex==0){return p.getId().toString();}
// if(columnIndex==1){return p.getName();}
// if(columnIndex==2){return p.getSex()? "man":"woman";}
// if(columnIndex==3){return p.getDate().toString();}
當多個類進行調用時也不須修改此類。但應該注意視圖應包括持久化類的全類字段。