/*
* Created on Jan 14, 2006
*
*/
package net.atlanticbb.tantlinger.ui.text.dialogs;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.SpinnerNumberModel;
import net.atlanticbb.tantlinger.ui.text.TextEditPopupManager;
public class ImageAttributesPanel extends HTMLAttributeEditorPanel
{
/**
*
*/
private static final long serialVersionUID = 1L;
private static final String ALIGNMENTS[] =
{
"top", "middle", "bottom", "left", "right" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
};
private JLabel imgUrlLabel = null;
private JCheckBox altTextCB = null;
private JCheckBox widthCB = null;
private JCheckBox heightCB = null;
private JCheckBox borderCB = null;
private JSpinner widthField = null;
private JSpinner heightField = null;
private JSpinner borderField = null;
private JCheckBox vSpaceCB = null;
private JCheckBox hSpaceCB = null;
private JCheckBox alignCB = null;
private JSpinner vSpaceField = null;
private JSpinner hSpaceField = null;
private JComboBox alignCombo = null;
private JTextField imgUrlField = null;
private JTextField altTextField = null;
private JPanel attribPanel = null;
private JPanel spacerPanel = null;
/**
* This is the default constructor
*/
public ImageAttributesPanel()
{
super();
initialize();
updateComponentsFromAttribs();
}
public void updateComponentsFromAttribs()
{
if(attribs.containsKey("src")) //$NON-NLS-1$
imgUrlField.setText(attribs.get("src").toString()); //$NON-NLS-1$
if(attribs.containsKey("alt")) //$NON-NLS-1$
{
altTextCB.setSelected(true);
altTextField.setEditable(true);
altTextField.setText(attribs.get("alt").toString()); //$NON-NLS-1$
}
else
{
altTextCB.setSelected(false);
altTextField.setEditable(false);
}
if(attribs.containsKey("width")) //$NON-NLS-1$
{
widthCB.setSelected(true);
widthField.setEnabled(true);
try
{
widthField.getModel().setValue(
new Integer(attribs.get("width").toString())); //$NON-NLS-1$
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
else
{
widthCB.setSelected(false);
widthField.setEnabled(false);
}
if(attribs.containsKey("height")) //$NON-NLS-1$
{
heightCB.setSelected(true);
heightField.setEnabled(true);
try
{
heightField.getModel().setValue(
new Integer(attribs.get("height").toString())); //$NON-NLS-1$
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
else
{
heightCB.setSelected(false);
heightField.setEnabled(false);
}
if(attribs.containsKey("hspace")) //$NON-NLS-1$
{
hSpaceCB.setSelected(true);
hSpaceField.setEnabled(true);
try
{
hSpaceField.getModel().setValue(
new Integer(attribs.get("hspace").toString())); //$NON-NLS-1$
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
else
{
hSpaceCB.setSelected(false);
hSpaceField.setEnabled(false);
}
if(attribs.containsKey("vspace")) //$NON-NLS-1$
{
vSpaceCB.setSelected(true);
vSpaceField.setEnabled(true);
try
{
vSpaceField.getModel().setValue(
new Integer(attribs.get("vspace").toString())); //$NON-NLS-1$
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
else
{
vSpaceCB.setSelected(false);
vSpaceField.setEnabled(false);
}
if(attribs.containsKey("border")) //$NON-NLS-1$
{
borderCB.setSelected(true);
borderField.setEnabled(true);
try
{
borderField.getModel().setValue(
new Integer(attribs.get("border").toString())); //$NON-NLS-1$
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
else
{
borderCB.setSelected(false);
borderField.setEnabled(false);
}
if(attribs.containsKey("align")) //$NON-NLS-1$
{
alignCB.setSelected(true);
alignCombo.setEnabled(true);
alignCombo.setSelectedItem(attribs.get("align")); //$NON-NLS-1$
}
else
{
alignCB.setSelected(false);
alignCombo.setEnabled(false);
}
}
public void updateAttribsFromComponents()
{
attribs.put("src", imgUrlField.getText()); //$NON-NLS-1$
if(altTextCB.isSelected())
attribs.put("alt", altTextField.getText()); //$NON-NLS-1$
else
attribs.remove("alt"); //$NON-NLS-1$
if(widthCB.isSelected())
attribs.put("width", widthField.getModel().getValue().toString()); //$NON-NLS-1$
else
attribs.remove("width"); //$NON-NLS-1$
if(heightCB.isSelected())
attribs.put("height", heightField.getModel().getValue().toString()); //$NON-NLS-1$
else
attribs.remove("height"); //$NON-NLS-1$
if(vSpaceCB.isSelected())
attribs.put("vspace", vSpaceField.getModel().getValue().toString()); //$NON-NLS-1$
else
attribs.remove("vspace"); //$NON-NLS-1$
if(hSpaceCB.isSelected())
attribs.put("hspace", hSpaceField.getModel().getValue().toString()); //$NON-NLS-1$
else
attribs.remove("hspace"); //$NON-NLS-1$
if(borderCB.isSelected())
attribs.put("border", borderField.getModel().getValue().toString()); //$NON-NLS-1$
else
attribs.remove("border"); //$NON-NLS-1$
if(alignCB.isSelected())
attribs.put("align", alignCombo.getSelectedItem().toString()); //$NON-NLS-1$
else
attribs.remove("align"); //$NON-NLS-1$
}
/**
* This method initializes this
*
* @return void
*/
private void initialize()
{
GridBagConstraints gridBagConstraints21 = new GridBagConstraints();
gridBagConstraints21.gridx = 0;
gridBagConstraints21.gridwidth = 2;
gridBagConstraints21.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints21.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints21.weighty = 1.0;
gridBagConstraints21.gridy = 3;
GridBagConstraints gridBagConstraints16 = new GridBagConstraints();
gridBagConstraints16.gridx = 0;
gridBagConstraints16.gridwidth = 2;
gridBagConstraints16.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints16.gridy = 2;
GridBagConstraints gridBagConstraints15 = new GridBagConstraints();
gridBagConstraints15.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints15.gridy = 1;
gridBagConstraints15.weightx = 1.0;
gridBagConstraints15.insets = new java.awt.Insets(0,0,10,0);
gridBagConstraints15.gridwidth = 1;
gridBagConstraints15.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints15.gridx = 1;
GridBagConstraints gridBagConstraints14 = new GridBagConstraints();
gridBagConstraints14.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints14.gridy = 0;
gridBagConstraints14.weightx = 1.0;
gridBagConstraints14.insets = new java.awt.Insets(0,0,5,0);
gridBagConstraints14.gridwidth = 1;
gridBagConstraints14.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints14.gridx = 1;
GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
gridBagConstraints1.gridx = 0;
gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints1.insets = new java.awt.Insets(0,0,10,5);
gridBagConstraints1.gridy = 1;
GridBagConstraints gridBagConstraints = new GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0,0,5,5);
gridBagConstraints.gridy = 0;
imgUrlLabel = new JLabel();
imgUrlLabel.setText(i18n.str("image_url")); //$NON-NLS-1$
this.setLayout(new GridBagLayout());
this.setSize(365, 188);
//this.setBorder(javax.swing.BorderFactory.createCompoundBorder(javax.swing.BorderFactory.createTitledBorder(null, "Image Properties", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null), javax.swing.BorderFactory.createEmptyBorder(5,5,5,5)));
this.add(imgUrlLabel, gridBagConstraints);
this.add(getAltTextCB(), gridBagConstraints1);
this.add(getImgUrlField(), gridBagConstraints14);
this.add(getAltTextField(), gridBagConstraints15);
this.add(getAttribPanel(), gridBagConstraints16);
this.add(getSpacerPanel(), gridBagConstraints21);
TextEditPopupManager popupMan = TextEditPopupManager.getInstance();
popupMan.registerJTextComponent(imgUrlField);
popupMan.registerJTextComponent(altTextField);
}
/**
* This method initializes altTextCB
*
* @return javax.swing.JCheckBox
*/
private JCheckBox getAltTextCB()
{
if(altTextCB == null)
{
altTextCB = new JCheckBox();
altTextCB.setText(i18n.str("alt_text")); //$NON-NLS-1$
altTextCB.addItemListener(new java.awt.event.ItemListener()
{
public void itemStateChanged(java.awt.event.ItemEvent e)
{
altTextField.setEditable(altTextCB.isSelected());
}
});
}
return altTextCB;
}
/**
* This method initializes widthCB
*
* @return javax.swing.JCheckBox
*/
private JCheckBox getWidthCB()
{
if(widthCB == null)
{
widthCB = new JCheckBox();
widthCB.setText(i18n.str("width")); //$NON-NLS-1$
widthCB.addItemListener(new java.awt.event.ItemListener()
{
public void itemStateChanged(java.awt.event.ItemEvent e)
{
widthField.setEnabled(widthCB.isSelected());
}
});
}
return widthCB;
}
/**
* This method initializes heightCB
*
* @return javax.swing.JCheckBox
*/
private JCheckBox getHeightCB()
{
if(heightCB == null)
{
heightCB = new JCheckBox();
heightCB.setText(i18n.str("height")); //$NON-NLS-1$
heightCB.addItemListener(new java.awt.event.ItemListener()
{
public void itemStateChanged(java.awt.event.ItemEvent e)
{
heightField.setEnabled(heightCB.isSelected());
}
});
}
return heightCB;
}
/**
* This method initializes borderCB
*
* @return javax.swing.JCheckBox
*/
private JCheckBox getBorderCB()
{
if(borderCB == null)
{
borderCB = new JCheckBox();
borderCB.setText(i18n.str("border")); //$NON-NLS-1$
borderCB.addItemListener(new java.awt.event.ItemListener()
{
public void itemStateChanged(java.awt.event.ItemEvent e)
{
borderField.setEnabled(borderCB.isSelected());
}
});
}
return borderCB;
}
/**
* This method initializes widthField
*
* @return javax.swing.JSpinner
*/
private JSpinner getWidthField()
{
if(widthField == null)
{
widthField = new JSpinner(new SpinnerNumberModel(1, 1, 999, 1));
//widthField.setColumns(4);
}
return widthField;
}
/**
* This method initializes heightField
*
* @return javax.swing.JSpinner
*/
private JSpinner getHeightField()
{
if(heightField == null)
{
heightField = new JSpinner(new SpinnerNumberModel(1, 1, 999, 1));
//heightField.setColumns(4);
}
return heightField;
}
/**
* This method initializes borderField
*
* @return javax.swing.JSpinner
*/
private JSpinner getBorderField()
{
if(borderField == null)
{
borderField = new JSpinner(new SpinnerNumberModel(1, 0, 999, 1));
//borderField.setColumns(4);
}
return borderField;
}
/**
* This method initializes vSpaceCB
*
* @return javax.swing.JCheckBox
*/
private JCheckBox getVSpaceCB()
{
if(vSpaceCB == null)
{
vSpaceCB = new JCheckBox();
vSpaceCB.setText(i18n.str("vspace")); //$NON-NLS-1$
vSpaceCB.addItemListener(new java.awt.event.ItemListener()
{
public void itemStateChanged(java.awt.event.ItemEvent e)
{
vSpaceField.setEnabled(vSpaceCB.isSelected());
}
});
}
return vSpaceCB;
}
/**
* This method initializes hSpaceCB
*
* @return javax.swing.JCheckBox
*/
private JCheckBox getHSpaceCB()
{
if(hSpaceCB == null)
{
hSpaceCB = new JCheckBox();
hSpaceCB.setText(i18n.str("hspace")); //$NON-NLS-1$
hSpaceCB.addItemListener(new java.awt.event.ItemListener()
{
public void itemStateChanged(java.awt.event.ItemEvent e)
{
hSpaceField.setEnabled(hSpaceCB.isSelected());
}
});
}
return hSpaceCB;
}
/**
* This method initializes alignCB
*
* @return javax.swing.JCheckBox
*/
private JCheckBox getAlignCB()
{
if(alignCB == null)
{
alignCB = new JCheckBox();
alignCB.setText(i18n.str("align")); //$NON-NLS-1$
alignCB.addItemListener(new java.awt.event.ItemListener()
{
public void itemStateChanged(java.awt.event.ItemEvent e)
{
alignCombo.setEnabled(alignCB.isSelected());
}
});
}
return alignCB;
}
/**
* This method initializes vSpaceField
*
* @return javax.swing.JSpinner
*/
private JSpinner getVSpaceField()
{
if(vSpaceField == null)
{
vSpaceField = new JSpinner(new SpinnerNumberModel(1, 1, 999, 1));
//vSpaceField.setColumns(4);
}
return vSpaceField;
}
/**
* This method initializes hSpaceField
*
* @return javax.swing.JSpinner
*/
private JSpinner getHSpaceField()
{
if(hSpaceField == null)
{
hSpaceField = new JSpinner(new SpinnerNumberModel(1, 1, 999, 1));
//hSpaceField.setColumns(4);
}
return hSpaceField;
}
/**
* This method initializes alignCombo
*
* @return javax.swing.JComboBox
*/
private JComboBox getAlignCombo()
{
if(alignCombo == null)
{
alignCombo = new JComboBox(ALIGNMENTS);
}
return alignCombo;
}
/**
* This method initializes imgUrlField
*
* @return javax.swing.JTextField
*/
private JTextField getImgUrlField()
{
if(imgUrlField == null)
{
imgUrlField = new JTextField();
}
return imgUrlField;
}
/**
* This method initializes altTextField
*
* @return javax.swing.JTextField
*/
private JTextField getAltTextField()
{
if(altTextField == null)
{
altTextField = new JTextField();
}
return altTextField;
}
/**
* This method initializes attribPanel
*
* @return javax.swing.JPanel
*/
private JPanel getAttribPanel()
{
if(attribPanel == null)
{
GridBagConstraints gridBagConstraints13 = new GridBagConstraints();
gridBagConstraints13.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints13.insets = new Insets(0, 0, 10, 0);
gridBagConstraints13.gridx = 3;
gridBagConstraints13.gridy = 2;
gridBagConstraints13.weightx = 1.0;
gridBagConstraints13.fill = java.awt.GridBagConstraints.NONE;
GridBagConstraints gridBagConstraints12 = new GridBagConstraints();
gridBagConstraints12.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints12.insets = new java.awt.Insets(0,0,10,0);
gridBagConstraints12.gridx = 3;
gridBagConstraints12.gridy = 1;
gridBagConstraints12.weightx = 0.0;
gridBagConstraints12.fill = java.awt.GridBagConstraints.NONE;
GridBagConstraints gridBagConstraints11 = new GridBagConstraints();
gridBagConstraints11.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints11.insets = new java.awt.Insets(0,0,5,0);
gridBagConstraints11.gridx = 3;
gridBagConstraints11.gridy = 0;
gridBagConstraints11.weightx = 0.0;
gridBagConstraints11.fill = java.awt.GridBagConstraints.NONE;
GridBagConstraints gridBagConstraints10 = new GridBagConstraints();
gridBagConstraints10.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints10.gridx = 2;
gridBagConstraints10.gridy = 2;
gridBagConstraints10.insets = new java.awt.Insets(0,0,10,5);
GridBagConstraints gridBagConstraints9 = new GridBagConstraints();
gridBagConstraints9.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints9.gridx = 2;
gridBagConstraints9.gridy = 1;
gridBagConstraints9.insets = new java.awt.Insets(0,0,10,5);
GridBagConstraints gridBagConstraints8 = new GridBagConstraints();
gridBagConstraints8.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints8.gridx = 2;
gridBagConstraints8.gridy = 0;
gridBagConstraints8.insets = new java.awt.Insets(0,0,5,5);
GridBagConstraints gridBagConstraints7 = new GridBagConstraints();
gridBagConstraints7.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints7.insets = new java.awt.Insets(0,0,10,10);
gridBagConstraints7.gridx = 1;
gridBagConstraints7.gridy = 2;
gridBagConstraints7.weightx = 0.0;
gridBagConstraints7.fill = java.awt.GridBagConstraints.NONE;
GridBagConstraints gridBagConstraints6 = new GridBagConstraints();
gridBagConstraints6.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints6.insets = new java.awt.Insets(0,0,10,10);
gridBagConstraints6.gridx = 1;
gridBagConstraints6.gridy = 1;
gridBagConstraints6.weightx = 0.0;
gridBagConstraints6.fill = java.awt.GridBagConstraints.NONE;
GridBagConstraints gridBagConstraints5 = new GridBagConstraints();
gridBagConstraints5.anchor = GridBagConstraints.WEST;
gridBagConstraints5.insets = new Insets(0, 0, 5, 10);
gridBagConstraints5.gridx = 1;
gridBagConstraints5.gridy = 0;
gridBagConstraints5.weightx = 0.0;
gridBagConstraints5.fill = GridBagConstraints.NONE;
GridBagConstraints gridBagConstraints4 = new GridBagConstraints();
gridBagConstraints4.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints4.gridx = 0;
gridBagConstraints4.gridy = 2;
gridBagConstraints4.insets = new java.awt.Insets(0,0,10,5);
GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
gridBagConstraints3.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints3.gridx = 0;
gridBagConstraints3.gridy = 1;
gridBagConstraints3.insets = new java.awt.Insets(0,0,10,5);
GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints2.gridx = 0;
gridBagConstraints2.gridy = 0;
gridBagConstraints2.insets = new java.awt.Insets(0,0,5,5);
attribPanel = new JPanel();
attribPanel.setLayout(new GridBagLayout());
attribPanel.add(getWidthCB(), gridBagConstraints2);
attribPanel.add(getHeightCB(), gridBagConstraints3);
attribPanel.add(getBorderCB(), gridBagConstraints4);
attribPanel.add(getWidthField(), gridBagConstraints5);
attribPanel.add(getHeightField(), gridBagConstraints6);
attribPanel.add(getBorderField(), gridBagConstraints7);
attribPanel.add(getVSpaceCB(), gridBagConstraints8);
attribPanel.add(getHSpaceCB(), gridBagConstraints9);
attribPanel.add(getAlignCB(), gridBagConstraints10);
attribPanel.add(getVSpaceField(), gridBagConstraints11);
attribPanel.add(getHSpaceField(), gridBagConstraints12);
attribPanel.add(getAlignCombo(), gridBagConstraints13);
}
return attribPanel;
}
/**
* This method initializes spacerPanel
*
* @return javax.swing.JPanel
*/
private JPanel getSpacerPanel()
{
if(spacerPanel == null)
{
spacerPanel = new JPanel();
}
return spacerPanel;
}
} // @jve:decl-index=0:visual-constraint="10,10"