/******************************************************************************* * Copyright (c) 2008 * The code, documentation and other materials contained herein have been * licensed under the Eclipse Public License - v 1.0 by the individual * copyright holders listed below, as Initial Contributors under such license. * The text of such license is available at * http://www.eclipse.org/legal/epl-v10.html. * * Contributors: * Henrik Lindberg *******************************************************************************/ package org.eclipse.equinox.p2.authoring.forms; import java.util.HashMap; import org.eclipse.equinox.p2.authoring.forms.validators.IEditValidator; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.forms.AbstractFormPart; /** * An IFormPart that groups EditAdapters and manages their life cycle in an Eclipse Form. * * @author Henrik Lindberg * */ public class EditAdapterFormPart extends AbstractFormPart { private HashMap<String, EditAdapter> m_editAdapters = new HashMap<String, EditAdapter>(); public EditAdapterFormPart() { } /** * Create and manage a default edit adapter. * * @param key * @param control */ public void createEditAdapter(String key, Control control) { m_editAdapters.put(key, new EditAdapter(control, this)); } /** * Create and manage a configured edit adapter * * @param key * @param control * @param validator * @param mutator */ public void createEditAdapter(String key, Control control, IEditValidator validator, IMutator mutator) { m_editAdapters.put(key, new EditAdapter(control, this, validator, mutator)); } public void addAdapter(String key, EditAdapter adapter) { m_editAdapters.put(key, adapter); } public void removeAdapter(String key) { m_editAdapters.remove(key); } public EditAdapter getAdapter(String key) { return m_editAdapters.get(key); } /** * Commits all edit adapters. */ @Override public void commit(boolean onSave) { for(EditAdapter e : m_editAdapters.values()) e.commit(onSave); super.commit(onSave); } /** * Refreshes all edit adapters. */ @Override public void refresh() { for(EditAdapter e : m_editAdapters.values()) e.refresh(); super.refresh(); } }