/*
* Beanfabrics Framework Copyright (C) by Michael Karneim, beanfabrics.org
* Use is subject to license terms. See license.txt.
*/
package org.beanfabrics.swing.customizer.util;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JPanel;
import org.beanfabrics.IModelProvider;
import org.beanfabrics.Link;
import org.beanfabrics.ModelProvider;
import org.beanfabrics.ModelSubscriber;
import org.beanfabrics.Path;
import org.beanfabrics.View;
import org.beanfabrics.swing.BnLabel;
/**
* @author Michael Karneim
*/
public class TitlePanel extends JPanel implements View<TitlePM>, ModelSubscriber {
private final Link link = new Link(this);
private BnLabel bnLabel;
private ModelProvider localProvider;
/**
* Create the panel
*/
public TitlePanel() {
super();
setBackground(Color.WHITE);
final GridBagLayout gridBagLayout = new GridBagLayout();
gridBagLayout.columnWidths = new int[] { 0, 7 };
setLayout(gridBagLayout);
final GridBagConstraints gridBagConstraints = new GridBagConstraints();
gridBagConstraints.insets = new Insets(4, 4, 4, 4);
gridBagConstraints.fill = GridBagConstraints.BOTH;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridx = 0;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
add(getBnLabel(), gridBagConstraints);
//
}
protected ModelProvider getLocalProvider() {
if (localProvider == null) {
localProvider = new ModelProvider(); // @wb:location=87,273
localProvider.setPresentationModelType(TitlePM.class);
}
return localProvider;
}
/** {@inheritDoc} */
public TitlePM getPresentationModel() {
return getLocalProvider().getPresentationModel();
}
/** {@inheritDoc} */
public void setPresentationModel(TitlePM pModel) {
getLocalProvider().setPresentationModel(pModel);
}
/** {@inheritDoc} */
public IModelProvider getModelProvider() {
return link.getModelProvider();
}
/** {@inheritDoc} */
public void setModelProvider(IModelProvider provider) {
this.link.setModelProvider(provider);
}
/** {@inheritDoc} */
public Path getPath() {
return link.getPath();
}
/** {@inheritDoc} */
public void setPath(Path path) {
this.link.setPath(path);
}
protected BnLabel getBnLabel() {
if (bnLabel == null) {
bnLabel = new BnLabel();
bnLabel.setPath(new Path("this"));
bnLabel.setModelProvider(getLocalProvider());
}
return bnLabel;
}
}