/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.modelgenerator.ldap.ui.wizards; import java.util.HashMap; import java.util.Map; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; /** * Abstract implementation of LDAP label provider */ public abstract class AbstractLdapLabelProvider extends LabelProvider { private final LdapImportWizardManager importManager; private Map<ImageDescriptor, Image> imgRegistry = new HashMap<ImageDescriptor, Image>(); /** * Create new instance * * @param manager */ public AbstractLdapLabelProvider(LdapImportWizardManager manager) { this.importManager = manager; } /** * @return the importManager */ public LdapImportWizardManager getImportManager() { return this.importManager; } protected Image getImage(ImageDescriptor descriptor) { if (descriptor == null) return null; Image img = imgRegistry.get(descriptor); if (img == null) { img = descriptor.createImage(); imgRegistry.put(descriptor, img); } return img; } @Override public void dispose() { super.dispose(); for (Image img : imgRegistry.values()) { img.dispose(); } imgRegistry.clear(); } }