/******************************************************************************* * Copyright (c) 2012 Olivier Moises * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Olivier Moises- initial API and implementation *******************************************************************************/ package org.eclipse.wazaabi.engine.swt.snippets.providers; import java.io.File; import java.util.Arrays; import java.util.List; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import org.eclipse.wazaabi.engine.core.CoreUtils; import org.eclipse.wazaabi.mm.core.styles.ColorRule; import org.eclipse.wazaabi.mm.core.styles.FontRule; public class FileListProvider { private Image folderImage = null; private Image fileImage = null; public FileListProvider() { folderImage = new Image(Display.getCurrent(), getClass() .getClassLoader().getResourceAsStream("fldr_obj.gif")); fileImage = new Image(Display.getCurrent(), getClass().getClassLoader() .getResourceAsStream("file_obj.gif")); } public List<?> getChildren(Object parent) { if (parent instanceof File && ((File) parent).isDirectory() && ((File) parent).listFiles() != null) return Arrays.asList(((File) parent).listFiles()); return null; } public String getText(Object element) { if (element instanceof File) return ((File) element).getName(); return null; } public String getText(Object element, int columnIndex) { if (columnIndex == 1) return "hello"; //$NON-NLS-1$ if (element instanceof File) return ((File) element).getName(); return null; } public Boolean hasChildren(Object element) { if (element instanceof File) return ((File) element).isDirectory(); return false; } public Image getImage(Object element, int columnIndex) { if (columnIndex == 0 && element instanceof File) if (((File) element).isDirectory()) return folderImage; else return fileImage; return null; } public void dispose() { if (folderImage != null && !folderImage.isDisposed()) { System.out.println("disposing folderImage"); folderImage.dispose(); } if (fileImage != null && !fileImage.isDisposed()) { System.out.println("disposing fileImage"); fileImage.dispose(); } } public ColorRule getBackgroundColor(Object element, int index) { if (element instanceof File && ((File) element).isDirectory() && index == 1) return CoreUtils.createColorRule(100, 100, 100); return null; } public ColorRule getForegroundColor(Object element, int index) { if (element instanceof File && ((File) element).isDirectory() && index == 0) return CoreUtils.createColorRule(100, 0, 0); return null; } public FontRule getFont(Object element, int index) { if (element instanceof File && ((File) element).isDirectory() && index == 2) { return CoreUtils.createFontRule(null, 0, true, true); } return null; } }