/* * Created on Jan 15, 2006 * */ package net.atlanticbb.tantlinger.ui.text.dialogs; import java.awt.GridBagLayout; import javax.swing.JCheckBox; import java.awt.GridBagConstraints; import javax.swing.JTextField; import javax.swing.JComboBox; import javax.swing.JPanel; import net.atlanticbb.tantlinger.ui.text.TextEditPopupManager; public class LinkAttributesPanel extends HTMLAttributeEditorPanel { /** * */ private static final long serialVersionUID = 1L; private static final String NEW_WIN = "New Window"; //$NON-NLS-1$ private static final String SAME_WIN = "Same Window"; //$NON-NLS-1$ private static final String SAME_FRAME = "Same Frame"; //$NON-NLS-1$ private static final String TARGET_LABELS[] = {NEW_WIN, SAME_WIN, SAME_FRAME}; private static final String TARGETS[] = {"_blank", "_top", "_self"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ private JCheckBox nameCB = null; private JCheckBox titleCB = null; private JCheckBox openInCB = null; private JTextField nameField = null; private JTextField titleField = null; private JComboBox openInCombo = null; private JPanel spacerPanel = null; /** * This method initializes * */ public LinkAttributesPanel() { super(); initialize(); updateComponentsFromAttribs(); } public void setEnabled(boolean b) { super.setEnabled(b); nameCB.setEnabled(b); titleCB.setEnabled(b); openInCB.setEnabled(b); nameField.setEditable(nameCB.isSelected() && b); titleField.setEditable(titleCB.isSelected()&& b); openInCombo.setEnabled(openInCB.isSelected() && b); } /** * This method initializes this * */ private void initialize() { GridBagConstraints gridBagConstraints6 = new GridBagConstraints(); gridBagConstraints6.gridx = 0; gridBagConstraints6.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints6.weighty = 1.0; gridBagConstraints6.weightx = 0.0; gridBagConstraints6.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints6.gridwidth = 2; gridBagConstraints6.gridy = 3; GridBagConstraints gridBagConstraints5 = new GridBagConstraints(); gridBagConstraints5.fill = java.awt.GridBagConstraints.NONE; gridBagConstraints5.gridy = 2; gridBagConstraints5.weightx = 1.0; gridBagConstraints5.insets = new java.awt.Insets(0,0,5,0); gridBagConstraints5.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints5.gridx = 1; GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); gridBagConstraints4.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints4.gridy = 1; gridBagConstraints4.weightx = 1.0; gridBagConstraints4.insets = new java.awt.Insets(0,0,5,0); gridBagConstraints4.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints4.gridx = 1; GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); gridBagConstraints3.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints3.gridy = 0; gridBagConstraints3.weightx = 1.0; gridBagConstraints3.insets = new java.awt.Insets(0,0,5,0); gridBagConstraints3.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints3.gridx = 1; GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); gridBagConstraints2.gridx = 0; gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints2.insets = new java.awt.Insets(0,0,5,5); gridBagConstraints2.gridy = 2; GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); gridBagConstraints1.gridx = 0; gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints1.insets = new java.awt.Insets(0,0,5,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; this.setLayout(new GridBagLayout()); this.setSize(new java.awt.Dimension(320,118)); this.setBorder(javax.swing.BorderFactory.createCompoundBorder(javax.swing.BorderFactory.createTitledBorder(null, i18n.str("attributes"), 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$ this.add(getNameCB(), gridBagConstraints); this.add(getTitleCB(), gridBagConstraints1); this.add(getOpenInCB(), gridBagConstraints2); this.add(getNameField(), gridBagConstraints3); this.add(getTitleField(), gridBagConstraints4); this.add(getOpenInCombo(), gridBagConstraints5); this.add(getSpacerPanel(), gridBagConstraints6); TextEditPopupManager.getInstance().registerJTextComponent(nameField); TextEditPopupManager.getInstance().registerJTextComponent(titleField); } public void updateComponentsFromAttribs() { if(attribs.containsKey("name")) //$NON-NLS-1$ { nameCB.setSelected(true); nameField.setEditable(true); nameField.setText(attribs.get("name").toString()); //$NON-NLS-1$ } else { nameCB.setSelected(false); nameField.setEditable(false); } if(attribs.containsKey("title")) //$NON-NLS-1$ { titleCB.setSelected(true); titleField.setEditable(true); titleField.setText(attribs.get("title").toString()); //$NON-NLS-1$ } else { titleCB.setSelected(false); titleField.setEditable(false); } if(attribs.containsKey("target")) //$NON-NLS-1$ { openInCB.setSelected(true); String val = attribs.get("target").toString(); //$NON-NLS-1$ openInCombo.setEnabled(true); for(int i = 0; i < TARGETS.length; i++) { if(val.equals(TARGETS[i])) { openInCombo.setSelectedIndex(i); break; } } } else { openInCB.setSelected(false); openInCombo.setEnabled(false); } } public void updateAttribsFromComponents() { if(openInCB.isSelected()) attribs.put("target", TARGETS[openInCombo.getSelectedIndex()]); //$NON-NLS-1$ else attribs.remove("target"); //$NON-NLS-1$ if(titleCB.isSelected()) attribs.put("title", titleField.getText()); //$NON-NLS-1$ else attribs.remove("title"); //$NON-NLS-1$ if(nameCB.isSelected()) attribs.put("name", nameField.getText()); //$NON-NLS-1$ else attribs.remove("name"); //$NON-NLS-1$ } /** * This method initializes nameCB * * @return javax.swing.JCheckBox */ private JCheckBox getNameCB() { if(nameCB == null) { nameCB = new JCheckBox(); nameCB.setText(i18n.str("name")); //$NON-NLS-1$ nameCB.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent e) { nameField.setEditable(nameCB.isSelected()); } }); } return nameCB; } /** * This method initializes titleCB * * @return javax.swing.JCheckBox */ private JCheckBox getTitleCB() { if(titleCB == null) { titleCB = new JCheckBox(); titleCB.setText(i18n.str("title")); //$NON-NLS-1$ titleCB.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent e) { titleField.setEditable(titleCB.isSelected()); } }); } return titleCB; } /** * This method initializes openInCB * * @return javax.swing.JCheckBox */ private JCheckBox getOpenInCB() { if(openInCB == null) { openInCB = new JCheckBox(); openInCB.setText(i18n.str("open_in")); //$NON-NLS-1$ openInCB.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent e) { openInCombo.setEnabled(openInCB.isSelected()); } }); } return openInCB; } /** * This method initializes nameField * * @return javax.swing.JTextField */ private JTextField getNameField() { if(nameField == null) { nameField = new JTextField(); } return nameField; } /** * This method initializes titleField * * @return javax.swing.JTextField */ private JTextField getTitleField() { if(titleField == null) { titleField = new JTextField(); } return titleField; } /** * This method initializes openInCombo * * @return javax.swing.JComboBox */ private JComboBox getOpenInCombo() { if(openInCombo == null) { openInCombo = new JComboBox(TARGET_LABELS); } return openInCombo; } /** * 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"