Author: sletellier Date: 2012-06-15 12:02:35 +0200 (Fri, 15 Jun 2012) New Revision: 2334 Url: http://nuiton.org/repositories/revision/jaxx/2334 Log: - Create JAXXWidgetUtil extend SwingUtil - Add cell editor for Date and File - Add cell renderer for Date Added: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXWidgetUtil.java trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/DateCellEditor.java trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileCellEditor.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/BaseActionPanel.java trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java 2012-06-15 07:38:00 UTC (rev 2333) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java 2012-06-15 10:02:35 UTC (rev 2334) @@ -889,7 +889,7 @@ } public static TableCellRenderer newBooleanTableCellRenderer( - DefaultTableCellRenderer renderer) { + TableCellRenderer renderer) { return new BooleanCellRenderer(renderer); } 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-15 07:38:00 UTC (rev 2333) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java 2012-06-15 10:02:35 UTC (rev 2334) @@ -24,6 +24,8 @@ */ package jaxx.runtime.swing.renderer; +import java.awt.Color; +import java.awt.Component; import javax.swing.Icon; import javax.swing.JCheckBox; import javax.swing.JComponent; @@ -31,9 +33,6 @@ import javax.swing.JPanel; import javax.swing.JTable; import javax.swing.table.TableCellRenderer; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; /** * @author tchemit <chemit@codelutin.com> @@ -50,7 +49,6 @@ public BooleanCellRenderer(TableCellRenderer delegate) { //super(new BorderLayout()); this.checkBox = new JCheckBox(); - add(checkBox, BorderLayout.CENTER); checkBox.setHorizontalAlignment(JLabel.CENTER); checkBox.setBorderPainted(true); this.defaultDelegate = delegate; @@ -59,7 +57,6 @@ public BooleanCellRenderer(TableCellRenderer delegate, Icon icon) { //super(new BorderLayout()); this.checkBox = new JCheckBox(icon); - add(checkBox, BorderLayout.NORTH); checkBox.setHorizontalAlignment(JLabel.CENTER); checkBox.setVerticalTextPosition(JLabel.TOP); checkBox.setBorderPainted(true); Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java 2012-06-15 07:38:00 UTC (rev 2333) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java 2012-06-15 10:02:35 UTC (rev 2334) @@ -28,6 +28,8 @@ import javax.swing.JPanel; /** + * TODO sletellier 15/06/2012 : find a better way to add onActionPerform on custom components + * * @author sletellier <letellier@codelutin.com> */ public abstract class BaseActionPanel extends JPanel { Added: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXWidgetUtil.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXWidgetUtil.java (rev 0) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXWidgetUtil.java 2012-06-15 10:02:35 UTC (rev 2334) @@ -0,0 +1,53 @@ +/* + * #%L + * JAXX :: Widgets + * $Id:$ + * $HeadURL:$ + * %% + * Copyright (C) 2008 - 2012 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; + +import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; +import jaxx.runtime.SwingUtil; +import jaxx.runtime.swing.editor.DateCellEditor; +import jaxx.runtime.swing.editor.FileCellEditor; +import jaxx.runtime.swing.renderer.DateCellRenderer; + +/** + * @author sletellier <letellier@codelutin.com> + */ +public class JAXXWidgetUtil extends SwingUtil { + + public static TableCellRenderer newDateTableCellRenderer(TableCellRenderer renderer) { + return newDateTableCellRenderer(renderer, null); + } + + public static TableCellRenderer newDateTableCellRenderer(TableCellRenderer renderer, String datePattern) { + return new DateCellRenderer(renderer, datePattern); + } + + public static TableCellEditor newDateTableCellEditor() { + return new DateCellEditor(); + } + + public static TableCellEditor newFileTableCellEditor() { + return new FileCellEditor(); + } +} Added: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/DateCellEditor.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/DateCellEditor.java (rev 0) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/DateCellEditor.java 2012-06-15 10:02:35 UTC (rev 2334) @@ -0,0 +1,55 @@ +/* + * #%L + * JAXX :: Widgets + * $Id:$ + * $HeadURL:$ + * %% + * Copyright (C) 2008 - 2012 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.editor; + +import java.awt.Component; +import java.util.Date; +import javax.swing.AbstractCellEditor; +import javax.swing.JTable; +import javax.swing.table.TableCellEditor; +import jaxx.runtime.swing.JAXXDatePicker; + +/** + * @author sletellier <letellier@codelutin.com> + */ +public class DateCellEditor extends AbstractCellEditor + implements TableCellEditor { + + protected JAXXDatePicker datePicker; + + public DateCellEditor() { + datePicker = new JAXXDatePicker(); + } + + @Override + public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { + datePicker.setDate((Date) value); + return datePicker; + } + + @Override + public Object getCellEditorValue() { + return datePicker.getDate(); + } +} \ No newline at end of file Added: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileCellEditor.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileCellEditor.java (rev 0) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileCellEditor.java 2012-06-15 10:02:35 UTC (rev 2334) @@ -0,0 +1,54 @@ +/* + * #%L + * JAXX :: Widgets + * $Id:$ + * $HeadURL:$ + * %% + * Copyright (C) 2008 - 2012 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.editor; + +import java.awt.Component; +import java.io.File; +import javax.swing.AbstractCellEditor; +import javax.swing.JTable; +import javax.swing.table.TableCellEditor; + +/** + * @author sletellier <letellier@codelutin.com> + */ +public class FileCellEditor extends AbstractCellEditor + implements TableCellEditor { + + protected FileEditor fileEditor; + + public FileCellEditor() { + fileEditor = new FileEditor(); + } + + @Override + public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { + fileEditor.setSelectedFile((File)value); + return fileEditor; + } + + @Override + public Object getCellEditorValue() { + return fileEditor.getSelectedFile(); + } +} Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java 2012-06-15 07:38:00 UTC (rev 2333) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java 2012-06-15 10:02:35 UTC (rev 2334) @@ -29,14 +29,13 @@ import java.io.File; import java.util.EventObject; import java.util.Locale; -import javax.swing.AbstractCellEditor; import javax.swing.DefaultCellEditor; import javax.swing.JTable; import javax.swing.event.CellEditorListener; import javax.swing.table.TableCellEditor; +import jaxx.runtime.swing.JAXXWidgetUtil; import jaxx.runtime.swing.editor.ClassCellEditor; import jaxx.runtime.swing.editor.EnumEditor; -import jaxx.runtime.swing.editor.FileEditor; import jaxx.runtime.swing.editor.LocaleEditor; import jaxx.runtime.swing.editor.config.model.ConfigTableModel; import jaxx.runtime.swing.editor.config.model.OptionModel; @@ -119,7 +118,7 @@ table.setDefaultEditor(type, editor); } else if (type.equals(File.class)){ - editor = new FileCellEditor(); + editor = JAXXWidgetUtil.newFileTableCellEditor(); table.setDefaultEditor(type, editor); } else if (type.equals(Locale.class)) { @@ -139,25 +138,4 @@ protected boolean hasDelegate() { return delegate != null; } - - protected static class FileCellEditor extends AbstractCellEditor - implements TableCellEditor { - - protected FileEditor fileEditor; - - public FileCellEditor() { - fileEditor = new FileEditor(); - } - - @Override - public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { - fileEditor.setSelectedFile((File)value); - return fileEditor; - } - - @Override - public Object getCellEditorValue() { - return fileEditor.getSelectedFile(); - } - } }