package org.atdl4j.ui.swing.widget;
import java.awt.Component;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JLabel;
import javax.swing.JPanel;
import org.atdl4j.ui.impl.AbstractLabelWidget;
import org.atdl4j.ui.impl.ControlHelper;
import org.atdl4j.ui.swing.SwingListener;
import org.atdl4j.ui.swing.SwingWidget;
public class SwingLabelWidget
extends AbstractLabelWidget
implements SwingWidget<String>
{
private List<Component> brickComponents;
private JLabel label;
/**
* 2/9/2010 Scott Atwell @see AbstractControlUI.init(ControlT aControl,
* ParameterT aParameter) throws JAXBException
* public LabelWidget(LabelT control) { super(control); }
**/
public void createWidget(JPanel parent)
{
List< ? extends Component> components = getBrickComponents();
parent.add(components.get(0));
}
public void generateStateRuleListener(SwingListener listener)
{
// do nothing
}
public List<Component> getComponents() {
List<Component> widgets = new ArrayList<Component>();
widgets.add(label);
return widgets;
}
public List<Component> getComponentsExcludingLabel() {
return getComponents();
}
public void addListener(SwingListener listener) {
// do nothing
}
public void removeListener(SwingListener listener) {
// do nothing
}
public void setVisible(boolean visible)
{
for (Component control : getComponents()) {
control.setVisible(visible);
}
}
public void setEnabled(boolean enabled)
{
for (Component control : getComponents()) {
control.setEnabled(enabled);
}
}
public boolean isVisible()
{
for ( Component control : getComponents() )
{
if ( control.isVisible() )
{
return true;
}
}
return false;
}
public boolean isEnabled()
{
for ( Component control : getComponents() )
{
if ( control.isEnabled() )
{
return true;
}
}
return false;
}
/* (non-Javadoc)
* @see org.atdl4j.ui.ControlUI#reinit()
*/
@Override
public void processReinit( Object aControlInitValue )
{
if ( ( label != null ) )
{
label.setText( (aControlInitValue != null ) ? (String) aControlInitValue : "" );
}
}
@Override
public List< ? extends Component> getBrickComponents() {
if (brickComponents == null)
{
brickComponents = createBrickComponents();
}
return brickComponents;
}
private List<Component> createBrickComponents() {
List<Component> components = new ArrayList<Component>();
// label
label = new JLabel();
label.setName(getName()+"/label");
if ( control.getLabel() != null )
{
label.setText( control.getLabel() );
}
else if ( ControlHelper.getInitValue(control, getAtdl4jOptions()) != null )
{
label.setText( (String) ControlHelper.getInitValue( control, getAtdl4jOptions() ));
}
else
{
label.setText( "" );
}
// tooltip
if (getTooltip() != null) label.setToolTipText(getTooltip());
components.add(label);
return components;
}
}