/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.ddmuilib.explorer; import com.android.ddmlib.FileListingService; import com.android.ddmlib.FileListingService.FileEntry; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.swt.graphics.Image; /** * Label provider for the FileEntry. */ class FileLabelProvider implements ILabelProvider, ITableLabelProvider { private Image mFileImage; private Image mFolderImage; private Image mPackageImage; private Image mOtherImage; /** * Creates Label provider with custom images. * @param fileImage the Image to represent a file * @param folderImage the Image to represent a folder * @param packageImage the Image to represent a .apk file. If null, * fileImage is used instead. * @param otherImage the Image to represent all other entry type. */ public FileLabelProvider(Image fileImage, Image folderImage, Image packageImage, Image otherImage) { mFileImage = fileImage; mFolderImage = folderImage; mOtherImage = otherImage; if (packageImage != null) { mPackageImage = packageImage; } else { mPackageImage = fileImage; } } /** * Creates a label provider with default images. * */ public FileLabelProvider() { } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) */ public Image getImage(Object element) { return null; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) */ public String getText(Object element) { return null; } public Image getColumnImage(Object element, int columnIndex) { if (columnIndex == 0) { if (element instanceof FileEntry) { FileEntry entry = (FileEntry)element; switch (entry.getType()) { case FileListingService.TYPE_FILE: case FileListingService.TYPE_LINK: // get the name and extension if (entry.isApplicationPackage()) { return mPackageImage; } return mFileImage; case FileListingService.TYPE_DIRECTORY: case FileListingService.TYPE_DIRECTORY_LINK: return mFolderImage; } } // default case return a different image. return mOtherImage; } return null; } public String getColumnText(Object element, int columnIndex) { if (element instanceof FileEntry) { FileEntry entry = (FileEntry)element; switch (columnIndex) { case 0: return entry.getName(); case 1: return entry.getSize(); case 2: return entry.getDate(); case 3: return entry.getTime(); case 4: return entry.getPermissions(); case 5: return entry.getInfo(); } } return null; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener) */ public void addListener(ILabelProviderListener listener) { // we don't need listeners. } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose() */ public void dispose() { } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String) */ public boolean isLabelProperty(Object element, String property) { return false; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener) */ public void removeListener(ILabelProviderListener listener) { // we don't need listeners } }