Author: sletellier Date: 2012-07-06 14:02:51 +0200 (Fri, 06 Jul 2012) New Revision: 2391 Url: http://nuiton.org/repositories/revision/jaxx/2391 Log: - Allow to use custom FileEditor - FireStopEditing on actionPerform on FileCellEditor - Use custom FileCellEditor to detect ext in ApplicationConfig ui Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/cell/FileCellEditor.java trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/cell/FileCellEditor.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/cell/FileCellEditor.java 2012-07-06 11:31:51 UTC (rev 2390) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/cell/FileCellEditor.java 2012-07-06 12:02:51 UTC (rev 2391) @@ -24,6 +24,8 @@ package jaxx.runtime.swing.editor.cell; import java.awt.Component; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.io.File; import javax.swing.AbstractCellEditor; import javax.swing.JTable; @@ -39,12 +41,28 @@ protected FileEditor fileEditor; public FileCellEditor() { - fileEditor = new FileEditor(); + setFileEditor(new FileEditor()); } + public FileCellEditor(FileEditor editor) { + setFileEditor(editor); + } + + public void setFileEditor(FileEditor fileEditor) { + this.fileEditor = fileEditor; + fileEditor.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + fireEditingStopped(); + } + }); + } + @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { - fileEditor.setSelectedFile((File)value); + File file = (File) value; + fileEditor.setSelectedFile(file); return fileEditor; } 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-07-06 11:31:51 UTC (rev 2390) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java 2012-07-06 12:02:51 UTC (rev 2391) @@ -25,6 +25,7 @@ package jaxx.runtime.swing.editor.config; +import com.google.common.io.Files; import java.awt.Component; import java.io.File; import java.util.EventObject; @@ -38,8 +39,10 @@ import jaxx.runtime.swing.editor.ClassCellEditor; import jaxx.runtime.swing.editor.EnumEditor; import jaxx.runtime.swing.editor.LocaleEditor; +import jaxx.runtime.swing.editor.cell.FileCellEditor; import jaxx.runtime.swing.editor.config.model.ConfigTableModel; import jaxx.runtime.swing.editor.config.model.OptionModel; +import org.apache.commons.lang3.StringUtils; /** * L'éditeur des valeurs des propriétés d'une configuration @@ -117,7 +120,7 @@ editor = new ClassCellEditor(); } else if (type.equals(File.class)){ - editor = JAXXWidgetUtil.newFileTableCellEditor(); + editor = new FileCellEditorWithExtDetector(); } else if (type.equals(KeyStroke.class)){ editor = JAXXWidgetUtil.newKeyStrokeTableCellEditor(); @@ -136,6 +139,20 @@ return editor; } + protected static class FileCellEditorWithExtDetector extends FileCellEditor { + + @Override + public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { + + String fileExtension = Files.getFileExtension(((File)value).getName()); + if (StringUtils.isNotEmpty(fileExtension)) { + fileEditor.setExts(fileExtension); + fileEditor.setAcceptAllFileFilterUsed(true); + } + return super.getTableCellEditorComponent(table, value, isSelected, row, column); + } + } + protected boolean hasDelegate() { return delegate != null; }