View Javadoc

1   /*
2    *  UnBBayes
3    *  Copyright (C) 2002, 2008 Universidade de Brasilia - http://www.unb.br
4    *
5    *  This file is part of UnBBayes.
6    *
7    *  UnBBayes is free software: you can redistribute it and/or modify
8    *  it under the terms of the GNU General Public License as published by
9    *  the Free Software Foundation, either version 3 of the License, or
10   *  (at your option) any later version.
11   *
12   *  UnBBayes is distributed in the hope that it will be useful,
13   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   *  GNU General Public License for more details.
16   *
17   *  You should have received a copy of the GNU General Public License
18   *  along with UnBBayes.  If not, see <http://www.gnu.org/licenses/>.
19   *
20   */
21  package unbbayes.gui.table;
22  
23  import java.awt.Component;
24  import java.text.NumberFormat;
25  
26  import javax.swing.BorderFactory;
27  import javax.swing.JFormattedTextField;
28  import javax.swing.JTable;
29  import javax.swing.JTextField;
30  import javax.swing.UIManager;
31  import javax.swing.border.Border;
32  import javax.swing.plaf.UIResource;
33  import javax.swing.table.TableCellRenderer;
34  
35  /**
36   * 
37   */
38  public class PercentRenderer implements TableCellRenderer, UIResource {
39  	JFormattedTextField ftf;
40  
41  	Border emptyBorder;
42  
43  	public PercentRenderer() {
44  		NumberFormat numberFormat = NumberFormat.getPercentInstance();
45  		numberFormat.setMinimumFractionDigits(2);
46  		numberFormat.setMaximumFractionDigits(2);
47  		numberFormat.setMinimumIntegerDigits(1);
48  		ftf = new JFormattedTextField(numberFormat);
49  		ftf.setHorizontalAlignment(JTextField.CENTER);
50  
51  		emptyBorder = BorderFactory.createEmptyBorder(1, 1, 1, 1);
52  	}
53  
54  	public Component getTableCellRendererComponent(JTable table,
55  			Object value, boolean isSelected, boolean hasFocus, int row,
56  			int col) {
57  		if (isSelected) {
58  			ftf.setBackground(table.getSelectionBackground());
59  			ftf.setForeground(table.getSelectionForeground());
60  		} else {
61  			ftf.setBackground(table.getBackground());
62  			ftf.setForeground(table.getForeground());
63  		}
64  		if (hasFocus)
65  			ftf.setBorder(UIManager
66  					.getBorder("Table.focusCellHighlightBorder"));
67  		else
68  			ftf.setBorder(emptyBorder);
69  
70  		ftf.setValue(((Float) value));
71  		
72  		return ftf;
73  	}
74  }