我有更改此圖像列表提供程序到縮略圖提供程序的問題。在需要的情況下,我也會發布視圖。Eclipse RCP ListProvider調整
public Object[] getElements(Object inputElement) {
if (iDirname == null)
return null;
File dir = new File(iDirname);
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File directory, String filename) {
if (filename.endsWith("jpg") || (filename.endsWith("bmp")) || (filename.endsWith("png") || (filename.endsWith("JPG") || (filename.endsWith("BMP")) || (filename.endsWith("PNG")))))
return true;
else
return false;
}
};
String[] dirList = null;
if (dir.isDirectory()) {
dirList = dir.list(filter);
for (int i=0; i<dirList.length;++i){
//dirList2[i] = new Image(device, dirList2[i]); added this to try passing array of Images - failed.
dirList[i] = iDirname + File.separatorChar + dirList[i];
}
}
return dirList;
}
和視圖
public void createPartControl(Composite parent) {
iViewer = new ListViewer(parent);
iViewer.setContentProvider(new DirListProvider());
getSite().setSelectionProvider(iViewer);
makeActions();
hookContextMenu();
contributeToActionBars();
}
我不知道如何提供路徑列表,更改爲顯示縮略圖。我是否應該將所提供的內容放入數組並重復創建圖像?如果是這樣如何?
在此先感謝您的幫助。
編輯:
我加
ImageDescriptor[] dirList = null;
if (dir.isDirectory()) {
String[] dirList2 = dir.list(filter);
for (int i=0; i<dirList2.length;++i){
dirList[i] = ImageDescriptor.createFromImageData(new ImageData(iDirname + File.separatorChar + dirList2[i]));
//dirList[i] = iDirname + File.separatorChar + dirList[i];
}
}
return dirList;
但這完全無法顯示任何內容。
當您要求我使用Composite
時,它是我的父變量嗎?我仍然不知道如何顯示ListProvider
通過的路徑中的圖像。我真的是這個綠色:/
+1個不錯的附加信息。 –
我認爲這就是我正在尋找的,但'LabelProvider'缺少'GetElements'它的工作方式與我的'ListProvider'相同嗎? – Seb
'LabelProvider'和'ContentProvider'分別做兩個獨立的功能 - 提供內容,並提供文本/圖標等來表示內容。請參閱:http://wiki.eclipse.org/FAQ_What_are_content_and_label_providers%3F –