View Javadoc
1 /* 2 * GeoVISTA Center (Penn State, Dept. of Geography) 3 * Copyright (c), 1999 - 2002, GeoVISTA Center 4 * All Rights Researved. 5 * 6 * Description: 7 * The bar for editing a cell's edu.psu.geovista.app.spreadsheet.formula 8 * Date: Mar 25, 2003 9 * Time: 10:39:53 AM 10 * @author Jin Chen 11 */ 12 13 package edu.psu.geovista.app.spreadsheet.formula; 14 15 import edu.psu.geovista.app.spreadsheet.table.SSTable; 16 17 import javax.swing.*; 18 import javax.swing.table.TableCellEditor; 19 import javax.swing.table.DefaultTableCellRenderer; 20 import javax.swing.event.ListSelectionListener; 21 import java.awt.*; 22 import java.awt.event.FocusListener; 23 import java.awt.event.FocusEvent; 24 import java.awt.event.KeyListener; 25 import java.awt.event.KeyEvent; 26 27 28 29 public class FormulaEditor extends JPanel{ 30 JTextField cellF; //cell field show address of the cell 31 JTextField formulaF;//edu.psu.geovista.app.spreadsheet.formula address for editing 32 SSTable tb; 33 public FormulaEditor(SSTable _tb) { 34 this.tb = _tb; 35 cellF=new JTextField(" "); 36 cellF.setHorizontalAlignment(JTextField.CENTER ); 37 cellF.setForeground(Color.BLUE); 38 cellF.setEditable(false); 39 40 formulaF=new JTextField(); 41 formulaF.addKeyListener(new KeyListener(){ 42 public void keyTyped(KeyEvent e){ 43 char c=e.getKeyChar(); 44 if (c=='\n'){ 45 tb.editingStopped(null); 46 int column=tb.getSelectedColumn() ; 47 int row=tb.getSelectedRow()+1 ; 48 DefaultTableCellRenderer cellRender= 49 (DefaultTableCellRenderer)tb.getCellRenderer(row,column); 50 tb.requestFocus() ; 51 //move to next cell 52 tb.setRowSelectionInterval(row,row); 53 tb.setColumnSelectionInterval(column,column); 54 55 //cellRender.requestFocus() ; 56 /*CellFomulaEditor editor=(CellFomulaEditor)tb.getCellEditor(row,column) ; 57 Component cp=editor.getComponent() ; 58 cp.requestFocus() ; */ 59 //tb.requestFocus(); 60 } 61 62 } 63 public void keyPressed(KeyEvent e){} 64 public void keyReleased(KeyEvent e){ 65 //synchronize the value in edu.psu.geovista.app.spreadsheet.formula editor and cell editor 66 String input=formulaF.getText(); 67 int column=tb.getSelectedColumn() ; 68 int row=tb.getSelectedRow() ; 69 CellFomulaEditor editor=(CellFomulaEditor)tb.getCellEditor(row,column) ; 70 JTextField cellF=editor.getCellField() ; 71 cellF.setText(input); 72 } 73 }); 74 formulaF.addFocusListener(new FocusListener(){ 75 //If input on FormulaField on bar, the corresponding cell is in edit state 76 public void focusGained(FocusEvent e) { 77 int column=tb.getSelectedColumn() ; 78 int row=tb.getSelectedRow() ; 79 tb.editCellAt(row,column);// 80 } 81 public void focusLost(FocusEvent e){} 82 }); 83 this.setLayout(new BorderLayout()); 84 this.add(cellF,BorderLayout.WEST ); 85 this.add(formulaF,BorderLayout.CENTER ); 86 } 87 88 public JTextField getCellField() { 89 return cellF; 90 } 91 92 public JTextField getFormulaField() { 93 return formulaF; 94 } 95 }

This page was automatically generated by Maven