/*
* Created on Dec 23, 2005
*
*/
package net.atlanticbb.tantlinger.ui.text.dialogs;
import javax.swing.JPanel;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import javax.swing.JCheckBox;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import java.util.*;
public class CellAttributesPanel extends HTMLAttributeEditorPanel
{
/**
*
*/
private static final long serialVersionUID = 1L;
private AlignmentAttributesPanel alignPanel = null;
private SizeAttributesPanel sizePanel = null;
private JCheckBox dontWrapCB = null;
private BGColorPanel bgColorPanel = null;
private JPanel spanPanel = null;
private JCheckBox colSpanCB = null;
private JCheckBox rowSpanCB = null;
private JSpinner colSpanField = null;
private JSpinner rowSpanField = null;
private JPanel expansionPanel = null;
/**
* This is the default constructor
*/
public CellAttributesPanel()
{
this(new Hashtable());
}
public CellAttributesPanel(Hashtable attr)
{
super(attr);
initialize();
alignPanel.setAttributes(getAttributes());
sizePanel.setAttributes(getAttributes());
updateComponentsFromAttribs();
}
public void updateComponentsFromAttribs()
{
alignPanel.updateComponentsFromAttribs();
sizePanel.updateComponentsFromAttribs();
if(attribs.containsKey("colspan")) //$NON-NLS-1$
{
colSpanCB.setSelected(true);
colSpanField.setEnabled(true);
try
{
colSpanField.getModel().setValue(
new Integer(attribs.get("colspan").toString())); //$NON-NLS-1$
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
else
{
colSpanCB.setSelected(false);
colSpanField.setEnabled(false);
}
if(attribs.containsKey("rowspan")) //$NON-NLS-1$
{
rowSpanCB.setSelected(true);
rowSpanField.setEnabled(true);
try
{
rowSpanField.getModel().setValue(
new Integer(attribs.get("rowspan").toString())); //$NON-NLS-1$
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
else
{
rowSpanCB.setSelected(false);
rowSpanField.setEnabled(false);
}
if(attribs.containsKey("bgcolor")) //$NON-NLS-1$
{
bgColorPanel.setSelected(true);
bgColorPanel.setColor(attribs.get("bgcolor").toString()); //$NON-NLS-1$
}
else
{
bgColorPanel.setSelected(false);
}
dontWrapCB.setSelected(attribs.containsKey("nowrap")); //$NON-NLS-1$
}
public void updateAttribsFromComponents()
{
alignPanel.updateAttribsFromComponents();
sizePanel.updateAttribsFromComponents();
if(dontWrapCB.isSelected())
attribs.put("nowrap", "nowrap"); //$NON-NLS-1$ //$NON-NLS-2$
else
attribs.remove("nowrap"); //$NON-NLS-1$
if(bgColorPanel.isSelected())
attribs.put("bgcolor", bgColorPanel.getColor()); //$NON-NLS-1$
else
attribs.remove("bgcolor"); //$NON-NLS-1$
if(colSpanCB.isSelected())
attribs.put("colspan", colSpanField.getModel().getValue().toString()); //$NON-NLS-1$
else
attribs.remove("colspan"); //$NON-NLS-1$
if(rowSpanCB.isSelected())
attribs.put("rowspan", rowSpanField.getModel().getValue().toString()); //$NON-NLS-1$
else
attribs.remove("rowspan"); //$NON-NLS-1$
}
public void setAttributes(Map attr)
{
alignPanel.setAttributes(attr);
sizePanel.setAttributes(attr);
super.setAttributes(attr);
}
/**
* This method initializes this
*
* @return void
*/
private void initialize()
{
GridBagConstraints gridBagConstraints31 = new GridBagConstraints();
gridBagConstraints31.gridx = 0;
gridBagConstraints31.gridwidth = 3;
gridBagConstraints31.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints31.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints31.weighty = 1.0;
gridBagConstraints31.gridy = 3;
GridBagConstraints gridBagConstraints21 = new GridBagConstraints();
gridBagConstraints21.gridx = 0;
gridBagConstraints21.gridheight = 2;
gridBagConstraints21.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints21.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints21.insets = new java.awt.Insets(0,0,0,5);
gridBagConstraints21.gridy = 1;
GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
gridBagConstraints3.gridx = 1;
gridBagConstraints3.gridwidth = 2;
gridBagConstraints3.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints3.gridy = 2;
GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
gridBagConstraints2.gridx = 1;
gridBagConstraints2.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints2.insets = new java.awt.Insets(0,0,5,0);
gridBagConstraints2.gridwidth = 2;
gridBagConstraints2.gridy = 1;
GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
gridBagConstraints1.gridx = 1;
gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints1.weightx = 1.0;
gridBagConstraints1.insets = new java.awt.Insets(0,0,5,0);
gridBagConstraints1.gridy = 0;
GridBagConstraints gridBagConstraints = new GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0,0,5,5);
gridBagConstraints.gridwidth = 1;
gridBagConstraints.gridy = 0;
this.setLayout(new GridBagLayout());
this.setSize(420, 200);
this.setPreferredSize(new java.awt.Dimension(410,200));
this.add(getAlignPanel(), gridBagConstraints);
this.add(getSizePanel(), gridBagConstraints1);
this.add(getDontWrapCB(), gridBagConstraints2);
this.add(getBgColorPanel(), gridBagConstraints3);
this.add(getSpanPanel(), gridBagConstraints21);
this.add(getExpansionPanel(), gridBagConstraints31);
}
/**
* This method initializes alignPanel
*
* @return javax.swing.JPanel
*/
private AlignmentAttributesPanel getAlignPanel()
{
if(alignPanel == null)
{
alignPanel = new AlignmentAttributesPanel();
alignPanel.setPreferredSize(new java.awt.Dimension(180,95));
}
return alignPanel;
}
/**
* This method initializes sizePanel
*
* @return javax.swing.JPanel
*/
private JPanel getSizePanel()
{
if(sizePanel == null)
{
sizePanel = new SizeAttributesPanel();
}
return sizePanel;
}
/**
* This method initializes dontWrapCB
*
* @return javax.swing.JCheckBox
*/
private JCheckBox getDontWrapCB()
{
if(dontWrapCB == null)
{
dontWrapCB = new JCheckBox();
dontWrapCB.setText(i18n.str("dont_wrap_text")); //$NON-NLS-1$
}
return dontWrapCB;
}
/**
* This method initializes bgColorPanel
*
* @return javax.swing.JPanel
*/
private BGColorPanel getBgColorPanel()
{
if(bgColorPanel == null)
{
bgColorPanel = new BGColorPanel();
}
return bgColorPanel;
}
/**
* This method initializes spanPanel
*
* @return javax.swing.JPanel
*/
private JPanel getSpanPanel()
{
if(spanPanel == null)
{
GridBagConstraints gridBagConstraints7 = new GridBagConstraints();
gridBagConstraints7.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints7.gridy = 1;
gridBagConstraints7.weightx = 1.0;
gridBagConstraints7.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints7.gridx = 1;
GridBagConstraints gridBagConstraints6 = new GridBagConstraints();
gridBagConstraints6.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints6.gridy = 0;
gridBagConstraints6.weightx = 0.0;
gridBagConstraints6.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints6.gridx = 1;
GridBagConstraints gridBagConstraints5 = new GridBagConstraints();
gridBagConstraints5.gridx = 0;
gridBagConstraints5.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints5.gridheight = 1;
gridBagConstraints5.insets = new java.awt.Insets(0,0,0,0);
gridBagConstraints5.gridy = 1;
GridBagConstraints gridBagConstraints4 = new GridBagConstraints();
gridBagConstraints4.gridx = 0;
gridBagConstraints4.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints4.insets = new java.awt.Insets(0,0,5,0);
gridBagConstraints4.gridy = 0;
spanPanel = new JPanel();
spanPanel.setLayout(new GridBagLayout());
spanPanel.setBorder(javax.swing.BorderFactory.createCompoundBorder(javax.swing.BorderFactory.createTitledBorder(null, i18n.str("span"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null), javax.swing.BorderFactory.createEmptyBorder(2,2,2,2))); //$NON-NLS-1$
spanPanel.add(getColSpanCB(), gridBagConstraints4);
spanPanel.add(getRowSpanCB(), gridBagConstraints5);
spanPanel.add(getColSpanField(), gridBagConstraints6);
spanPanel.add(getRowSpanField(), gridBagConstraints7);
}
return spanPanel;
}
/**
* This method initializes colSpanCB
*
* @return javax.swing.JCheckBox
*/
private JCheckBox getColSpanCB()
{
if(colSpanCB == null)
{
colSpanCB = new JCheckBox();
colSpanCB.setText(i18n.str("colspan")); //$NON-NLS-1$
colSpanCB.setPreferredSize(new java.awt.Dimension(85,25));
colSpanCB.addItemListener(new java.awt.event.ItemListener()
{
public void itemStateChanged(java.awt.event.ItemEvent e)
{
colSpanField.setEnabled(colSpanCB.isSelected());
}
});
}
return colSpanCB;
}
/**
* This method initializes rowSpanCB
*
* @return javax.swing.JCheckBox
*/
private JCheckBox getRowSpanCB()
{
if(rowSpanCB == null)
{
rowSpanCB = new JCheckBox();
rowSpanCB.setText(i18n.str("rowspan")); //$NON-NLS-1$
rowSpanCB.addItemListener(new java.awt.event.ItemListener()
{
public void itemStateChanged(java.awt.event.ItemEvent e)
{
rowSpanField.setEnabled(rowSpanCB.isSelected());
}
});
}
return rowSpanCB;
}
/**
* This method initializes colSpanField
*
* @return javax.swing.JSpinner
*/
private JSpinner getColSpanField()
{
if(colSpanField == null)
{
colSpanField = new JSpinner(new SpinnerNumberModel(1, 1, 999, 1));
}
return colSpanField;
}
/**
* This method initializes rowSpanField
*
* @return javax.swing.JSpinner
*/
private JSpinner getRowSpanField()
{
if(rowSpanField == null)
{
rowSpanField = new JSpinner(new SpinnerNumberModel(1, 1, 999, 1));
}
return rowSpanField;
}
/**
* This method initializes expansionPanel
*
* @return javax.swing.JPanel
*/
private JPanel getExpansionPanel()
{
if(expansionPanel == null)
{
expansionPanel = new JPanel();
}
return expansionPanel;
}
} // @jve:decl-index=0:visual-constraint="42,7"