package org.atdl4j.ui.swing.app.impl;
import java.awt.BorderLayout;
import java.awt.Window;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.border.TitledBorder;
import org.atdl4j.config.Atdl4jOptions;
import org.atdl4j.ui.app.impl.AbstractStrategyDescriptionPanel;
/**
* Represents the Swing-specific Strategy Description GUI component.
* @author Scott Atwell
* @version October 5, 2010
*/
public class SwingStrategyDescriptionPanel
extends AbstractStrategyDescriptionPanel
{
// JPanel as we need TitledBorder private Container container;
private JPanel container;
private JTextPane strategyDescription;
public Object buildStrategyDescriptionPanel(Object parentOrShell,
Atdl4jOptions atdl4jOptions)
{
return buildStrategyDescriptionPanel((Window) parentOrShell, atdl4jOptions);
}
public JPanel buildStrategyDescriptionPanel(Window aParentContainer,
Atdl4jOptions atdl4jOptions)
{
setAtdl4jOptions(atdl4jOptions);
container = new JPanel(new BorderLayout());
container.setBorder(new TitledBorder("Strategy Description"));
strategyDescription = new JTextPane();
strategyDescription.setContentType("text/html");
strategyDescription.setFont(new JLabel().getFont());
strategyDescription.setEditable(false);
JScrollPane tempScrollPane = new JScrollPane(strategyDescription);
container.add(tempScrollPane, BorderLayout.CENTER);
return container;
}
/*
* (non-Javadoc)
* @see
* org.atdl4j.ui.app.AbstractStrategyDescriptionPanel#setStrategyDescriptionText
* (java.lang.String)
*/
protected void setStrategyDescriptionText(String aText) {
if (strategyDescription != null) {
String newText = aText.replaceAll("'", "'");
String htmlText = "<html><body face=\"arial\">" + newText + "</body></html>";
strategyDescription.setText(htmlText);
strategyDescription.setSelectionStart(0);
strategyDescription.setSelectionEnd(0);
}
}
/*
* (non-Javadoc)
* @see org.atdl4j.ui.app.StrategyDescriptionPanel#setVisible(boolean)
*/
@Override
public void setVisible(boolean aVisible) {
if (container != null) {
container.setVisible(aVisible);
}
}
}