/* * Created on Dec 22, 2005 * */ package net.atlanticbb.tantlinger.ui.text.dialogs; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.util.Hashtable; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JPanel; import javax.swing.JSpinner; import javax.swing.SpinnerNumberModel; public class TableAttributesPanel extends HTMLAttributeEditorPanel { /** * */ private static final long serialVersionUID = 1L; private static final String ALIGNMENTS[] = {"left", "center", "right"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ private static final String MEASUREMENTS[] = {"percent", "pixels"}; //$NON-NLS-1$ //$NON-NLS-2$ private JCheckBox widthCB = null; private JSpinner widthField = null; private JComboBox widthCombo = null; private JCheckBox alignCB = null; private JCheckBox cellSpacingCB = null; private JSpinner cellSpacingField = null; private JCheckBox borderCB = null; private JSpinner borderField = null; private JCheckBox cellPaddingCB = null; private JSpinner cellPaddingField = null; private JComboBox alignCombo = null; private BGColorPanel bgPanel = null; private JPanel expansionPanel = null; /** * This is the default constructor */ public TableAttributesPanel() { this(new Hashtable()); //super(); //initialize(); //Hashtable ht = new Hashtable(); //ht.put("width", "100%"); //ht.put("border", "1"); //setComponentStates(ht); } public TableAttributesPanel(Hashtable attribs) { super(attribs); initialize(); updateComponentsFromAttribs(); } public void updateComponentsFromAttribs() { if(attribs.containsKey("width")) //$NON-NLS-1$ { widthCB.setSelected(true); String w = attribs.get("width").toString(); //$NON-NLS-1$ if(w.endsWith("%")) //$NON-NLS-1$ w = w.substring(0, w.length() - 1); else widthCombo.setSelectedIndex(1); widthField.setEnabled(true); try { widthField.getModel().setValue(new Integer(w)); } catch(Exception ex) { ex.printStackTrace(); } } else { widthCB.setSelected(false); widthField.setEnabled(false); widthCombo.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); } 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("cellpadding")) //$NON-NLS-1$ { cellPaddingCB.setSelected(true); cellPaddingField.setEnabled(true); try { cellPaddingField.getModel().setValue( new Integer(attribs.get("cellpadding").toString())); //$NON-NLS-1$ } catch(Exception ex) { ex.printStackTrace(); } } else { cellPaddingCB.setSelected(false); cellPaddingField.setEnabled(false); } if(attribs.containsKey("cellspacing")) //$NON-NLS-1$ { cellSpacingCB.setSelected(true); cellSpacingField.setEnabled(true); try { cellSpacingField.getModel().setValue( new Integer(attribs.get("cellspacing").toString())); //$NON-NLS-1$ } catch(Exception ex) { ex.printStackTrace(); } } else { cellSpacingCB.setSelected(false); cellSpacingField.setEnabled(false); } if(attribs.containsKey("bgcolor")) //$NON-NLS-1$ { bgPanel.setSelected(true); bgPanel.setColor(attribs.get("bgcolor").toString()); //$NON-NLS-1$ } else { bgPanel.setSelected(false); } } public void updateAttribsFromComponents() { if(widthCB.isSelected()) { String w = widthField.getModel().getValue().toString(); if(widthCombo.getSelectedIndex() == 0) w += "%"; //$NON-NLS-1$ attribs.put("width", w); //$NON-NLS-1$ } else attribs.remove("width"); //$NON-NLS-1$ if(alignCB.isSelected()) attribs.put("align", alignCombo.getSelectedItem().toString()); //$NON-NLS-1$ else attribs.remove("align"); //$NON-NLS-1$ if(borderCB.isSelected()) attribs.put("border", //$NON-NLS-1$ borderField.getModel().getValue().toString()); else attribs.remove("border"); //$NON-NLS-1$ if(cellSpacingCB.isSelected()) attribs.put("cellspacing", //$NON-NLS-1$ cellSpacingField.getModel().getValue().toString()); else attribs.remove("cellspacing"); //$NON-NLS-1$ if(cellPaddingCB.isSelected()) attribs.put("cellpadding", //$NON-NLS-1$ cellPaddingField.getModel().getValue().toString()); else attribs.remove("cellpadding"); //$NON-NLS-1$ if(bgPanel.isSelected()) attribs.put("bgcolor", bgPanel.getColor()); //$NON-NLS-1$ else attribs.remove("bgcolor"); //$NON-NLS-1$ } public void setComponentStates(Hashtable attribs) { if(attribs.containsKey("width")) //$NON-NLS-1$ { widthCB.setSelected(true); String w = attribs.get("width").toString(); //$NON-NLS-1$ if(w.endsWith("%")) //$NON-NLS-1$ w = w.substring(0, w.length() - 1); else widthCombo.setSelectedIndex(1); try { widthField.getModel().setValue(new Integer(w)); } catch(Exception ex) { ex.printStackTrace(); } } else { widthCB.setSelected(false); widthField.setEnabled(false); widthCombo.setEnabled(false); } if(attribs.containsKey("align")) //$NON-NLS-1$ { alignCB.setSelected(true); alignCombo.setSelectedItem(attribs.get("align")); //$NON-NLS-1$ } else { alignCB.setSelected(false); alignCombo.setEnabled(false); } if(attribs.containsKey("border")) //$NON-NLS-1$ { borderCB.setSelected(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("cellpadding")) //$NON-NLS-1$ { cellPaddingCB.setSelected(true); try { cellPaddingField.getModel().setValue( new Integer(attribs.get("cellpadding").toString())); //$NON-NLS-1$ } catch(Exception ex) { ex.printStackTrace(); } } else { cellPaddingCB.setSelected(false); cellPaddingField.setEnabled(false); } if(attribs.containsKey("cellspacing")) //$NON-NLS-1$ { cellSpacingCB.setSelected(true); try { cellSpacingField.getModel().setValue( new Integer(attribs.get("cellspacing").toString())); //$NON-NLS-1$ } catch(Exception ex) { ex.printStackTrace(); } } else { cellSpacingCB.setSelected(false); cellSpacingField.setEnabled(false); } if(attribs.containsKey("bgcolor")) //$NON-NLS-1$ { bgPanel.setSelected(true); bgPanel.setColor(attribs.get("bgcolor").toString()); //$NON-NLS-1$ } else { bgPanel.setSelected(false); } } /** * This method initializes this * * @return void */ private void initialize() { GridBagConstraints gridBagConstraints12 = new GridBagConstraints(); gridBagConstraints12.gridx = 0; gridBagConstraints12.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints12.gridwidth = 4; gridBagConstraints12.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints12.weightx = 0.0; gridBagConstraints12.weighty = 1.0; gridBagConstraints12.gridy = 4; GridBagConstraints gridBagConstraints11 = new GridBagConstraints(); gridBagConstraints11.gridx = 0; gridBagConstraints11.gridwidth = 4; gridBagConstraints11.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints11.weighty = 0.0; gridBagConstraints11.gridy = 3; GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); gridBagConstraints4.fill = java.awt.GridBagConstraints.NONE; gridBagConstraints4.gridy = 1; gridBagConstraints4.weightx = 0.0; gridBagConstraints4.gridwidth = 2; gridBagConstraints4.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints4.insets = new java.awt.Insets(0,0,5,15); gridBagConstraints4.gridx = 1; GridBagConstraints gridBagConstraints10 = new GridBagConstraints(); gridBagConstraints10.fill = java.awt.GridBagConstraints.NONE; gridBagConstraints10.gridy = 2; gridBagConstraints10.weightx = 1.0; gridBagConstraints10.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints10.insets = new java.awt.Insets(0,0,10,0); gridBagConstraints10.gridx = 4; GridBagConstraints gridBagConstraints9 = new GridBagConstraints(); gridBagConstraints9.gridx = 3; gridBagConstraints9.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints9.insets = new java.awt.Insets(0,0,10,3); gridBagConstraints9.gridy = 2; GridBagConstraints gridBagConstraints8 = new GridBagConstraints(); gridBagConstraints8.fill = java.awt.GridBagConstraints.NONE; gridBagConstraints8.gridy = 2; gridBagConstraints8.weightx = 0.0; gridBagConstraints8.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints8.insets = new java.awt.Insets(0,0,10,15); gridBagConstraints8.gridx = 1; GridBagConstraints gridBagConstraints7 = new GridBagConstraints(); gridBagConstraints7.gridx = 0; gridBagConstraints7.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints7.insets = new java.awt.Insets(0,0,10,3); gridBagConstraints7.gridy = 2; GridBagConstraints gridBagConstraints6 = new GridBagConstraints(); gridBagConstraints6.fill = java.awt.GridBagConstraints.NONE; gridBagConstraints6.gridy = 1; gridBagConstraints6.weightx = 1.0; gridBagConstraints6.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints6.insets = new java.awt.Insets(0,0,2,0); gridBagConstraints6.gridx = 4; GridBagConstraints gridBagConstraints5 = new GridBagConstraints(); gridBagConstraints5.gridx = 3; gridBagConstraints5.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints5.insets = new java.awt.Insets(0,0,2,3); gridBagConstraints5.gridy = 1; GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); gridBagConstraints3.gridx = 0; gridBagConstraints3.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints3.insets = new java.awt.Insets(0,0,2,3); gridBagConstraints3.gridy = 1; GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); gridBagConstraints2.fill = java.awt.GridBagConstraints.NONE; gridBagConstraints2.gridy = 0; gridBagConstraints2.weightx = 0.0; gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints2.gridwidth = 2; gridBagConstraints2.insets = new java.awt.Insets(0,0,10,0); gridBagConstraints2.gridx = 2; GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); gridBagConstraints1.fill = java.awt.GridBagConstraints.NONE; gridBagConstraints1.gridy = 0; gridBagConstraints1.weightx = 0.0; gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints1.insets = new java.awt.Insets(0,0,10,0); gridBagConstraints1.gridx = 1; GridBagConstraints gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0,0,10,3); gridBagConstraints.gridy = 0; this.setLayout(new GridBagLayout()); this.setSize(320, 140); this.setPreferredSize(new java.awt.Dimension(320,140)); this.add(getWidthCB(), gridBagConstraints); this.add(getWidthField(), gridBagConstraints1); this.add(getWidthCombo(), gridBagConstraints2); this.add(getAlignCB(), gridBagConstraints3); this.add(getCellSpacingCB(), gridBagConstraints5); this.add(getCellSpacingField(), gridBagConstraints6); this.add(getBorderCB(), gridBagConstraints7); this.add(getBorderField(), gridBagConstraints8); this.add(getCellPaddingCB(), gridBagConstraints9); this.add(getCellPaddingField(), gridBagConstraints10); this.add(getAlignCombo(), gridBagConstraints4); this.add(getBGPanel(), gridBagConstraints11); this.add(getExpansionPanel(), gridBagConstraints12); } /** * 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()); widthCombo.setEnabled(widthCB.isSelected()); } }); } return widthCB; } /** * This method initializes widthField * * @return javax.swing.JSpinner */ private JSpinner getWidthField() { if(widthField == null) { widthField = new JSpinner(new SpinnerNumberModel(100, 1, 999, 1)); } return widthField; } /** * This method initializes widthCombo * * @return javax.swing.JComboBox */ private JComboBox getWidthCombo() { if(widthCombo == null) { widthCombo = new JComboBox(MEASUREMENTS); } return widthCombo; } /** * 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 cellSpacingCB * * @return javax.swing.JCheckBox */ private JCheckBox getCellSpacingCB() { if(cellSpacingCB == null) { cellSpacingCB = new JCheckBox(); cellSpacingCB.setText(i18n.str("cellspacing")); //$NON-NLS-1$ cellSpacingCB.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent e) { cellSpacingField.setEnabled(cellSpacingCB.isSelected()); } }); } return cellSpacingCB; } /** * This method initializes cellSpacingField * * @return javax.swing.JSpinner */ private JSpinner getCellSpacingField() { if(cellSpacingField == null) { cellSpacingField = new JSpinner(new SpinnerNumberModel(1, 0, 999, 1)); } return cellSpacingField; } /** * 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 borderField * * @return javax.swing.JSpinner */ private JSpinner getBorderField() { if(borderField == null) { borderField = new JSpinner(new SpinnerNumberModel(1, 0, 999, 1)); } return borderField; } /** * This method initializes cellPaddingCB * * @return javax.swing.JCheckBox */ private JCheckBox getCellPaddingCB() { if(cellPaddingCB == null) { cellPaddingCB = new JCheckBox(); cellPaddingCB.setText(i18n.str("cellpadding")); //$NON-NLS-1$ cellPaddingCB.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent e) { cellPaddingField.setEnabled(cellPaddingCB.isSelected()); } }); } return cellPaddingCB; } /** * This method initializes cellPaddingField * * @return javax.swing.JSpinner */ private JSpinner getCellPaddingField() { if(cellPaddingField == null) { cellPaddingField = new JSpinner(new SpinnerNumberModel(1, 0, 999, 1)); } return cellPaddingField; } /** * This method initializes alignCombo * * @return javax.swing.JComboBox */ private JComboBox getAlignCombo() { if(alignCombo == null) { alignCombo = new JComboBox(ALIGNMENTS); } return alignCombo; } /** * This method initializes tempPanel * * @return javax.swing.JPanel */ private JPanel getBGPanel() { if(bgPanel == null) { bgPanel = new BGColorPanel(); } return bgPanel; } /** * 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="16,10"