Author: chatellier Date: 2009-06-12 16:38:25 +0000 (Fri, 12 Jun 2009) New Revision: 2373 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterTableCellEditor.java Log: Use inheritance of AbstractCellEditor code (simplier) Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterTableCellEditor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterTableCellEditor.java 2009-06-12 10:19:00 UTC (rev 2372) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterTableCellEditor.java 2009-06-12 16:38:25 UTC (rev 2373) @@ -23,21 +23,18 @@ import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.util.ArrayList; import java.util.EventObject; -import java.util.HashSet; import java.util.List; -import java.util.Set; +import javax.swing.AbstractCellEditor; import javax.swing.JComboBox; -import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JTable; import javax.swing.JTextField; -import javax.swing.event.CellEditorListener; -import javax.swing.event.ChangeEvent; import javax.swing.table.TableCellEditor; import org.apache.commons.beanutils.ConvertUtilsBean; @@ -56,7 +53,7 @@ /** * ParameterTableCellEditor. * - * Un editeur generic de champs qui se base sur le le model de données + * Un editeur generic de champs qui se base sur le model de données * a editer. * * Created: 25 sept. 06 12:35:21 @@ -68,11 +65,19 @@ * Last update: $Date: 2009-06-08 14:47:41 +0200 (lun. 08 juin 2009) $ * by : $Author: chatellier $ */ -public class ParameterTableCellEditor extends JComponent implements TableCellEditor { +public class ParameterTableCellEditor extends AbstractCellEditor implements TableCellEditor { + private static final long serialVersionUID = 6860330126841984303L; + /** Class logger. */ private static Log log = LogFactory.getLog(ParameterTableCellEditor.class); + protected RegionStorage region = null; + + protected Component editor = null; + + protected Class<?> type = null; + private static enum TypeClassMapping { /** for simple int. */ Int(int.class), @@ -109,16 +114,6 @@ } } - private static final long serialVersionUID = 6860330126841984303L; - - protected Set<CellEditorListener> listeners = new HashSet<CellEditorListener>(); - - protected RegionStorage region = null; - - protected Component editor = null; - - protected Class<?> type = null; - /** * @return Returns the topiaContext. */ @@ -200,15 +195,12 @@ if (JComboBox.class.isInstance(editor)) { ((JComboBox) editor).addActionListener(getComboListener()); } else if (JTextField.class.isInstance(editor)) { - ((JTextField) editor).addFocusListener(new FocusListener() { - + ((JTextField) editor).addFocusListener(new FocusAdapter() { @Override - public void focusGained(FocusEvent e) { - - } - - @Override public void focusLost(FocusEvent e) { + if (log.isDebugEnabled()) { + log.debug("Stop cell editing"); + } stopCellEditing(); } }); @@ -222,11 +214,11 @@ } } } - if (log.isInfoEnabled()) { - log.info("getCellEditorValue [" + type + "] [mapping:" + mapping + "=" + if (log.isDebugEnabled()) { + log.debug("getCellEditorValue [" + type + "] [mapping:" + mapping + "=" + editor); } - //+ editor==null?null:editor.getClass().getSimpleName()); + return editor; } @@ -294,8 +286,8 @@ result = cub.convert((String) result, type); } - if (log.isInfoEnabled()) { - log.info("getCellEditorValue [" + type + "] [mapping:" + mapping + if (log.isDebugEnabled()) { + log.debug("getCellEditorValue [" + type + "] [mapping:" + mapping + "]= " + result); } @@ -314,88 +306,6 @@ return (((JComboBox) editor)).getSelectedIndex(); } - public Object getCellEditorValueOld() { - - Object result = null; - if (editor instanceof JTextField) { - result = ((JTextField) editor).getText(); - } else if (editor instanceof JComboBox) { - result = ((JComboBox) editor).getSelectedItem(); - } - - if (result instanceof String && !String.class.equals(type)) { - TopiaContext context = null; - if (region != null) { - context = region.getStorage(); - } - ConvertUtilsBean cub = ConverterUtil.getConverter(context); - result = cub.convert((String) result, type); - } - - return result; - } - - /* - * (non-Javadoc) - * - * @see javax.swing.CellEditor#addCellEditorListener(javax.swing.event.CellEditorListener) - */ - public void addCellEditorListener(CellEditorListener l) { - listeners.add(l); - } - - /* - * @see javax.swing.CellEditor#cancelCellEditing() - */ - public void cancelCellEditing() { - if (log.isDebugEnabled()) { - log.debug("cancelCellEditing"); - } - ChangeEvent e = new ChangeEvent(this); - for (CellEditorListener listener : listeners) { - listener.editingCanceled(e); - } - } - - /* - * @see javax.swing.CellEditor#isCellEditable(java.util.EventObject) - */ - public boolean isCellEditable(EventObject anEvent) { - return true; - } - - /* - * @see javax.swing.CellEditor#removeCellEditorListener(javax.swing.event.CellEditorListener) - */ - public void removeCellEditorListener(CellEditorListener l) { - listeners.remove(l); - } - - /* - * @see javax.swing.CellEditor#shouldSelectCell(java.util.EventObject) - */ - public boolean shouldSelectCell(EventObject anEvent) { - return true; - } - - /* - * @see javax.swing.CellEditor#stopCellEditing() - */ - public boolean stopCellEditing() { - // to prevent concurent modification exception - if (log.isDebugEnabled()) { - log.debug("stopCellEditing"); - } - CellEditorListener[] list = listeners - .toArray(new CellEditorListener[listeners.size()]); - - ChangeEvent e = new ChangeEvent(this); - for (CellEditorListener l : list) { - l.editingStopped(e); - } - return true; - } - public static class DateComponent extends JPanel { private static final long serialVersionUID = -6694461572642939712L;