Author: sletellier Date: 2012-06-21 12:16:46 +0200 (Thu, 21 Jun 2012) New Revision: 2337 Url: http://nuiton.org/repositories/revision/jaxx/2337 Log: Depreciate BooleanCellRenderer, prefere use BooleanCellEditor Added: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellEditor.java Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/renderer/DateCellRenderer.java Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java 2012-06-20 11:01:32 UTC (rev 2336) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java 2012-06-21 10:16:46 UTC (rev 2337) @@ -24,45 +24,6 @@ */ package jaxx.runtime; -import jaxx.runtime.swing.Item; -import jaxx.runtime.swing.JAXXComboBox; -import jaxx.runtime.swing.renderer.BooleanCellRenderer; -import jaxx.runtime.swing.renderer.EmptyNumberTableCellRenderer; -import jaxx.runtime.swing.renderer.EnumTableCellRenderer; -import jaxx.runtime.swing.renderer.I18nTableCellRenderer; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.jdesktop.jxlayer.JXLayer; -import org.jdesktop.jxlayer.plaf.LayerUI; -import org.jdesktop.swingx.JXTreeTable; - -import javax.swing.DefaultComboBoxModel; -import javax.swing.DefaultListModel; -import javax.swing.Icon; -import javax.swing.ImageIcon; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JLayeredPane; -import javax.swing.JList; -import javax.swing.JRootPane; -import javax.swing.JTabbedPane; -import javax.swing.JTable; -import javax.swing.JTree; -import javax.swing.SwingUtilities; -import javax.swing.UIManager; -import javax.swing.UnsupportedLookAndFeelException; -import javax.swing.event.HyperlinkEvent; -import javax.swing.event.TreeSelectionEvent; -import javax.swing.event.TreeSelectionListener; -import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.table.TableCellEditor; -import javax.swing.table.TableCellRenderer; -import javax.swing.table.TableColumn; -import javax.swing.text.AbstractDocument; -import javax.swing.text.JTextComponent; -import javax.swing.tree.TreeNode; -import javax.swing.tree.TreePath; import java.awt.Color; import java.awt.Component; import java.awt.Container; @@ -92,6 +53,44 @@ import java.util.Map.Entry; import java.util.NoSuchElementException; import java.util.Properties; +import javax.swing.DefaultComboBoxModel; +import javax.swing.DefaultListModel; +import javax.swing.Icon; +import javax.swing.ImageIcon; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JLayeredPane; +import javax.swing.JList; +import javax.swing.JRootPane; +import javax.swing.JTabbedPane; +import javax.swing.JTable; +import javax.swing.JTree; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; +import javax.swing.UnsupportedLookAndFeelException; +import javax.swing.event.HyperlinkEvent; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableColumn; +import javax.swing.text.AbstractDocument; +import javax.swing.text.JTextComponent; +import javax.swing.tree.TreeNode; +import javax.swing.tree.TreePath; +import jaxx.runtime.swing.Item; +import jaxx.runtime.swing.JAXXComboBox; +import jaxx.runtime.swing.renderer.BooleanCellEditor; +import jaxx.runtime.swing.renderer.EmptyNumberTableCellRenderer; +import jaxx.runtime.swing.renderer.EnumTableCellRenderer; +import jaxx.runtime.swing.renderer.I18nTableCellRenderer; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.jdesktop.jxlayer.JXLayer; +import org.jdesktop.jxlayer.plaf.LayerUI; +import org.jdesktop.swingx.JXTreeTable; import static org.nuiton.i18n.I18n._; @@ -885,14 +884,19 @@ // try with default icon icon = createActionIcon("delete"); } - return new BooleanCellRenderer(renderer, icon); + return new BooleanCellEditor(renderer, icon); } public static TableCellRenderer newBooleanTableCellRenderer( TableCellRenderer renderer) { - return new BooleanCellRenderer(renderer); + return new BooleanCellEditor(renderer); } + public static BooleanCellEditor newBooleanTableCellEditor( + TableCellRenderer renderer) { + return new BooleanCellEditor(renderer); + } + public static EmptyNumberTableCellRenderer newEmptyNumberTableCellRenderer( TableCellRenderer renderer) { return new EmptyNumberTableCellRenderer(renderer); Added: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellEditor.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellEditor.java (rev 0) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellEditor.java 2012-06-21 10:16:46 UTC (rev 2337) @@ -0,0 +1,96 @@ +/* + * #%L + * JAXX :: Runtime + * + * $Id: BooleanCellRenderer.java 2334 2012-06-15 10:02:35Z sletellier $ + * $HeadURL: http://svn.nuiton.org/svn/jaxx/trunk/jaxx-runtime/src/main/java/jaxx/runtime... $ + * %% + * Copyright (C) 2008 - 2010 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ +package jaxx.runtime.swing.renderer; + +import java.awt.Color; +import java.awt.Component; +import javax.swing.AbstractCellEditor; +import javax.swing.Icon; +import javax.swing.JCheckBox; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; + +/** + * @author tchemit <chemit@codelutin.com> + * @since 1.5 + */ +public class BooleanCellEditor extends AbstractCellEditor implements TableCellRenderer, TableCellEditor { + + private static final long serialVersionUID = 1L; + + protected TableCellRenderer defaultDelegate; + + protected JCheckBox checkBox; + + public BooleanCellEditor(TableCellRenderer delegate) { + //super(new BorderLayout()); + this.checkBox = new JCheckBox(); + checkBox.setHorizontalAlignment(JLabel.CENTER); + checkBox.setBorderPainted(true); + this.defaultDelegate = delegate; + } + + public BooleanCellEditor(TableCellRenderer delegate, Icon icon) { + //super(new BorderLayout()); + this.checkBox = new JCheckBox(icon); + checkBox.setHorizontalAlignment(JLabel.CENTER); + checkBox.setVerticalTextPosition(JLabel.TOP); + checkBox.setBorderPainted(true); + this.defaultDelegate = delegate; + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { + ((JComponent) defaultDelegate).setBackground(null); + JComponent render = (JComponent) defaultDelegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + if (isSelected) { + checkBox.setForeground(table.getSelectionForeground()); + checkBox.setBackground(table.getSelectionBackground()); + } else { + checkBox.setForeground(render.getForeground()); + checkBox.setBackground(render.getBackground()); + //fixme make this works... and remove the test + if (row % 2 == 1) { + checkBox.setBackground(Color.WHITE); + } + } + checkBox.setSelected((value != null && (Boolean) value)); + checkBox.setBorder(render.getBorder()); + return checkBox; + } + + @Override + public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { + return getTableCellRendererComponent(table, value, isSelected, true, row, column); + } + + @Override + public Object getCellEditorValue() { + return checkBox.isSelected(); + } +} Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java 2012-06-20 11:01:32 UTC (rev 2336) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java 2012-06-21 10:16:46 UTC (rev 2337) @@ -35,9 +35,11 @@ import javax.swing.table.TableCellRenderer; /** + * @deprecated prefere use {@link BooleanCellEditor} * @author tchemit <chemit@codelutin.com> * @since 1.5 */ +@Deprecated public class BooleanCellRenderer extends JPanel implements TableCellRenderer { private static final long serialVersionUID = 1L; Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/renderer/DateCellRenderer.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/renderer/DateCellRenderer.java 2012-06-20 11:01:32 UTC (rev 2336) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/renderer/DateCellRenderer.java 2012-06-21 10:16:46 UTC (rev 2337) @@ -41,7 +41,10 @@ public DateCellRenderer(TableCellRenderer renderer, String datePattern) { this.delegate = renderer; - dateFormat = new SimpleDateFormat(datePattern); + dateFormat = new SimpleDateFormat(); + if (datePattern != null) { + dateFormat.applyPattern(datePattern); + } } @Override
participants (1)
-
sletellier@users.nuiton.org