Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

9 changed files:

Changes:

  • client-core/src/main/i18n/getters/java.getter
    ... ... @@ -262,6 +262,8 @@ observe.actions.validate.validator.message.header.tip
    262 262
     observe.actions.validate.validator.scope.header
    
    263 263
     observe.actions.validate.validator.scope.header.tip
    
    264 264
     observe.admin.report.description
    
    265
    +observe.admin.report.no.report.found
    
    266
    +observe.admin.report.report.count.found
    
    265 267
     observe.admin.report.title
    
    266 268
     observe.admin.report.title.tip
    
    267 269
     observe.admin.resume.no.operation.done
    

  • client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jaxx
    ... ... @@ -81,4 +81,9 @@ protected void finalize() throws Throwable {
    81 81
           <JButton id="chooseFileReport"/>
    
    82 82
         </cell>
    
    83 83
       </row>
    
    84
    +  <row>
    
    85
    +    <cell columns="3" anchor="west">
    
    86
    +      <JLabel id="reportsCountInformation" styleClass="information"/>
    
    87
    +    </cell>
    
    88
    +  </row>
    
    84 89
     </Table>

  • client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jcss
    ... ... @@ -48,3 +48,7 @@
    48 48
       text:{getStringValue(stepModel.getReportFile())};
    
    49 49
     }
    
    50 50
     
    
    51
    +#reportsCountInformation {
    
    52
    +    text:{handler.updateReportsCountInformation(stepModel.getReports())};
    
    53
    +}
    
    54
    +

  • client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java
    ... ... @@ -6,15 +6,15 @@
    6 6
      * %%
    
    7 7
      * This program is free software: you can redistribute it and/or modify
    
    8 8
      * it under the terms of the GNU General Public License as
    
    9
    - * published by the Free Software Foundation, either version 3 of the 
    
    9
    + * published by the Free Software Foundation, either version 3 of the
    
    10 10
      * License, or (at your option) any later version.
    
    11
    - * 
    
    11
    + *
    
    12 12
      * This program is distributed in the hope that it will be useful,
    
    13 13
      * but WITHOUT ANY WARRANTY; without even the implied warranty of
    
    14 14
      * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    
    15 15
      * GNU General Public License for more details.
    
    16
    - * 
    
    17
    - * You should have received a copy of the GNU General Public 
    
    16
    + *
    
    17
    + * You should have received a copy of the GNU General Public
    
    18 18
      * License along with this program.  If not, see
    
    19 19
      * <http://www.gnu.org/licenses/gpl-3.0.html>.
    
    20 20
      * #L%
    
    ... ... @@ -74,7 +74,6 @@ public class ReportModel extends AdminActionModel {
    74 74
     
    
    75 75
         public static final String VALID_PROPERTY_NAME = "valid";
    
    76 76
     
    
    77
    -    /** Logger. */
    
    78 77
         private static final Logger log = LogManager.getLogger(ReportModel.class);
    
    79 78
     
    
    80 79
         /** Type de rapport à charger. */
    
    ... ... @@ -155,10 +154,7 @@ public class ReportModel extends AdminActionModel {
    155 154
         public void setAutoCopyToClipboard(boolean autoCopyToClipboard) {
    
    156 155
             boolean oldValue = this.autoCopyToClipboard;
    
    157 156
             this.autoCopyToClipboard = autoCopyToClipboard;
    
    158
    -        firePropertyChange(AUTO_COPY_TO_CLIPBOARD_PROPERTY_NAME,
    
    159
    -                           oldValue,
    
    160
    -                           autoCopyToClipboard
    
    161
    -        );
    
    157
    +        firePropertyChange(AUTO_COPY_TO_CLIPBOARD_PROPERTY_NAME, oldValue, autoCopyToClipboard);
    
    162 158
         }
    
    163 159
     
    
    164 160
         public boolean isCopyRowHeaders() {
    
    ... ... @@ -168,10 +164,7 @@ public class ReportModel extends AdminActionModel {
    168 164
         public void setCopyRowHeaders(boolean copyRowHeaders) {
    
    169 165
             boolean oldValue = this.copyRowHeaders;
    
    170 166
             this.copyRowHeaders = copyRowHeaders;
    
    171
    -        firePropertyChange(COPY_ROW_HEADERS_PROPERTY_NAME,
    
    172
    -                           oldValue,
    
    173
    -                           copyRowHeaders
    
    174
    -        );
    
    167
    +        firePropertyChange(COPY_ROW_HEADERS_PROPERTY_NAME, oldValue, copyRowHeaders);
    
    175 168
         }
    
    176 169
     
    
    177 170
         public boolean isCopyColumnHeaders() {
    
    ... ... @@ -181,10 +174,7 @@ public class ReportModel extends AdminActionModel {
    181 174
         public void setCopyColumnHeaders(boolean copyColumnHeaders) {
    
    182 175
             boolean oldValue = this.copyColumnHeaders;
    
    183 176
             this.copyColumnHeaders = copyColumnHeaders;
    
    184
    -        firePropertyChange(COPY_COLUMN_HEADERS_PROPERTY_NAME,
    
    185
    -                           oldValue,
    
    186
    -                           copyColumnHeaders
    
    187
    -        );
    
    177
    +        firePropertyChange(COPY_COLUMN_HEADERS_PROPERTY_NAME, oldValue, copyColumnHeaders);
    
    188 178
         }
    
    189 179
     
    
    190 180
         public ResultTableModel getResultModel() {
    
    ... ... @@ -205,12 +195,9 @@ public class ReportModel extends AdminActionModel {
    205 195
                 try {
    
    206 196
                     URL resource = reportFile.toURI().toURL();
    
    207 197
                     allReports = loadReports(resource);
    
    208
    -                if (log.isDebugEnabled()) {
    
    209
    -                    log.debug("Add loaded " + allReports.size() + " report(s).");
    
    210
    -                }
    
    198
    +                log.debug(String.format("Add loaded %d report(s).", allReports.size()));
    
    211 199
                 } catch (IOException e) {
    
    212
    -                throw new IllegalStateException(
    
    213
    -                        "Could not load reports definition file (" + reportFile + ").", e);
    
    200
    +                throw new IllegalStateException(String.format("Could not load reports definition file (%s).", reportFile), e);
    
    214 201
                 }
    
    215 202
             }
    
    216 203
             return allReports;
    
    ... ... @@ -278,14 +265,12 @@ public class ReportModel extends AdminActionModel {
    278 265
     
    
    279 266
         public void updateReports() {
    
    280 267
             setSelectedReport(null);
    
    281
    -        if (reportFile==null) {
    
    268
    +        if (reportFile == null) {
    
    282 269
                 return;
    
    283 270
             }
    
    284 271
             reports = getAllReports().stream().filter(r -> modelType == r.getModelType()).collect(Collectors.toList());
    
    285 272
             firePropertyChange(REPORTS_PROPERTY_NAME, reports);
    
    286
    -        if (log.isInfoEnabled()) {
    
    287
    -            log.info("Detects " + (reports.size() - 1) + " report(s).");
    
    288
    -        }
    
    273
    +        log.info(String.format("Detects %d report(s).", reports.size() - 1));
    
    289 274
         }
    
    290 275
     
    
    291 276
         public void start(AdminUIModel uiModel) {
    
    ... ... @@ -295,22 +280,17 @@ public class ReportModel extends AdminActionModel {
    295 280
             File reportFile = ObserveResourceManager.Resource.report.getFile(config.getReportDirectory());
    
    296 281
     
    
    297 282
             if (reportFile.exists()) {
    
    298
    -            if (log.isInfoEnabled()) {
    
    299
    -                log.info("Will use report file : " + reportFile);
    
    300
    -            }
    
    283
    +            log.info(String.format("Will use report file : %s", reportFile));
    
    301 284
     
    
    302 285
                 setReportFile(reportFile);
    
    303 286
             } else {
    
    304
    -            if (log.isWarnEnabled())
    
    305
    -                log.warn("Default report file " + reportFile + " does not exists.");
    
    287
    +            log.warn(String.format("Default report file %s does not exists.", reportFile));
    
    306 288
             }
    
    307 289
     
    
    308 290
             // on ecoute la modification du modèle
    
    309 291
             PropertyChangeListener listenReportModified = evt -> {
    
    310 292
                 ReportModel source = (ReportModel) evt.getSource();
    
    311
    -            if (log.isDebugEnabled()) {
    
    312
    -                log.debug("report model [" + source + "] changed on " + evt.getPropertyName() + ", new value = " + evt.getNewValue());
    
    313
    -            }
    
    293
    +            log.debug(String.format("report model [%s] changed on %s, new value = %s", source, evt.getPropertyName(), evt.getNewValue()));
    
    314 294
                 uiModel.validate();
    
    315 295
             };
    
    316 296
     
    

  • client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUIHandler.java
    ... ... @@ -26,6 +26,7 @@ import fr.ird.observe.client.ObserveSwingTechnicalException;
    26 26
     import fr.ird.observe.client.db.ObserveSwingDataSource;
    
    27 27
     import fr.ird.observe.client.ui.admin.AdminStep;
    
    28 28
     import fr.ird.observe.client.ui.admin.AdminTabUIHandler;
    
    29
    +import fr.ird.observe.client.ui.admin.AdminUIModel;
    
    29 30
     import fr.ird.observe.client.ui.admin.config.ConfigUI;
    
    30 31
     import fr.ird.observe.client.ui.admin.report.actions.CopyResultToClipboard;
    
    31 32
     import fr.ird.observe.client.ui.util.JaxxObjectInitializer;
    
    ... ... @@ -107,13 +108,13 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
    107 108
                     onReportsChanged(ui, reports);
    
    108 109
                 } else if (ReportModel.SELECTED_REPORT_PROPERTY_NAME.equals(propertyName)) {
    
    109 110
                     Report report = (Report) newValue;
    
    110
    -                onSelectedReportChanged(ui, source, report);
    
    111
    +                onSelectedReportChanged(report);
    
    111 112
                 } else if (ReportModel.VARIABLES_PROPERTY_NAME.equals(propertyName)) {
    
    112 113
                     Map<String, Object> variables = (Map<String, Object>) newValue;
    
    113
    -                onVariablesChanges(source, variables);
    
    114
    +                onVariablesChanges(variables);
    
    114 115
                 } else if (ReportModel.VALID_PROPERTY_NAME.equals(propertyName)) {
    
    115 116
                     final Boolean valid = (Boolean) newValue;
    
    116
    -                SwingUtilities.invokeLater(() -> onValidChanged(source, valid != null && valid));
    
    117
    +                SwingUtilities.invokeLater(() -> onValidChanged(valid != null && valid));
    
    117 118
                 }
    
    118 119
             });
    
    119 120
     
    
    ... ... @@ -204,6 +205,13 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
    204 205
             return t(report.getDescription());
    
    205 206
         }
    
    206 207
     
    
    208
    +    String updateReportsCountInformation(List<Report> reports) {
    
    209
    +        if (reports == null || reports.size() < 2) {
    
    210
    +            return t("observe.admin.report.no.report.found");
    
    211
    +        }
    
    212
    +        return t("observe.admin.report.report.count.found", reports.size() - 1);
    
    213
    +    }
    
    214
    +
    
    207 215
         private void updateVariable(JComboBox combo, Object value) {
    
    208 216
             String variableName = (String) combo.getClientProperty(VARIABLE_NAME);
    
    209 217
             if (variableName == null) {
    
    ... ... @@ -214,7 +222,7 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
    214 222
         }
    
    215 223
     
    
    216 224
         private void onReportsChanged(ReportUI tabUI, List<?> newValue) {
    
    217
    -        log.debug("New reports : " + newValue);
    
    225
    +        log.debug(String.format("New reports : %s", newValue));
    
    218 226
             // on ajoute toujours une premiere valeur null (pour ne rien selectionne)
    
    219 227
             newValue.add(0, null);
    
    220 228
             // on charge le nouveau modèle dans la liste déroulante
    
    ... ... @@ -222,26 +230,28 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
    222 230
         }
    
    223 231
     
    
    224 232
         @SuppressWarnings({"unchecked"})
    
    225
    -    private void onSelectedReportChanged(ReportUI tabUI, ReportModel model, Report report) {
    
    226
    -        log.info("New selected report [" + report + "]");
    
    227
    -        ui.getModel().setBusy(true);
    
    233
    +    private void onSelectedReportChanged(Report report) {
    
    234
    +        log.info(String.format("New selected report [%s]", report));
    
    235
    +        AdminUIModel model = this.ui.getModel();
    
    236
    +        ReportModel stepModel = getStepModel();
    
    237
    +        model.setBusy(true);
    
    228 238
             try {
    
    229 239
                 // on regénère l'ui de configuration des variables
    
    230
    -            JPanel variablesPanel = tabUI.getReportVariableSelectorPanel();
    
    240
    +            JPanel variablesPanel = ui.getReportVariableSelectorPanel();
    
    231 241
                 variablesPanel.removeAll();
    
    232 242
     
    
    233 243
                 // on utilise les variables uniquement si nécessaire
    
    234 244
                 boolean useVariables = report != null && report.isVariableRequired();
    
    235
    -            tabUI.getReportVariableSelectorPane().setVisible(useVariables);
    
    245
    +            ui.getReportVariableSelectorPane().setVisible(useVariables);
    
    236 246
     
    
    237 247
                 // calcul des données et contruction du tableau
    
    238
    -            model.getResultModel().clear();
    
    248
    +            stepModel.getResultModel().clear();
    
    239 249
     
    
    240 250
                 if (report != null) {
    
    241 251
                     try {
    
    242
    -                    ObserveSwingDataSource dataSource = ui.getModel().getConfigModel().getLocalSourceModel().getSafeSource(true);
    
    252
    +                    ObserveSwingDataSource dataSource = model.getConfigModel().getLocalSourceModel().getSafeSource(true);
    
    243 253
                         ReportService reportService = dataSource.getReportService();
    
    244
    -                    report = reportService.populateVariables(report, ui.getModel().getSelectDataModel().getSelectedTripIds());
    
    254
    +                    report = reportService.populateVariables(report, model.getSelectDataModel().getSelectedTripIds());
    
    245 255
                     } catch (Exception e) {
    
    246 256
                         throw new ObserveSwingTechnicalException("unable to populate report : " + report.getName(), e);
    
    247 257
                     }
    
    ... ... @@ -291,35 +301,37 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
    291 301
     
    
    292 302
                     // on revalide la disposition de l'onglet
    
    293 303
                     SwingUtilities.invokeLater(revalidateTabUI);
    
    294
    -                Map<String, Object> variables = model.getVariables();
    
    304
    +                Map<String, Object> variables = stepModel.getVariables();
    
    295 305
                     updateValidState(report, variables);
    
    296 306
                 }
    
    297 307
             } finally {
    
    298
    -            ui.getModel().setBusy(false);
    
    308
    +            model.setBusy(false);
    
    299 309
             }
    
    300 310
         }
    
    301 311
     
    
    302
    -    private void onVariablesChanges(ReportModel model, Map<String, Object> variables) {
    
    303
    -        Report report = model.getSelectedReport();
    
    312
    +    private void onVariablesChanges(Map<String, Object> variables) {
    
    313
    +        Report report = getStepModel().getSelectedReport();
    
    304 314
             if (report != null) {
    
    305 315
                 updateValidState(report, variables);
    
    306 316
             }
    
    307 317
         }
    
    308 318
     
    
    309
    -    private void onValidChanged(ReportModel model, boolean valid) {
    
    319
    +    private void onValidChanged(boolean valid) {
    
    310 320
             log.info("valid state changed to " + valid);
    
    321
    +        ReportModel stepModel = getStepModel();
    
    311 322
             if (!valid) {
    
    312 323
                 // calcul des données et contruction du tableau
    
    313
    -            model.getResultModel().clear();
    
    324
    +            stepModel.getResultModel().clear();
    
    314 325
                 return;
    
    315 326
             }
    
    316
    -        ui.getModel().setBusy(true);
    
    327
    +        AdminUIModel model = ui.getModel();
    
    328
    +        model.setBusy(true);
    
    317 329
             try {
    
    318
    -            Report report = model.getSelectedReport();
    
    319
    -            ImmutableSet<String> tripIds = ui.getModel().getSelectDataModel().getSelectedTripIds();
    
    320
    -            DataDtoReference trip = ui.getModel().getSelectDataModel().getSelectedTrip();
    
    330
    +            Report report = stepModel.getSelectedReport();
    
    331
    +            ImmutableSet<String> tripIds = model.getSelectDataModel().getSelectedTripIds();
    
    332
    +            DataDtoReference trip = model.getSelectDataModel().getSelectedTrip();
    
    321 333
                 log.info(String.format("Build result for report [%s] on %s", report.getName(), trip));
    
    322
    -            Map<String, Object> variables = model.getVariables();
    
    334
    +            Map<String, Object> variables = stepModel.getVariables();
    
    323 335
                 for (ReportVariable variable : report.getVariables()) {
    
    324 336
                     Object value = variables.get(variable.getName());
    
    325 337
                     variable.setSelectedValue(value);
    
    ... ... @@ -327,7 +339,7 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
    327 339
     
    
    328 340
                 long startTime = TimeLog.getTime();
    
    329 341
     
    
    330
    -            ObserveSwingDataSource dataSource = ui.getModel().getConfigModel().getLocalSourceModel().getSafeSource(true);
    
    342
    +            ObserveSwingDataSource dataSource = model.getConfigModel().getLocalSourceModel().getSafeSource(true);
    
    331 343
                 if (!dataSource.isOpen()) {
    
    332 344
                     dataSource.open();
    
    333 345
                 }
    
    ... ... @@ -335,23 +347,20 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
    335 347
                 ReportService reportService = dataSource.getReportService();
    
    336 348
                 DataMatrix data = reportService.executeReport(report, tripIds);
    
    337 349
                 timeLog.log(startTime, "execute", report.getName());
    
    338
    -            log.info("Result to display:\n" + data.getClipboardContent(true, true, false, '\t'));
    
    350
    +            log.info(String.format("Result to display:\n%s", data.getClipboardContent(true, true, false, '\t')));
    
    339 351
     
    
    340 352
                 // calcul des données et contruction du tableau
    
    341
    -            model.getResultModel().populate(report, data);
    
    353
    +            stepModel.getResultModel().populate(report, data);
    
    342 354
     
    
    343 355
                 // mise a jour du clipboard automatique si requis
    
    344
    -            if (model.isAutoCopyToClipboard()) {
    
    345
    -                CopyResultToClipboard.copyReportToClipBoard(report,
    
    346
    -                                                            model.getResultModel(),
    
    347
    -                                                            model.isCopyRowHeaders(),
    
    348
    -                                                            model.isCopyColumnHeaders());
    
    356
    +            if (stepModel.isAutoCopyToClipboard()) {
    
    357
    +                CopyResultToClipboard.copyReportToClipBoard(report, stepModel);
    
    349 358
                 }
    
    350 359
             } catch (Exception e) {
    
    351 360
                 UIHelper.handlingError("Could not obtain report data", e);
    
    352
    -            model.getResultModel().clear();
    
    361
    +            stepModel.getResultModel().clear();
    
    353 362
             } finally {
    
    354
    -            ui.getModel().setBusy(false);
    
    363
    +            model.setBusy(false);
    
    355 364
             }
    
    356 365
         }
    
    357 366
     
    

  • client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/CopyResultToClipboard.java
    ... ... @@ -47,20 +47,16 @@ public class CopyResultToClipboard extends AdminTabUIActionSupport<ReportUI> {
    47 47
         protected void doActionPerformed(ActionEvent e, ReportUI ui) {
    
    48 48
             ReportModel stepModel = ui.getStepModel();
    
    49 49
             Report report = stepModel.getSelectedReport();
    
    50
    -        ResultTableModel model = stepModel.getResultModel();
    
    51
    -        copyReportToClipBoard(report, model, stepModel.isCopyRowHeaders(), stepModel.isCopyColumnHeaders());
    
    50
    +        copyReportToClipBoard(report, stepModel);
    
    52 51
         }
    
    53 52
     
    
    54
    -    public static void copyReportToClipBoard(Report report,
    
    55
    -                                             ResultTableModel model,
    
    56
    -                                             boolean copyRowHeaders,
    
    57
    -                                             boolean copyColumnHeaders) {
    
    53
    +    public static void copyReportToClipBoard(Report report, ReportModel stepModel) {
    
    58 54
             if (report == null) {
    
    59 55
                 return;
    
    60 56
             }
    
    61
    -
    
    57
    +        ResultTableModel model = stepModel.getResultModel();
    
    62 58
             log.info(String.format("Will copy result of report %s - result dimension : [%d,%d]", report.getName(), model.getRowCount(), model.getColumnCount()));
    
    63
    -        String content = model.getClipbordContent(copyRowHeaders, copyColumnHeaders);
    
    59
    +        String content = model.getClipbordContent(stepModel.isCopyRowHeaders(), stepModel.isCopyColumnHeaders());
    
    64 60
             UIHelperSupport.copyToClipBoard(content);
    
    65 61
         }
    
    66 62
     }

  • observe-i18n/src/main/i18n/translations/observe_en_GB.properties
    ... ... @@ -361,6 +361,8 @@ observe.admin.report.copy.row.headers=Copy row header
    361 361
     observe.admin.report.copy.row.headers.tip=Add in result row headers
    
    362 362
     observe.admin.report.description=Generate reports
    
    363 363
     observe.admin.report.model.type=Model type to use
    
    364
    +observe.admin.report.no.report.found=No report found.
    
    365
    +observe.admin.report.report.count.found=Found %s reports.
    
    364 366
     observe.admin.report.report.description=Description of selected report
    
    365 367
     observe.admin.report.result=Results
    
    366 368
     observe.admin.report.select=Select report
    

  • observe-i18n/src/main/i18n/translations/observe_es_ES.properties
    ... ... @@ -361,6 +361,8 @@ observe.admin.report.copy.row.headers=Copiar las cabeceras de linea
    361 361
     observe.admin.report.copy.row.headers.tip=Añadir al resultado las cabeceras de linea (ej. la primera columna)
    
    362 362
     observe.admin.report.description=Generar los cuadros de síntesis del informe de fin del embarque
    
    363 363
     observe.admin.report.model.type=Tipo de modelo a utilizar
    
    364
    +observe.admin.report.no.report.found=No report found. \#TODO
    
    365
    +observe.admin.report.report.count.found=Found %s reports. \#TODO
    
    364 366
     observe.admin.report.report.description=Descripción del informe seleccionado
    
    365 367
     observe.admin.report.result=Resultados del informe
    
    366 368
     observe.admin.report.select=Selección del informe
    

  • observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
    ... ... @@ -361,6 +361,8 @@ observe.admin.report.copy.row.headers=Copier les entêtes de ligne
    361 361
     observe.admin.report.copy.row.headers.tip=Ajoute dans le résultat les entêtes de ligne (i.e la première colonne)
    
    362 362
     observe.admin.report.description=Générer les tableaux de synthèse du rapport de fin d'embarquement
    
    363 363
     observe.admin.report.model.type=Type de modèle à utiliser
    
    364
    +observe.admin.report.no.report.found=Aucun rapport trouvé.
    
    365
    +observe.admin.report.report.count.found=%s rapports détectés.
    
    364 366
     observe.admin.report.report.description=Description du rapport sélectionné
    
    365 367
     observe.admin.report.result=Résultats du rapport
    
    366 368
     observe.admin.report.select=Sélection du rapport