/*
* Beanfabrics Framework Copyright (C) by Michael Karneim, beanfabrics.org
* Use is subject to license terms. See license.txt.
*/
package org.beanfabrics.swing.customizer.table;
import java.awt.BorderLayout;
import java.beans.Customizer;
import javax.swing.JPanel;
import org.beanfabrics.ModelProvider;
import org.beanfabrics.Path;
import org.beanfabrics.swing.customizer.CustomizerBasePanel;
import org.beanfabrics.swing.table.BnTable;
/**
* The <code>BnTableCustomizer</code> is a JavaBeans {@link Customizer} for a {@link BnTable}.
*
* @author Michael Karneim
*/
@SuppressWarnings("serial")
public class BnTableCustomizer<PM extends BnTableCustomizerPM> extends CustomizerBasePanel<PM> {
private ModelProvider localProvider;
private JPanel centerPanel;
private BnTableCustomizerPanel bnTableCustomizerPanel;
protected BnTableCustomizer(PM pm) {
super(pm);
getLocalProvider().setPresentationModel(pm);
setLayout(new BorderLayout());
add(getCenterPanel(), BorderLayout.CENTER);
}
public BnTableCustomizer() {
this((PM) new BnTableCustomizerPM());
}
/**
* Returns the local {@link ModelProvider} for this class.
*
* @wbp.nonvisual location=16,357
* @return the local <code>ModelProvider</code>
*/
private ModelProvider getLocalProvider() {
if (localProvider == null) {
localProvider = new ModelProvider(); // @wb:location=16,577
}
return localProvider;
}
public JPanel getCenterPanel() {
if (centerPanel == null) {
centerPanel = new JPanel();
centerPanel.setBorder(null);
centerPanel.setLayout(new BorderLayout(0, 0));
centerPanel.add(getBnTableCustomizerPanel(), BorderLayout.CENTER);
}
return centerPanel;
}
public BnTableCustomizerPanel getBnTableCustomizerPanel() {
if (bnTableCustomizerPanel == null) {
bnTableCustomizerPanel = new BnTableCustomizerPanel();
bnTableCustomizerPanel.setPath(new Path("this"));
bnTableCustomizerPanel.setModelProvider(getLocalProvider());
}
return bnTableCustomizerPanel;
}
}