From sletellier@users.nuiton.org Thu Jun 14 17:47:32 2012 From: sletellier@users.nuiton.org To: jaxx-commits@list.nuiton.org Subject: [Jaxx-commits] r2331 - in trunk: jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor jaxx-demo/src/main/resources/i18n jaxx-widgets/src/main/java/jaxx/runtime/swing/editor jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config Date: Thu, 14 Jun 2012 17:47:32 +0200 Message-ID: <20120614154732.BFC1315827@nuiton.codelutin.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5168346714255909417==" --===============5168346714255909417== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: sletellier Date: 2012-06-14 17:47:32 +0200 (Thu, 14 Jun 2012) New Revision: 2331 Url: http://nuiton.org/repositories/revision/jaxx/2331 Log: - fixes #2138 : Use FileEditor to input File in ApplicationConfigUI - create demo ui - refs #2137 : improve FileEditor and demo Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorDe= mo.jaxx trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandl= er.java trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCa= tegoryUI.css trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTa= bleEditor.java Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileE= ditorDemo.jaxx =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorD= emo.jaxx 2012-06-14 13:17:44 UTC (rev 2330) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorD= emo.jaxx 2012-06-14 15:47:32 UTC (rev 2331) @@ -28,7 +28,10 @@ =20 - + + + + =20 @@ -43,10 +46,31 @@ + + + + + + + + + + + + + + + + @@ -57,15 +81,29 @@ + + + + + + + + Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties 2012-0= 6-14 13:17:44 UTC (rev 2330) +++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties 2012-0= 6-14 15:47:32 UTC (rev 2331) @@ -195,8 +195,11 @@ jaxxdemo.feature.databinding=3DData Binding jaxxdemo.feature.nav=3DJaxx nav API jaxxdemo.feature.validation=3DValidation +jaxxdemo.fileEditor.acceptAllFileFilterUsed=3DAllow all FileFilter +jaxxdemo.fileEditor.directoryEnabled=3DEnable directory selection jaxxdemo.fileEditor.extsDescLbl=3DExtensions description (separated by comma= , ex \: text (*.txt), images (*.png)) jaxxdemo.fileEditor.extsLbl=3DExtensions (separated by comma, ex \: txt, png) +jaxxdemo.fileEditor.fileEnabled=3DEnable file selection jaxxdemo.fileEditor.titleLbl=3DOpen dialog title jaxxdemo.fun=3DFun jaxxdemo.i18neditor.configuration=3DConfiguration Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties 2012-0= 6-14 13:17:44 UTC (rev 2330) +++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties 2012-0= 6-14 15:47:32 UTC (rev 2331) @@ -195,8 +195,11 @@ jaxxdemo.feature.databinding=3DData binding jaxxdemo.feature.nav=3DAPI JAXX pour les arbres jaxxdemo.feature.validation=3DValidation +jaxxdemo.fileEditor.acceptAllFileFilterUsed=3DAcc=C3=A8pte tout les FileFilt= er +jaxxdemo.fileEditor.directoryEnabled=3DActiver la s=C3=A9lection des files jaxxdemo.fileEditor.extsDescLbl=3DDescription des extensions (s=C3=A9par=C3= =A9es par des virgules, ex \: Texte (*.txt), Images (*.png)) jaxxdemo.fileEditor.extsLbl=3DExtensions (separated by comma, ex \: txt, png) +jaxxdemo.fileEditor.fileEnabled=3DActiver la s=C3=A9lection des fichiers jaxxdemo.fileEditor.titleLbl=3DTitre du dialog d'ouverture de fichier jaxxdemo.fun=3DFun jaxxdemo.i18neditor.configuration=3DConfiguration Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties 2012-0= 6-14 13:17:44 UTC (rev 2330) +++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties 2012-0= 6-14 15:47:32 UTC (rev 2331) @@ -195,8 +195,11 @@ jaxxdemo.feature.databinding=3DData binding jaxxdemo.feature.nav=3DAPI JAXX pour les arbres jaxxdemo.feature.validation=3DValidation +jaxxdemo.fileEditor.acceptAllFileFilterUsed=3DAcc=C3=A8pte tout les FileFilt= er +jaxxdemo.fileEditor.directoryEnabled=3DActiver la s=C3=A9lection des files jaxxdemo.fileEditor.extsDescLbl=3DDescription des extensions (s=C3=A9par=C3= =A9es par des virgules, ex \: Texte (*.txt), Images (*.png)) jaxxdemo.fileEditor.extsLbl=3DExtensions (separated by comma, ex \: txt, png) +jaxxdemo.fileEditor.fileEnabled=3DActiver la s=C3=A9lection des fichiers jaxxdemo.fileEditor.titleLbl=3DTitre de la fen=C3=AAtre de s=C3=A9lection de= fichier jaxxdemo.fun=3DFun jaxxdemo.i18neditor.configuration=3DConfiguration Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEdit= or.jaxx =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jax= x 2012-06-14 13:17:44 UTC (rev 2330) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jax= x 2012-06-14 15:47:32 UTC (rev 2331) @@ -33,6 +33,10 @@ =20 =20 + + + + =20 Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEdit= orHandler.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHand= ler.java 2012-06-14 13:17:44 UTC (rev 2330) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHand= ler.java 2012-06-14 15:47:32 UTC (rev 2331) @@ -59,31 +59,61 @@ fc.setDialogTitle(view.getTitle()); fc.setAcceptAllFileFilterUsed(view.getAcceptAllFileFilterUsed()); =20 - String extsAsString =3D view.getExts(); - if (extsAsString !=3D null) { + // TODO sletellier 14/06/2012 : activate multi selection +// boolean multiSelectionEnabled =3D view.isMultiSelectionEnabled(); +// fc.setMultiSelectionEnabled(multiSelectionEnabled); =20 - // extentions can be separted by comma - String[] exts =3D extsAsString.split(SEPARATOR_REGEX); - String[] descs =3D view.getExtsDescription().split(SEPARATOR_REG= EX); - for (int i =3D 0;i i) { - desc =3D descs[i]; - } + // used to enable file selection + boolean fileEnabled =3D view.isFileEnabled(); + if (fileEnabled) { =20 - fc.addChoosableFileFilter(new ExtentionFileFiler(ext, desc)); + if (directoryEnabled) { + + // both + fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); + } else { + fc.setFileSelectionMode(JFileChooser.FILES_ONLY); } + String extsAsString =3D view.getExts(); + if (extsAsString !=3D null) { + + // extentions can be separted by comma + String[] exts =3D extsAsString.split(SEPARATOR_REGEX); + String[] descs =3D view.getExtsDescription().split(SEPARATOR= _REGEX); + for (int i =3D 0;i i) { + desc =3D descs[i]; + } + + fc.addChoosableFileFilter(new ExtentionFileFiler(ext, de= sc)); + } + } } =20 + // directory or/and file must be enabled + if (!directoryEnabled && !fileEnabled) { + throw new IllegalArgumentException("You must enable at least fil= e or directory to open dialog"); + } + // show dialog - fc.showOpenDialog(view); + int returnVal =3D fc.showOpenDialog(view); + if (returnVal =3D=3D JFileChooser.APPROVE_OPTION) { =20 - // get selected to display in ui - File file =3D fc.getSelectedFile(); - view.setSelectedFile(file); + // get selected to display in ui + File file =3D fc.getSelectedFile(); + + view.setSelectedFile(file); + } } =20 public static class ExtentionFileFiler extends FileFilter { Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/C= onfigCategoryUI.css =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigC= ategoryUI.css 2012-06-14 13:17:44 UTC (rev 2330) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigC= ategoryUI.css 2012-06-14 15:47:32 UTC (rev 2331) @@ -50,6 +50,7 @@ rowSelectionAllowed:false; autoCreateRowSorter:true; autoResizeMode:{JTable.AUTO_RESIZE_ALL_COLUMNS}; + rowHeight:25; } =20 #reset{ Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/C= onfigTableEditor.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigT= ableEditor.java 2012-06-14 13:17:44 UTC (rev 2330) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigT= ableEditor.java 2012-06-14 15:47:32 UTC (rev 2331) @@ -25,19 +25,20 @@ =20 package jaxx.runtime.swing.editor.config; =20 -import jaxx.runtime.swing.editor.config.model.ConfigTableModel; - +import java.awt.Component; +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 java.awt.Component; -import java.util.EventObject; -import java.util.Locale; - 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; =20 /** @@ -106,22 +107,25 @@ TableCellEditor editor =3D table.getDefaultEditor(type); TableCellEditor defaultEditor =3D table.getDefaultEditor(Object.clas= s); //TODO always Search from option.getEditor() and store editor as cac= he - if (editor =3D=3D defaultEditor) { + if (editor.equals(defaultEditor)) { // find not a specialized editor for the type if (type.isEnum()) { // add a EnumEditor to table editor =3D new DefaultCellEditor(EnumEditor.newEditor((Class= ) type)); table.setDefaultEditor(type, editor); - } else if (type =3D=3D Class.class) { + + } else if (type.equals(Class.class)) { editor =3D new ClassCellEditor(); table.setDefaultEditor(type, editor); - } //else if (type =3D=3D File.class){ - // TODO a FileEditor - // table.setDefaultEditor(type, delegate); - //} - else if (type.equals(Locale.class)) { + + } else if (type.equals(File.class)){ + editor =3D new FileCellEditor(); + table.setDefaultEditor(type, editor); + + } else if (type.equals(Locale.class)) { editor =3D new DefaultCellEditor(LocaleEditor.newEditor()); table.setDefaultEditor(Locale.class, editor); + } else { editor =3D table.getDefaultEditor(String.class); } @@ -135,4 +139,25 @@ protected boolean hasDelegate() { return delegate !=3D null; } + + protected static class FileCellEditor extends AbstractCellEditor + implements TableCellEditor { + + protected FileEditor fileEditor; + + public FileCellEditor() { + fileEditor =3D new FileEditor(); + } + + @Override + public Component getTableCellEditorComponent(JTable table, Object va= lue, boolean isSelected, int row, int column) { + fileEditor.setSelectedFile((File)value); + return fileEditor; + } + + @Override + public Object getCellEditorValue() { + return fileEditor.getSelectedFile(); + } + } } --===============5168346714255909417==--