У меня возникла проблема с изменением поставщика изображений в поставщике эскизов. В случае необходимости я также опубликую View для него.Eclipse RCP ListProvider tweaking
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();
}
Я не знаю, как изменить предоставленные списки путь к миниатюре отображаются. Должен ли я получить предоставленный контент в Array и повторить его создание изображений? Если да, то как?
Заранее за вашу помощь.
EDIT:
Я добавил
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 –