1 12 package org.eclipse.ui.internal.navigator.extensions; 13 14 import org.eclipse.jface.viewers.IColorProvider; 15 import org.eclipse.jface.viewers.IFontProvider; 16 import org.eclipse.jface.viewers.ILabelProvider; 17 import org.eclipse.jface.viewers.ILabelProviderListener; 18 import org.eclipse.jface.viewers.ITreePathLabelProvider; 19 import org.eclipse.jface.viewers.TreePath; 20 import org.eclipse.jface.viewers.ViewerLabel; 21 import org.eclipse.swt.graphics.Color; 22 import org.eclipse.swt.graphics.Font; 23 import org.eclipse.swt.graphics.Image; 24 import org.eclipse.ui.IMemento; 25 import org.eclipse.ui.navigator.ICommonContentExtensionSite; 26 import org.eclipse.ui.navigator.ICommonLabelProvider; 27 import org.eclipse.ui.navigator.IDescriptionProvider; 28 29 32 public class SafeDelegateCommonLabelProvider implements ICommonLabelProvider, IColorProvider, IFontProvider, ITreePathLabelProvider { 33 34 private final ILabelProvider delegateLabelProvider; 35 36 41 public SafeDelegateCommonLabelProvider(ILabelProvider aLabelProvider) { 42 super(); 43 delegateLabelProvider = aLabelProvider; 44 } 45 46 53 public void init(ICommonContentExtensionSite aConfig) { 54 } 55 56 68 public String getDescription(Object element) { 69 70 if (delegateLabelProvider instanceof IDescriptionProvider) { 71 IDescriptionProvider provider = (IDescriptionProvider) delegateLabelProvider; 72 return provider.getDescription(element); 73 } 74 return null; 75 } 76 77 80 public void addListener(ILabelProviderListener listener) { 81 delegateLabelProvider.addListener(listener); 82 } 83 84 87 public void dispose() { 88 delegateLabelProvider.dispose(); 89 } 90 91 96 public boolean equals(Object obj) { 97 return delegateLabelProvider.equals(obj); 98 } 99 100 public Image getImage(Object element) { 101 return delegateLabelProvider.getImage(element); 102 } 103 104 public String getText(Object element) { 105 return delegateLabelProvider.getText(element); 106 } 107 108 113 public int hashCode() { 114 return delegateLabelProvider.hashCode(); 115 } 116 117 public boolean isLabelProperty(Object element, String property) { 118 return delegateLabelProvider.isLabelProperty(element, property); 119 } 120 121 124 public void removeListener(ILabelProviderListener listener) { 125 delegateLabelProvider.removeListener(listener); 126 } 127 128 133 public String toString() { 134 return delegateLabelProvider.toString(); 135 } 136 137 public void restoreState(IMemento aMemento) { 138 139 } 140 141 public void saveState(IMemento aMemento) { 142 143 } 144 145 148 public void updateLabel(ViewerLabel label, TreePath elementPath) { 149 if (delegateLabelProvider instanceof ITreePathLabelProvider) { 150 ITreePathLabelProvider tplp = (ITreePathLabelProvider) delegateLabelProvider; 151 String text = label.getText() != null ? label.getText() : ""; Image image = label.getImage(); 153 tplp.updateLabel(label, elementPath); 154 if(label.getText() == null) 155 label.setText(text); 156 if(label.getImage() == null && image != null) 157 label.setImage(image); 158 } else { 159 Image image = getImage(elementPath.getLastSegment()); 160 if(image != null) 161 label.setImage(image); 162 String text = getText(elementPath.getLastSegment()); 163 if(text != null) 164 label.setText(text); 165 } 166 } 167 168 171 public Color getForeground(Object element) { 172 if(delegateLabelProvider instanceof IColorProvider) { 173 return ((IColorProvider)delegateLabelProvider).getForeground(element); 174 } 175 return null; 176 } 177 178 181 public Color getBackground(Object element) { 182 if(delegateLabelProvider instanceof IColorProvider) { 183 return ((IColorProvider)delegateLabelProvider).getBackground(element); 184 } 185 return null; 186 } 187 188 191 public Font getFont(Object element) { 192 if(delegateLabelProvider instanceof IFontProvider) { 193 return ((IFontProvider)delegateLabelProvider).getFont(element); 194 } 195 return null; 196 } 197 } 198 | Popular Tags |