• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2007 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.ddmuilib.explorer;
18 
19 import com.android.ddmlib.FileListingService;
20 import com.android.ddmlib.FileListingService.FileEntry;
21 
22 import org.eclipse.jface.viewers.ILabelProvider;
23 import org.eclipse.jface.viewers.ILabelProviderListener;
24 import org.eclipse.jface.viewers.ITableLabelProvider;
25 import org.eclipse.swt.graphics.Image;
26 
27 /**
28  * Label provider for the FileEntry.
29  */
30 class FileLabelProvider implements ILabelProvider, ITableLabelProvider {
31 
32     private Image mFileImage;
33     private Image mFolderImage;
34     private Image mPackageImage;
35     private Image mOtherImage;
36 
37     /**
38      * Creates Label provider with custom images.
39      * @param fileImage the Image to represent a file
40      * @param folderImage the Image to represent a folder
41      * @param packageImage the Image to represent a .apk file. If null,
42      *      fileImage is used instead.
43      * @param otherImage the Image to represent all other entry type.
44      */
FileLabelProvider(Image fileImage, Image folderImage, Image packageImage, Image otherImage)45     public FileLabelProvider(Image fileImage, Image folderImage,
46             Image packageImage, Image otherImage) {
47         mFileImage = fileImage;
48         mFolderImage = folderImage;
49         mOtherImage = otherImage;
50         if (packageImage != null) {
51             mPackageImage = packageImage;
52         } else {
53             mPackageImage = fileImage;
54         }
55     }
56 
57     /**
58      * Creates a label provider with default images.
59      *
60      */
FileLabelProvider()61     public FileLabelProvider() {
62 
63     }
64 
65     /* (non-Javadoc)
66      * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
67      */
68     @Override
getImage(Object element)69     public Image getImage(Object element) {
70         return null;
71     }
72 
73     /* (non-Javadoc)
74      * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
75      */
76     @Override
getText(Object element)77     public String getText(Object element) {
78         return null;
79     }
80 
81     @Override
getColumnImage(Object element, int columnIndex)82     public Image getColumnImage(Object element, int columnIndex) {
83         if (columnIndex == 0) {
84             if (element instanceof FileEntry) {
85                 FileEntry entry = (FileEntry)element;
86                 switch (entry.getType()) {
87                     case FileListingService.TYPE_FILE:
88                     case FileListingService.TYPE_LINK:
89                         // get the name and extension
90                         if (entry.isApplicationPackage()) {
91                             return mPackageImage;
92                         }
93                         return mFileImage;
94                     case FileListingService.TYPE_DIRECTORY:
95                     case FileListingService.TYPE_DIRECTORY_LINK:
96                         return mFolderImage;
97                 }
98             }
99 
100             // default case return a different image.
101             return mOtherImage;
102         }
103         return null;
104     }
105 
106     @Override
getColumnText(Object element, int columnIndex)107     public String getColumnText(Object element, int columnIndex) {
108         if (element instanceof FileEntry) {
109             FileEntry entry = (FileEntry)element;
110 
111             switch (columnIndex) {
112                 case 0:
113                     return entry.getName();
114                 case 1:
115                     return entry.getSize();
116                 case 2:
117                     return entry.getDate();
118                 case 3:
119                     return entry.getTime();
120                 case 4:
121                     return entry.getPermissions();
122                 case 5:
123                     return entry.getInfo();
124             }
125         }
126         return null;
127     }
128 
129     /* (non-Javadoc)
130      * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
131      */
132     @Override
addListener(ILabelProviderListener listener)133     public void addListener(ILabelProviderListener listener) {
134         // we don't need listeners.
135     }
136 
137     /* (non-Javadoc)
138      * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
139      */
140     @Override
dispose()141     public void dispose() {
142     }
143 
144     /* (non-Javadoc)
145      * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
146      */
147     @Override
isLabelProperty(Object element, String property)148     public boolean isLabelProperty(Object element, String property) {
149         return false;
150     }
151 
152     /* (non-Javadoc)
153      * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
154      */
155     @Override
removeListener(ILabelProviderListener listener)156     public void removeListener(ILabelProviderListener listener) {
157         // we don't need listeners
158     }
159 
160 }
161