/*
* Created on Jan 13, 2006
*
*/
package net.atlanticbb.tantlinger.ui.text.dialogs;
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.util.Hashtable;
import java.util.Map;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import net.atlanticbb.tantlinger.ui.text.TextEditPopupManager;
public class LinkPanel extends HTMLAttributeEditorPanel
{
/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel hlinkPanel = null;
private JLabel urlLabel = null;
private JLabel textLabel = null;
private JTextField urlField = null;
private JTextField textField = null;
private HTMLAttributeEditorPanel linkAttrPanel = null;
private boolean urlFieldEnabled;
/**
* This is the default constructor
*/
public LinkPanel()
{
this(true);
}
/**
* @param attr
*/
public LinkPanel(boolean urlFieldEnabled)
{
this(new Hashtable(), urlFieldEnabled);
}
public LinkPanel(Hashtable attr, boolean urlFieldEnabled)
{
super();
this.urlFieldEnabled = urlFieldEnabled;
initialize();
setAttributes(attr);
updateComponentsFromAttribs();
}
public void updateComponentsFromAttribs()
{
linkAttrPanel.updateComponentsFromAttribs();
if(attribs.containsKey("href")) //$NON-NLS-1$
urlField.setText(attribs.get("href").toString()); //$NON-NLS-1$
else
urlField.setText(""); //$NON-NLS-1$
}
public void updateAttribsFromComponents()
{
linkAttrPanel.updateAttribsFromComponents();
attribs.put("href", urlField.getText()); //$NON-NLS-1$
}
public void setAttributes(Map at)
{
super.setAttributes(at);
linkAttrPanel.setAttributes(attribs);
}
public void setLinkText(String text)
{
textField.setText(text);
}
public String getLinkText()
{
return textField.getText();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize()
{
this.setLayout(new BorderLayout(5, 5));
this.setSize(328, 218);
this.add(getHlinkPanel(), java.awt.BorderLayout.NORTH);
this.add(getLinkAttrPanel(), BorderLayout.CENTER);
TextEditPopupManager popupMan = TextEditPopupManager.getInstance();//new TextEditPopupManager();
popupMan.registerJTextComponent(urlField);
popupMan.registerJTextComponent(textField);
}
/**
* This method initializes hlinkPanel
*
* @return javax.swing.JPanel
*/
private JPanel getHlinkPanel()
{
if(hlinkPanel == null)
{
GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
gridBagConstraints3.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints3.gridy = 1;
gridBagConstraints3.weightx = 1.0;
gridBagConstraints3.gridx = 1;
GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints2.gridy = 0;
gridBagConstraints2.weightx = 1.0;
gridBagConstraints2.insets = new java.awt.Insets(0,0,5,0);
gridBagConstraints2.gridx = 1;
GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
gridBagConstraints1.gridx = 0;
gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints1.insets = new java.awt.Insets(0,0,0,5);
gridBagConstraints1.gridy = 1;
textLabel = new JLabel();
textLabel.setText(i18n.str("text")); //$NON-NLS-1$
GridBagConstraints gridBagConstraints = new GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0,0,0,5);
gridBagConstraints.gridy = 0;
urlLabel = new JLabel();
urlLabel.setText(i18n.str("url")); //$NON-NLS-1$
hlinkPanel = new JPanel();
hlinkPanel.setBorder(javax.swing.BorderFactory.createCompoundBorder(javax.swing.BorderFactory.createTitledBorder(null, i18n.str("link"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null), javax.swing.BorderFactory.createEmptyBorder(5,5,5,5))); //$NON-NLS-1$
hlinkPanel.setLayout(new GridBagLayout());
hlinkPanel.add(urlLabel, gridBagConstraints);
hlinkPanel.add(textLabel, gridBagConstraints1);
hlinkPanel.add(getUrlField(), gridBagConstraints2);
hlinkPanel.add(getTextField(), gridBagConstraints3);
}
return hlinkPanel;
}
/**
* This method initializes urlField
*
* @return javax.swing.JTextField
*/
private JTextField getUrlField()
{
if(urlField == null)
{
urlField = new JTextField();
urlField.setEditable(urlFieldEnabled);
//urlField.setEditable(true);
}
return urlField;
}
/**
* This method initializes textField
*
* @return javax.swing.JTextField
*/
private JTextField getTextField()
{
if(textField == null)
{
textField = new JTextField();
}
return textField;
}
private JPanel getLinkAttrPanel()
{
if(linkAttrPanel == null)
{
linkAttrPanel = new LinkAttributesPanel();
}
return linkAttrPanel;
}
} // @jve:decl-index=0:visual-constraint="29,25"