package net.sourceforge.phpdt.sql.view; import java.net.URL; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.swt.graphics.Image; import net.sourceforge.phpdt.sql.Messages; import net.sourceforge.phpdt.sql.PHPEclipseSQLPlugin; import net.sourceforge.phpdt.sql.view.bookmark.ColumnMetaData; import net.sourceforge.phpdt.sql.view.bookmark.Root; import net.sourceforge.phpdt.sql.view.bookmark.SequenceNode; import net.sourceforge.phpdt.sql.view.bookmark.SubsetNode; import net.sourceforge.phpdt.sql.view.bookmark.TableNode; import net.sourceforge.phpdt.sql.view.bookmark.ViewNode; /** * @author root * * Implements the ILabelProvider for the Bookmarks. */ public class SubsetLabelProvider implements ILabelProvider { /** * @see org.eclipse.jface.viewers.ILabelProvider#getImage(Object) */ public Image getImage(Object element) { ImageDescriptor descriptor = null; if (element instanceof SubsetNode) { try { URL installURL = PHPEclipseSQLPlugin.getDefault().getDescriptor().getInstallURL(); URL url = new URL(installURL, "icons/subset.gif"); //$NON-NLS-1$ descriptor = ImageDescriptor.createFromURL(url); } catch (Exception e) { e.printStackTrace(); } } else if (element instanceof ColumnMetaData){ try { ColumnMetaData columnMetaData = (ColumnMetaData) element; return columnMetaData.getImage(); } catch (Exception e) { e.printStackTrace(); } } else { return null; } return descriptor.createImage(); } /** * @see org.eclipse.jface.viewers.ILabelProvider#getText(Object) */ public String getText(Object element) { if (element instanceof SubsetNode) { SubsetNode subset = (SubsetNode) element; return subset.getName(); } else if (element.equals(Root.ROOT)) { return "ROOT"; //$NON-NLS-1$ } else if (element instanceof TableNode) { TableNode node = (TableNode) element; if (node.isSizeVisible()) { return Messages.getString("BookmarkLabelProvider.TablePrefix") + element.toString() + " (" + node.getSize() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } else { return Messages.getString("BookmarkLabelProvider.TablePrefix") + element.toString(); //$NON-NLS-1$ } } else if (element instanceof ViewNode) { ViewNode node = (ViewNode) element; if (node.isSizeVisible()) { return Messages.getString("BookmarkLabelProvider.ViewPrefix") + element.toString() + " (" + node.getSize() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } else { return Messages.getString("BookmarkLabelProvider.ViewPrefix") + element.toString(); //$NON-NLS-1$ } } else if (element instanceof SequenceNode) { return Messages.getString("BookmarkLabelProvider.SequencePrefix") + element.toString(); //$NON-NLS-1$ } return element.toString(); } /** * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(ILabelProviderListener) */ public void addListener(ILabelProviderListener listener) { } /** * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose() */ public void dispose() { } /** * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(Object, String) */ public boolean isLabelProperty(Object element, String property) { return false; } /** * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(ILabelProviderListener) */ public void removeListener(ILabelProviderListener listener) { } }