/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package de.cismet.cids.editors; import org.jdesktop.beansbinding.BindingGroup; import java.awt.LayoutManager; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import javax.swing.JPanel; import de.cismet.cids.dynamics.CidsBean; import de.cismet.cids.dynamics.Disposable; import de.cismet.cids.tools.metaobjectrenderer.Titled; /** * DOCUMENT ME! * * @author thorsten * @version $Revision$, $Date$ */ public class DefaultCidsEditor extends JPanel implements AutoBindableCidsEditor, Titled { //~ Instance fields -------------------------------------------------------- private HashMap<String, Bindable> controls = new HashMap<String, Bindable>(); private CidsBean cidsBean = null; private BindingGroup bindingGroup = new BindingGroup(); private String customTitle = null; private List<Disposable> disposableChildren = new ArrayList<>(); //~ Constructors ----------------------------------------------------------- /** * Creates a new DefaultCidsEditor object. */ public DefaultCidsEditor() { init(); } /** * Creates a new DefaultCidsEditor object. * * @param isDoubleBuffered DOCUMENT ME! */ public DefaultCidsEditor(final boolean isDoubleBuffered) { super(isDoubleBuffered); init(); } /** * Creates a new DefaultCidsEditor object. * * @param layout DOCUMENT ME! */ public DefaultCidsEditor(final LayoutManager layout) { super(layout); init(); } /** * Creates a new DefaultCidsEditor object. * * @param layout DOCUMENT ME! * @param isDoubleBuffered DOCUMENT ME! */ public DefaultCidsEditor(final LayoutManager layout, final boolean isDoubleBuffered) { super(layout, isDoubleBuffered); init(); } //~ Methods ---------------------------------------------------------------- /** * DOCUMENT ME! */ private void init() { setOpaque(false); } @Override public void addControlInformation(final String name, final Bindable component) { controls.put(name, component); } @Override public Bindable getControlByName(final String name) { return controls.get(name); } @Override public HashMap<String, Bindable> getAllControls() { return controls; } @Override public BindingGroup getBindingGroup() { return bindingGroup; } @Override public CidsBean getCidsBean() { return cidsBean; } @Override public void setCidsBean(final CidsBean cidsBean) { this.cidsBean = cidsBean; } @Override public String getTitle() { if (customTitle != null) { return customTitle; } else if ((cidsBean != null) && (cidsBean.getMetaObject() != null)) { return cidsBean.getMetaObject().getMetaClass().getName(); } else { return org.openide.util.NbBundle.getMessage( DefaultCidsEditor.class, "DefaultCidsEditor.getTitle().defaultTitle"); // NOI18N } } @Override public void setTitle(final String title) { customTitle = title; } /** * DOCUMENT ME! * * @param disposableChild DOCUMENT ME! */ public void addDisposableChild(final Disposable disposableChild) { disposableChildren.add(disposableChild); } @Override public void dispose() { for (final Disposable disposableChild : disposableChildren) { disposableChild.dispose(); } disposableChildren.clear(); bindingGroup.unbind(); } }