Coverage Report - de.glossmaker.gui.bibtex.CustomTableCellEditor
 
Classes in this File Line Coverage Branch Coverage Complexity
CustomTableCellEditor
0%
0/21
0%
0/2
2
CustomTableCellEditor$1
0%
0/12
0%
0/12
2
 
 1  
 package de.glossmaker.gui.bibtex;
 2  
 
 3  
 import java.awt.Component;
 4  
 import java.awt.event.ActionListener;
 5  
 import java.awt.event.KeyEvent;
 6  
 import java.awt.event.KeyListener;
 7  
 import java.util.regex.Matcher;
 8  
 import java.util.regex.Pattern;
 9  
 
 10  
 import javax.help.CSH;
 11  
 import javax.swing.AbstractCellEditor;
 12  
 import javax.swing.JTable;
 13  
 import javax.swing.JTextField;
 14  
 import javax.swing.table.TableCellEditor;
 15  
 
 16  
 import de.glossmaker.gui.gloss.help.HelpSystem;
 17  
 
 18  
 @SuppressWarnings("serial")
 19  0
 public class CustomTableCellEditor extends AbstractCellEditor implements
 20  
                 TableCellEditor {
 21  
         
 22  0
         private JTextField mTextField = null;
 23  
         private ActionListener mActionListener;
 24  
         
 25  
         
 26  
         private void setTextInBrackets(String pattern, String prefix, String suffix) {
 27  0
                 String text = mTextField.getText();
 28  0
                 Pattern p = Pattern.compile(pattern);
 29  0
                 Matcher m = p.matcher(text);
 30  0
                 if (m.find()) {
 31  0
                         text = m.group(1);
 32  
                 } else {
 33  0
                         text = prefix + text + suffix;
 34  
                 }
 35  0
                 mTextField.setText(text);
 36  0
         }
 37  
         
 38  0
         public CustomTableCellEditor() {
 39  0
                 mTextField = new JTextField();
 40  0
                 mTextField.setName("bibitems_table_textfield");
 41  0
                 mTextField.addKeyListener(new KeyListener() {
 42  
                         
 43  
                         @Override
 44  0
                         public void keyTyped(KeyEvent arg0) {}
 45  
                         
 46  
                         @Override
 47  0
                         public void keyReleased(KeyEvent arg0) {}
 48  
                         
 49  
                         @Override
 50  
                         public void keyPressed(KeyEvent event) {
 51  0
                                 if (event.isAltDown() == true && event.getKeyCode() == KeyEvent.VK_B) {
 52  0
                                         setTextInBrackets("^\\{(.*)\\}$", "{", "}");
 53  0
                                 } else         if (event.isAltDown() == true && event.getKeyCode() == KeyEvent.VK_U) {
 54  0
                                         setTextInBrackets("^[\\\\]url\\{(.*)\\}$", "\\url{", "}");
 55  0
                                 } else if (event.getKeyCode() == KeyEvent.VK_ENTER) {
 56  0
                                         mTextField.removeActionListener(mActionListener);
 57  0
                                 } else if (event.getKeyCode() == KeyEvent.VK_F1) {
 58  0
                                         mTextField.addActionListener(mActionListener);
 59  
                                 }
 60  0
                         }
 61  
                 });
 62  0
                 CSH.setHelpIDString(mTextField, "section.bibeditor.edit_item");
 63  0
                 mActionListener = new CSH.DisplayHelpFromFocus(HelpSystem.getInstance().getHelpSet(), "javax.help.MainWindow", null);
 64  0
                 mTextField.addActionListener(mActionListener);
 65  0
         }
 66  
 
 67  
         @Override
 68  
         public Object getCellEditorValue() {
 69  0
                 return mTextField.getText(); 
 70  
         }
 71  
 
 72  
         @Override
 73  
         public Component getTableCellEditorComponent(JTable table, Object value, 
 74  
                         boolean isSelected, int rowIndex, int vColIndex) {
 75  0
                 mTextField.setText((String)value); 
 76  0
                 return mTextField;
 77  
         }
 78  
 
 79  
 }