Observe-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- 7199 discussions
26 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
8b001306 by tchemit at 2019-09-26T12:21:32Z
improve report admin action
- - - - -
9 changed files:
- client-core/src/main/i18n/getters/java.getter
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jaxx
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jcss
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/CopyResultToClipboard.java
- observe-i18n/src/main/i18n/translations/observe_en_GB.properties
- observe-i18n/src/main/i18n/translations/observe_es_ES.properties
- observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
Changes:
=====================================
client-core/src/main/i18n/getters/java.getter
=====================================
@@ -262,6 +262,8 @@ observe.actions.validate.validator.message.header.tip
observe.actions.validate.validator.scope.header
observe.actions.validate.validator.scope.header.tip
observe.admin.report.description
+observe.admin.report.no.report.found
+observe.admin.report.report.count.found
observe.admin.report.title
observe.admin.report.title.tip
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 {
<JButton id="chooseFileReport"/>
</cell>
</row>
+ <row>
+ <cell columns="3" anchor="west">
+ <JLabel id="reportsCountInformation" styleClass="information"/>
+ </cell>
+ </row>
</Table>
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jcss
=====================================
@@ -48,3 +48,7 @@
text:{getStringValue(stepModel.getReportFile())};
}
+#reportsCountInformation {
+ text:{handler.updateReportsCountInformation(stepModel.getReports())};
+}
+
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java
=====================================
@@ -6,15 +6,15 @@
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * 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 Public License for more details.
- *
- * You should have received a copy of the GNU General Public
+ *
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
@@ -74,7 +74,6 @@ public class ReportModel extends AdminActionModel {
public static final String VALID_PROPERTY_NAME = "valid";
- /** Logger. */
private static final Logger log = LogManager.getLogger(ReportModel.class);
/** Type de rapport à charger. */
@@ -155,10 +154,7 @@ public class ReportModel extends AdminActionModel {
public void setAutoCopyToClipboard(boolean autoCopyToClipboard) {
boolean oldValue = this.autoCopyToClipboard;
this.autoCopyToClipboard = autoCopyToClipboard;
- firePropertyChange(AUTO_COPY_TO_CLIPBOARD_PROPERTY_NAME,
- oldValue,
- autoCopyToClipboard
- );
+ firePropertyChange(AUTO_COPY_TO_CLIPBOARD_PROPERTY_NAME, oldValue, autoCopyToClipboard);
}
public boolean isCopyRowHeaders() {
@@ -168,10 +164,7 @@ public class ReportModel extends AdminActionModel {
public void setCopyRowHeaders(boolean copyRowHeaders) {
boolean oldValue = this.copyRowHeaders;
this.copyRowHeaders = copyRowHeaders;
- firePropertyChange(COPY_ROW_HEADERS_PROPERTY_NAME,
- oldValue,
- copyRowHeaders
- );
+ firePropertyChange(COPY_ROW_HEADERS_PROPERTY_NAME, oldValue, copyRowHeaders);
}
public boolean isCopyColumnHeaders() {
@@ -181,10 +174,7 @@ public class ReportModel extends AdminActionModel {
public void setCopyColumnHeaders(boolean copyColumnHeaders) {
boolean oldValue = this.copyColumnHeaders;
this.copyColumnHeaders = copyColumnHeaders;
- firePropertyChange(COPY_COLUMN_HEADERS_PROPERTY_NAME,
- oldValue,
- copyColumnHeaders
- );
+ firePropertyChange(COPY_COLUMN_HEADERS_PROPERTY_NAME, oldValue, copyColumnHeaders);
}
public ResultTableModel getResultModel() {
@@ -205,12 +195,9 @@ public class ReportModel extends AdminActionModel {
try {
URL resource = reportFile.toURI().toURL();
allReports = loadReports(resource);
- if (log.isDebugEnabled()) {
- log.debug("Add loaded " + allReports.size() + " report(s).");
- }
+ log.debug(String.format("Add loaded %d report(s).", allReports.size()));
} catch (IOException e) {
- throw new IllegalStateException(
- "Could not load reports definition file (" + reportFile + ").", e);
+ throw new IllegalStateException(String.format("Could not load reports definition file (%s).", reportFile), e);
}
}
return allReports;
@@ -278,14 +265,12 @@ public class ReportModel extends AdminActionModel {
public void updateReports() {
setSelectedReport(null);
- if (reportFile==null) {
+ if (reportFile == null) {
return;
}
reports = getAllReports().stream().filter(r -> modelType == r.getModelType()).collect(Collectors.toList());
firePropertyChange(REPORTS_PROPERTY_NAME, reports);
- if (log.isInfoEnabled()) {
- log.info("Detects " + (reports.size() - 1) + " report(s).");
- }
+ log.info(String.format("Detects %d report(s).", reports.size() - 1));
}
public void start(AdminUIModel uiModel) {
@@ -295,22 +280,17 @@ public class ReportModel extends AdminActionModel {
File reportFile = ObserveResourceManager.Resource.report.getFile(config.getReportDirectory());
if (reportFile.exists()) {
- if (log.isInfoEnabled()) {
- log.info("Will use report file : " + reportFile);
- }
+ log.info(String.format("Will use report file : %s", reportFile));
setReportFile(reportFile);
} else {
- if (log.isWarnEnabled())
- log.warn("Default report file " + reportFile + " does not exists.");
+ log.warn(String.format("Default report file %s does not exists.", reportFile));
}
// on ecoute la modification du modèle
PropertyChangeListener listenReportModified = evt -> {
ReportModel source = (ReportModel) evt.getSource();
- if (log.isDebugEnabled()) {
- log.debug("report model [" + source + "] changed on " + evt.getPropertyName() + ", new value = " + evt.getNewValue());
- }
+ log.debug(String.format("report model [%s] changed on %s, new value = %s", source, evt.getPropertyName(), evt.getNewValue()));
uiModel.validate();
};
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUIHandler.java
=====================================
@@ -26,6 +26,7 @@ import fr.ird.observe.client.ObserveSwingTechnicalException;
import fr.ird.observe.client.db.ObserveSwingDataSource;
import fr.ird.observe.client.ui.admin.AdminStep;
import fr.ird.observe.client.ui.admin.AdminTabUIHandler;
+import fr.ird.observe.client.ui.admin.AdminUIModel;
import fr.ird.observe.client.ui.admin.config.ConfigUI;
import fr.ird.observe.client.ui.admin.report.actions.CopyResultToClipboard;
import fr.ird.observe.client.ui.util.JaxxObjectInitializer;
@@ -107,13 +108,13 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
onReportsChanged(ui, reports);
} else if (ReportModel.SELECTED_REPORT_PROPERTY_NAME.equals(propertyName)) {
Report report = (Report) newValue;
- onSelectedReportChanged(ui, source, report);
+ onSelectedReportChanged(report);
} else if (ReportModel.VARIABLES_PROPERTY_NAME.equals(propertyName)) {
Map<String, Object> variables = (Map<String, Object>) newValue;
- onVariablesChanges(source, variables);
+ onVariablesChanges(variables);
} else if (ReportModel.VALID_PROPERTY_NAME.equals(propertyName)) {
final Boolean valid = (Boolean) newValue;
- SwingUtilities.invokeLater(() -> onValidChanged(source, valid != null && valid));
+ SwingUtilities.invokeLater(() -> onValidChanged(valid != null && valid));
}
});
@@ -204,6 +205,13 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
return t(report.getDescription());
}
+ String updateReportsCountInformation(List<Report> reports) {
+ if (reports == null || reports.size() < 2) {
+ return t("observe.admin.report.no.report.found");
+ }
+ return t("observe.admin.report.report.count.found", reports.size() - 1);
+ }
+
private void updateVariable(JComboBox combo, Object value) {
String variableName = (String) combo.getClientProperty(VARIABLE_NAME);
if (variableName == null) {
@@ -214,7 +222,7 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
}
private void onReportsChanged(ReportUI tabUI, List<?> newValue) {
- log.debug("New reports : " + newValue);
+ log.debug(String.format("New reports : %s", newValue));
// on ajoute toujours une premiere valeur null (pour ne rien selectionne)
newValue.add(0, null);
// on charge le nouveau modèle dans la liste déroulante
@@ -222,26 +230,28 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
}
@SuppressWarnings({"unchecked"})
- private void onSelectedReportChanged(ReportUI tabUI, ReportModel model, Report report) {
- log.info("New selected report [" + report + "]");
- ui.getModel().setBusy(true);
+ private void onSelectedReportChanged(Report report) {
+ log.info(String.format("New selected report [%s]", report));
+ AdminUIModel model = this.ui.getModel();
+ ReportModel stepModel = getStepModel();
+ model.setBusy(true);
try {
// on regénère l'ui de configuration des variables
- JPanel variablesPanel = tabUI.getReportVariableSelectorPanel();
+ JPanel variablesPanel = ui.getReportVariableSelectorPanel();
variablesPanel.removeAll();
// on utilise les variables uniquement si nécessaire
boolean useVariables = report != null && report.isVariableRequired();
- tabUI.getReportVariableSelectorPane().setVisible(useVariables);
+ ui.getReportVariableSelectorPane().setVisible(useVariables);
// calcul des données et contruction du tableau
- model.getResultModel().clear();
+ stepModel.getResultModel().clear();
if (report != null) {
try {
- ObserveSwingDataSource dataSource = ui.getModel().getConfigModel().getLocalSourceModel().getSafeSource(true);
+ ObserveSwingDataSource dataSource = model.getConfigModel().getLocalSourceModel().getSafeSource(true);
ReportService reportService = dataSource.getReportService();
- report = reportService.populateVariables(report, ui.getModel().getSelectDataModel().getSelectedTripIds());
+ report = reportService.populateVariables(report, model.getSelectDataModel().getSelectedTripIds());
} catch (Exception e) {
throw new ObserveSwingTechnicalException("unable to populate report : " + report.getName(), e);
}
@@ -291,35 +301,37 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
// on revalide la disposition de l'onglet
SwingUtilities.invokeLater(revalidateTabUI);
- Map<String, Object> variables = model.getVariables();
+ Map<String, Object> variables = stepModel.getVariables();
updateValidState(report, variables);
}
} finally {
- ui.getModel().setBusy(false);
+ model.setBusy(false);
}
}
- private void onVariablesChanges(ReportModel model, Map<String, Object> variables) {
- Report report = model.getSelectedReport();
+ private void onVariablesChanges(Map<String, Object> variables) {
+ Report report = getStepModel().getSelectedReport();
if (report != null) {
updateValidState(report, variables);
}
}
- private void onValidChanged(ReportModel model, boolean valid) {
+ private void onValidChanged(boolean valid) {
log.info("valid state changed to " + valid);
+ ReportModel stepModel = getStepModel();
if (!valid) {
// calcul des données et contruction du tableau
- model.getResultModel().clear();
+ stepModel.getResultModel().clear();
return;
}
- ui.getModel().setBusy(true);
+ AdminUIModel model = ui.getModel();
+ model.setBusy(true);
try {
- Report report = model.getSelectedReport();
- ImmutableSet<String> tripIds = ui.getModel().getSelectDataModel().getSelectedTripIds();
- DataDtoReference trip = ui.getModel().getSelectDataModel().getSelectedTrip();
+ Report report = stepModel.getSelectedReport();
+ ImmutableSet<String> tripIds = model.getSelectDataModel().getSelectedTripIds();
+ DataDtoReference trip = model.getSelectDataModel().getSelectedTrip();
log.info(String.format("Build result for report [%s] on %s", report.getName(), trip));
- Map<String, Object> variables = model.getVariables();
+ Map<String, Object> variables = stepModel.getVariables();
for (ReportVariable variable : report.getVariables()) {
Object value = variables.get(variable.getName());
variable.setSelectedValue(value);
@@ -327,7 +339,7 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
long startTime = TimeLog.getTime();
- ObserveSwingDataSource dataSource = ui.getModel().getConfigModel().getLocalSourceModel().getSafeSource(true);
+ ObserveSwingDataSource dataSource = model.getConfigModel().getLocalSourceModel().getSafeSource(true);
if (!dataSource.isOpen()) {
dataSource.open();
}
@@ -335,23 +347,20 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
ReportService reportService = dataSource.getReportService();
DataMatrix data = reportService.executeReport(report, tripIds);
timeLog.log(startTime, "execute", report.getName());
- log.info("Result to display:\n" + data.getClipboardContent(true, true, false, '\t'));
+ log.info(String.format("Result to display:\n%s", data.getClipboardContent(true, true, false, '\t')));
// calcul des données et contruction du tableau
- model.getResultModel().populate(report, data);
+ stepModel.getResultModel().populate(report, data);
// mise a jour du clipboard automatique si requis
- if (model.isAutoCopyToClipboard()) {
- CopyResultToClipboard.copyReportToClipBoard(report,
- model.getResultModel(),
- model.isCopyRowHeaders(),
- model.isCopyColumnHeaders());
+ if (stepModel.isAutoCopyToClipboard()) {
+ CopyResultToClipboard.copyReportToClipBoard(report, stepModel);
}
} catch (Exception e) {
UIHelper.handlingError("Could not obtain report data", e);
- model.getResultModel().clear();
+ stepModel.getResultModel().clear();
} finally {
- ui.getModel().setBusy(false);
+ model.setBusy(false);
}
}
=====================================
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> {
protected void doActionPerformed(ActionEvent e, ReportUI ui) {
ReportModel stepModel = ui.getStepModel();
Report report = stepModel.getSelectedReport();
- ResultTableModel model = stepModel.getResultModel();
- copyReportToClipBoard(report, model, stepModel.isCopyRowHeaders(), stepModel.isCopyColumnHeaders());
+ copyReportToClipBoard(report, stepModel);
}
- public static void copyReportToClipBoard(Report report,
- ResultTableModel model,
- boolean copyRowHeaders,
- boolean copyColumnHeaders) {
+ public static void copyReportToClipBoard(Report report, ReportModel stepModel) {
if (report == null) {
return;
}
-
+ ResultTableModel model = stepModel.getResultModel();
log.info(String.format("Will copy result of report %s - result dimension : [%d,%d]", report.getName(), model.getRowCount(), model.getColumnCount()));
- String content = model.getClipbordContent(copyRowHeaders, copyColumnHeaders);
+ String content = model.getClipbordContent(stepModel.isCopyRowHeaders(), stepModel.isCopyColumnHeaders());
UIHelperSupport.copyToClipBoard(content);
}
}
=====================================
observe-i18n/src/main/i18n/translations/observe_en_GB.properties
=====================================
@@ -361,6 +361,8 @@ observe.admin.report.copy.row.headers=Copy row header
observe.admin.report.copy.row.headers.tip=Add in result row headers
observe.admin.report.description=Generate reports
observe.admin.report.model.type=Model type to use
+observe.admin.report.no.report.found=No report found.
+observe.admin.report.report.count.found=Found %s reports.
observe.admin.report.report.description=Description of selected report
observe.admin.report.result=Results
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
observe.admin.report.copy.row.headers.tip=Añadir al resultado las cabeceras de linea (ej. la primera columna)
observe.admin.report.description=Generar los cuadros de síntesis del informe de fin del embarque
observe.admin.report.model.type=Tipo de modelo a utilizar
+observe.admin.report.no.report.found=No report found. \#TODO
+observe.admin.report.report.count.found=Found %s reports. \#TODO
observe.admin.report.report.description=Descripción del informe seleccionado
observe.admin.report.result=Resultados del informe
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
observe.admin.report.copy.row.headers.tip=Ajoute dans le résultat les entêtes de ligne (i.e la première colonne)
observe.admin.report.description=Générer les tableaux de synthèse du rapport de fin d'embarquement
observe.admin.report.model.type=Type de modèle à utiliser
+observe.admin.report.no.report.found=Aucun rapport trouvé.
+observe.admin.report.report.count.found=%s rapports détectés.
observe.admin.report.report.description=Description du rapport sélectionné
observe.admin.report.result=Résultats du rapport
observe.admin.report.select=Sélection du rapport
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/8b001306bcd5bfd2ee4e3da2cf8…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/8b001306bcd5bfd2ee4e3da2cf8…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 6 commits: Introduce new simple Jaxx Object initializer
by Tony CHEMIT 25 Sep '19
by Tony CHEMIT 25 Sep '19
25 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
9523f5d5 by tchemit at 2019-09-25T15:27:57Z
Introduce new simple Jaxx Object initializer
- - - - -
96301f64 by tchemit at 2019-09-25T15:28:04Z
fix a i18n
- - - - -
9e601963 by tchemit at 2019-09-25T15:28:39Z
reorder enumeration values since we now use it to add a key stroke in validation admin config ui
- - - - -
6461eabe by tchemit at 2019-09-25T15:29:09Z
let's listen JaxxObjectActionSupport (to have full trace of accepted/rejected actions)
- - - - -
6ef6650d by tchemit at 2019-09-25T15:29:49Z
Continue to improve admin actions using new jaxx api.
- - - - -
8c192060 by tchemit at 2019-09-25T15:30:18Z
use new api
- - - - -
30 changed files:
- client-configuration/src/main/java/fr/ird/observe/client/constants/ValidationModelMode.java
- client-configuration/src/main/resources/observe-log4j2.xml
- client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUI.jaxx
- client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUI.jcss
- client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUILauncher.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUIModel.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/actions/SelectData.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigUI.jaxx
- client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigUI.jcss
- client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/longline/pairing/ActivityLonglinePairingUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jaxx
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jcss
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/ChooseFileReport.java
- + client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/SelectModelType.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateConfigUI.jaxx
- client-core/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/validate/actions/SelectValidationModelMode.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/validate/actions/SelectValidationScope.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIInitializer.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/api/actions/GoToSubTab1.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/api/actions/GoToSubTab2.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/api/actions/GoToSubTab3.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/api/actions/GoToTab1.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/api/actions/GoToTab2.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/api/actions/GoToTab3.java
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/ebe457ca303b922f53224288b3…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/ebe457ca303b922f53224288b3…
You're receiving this email because of your account on gitlab.com.
1
0
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
ebe457ca by tchemit at 2019-09-25T09:29:37Z
Review Report action
- - - - -
18 changed files:
- client-core/src/main/i18n/getters/java.getter
- client-core/src/main/i18n/getters/jaxx.getter
- client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminActionModel.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminStep.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUIInitializer.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jaxx
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jcss
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUI.jaxx
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUI.jcss
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUIHandler.java
- + client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/ChooseFileReport.java
- + client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/CopyResultToClipboard.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIInitializer.java
- client-db/src/main/java/fr/ird/observe/client/ui/util/UIHelperSupport.java
- observe-i18n/src/main/i18n/translations/observe_en_GB.properties
- observe-i18n/src/main/i18n/translations/observe_es_ES.properties
- observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
Changes:
=====================================
client-core/src/main/i18n/getters/java.getter
=====================================
@@ -46,6 +46,7 @@ observe.action.configuration.tip
observe.action.connexions
observe.action.connexions.tip
observe.action.continue
+observe.action.copy
observe.action.copy.to.clipBoard
observe.action.copyFloatingObjectPartToLeft
observe.action.copyFloatingObjectPartToLeft.tip
@@ -153,12 +154,10 @@ observe.actions.operation.message.needFix
observe.actions.operation.message.running
observe.actions.operation.message.successed
observe.actions.report
-observe.actions.report.description
-observe.actions.report.title
-observe.actions.report.title.tip
observe.actions.saveLocal
observe.actions.saveLocal.description
observe.actions.synchro.cancel.tip
+observe.actions.synchro.copy.tip
observe.actions.synchro.data
observe.actions.synchro.data.copyToLeft.tip
observe.actions.synchro.data.copyToRight.tip
@@ -262,6 +261,9 @@ observe.actions.validate.validator.message.header
observe.actions.validate.validator.message.header.tip
observe.actions.validate.validator.scope.header
observe.actions.validate.validator.scope.header.tip
+observe.admin.report.description
+observe.admin.report.title
+observe.admin.report.title.tip
observe.admin.resume.no.operation.done
observe.admin.resume.operation.canceled
observe.admin.resume.operation.done
=====================================
client-core/src/main/i18n/getters/jaxx.getter
=====================================
@@ -9,15 +9,8 @@ observe.Id.species
observe.Id.weightMeasureType
observe.Id.whenArriving
observe.Id.whenLeaving
-observe.action.auto.copy.to.clipboard
-observe.action.auto.copy.to.clipboard.tip
observe.action.configuration
observe.action.connexions
-observe.action.copy
-observe.action.copy.column.headers
-observe.action.copy.column.headers.tip
-observe.action.copy.row.headers
-observe.action.copy.row.headers.tip
observe.action.create
observe.action.delete
observe.action.floatingObjectPresets
@@ -27,16 +20,6 @@ observe.action.save.all.tip
observe.actions.longline.pairing.config
observe.actions.operation.configuration
observe.actions.operations
-observe.actions.report.config
-observe.actions.report.copy.options
-observe.actions.report.model.type
-observe.actions.report.report.description
-observe.actions.report.result
-observe.actions.report.select
-observe.actions.report.select.file
-observe.actions.report.select.file.tip
-observe.actions.report.variables
-observe.actions.synchro.copy.tip
observe.actions.synchro.data.actionsToPerform
observe.actions.synchro.referential.config.mode
observe.actions.synchro.referential.obsolete.entities.list
@@ -51,6 +34,21 @@ observe.actions.validate.select.mode
observe.actions.validate.select.mode.tip
observe.actions.validate.select.scope
observe.actions.validate.select.scope.tip
+observe.admin.report.auto.copy.to.clipboard
+observe.admin.report.auto.copy.to.clipboard.tip
+observe.admin.report.config
+observe.admin.report.copy.column.headers
+observe.admin.report.copy.column.headers.tip
+observe.admin.report.copy.options
+observe.admin.report.copy.row.headers
+observe.admin.report.copy.row.headers.tip
+observe.admin.report.model.type
+observe.admin.report.report.description
+observe.admin.report.result
+observe.admin.report.select
+observe.admin.report.select.file
+observe.admin.report.select.file.tip
+observe.admin.report.variables
observe.common.directory
observe.common.file
observe.common.global.progression.description
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminActionModel.java
=====================================
@@ -6,21 +6,24 @@
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * 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 Public License for more details.
- *
- * You should have received a copy of the GNU General Public
+ *
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
package fr.ird.observe.client.ui.admin;
+import io.ultreia.java4all.bean.JavaBean;
+import io.ultreia.java4all.bean.definition.JavaBeanDefinition;
+import io.ultreia.java4all.bean.definition.JavaBeanDefinitionStore;
import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardExtStepModel;
/**
@@ -29,10 +32,23 @@ import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardExtStepModel;
* @author Tony Chemit - dev(a)tchemit.fr
* @since 1.4
*/
-public abstract class AdminActionModel extends WizardExtStepModel<AdminStep> {
+public abstract class AdminActionModel extends WizardExtStepModel<AdminStep> implements JavaBean {
+ /**
+ * Lazy helper class that manages all java bean operations.
+ *
+ * @see #javaBeanDefinition()
+ */
+ private transient JavaBeanDefinition javaBeanDefinition;
protected AdminActionModel(AdminStep objectOperation) {
super(objectOperation);
}
+ @Override
+ public final JavaBeanDefinition javaBeanDefinition() {
+ return javaBeanDefinition == null
+ ? javaBeanDefinition = JavaBeanDefinitionStore.getDefinition(getClass()).orElseThrow(() -> new NullPointerException("Can't find JavaBeanDefinition for " + getClass()))
+ : javaBeanDefinition;
+ }
+
}
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminStep.java
=====================================
@@ -197,11 +197,11 @@ public enum AdminStep implements WizardExtStep {
/** pour lancer la generation des rapports */
REPORT(
- n("observe.actions.report.title"),
- n("observe.actions.report.title.tip"),
+ n("observe.admin.report.title"),
+ n("observe.admin.report.title.tip"),
"report",
n("observe.actions.report"),
- n("observe.actions.report.description"),
+ n("observe.admin.report.description"),
ReportModel.class,
ReportUI.class,
false,
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUIInitializer.java
=====================================
@@ -25,7 +25,9 @@ package fr.ird.observe.client.ui.admin;
import com.google.common.collect.ImmutableMap;
import fr.ird.observe.client.ObserveSwingApplicationContext;
import fr.ird.observe.client.ui.content.api.ContentUIInitializer;
+import fr.ird.observe.client.ui.util.BeanCheckBox;
import fr.ird.observe.client.ui.util.UIHelper;
+import fr.ird.observe.client.ui.util.UIHelperSupport;
import fr.ird.observe.dto.I18nEnumHelper;
import fr.ird.observe.dto.decoration.DecoratorService;
import org.apache.commons.lang3.BooleanUtils;
@@ -80,7 +82,6 @@ public class AdminTabUIInitializer<UI extends AdminTabUI> {
private static final String CLIENT_PROPERTY_NOT_BLOCKING = "notBlocking";
- /** Logger. */
private static final Logger log = LogManager.getLogger(AdminTabUIInitializer.class);
protected final UI ui;
@@ -115,6 +116,10 @@ public class AdminTabUIInitializer<UI extends AdminTabUI> {
// init((JComponent) o, doNotBlockComponentIds);
// }
+ if (o instanceof BeanCheckBox) {
+ init((BeanCheckBox) o);
+ }
+
if (o instanceof AbstractButton) {
init((AbstractButton) o);
continue;
@@ -191,6 +196,15 @@ public class AdminTabUIInitializer<UI extends AdminTabUI> {
}
}
+ protected void init(BeanCheckBox editor) {
+ log.debug("init simple boolean editor " + editor.getName());
+ String propertyName = editor.getProperty();
+ if (StringUtils.isEmpty(propertyName)) {
+ editor.setProperty(editor.getName());
+ }
+ editor.init(UIHelperSupport.isBindingFromBean(editor), UIHelperSupport.isBindingToBean(editor));
+ }
+
@SuppressWarnings("unchecked")
protected void init(BeanComboBox beanComboBox) {
if (log.isDebugEnabled()) {
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jaxx
=====================================
@@ -59,10 +59,7 @@ protected void finalize() throws Throwable {
<JLabel id='modelTypeLabel'/>
</cell>
<cell weightx='1' fill="horizontal" columns="2">
- <EnumEditor id="modelType"
- genericType='ObserveModelType'
- constructorParams='ObserveModelType.class'
- onItemStateChanged='getHandler().setModelTypeFromEvent(event)'/>
+ <EnumEditor id="modelType" genericType='ObserveModelType' constructorParams='ObserveModelType.class' onItemStateChanged='getHandler().setModelTypeFromEvent(event)'/>
</cell>
</row>
<row>
@@ -70,11 +67,10 @@ protected void finalize() throws Throwable {
<JLabel id='reportFileLabel'/>
</cell>
<cell weightx='1' fill="horizontal">
- <JTextField id="reportFile"
- onKeyReleased='stepModel.setReportFile(new File(((JTextField)event.getSource()).getText()))'/>
+ <JTextField id="reportFile" onKeyReleased='stepModel.setReportFile(new File(((JTextField)event.getSource()).getText()))'/>
</cell>
<cell anchor="east">
- <JButton id="reportFileChooserAction" onActionPerformed="getHandler().chooseReportFile()"/>
+ <JButton id="chooseFileReport"/>
</cell>
</row>
</Table>
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jcss
=====================================
@@ -21,11 +21,11 @@
*/
#reportConfig {
- border:{new TitledBorder(t("observe.actions.report.config"))};
+ border:{new TitledBorder(t("observe.admin.report.config"))};
}
#modelTypeLabel {
- text:"observe.actions.report.model.type";
+ text:"observe.admin.report.model.type";
}
#modelType {
@@ -33,15 +33,11 @@
}
#reportFileLabel {
- text:"observe.actions.report.select.file";
- toolTipText:"observe.actions.report.select.file.tip";
+ text:"observe.admin.report.select.file";
+ toolTipText:"observe.admin.report.select.file.tip";
}
#reportFile {
text:{getStringValue(stepModel.getReportFile())};
}
-#reportFileChooserAction {
- actionIcon:"fileChooser";
-}
-
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java
=====================================
@@ -32,8 +32,9 @@ import fr.ird.observe.client.ui.tree.selection.SelectionTreeModel;
import fr.ird.observe.dto.ObserveModelType;
import fr.ird.observe.services.service.actions.report.Report;
import fr.ird.observe.services.service.actions.report.ReportBuilder;
-import org.apache.logging.log4j.Logger;
+import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition;
import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import java.beans.PropertyChangeListener;
import java.io.File;
@@ -50,6 +51,7 @@ import java.util.stream.Collectors;
* @author Tony Chemit - dev(a)tchemit.fr
* @since 1.3
*/
+@GenerateJavaBeanDefinition
public class ReportModel extends AdminActionModel {
public static final String SELECTED_TRIP_PROPERTY_NAME = "selectedTrip";
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUI.jaxx
=====================================
@@ -28,6 +28,8 @@
fr.ird.observe.client.ui.admin.AdminUI
fr.ird.observe.services.service.actions.report.Report
+ fr.ird.observe.client.ui.util.BeanCheckBox
+
java.awt.Dimension
javax.swing.DefaultComboBoxModel
@@ -81,17 +83,15 @@ public void destroy() {
</JScrollPane>
<JPanel id="copyPane" constraints='BorderLayout.SOUTH'>
- <JPanel id='copyOptions' constraints='BorderLayout.NORTH'>
- <JCheckBox id='autoCopyToClipboard'
- onStateChanged='getStepModel().setAutoCopyToClipboard(((JCheckBox)event.getSource()).isSelected())'/>
- <JCheckBox id='copyRowHeaders'
- onStateChanged='getStepModel().setCopyRowHeaders(((JCheckBox)event.getSource()).isSelected())'/>
- <JCheckBox id='copyColumnHeaders'
- onStateChanged='getStepModel().setCopyColumnHeaders(((JCheckBox)event.getSource()).isSelected())'/>
+ <JPanel id='copyOptions' constraints='BorderLayout.NORTH' beanScope="stepModel">
+ <BeanCheckBox id='autoCopyToClipboard'/>
+<!-- onStateChanged='getStepModel().setAutoCopyToClipboard(((JCheckBox)event.getSource()).isSelected())'/>-->
+ <BeanCheckBox id='copyRowHeaders'/>
+<!-- onStateChanged='getStepModel().setCopyRowHeaders(((JCheckBox)event.getSource()).isSelected())'/>-->
+ <BeanCheckBox id='copyColumnHeaders'/>
+<!-- onStateChanged='getStepModel().setCopyColumnHeaders(((JCheckBox)event.getSource()).isSelected())'/>-->
</JPanel>
- <JButton id="copy" constraints='BorderLayout.CENTER'
- onActionPerformed='getHandler().copyReportToClipBoard(getStepModel().getSelectedReport(), getResultModel(), getStepModel().isCopyRowHeaders(),
- getStepModel().isCopyColumnHeaders())'/>
+ <JButton id="copyResultToClipboard" constraints='BorderLayout.CENTER'/>
</JPanel>
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUI.jcss
=====================================
@@ -35,18 +35,17 @@ JToolBar {
}
#reportVariableSelectorPanel {
- border:{new TitledBorder(t("observe.actions.report.variables"))};
+ border:{new TitledBorder(t("observe.admin.report.variables"))};
layout:{new GridLayout(0,1)};
}
#copyOptions {
- border:{new TitledBorder(t("observe.actions.report.copy.options"))};
+ border:{new TitledBorder(t("observe.admin.report.copy.options"))};
layout:{new GridLayout(0,1)};
}
#resultPane {
- border:{new TitledBorder(t("observe.actions.report.result"))};
- /*columnHeaderView:{resultTable.getTableHeader()};*/
+ border:{new TitledBorder(t("observe.admin.report.result"))};
verticalScrollBarPolicy:{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED};
}
@@ -56,7 +55,7 @@ JToolBar {
}
#requestSelectorPane {
- border:{new TitledBorder(t("observe.actions.report.select"))};
+ border:{new TitledBorder(t("observe.admin.report.select"))};
layout:{new BorderLayout()};
}
@@ -66,7 +65,7 @@ JToolBar {
}
#reportDescriptionPane {
- columnHeaderView:{UIHelper.newLabel(t("observe.actions.report.report.description") ,"information", 10)};
+ columnHeaderView:{UIHelper.newLabel(t("observe.admin.report.report.description") ,"information", 10)};
minimumSize:{new Dimension(0,0)};
}
@@ -86,29 +85,25 @@ JToolBar {
#copyPane {
layout:{new BorderLayout()};
}
+
#autoCopyToClipboard {
- text:"observe.action.auto.copy.to.clipboard";
- toolTipText:"observe.action.auto.copy.to.clipboard.tip";
- selected:{stepModel.isAutoCopyToClipboard()};
+ text:"observe.admin.report.auto.copy.to.clipboard";
+ toolTipText:"observe.admin.report.auto.copy.to.clipboard.tip";
+ /*selected:{stepModel.isAutoCopyToClipboard()};*/
}
#copyRowHeaders {
- text:"observe.action.copy.row.headers";
- toolTipText:"observe.action.copy.row.headers.tip";
- selected:{stepModel.isCopyRowHeaders()};
+ text:"observe.admin.report.copy.row.headers";
+ toolTipText:"observe.admin.report.copy.row.headers.tip";
+ /*selected:{stepModel.isCopyRowHeaders()};*/
}
#copyColumnHeaders {
- text:"observe.action.copy.column.headers";
- toolTipText:"observe.action.copy.column.headers.tip";
- selected:{stepModel.isCopyColumnHeaders()};
-}
-
-#copy {
- text:"observe.action.copy";
- toolTipText:"observe.actions.synchro.copy.tip";
- actionIcon:"report-copy";
- /*enabled:{stepModel.getSelectedReport() != null};*/
- enabled:{stepModel.isValid() };
- mnemonic:C;
+ text:"observe.admin.report.copy.column.headers";
+ toolTipText:"observe.admin.report.copy.column.headers.tip";
+ /*selected:{stepModel.isCopyColumnHeaders()};*/
+}
+
+#copyResultToClipboard {
+ enabled:{stepModel.isValid()};
}
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUIHandler.java
=====================================
@@ -26,7 +26,9 @@ import fr.ird.observe.client.ObserveSwingTechnicalException;
import fr.ird.observe.client.db.ObserveSwingDataSource;
import fr.ird.observe.client.ui.admin.AdminStep;
import fr.ird.observe.client.ui.admin.AdminTabUIHandler;
+import fr.ird.observe.client.ui.admin.AdminTabUIInitializer;
import fr.ird.observe.client.ui.admin.config.ConfigUI;
+import fr.ird.observe.client.ui.admin.report.actions.CopyResultToClipboard;
import fr.ird.observe.client.ui.util.UIHelper;
import fr.ird.observe.client.ui.util.UIHelperSupport;
import fr.ird.observe.dto.ObserveModelType;
@@ -61,7 +63,6 @@ import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Font;
import java.awt.event.ItemEvent;
-import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -87,26 +88,21 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
@Override
public void afterInit(ReportUI ui) {
+ new AdminTabUIInitializer<>(ui).initUI();
super.afterInit(ui);
- if (log.isDebugEnabled()) {
- log.debug(" specialized for [" + ui.getStep() + "] for main ui " + parentUI.getClass().getName() + "@" + System.identityHashCode(this.ui));
- }
+ log.debug(String.format(" specialized for [%s] for main ui %s@%d", ui.getStep(), parentUI.getClass().getName(), System.identityHashCode(this.ui)));
revalidateTabUI = ui::revalidate;
- UIHelper.setLayerUI(ui.getContent(), parentUI.getConfigBlockLayerUI());
+ UIHelperSupport.setLayerUI(ui.getContent(), parentUI.getConfigBlockLayerUI());
ReportModel stepModel = getStepModel();
stepModel.addPropertyChangeListener(evt -> {
-
if (ui.getModel().getModelState() == WizardState.CANCELED) {
-
// action annulée, on ne declanche plus rien
return;
}
String propertyName = evt.getPropertyName();
Object newValue = evt.getNewValue();
-
ReportModel source = (ReportModel) evt.getSource();
-
if (ReportModel.REPORTS_PROPERTY_NAME.equals(propertyName)) {
List<?> reports = (List<?>) newValue;
onReportsChanged(ui, reports);
@@ -119,8 +115,6 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
} else if (ReportModel.VALID_PROPERTY_NAME.equals(propertyName)) {
final Boolean valid = (Boolean) newValue;
SwingUtilities.invokeLater(() -> onValidChanged(source, valid != null && valid));
-
-
}
});
@@ -130,14 +124,12 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
if (value == null) {
-
// on affiche une message de sélection de report
value = t("observe.message.select.report");
}
return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
}
}
-
);
// ajout du renderer sur le tableau
@@ -180,15 +172,11 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
ui.getResultTable().setDefaultRenderer(String.class, renderer);
// initialisation de l'ui de configuration
- if (log.isInfoEnabled()) {
- log.info("Init extra configuration for " + ui.getName());
- }
+ log.info(String.format("Init extra configuration for %s", ui.getName()));
ConfigUI configUI = (ConfigUI) parentUI.getStepUI(AdminStep.CONFIG);
JAXXInitialContext tx = new JAXXInitialContext().add(configUI).add(this);
-
ReportConfigUI extraConfig = new ReportConfigUI(tx);
-
configUI.getExtraConfig().add(extraConfig);
}
@@ -199,11 +187,7 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
}
void updateSelectedReportFromEvent(ItemEvent event) {
-
if (event.getStateChange() == ItemEvent.SELECTED) {
- if (log.isInfoEnabled()) {
- log.info("Item selected!");
- }
JComboBox source = (JComboBox) event.getSource();
updateSelectedReport((Report) source.getSelectedItem());
}
@@ -212,11 +196,8 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
void updateSelectedReport(Report report) {
ui.getModel().setBusy(true);
try {
- if (log.isInfoEnabled()) {
- log.info("New selected report : " + report);
- }
+ log.info(String.format("New selected report : %s", report));
getStepModel().setSelectedReport(report);
-
} finally {
ui.getModel().setBusy(false);
}
@@ -232,64 +213,24 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
private void updateVariable(JComboBox combo, Object value) {
String variableName = (String) combo.getClientProperty(VARIABLE_NAME);
if (variableName == null) {
- throw new IllegalStateException(
- "No 'variableName' clientProperty on " + combo);
+ throw new IllegalStateException("No 'variableName' clientProperty on " + combo);
}
- log.info("Set variable [" + variableName + "] to value " + value);
+ log.info(String.format("Set variable [%s] to value %s", variableName, value));
getStepModel().addVariable(variableName, value);
}
- void chooseReportFile() {
- ReportModel model = ui.getModel().getReportModel();
- File f = UIHelper.chooseFile(
- ui,
- t("observe.title.choose.reportFile"),
- t("observe.action.choose.reportFile"),
- model.getReportFile(),
- "^.+\\.properties$",
- t("observe.action.choose.reportFile.description"));
- model.setReportFile(f);
- }
-
- void copyReportToClipBoard(Report report,
- ResultTableModel model,
- boolean copyRowHeaders,
- boolean copyColumnHeaders) {
- if (report == null) {
-
- // pas de report sélectionné, rien à faire
- return;
- }
-
- if (log.isDebugEnabled()) {
- log.debug("Will copy result of report " + report.getName());
- log.debug("Result dimension : [" + model.getRowCount() + "," +
- model.getColumnCount() + "]");
- }
- String content = model.getClipbordContent(copyRowHeaders, copyColumnHeaders);
- UIHelper.copyToClipBoard(content);
- }
-
private void onReportsChanged(ReportUI tabUI, List<?> newValue) {
-
- if (log.isDebugEnabled()) {
- log.debug("New reports : " + newValue);
- }
-
+ log.debug("New reports : " + newValue);
// on ajoute toujours une premiere valeur null (pour ne rien selectionne)
newValue.add(0, null);
-
// on charge le nouveau modèle dans la liste déroulante
- UIHelper.fillComboBox(tabUI.getReportSelector(), newValue, null);
+ UIHelperSupport.fillComboBox(tabUI.getReportSelector(), newValue, null);
}
@SuppressWarnings({"unchecked"})
private void onSelectedReportChanged(ReportUI tabUI, ReportModel model, Report report) {
-
log.info("New selected report [" + report + "]");
-
ui.getModel().setBusy(true);
-
try {
// on regénère l'ui de configuration des variables
JPanel variablesPanel = tabUI.getReportVariableSelectorPanel();
@@ -303,30 +244,22 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
model.getResultModel().clear();
if (report != null) {
-
try {
-
ObserveSwingDataSource dataSource = ui.getModel().getConfigModel().getLocalSourceModel().getSafeSource(true);
-
ReportService reportService = dataSource.getReportService();
-
report = reportService.populateVariables(report, ui.getModel().getSelectDataModel().getSelectedTripIds());
-
} catch (Exception e) {
throw new ObserveSwingTechnicalException("unable to populate report : " + report.getName(), e);
}
if (useVariables) {
-
// on construit les ui pour chaqsue variable
for (ReportVariable variable : report.getVariables()) {
String variableName = variable.getName();
- // String value = variables.get(variableName);
Set values = variable.getValues();
List<Object> universe = new ArrayList<>(values);
-
- Decorator decorator;
log.info("Variable type: " + variable.getType());
+ Decorator decorator;
Class type;
if (ReferentialDto.class.isAssignableFrom(variable.getType()) && !universe.isEmpty()) {
type = DtoModelHelper.fromReferentialDto(variable.getType()).toReferenceType();
@@ -340,7 +273,6 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
}
log.info("Variable real type: " + type);
BeanFilterableComboBox combo = UIHelperSupport.newBeanFilterableComboBox(type, (JXPathDecorator) decorator, universe);
-
combo.setShowReset(true);
JPanel p = new JPanel(new BorderLayout());
p.add(new JLabel(t(I18nDecoratorHelper.getTypeI18nKey(variable.getType()))), BorderLayout.WEST);
@@ -349,20 +281,14 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
JComboBox jComboBox = combo.getCombobox();
jComboBox.putClientProperty(VARIABLE_NAME, variableName);
jComboBox.addItemListener(e -> {
-
JComboBox comboBox = (JComboBox) e.getSource();
-
if (e.getStateChange() == ItemEvent.DESELECTED) {
-
- // ne rien faire de l'évènement de déselection
- // sauf si le modèle devient vide
-
+ // ne rien faire de l'évènement de déselection sauf si le modèle devient vide
if (comboBox.getSelectedItem() == null) {
updateVariable(comboBox, null);
}
return;
}
-
Object o = e.getItem();
updateVariable(comboBox, o);
});
@@ -371,51 +297,35 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
// on revalide la disposition de l'onglet
SwingUtilities.invokeLater(revalidateTabUI);
-
Map<String, Object> variables = model.getVariables();
updateValidState(report, variables);
}
} finally {
-
ui.getModel().setBusy(false);
-
}
}
private void onVariablesChanges(ReportModel model, Map<String, Object> variables) {
-
Report report = model.getSelectedReport();
if (report != null) {
-
updateValidState(report, variables);
}
}
private void onValidChanged(ReportModel model, boolean valid) {
-
- if (log.isInfoEnabled()) {
- log.info("valid state changed to " + valid);
- }
-
+ log.info("valid state changed to " + valid);
if (!valid) {
// calcul des données et contruction du tableau
model.getResultModel().clear();
return;
}
-
ui.getModel().setBusy(true);
-
try {
-
Report report = model.getSelectedReport();
-
ImmutableSet<String> tripIds = ui.getModel().getSelectDataModel().getSelectedTripIds();
DataDtoReference trip = ui.getModel().getSelectDataModel().getSelectedTrip();
-
log.info(String.format("Build result for report [%s] on %s", report.getName(), trip));
-
Map<String, Object> variables = model.getVariables();
-
for (ReportVariable variable : report.getVariables()) {
Object value = variables.get(variable.getName());
variable.setSelectedValue(value);
@@ -429,11 +339,8 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
}
ReportService reportService = dataSource.getReportService();
-
DataMatrix data = reportService.executeReport(report, tripIds);
-
timeLog.log(startTime, "execute", report.getName());
-
log.info("Result to display:\n" + data.getClipboardContent(true, true, false, '\t'));
// calcul des données et contruction du tableau
@@ -441,10 +348,10 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
// mise a jour du clipboard automatique si requis
if (model.isAutoCopyToClipboard()) {
- copyReportToClipBoard(report,
- model.getResultModel(),
- model.isCopyRowHeaders(),
- model.isCopyColumnHeaders());
+ CopyResultToClipboard.copyReportToClipBoard(report,
+ model.getResultModel(),
+ model.isCopyRowHeaders(),
+ model.isCopyColumnHeaders());
}
} catch (Exception e) {
UIHelper.handlingError("Could not obtain report data", e);
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/ChooseFileReport.java
=====================================
@@ -0,0 +1,56 @@
+package fr.ird.observe.client.ui.admin.report.actions;
+
+/*-
+ * #%L
+ * ObServe :: Client core
+ * %%
+ * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU 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 Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ird.observe.client.ui.ObserveKeyStrokesSupport;
+import fr.ird.observe.client.ui.admin.report.ReportConfigUI;
+import fr.ird.observe.client.ui.admin.report.ReportModel;
+import fr.ird.observe.client.ui.util.UIHelper;
+import org.nuiton.jaxx.runtime.swing.action.JComponentActionSupport;
+
+import java.awt.event.ActionEvent;
+import java.io.File;
+
+import static io.ultreia.java4all.i18n.I18n.t;
+
+public class ChooseFileReport extends JComponentActionSupport<ReportConfigUI> {
+
+ public ChooseFileReport() {
+ super("", "", "fileChooser", ObserveKeyStrokesSupport.KEY_STROKE_STORAGE_DO_CHOOSE_FILE);
+ }
+
+ @Override
+ protected void doActionPerformed(ActionEvent e, ReportConfigUI ui) {
+ ReportModel model = ui.getModel().getReportModel();
+ File f = UIHelper.chooseFile(
+ ui,
+ t("observe.title.choose.reportFile"),
+ t("observe.action.choose.reportFile"),
+ model.getReportFile(),
+ "^.+\\.properties$",
+ t("observe.action.choose.reportFile.description"));
+ if (f != null) {
+ model.setReportFile(f);
+ }
+ }
+}
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/CopyResultToClipboard.java
=====================================
@@ -0,0 +1,66 @@
+package fr.ird.observe.client.ui.admin.report.actions;
+
+/*-
+ * #%L
+ * ObServe :: Client core
+ * %%
+ * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU 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 Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ird.observe.client.ui.admin.actions.AdminTabUIActionSupport;
+import fr.ird.observe.client.ui.admin.report.ReportModel;
+import fr.ird.observe.client.ui.admin.report.ReportUI;
+import fr.ird.observe.client.ui.admin.report.ResultTableModel;
+import fr.ird.observe.client.ui.util.UIHelperSupport;
+import fr.ird.observe.services.service.actions.report.Report;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.awt.event.ActionEvent;
+
+import static io.ultreia.java4all.i18n.I18n.t;
+
+public class CopyResultToClipboard extends AdminTabUIActionSupport<ReportUI> {
+
+ private static final Logger log = LogManager.getLogger(CopyResultToClipboard.class);
+
+ public CopyResultToClipboard() {
+ super(t("observe.action.copy"), t("observe.actions.synchro.copy.tip"), "report-copy", 'C');
+ }
+
+ @Override
+ protected void doActionPerformed(ActionEvent e, ReportUI ui) {
+ ReportModel stepModel = ui.getStepModel();
+ Report report = stepModel.getSelectedReport();
+ ResultTableModel model = stepModel.getResultModel();
+ copyReportToClipBoard(report, model, stepModel.isCopyRowHeaders(), stepModel.isCopyColumnHeaders());
+ }
+
+ public static void copyReportToClipBoard(Report report,
+ ResultTableModel model,
+ boolean copyRowHeaders,
+ boolean copyColumnHeaders) {
+ if (report == null) {
+ return;
+ }
+
+ log.info(String.format("Will copy result of report %s - result dimension : [%d,%d]", report.getName(), model.getRowCount(), model.getColumnCount()));
+ String content = model.getClipbordContent(copyRowHeaders, copyColumnHeaders);
+ UIHelperSupport.copyToClipBoard(content);
+ }
+}
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIInitializer.java
=====================================
@@ -33,6 +33,7 @@ import fr.ird.observe.client.ui.util.BeanDatePicker;
import fr.ird.observe.client.ui.util.BeanEnumEditor;
import fr.ird.observe.client.ui.util.BooleanEditor;
import fr.ird.observe.client.ui.util.UIHelper;
+import fr.ird.observe.client.ui.util.UIHelperSupport;
import fr.ird.observe.client.ui.util.tripMap.ObserveMapPane;
import fr.ird.observe.client.validation.ObserveSwingValidator;
import fr.ird.observe.dto.I18nEnumHelper;
@@ -132,9 +133,6 @@ public class ContentUIInitializer<UI extends ContentUI> {
public static final String SUB_TABBED_PANE = "subTabbedPane";
private static final String CLIENT_PROPERTY_NOT_BLOCKING = "notBlocking";
- private static final String CLIENT_PROPERTY_SKIP_BINDING_TO_BEAN = "skipBindingToBean";
- private static final String CLIENT_PROPERTY_SKIP_BINDING_FROM_BEAN = "skipBindingFromBean";
-
private static final Logger log = LogManager.getLogger(ContentUIInitializer.class);
protected final UI ui;
@@ -365,7 +363,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
editor.getModel().addPropertyChangeListener("format", e -> ((EditableContentUI<?>) ui).getValidator().doValidate());
if (editor.getBean() != null) {
- if (isBindingFromBean(editor)) {
+ if (UIHelperSupport.isBindingFromBean(editor)) {
editor.getModel().addPropertyChangeListener(propertyName, e -> {
Float oldValue = editor.getModel().getTemperature();
Float newValue = (Float) e.getNewValue();
@@ -382,7 +380,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
editor.setProperty(editor.getName());
}
if (editor.getBean() != null) {
- if (isBindingFromBean(editor)) {
+ if (UIHelperSupport.isBindingFromBean(editor)) {
editor.getModel().addPropertyChangeListener(editor.getProperty(), e -> {
String oldValue = editor.getText();
String newValue = (String) e.getNewValue();
@@ -400,7 +398,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
}
if (editor.getBean() != null) {
- if (isBindingFromBean(editor)) {
+ if (UIHelperSupport.isBindingFromBean(editor)) {
editor.getModel().addPropertyChangeListener(editor.getProperty(), e -> {
String oldValue = editor.getText();
String newValue = (String) e.getNewValue();
@@ -418,7 +416,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
}
if (editor.getBean() != null) {
- if (isBindingFromBean(editor)) {
+ if (UIHelperSupport.isBindingFromBean(editor)) {
editor.getModel().addPropertyChangeListener(editor.getProperty(), e -> {
String oldValue = editor.getText();
String newValue = (String) e.getNewValue();
@@ -495,7 +493,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
}
editor.init();
if (editor.getBean() != null) {
- if (isBindingFromBean(editor)) {
+ if (UIHelperSupport.isBindingFromBean(editor)) {
((JavaBean) editor.getBean()).addPropertyChangeListener(config.getProperty(), e -> {
Number oldValue = editor.getModel().getNumberValue();
Number newValue = (Number) e.getNewValue();
@@ -523,7 +521,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
JavaBean bean = (JavaBean) editor.getBean();
String property = editor.getProperty();
if (bean != null) {
- if (isBindingFromBean(editor)) {
+ if (UIHelperSupport.isBindingFromBean(editor)) {
bean.addPropertyChangeListener(property, e -> {
Object oldValue = editor.getSelectedItem();
Object newValue = e.getNewValue();
@@ -573,7 +571,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
JavaBean bean = (JavaBean) editor.getModel().getBean();
String property = editor.getModel().getProperty();
if (bean != null) {
- if (isBindingFromBean(editor)) {
+ if (UIHelperSupport.isBindingFromBean(editor)) {
bean.addPropertyChangeListener(property, e -> {
Collection oldValue = editor.getModel().getSelected();
Collection newValue = (Collection) e.getNewValue();
@@ -606,7 +604,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
JavaBean bean = (JavaBean) editor.getModel().getBean();
String property = editor.getModel().getPropertyTime();
if (bean != null) {
- if (isBindingFromBean(editor)) {
+ if (UIHelperSupport.isBindingFromBean(editor)) {
bean.addPropertyChangeListener(property, e -> {
Date oldValue = editor.getModel().getTime();
Date newValue = (Date) e.getNewValue();
@@ -658,7 +656,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
JavaBean bean = (JavaBean) editor.getModel().getBean();
String property = editor.getModel().getPropertyDate();
if (bean != null) {
- if (isBindingFromBean(editor)) {
+ if (UIHelperSupport.isBindingFromBean(editor)) {
bean.addPropertyChangeListener(property, e -> {
Date oldValue = editor.getModel().getDate();
Date newValue = (Date) e.getNewValue();
@@ -693,7 +691,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
JavaBean bean = (JavaBean) editor.getModel().getBean();
if (bean != null) {
- if (isBindingFromBean(editor)) {
+ if (UIHelperSupport.isBindingFromBean(editor)) {
bean.addPropertyChangeListener(editor.getModel().getPropertyLatitude(), e -> {
Float oldValue = editor.getModel().getLatitude();
Float newValue = (Float) e.getNewValue();
@@ -755,7 +753,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
if (StringUtils.isEmpty(propertyName)) {
editor.setProperty(editor.getName());
}
- editor.init(isBindingFromBean(editor), isBindingToBean(editor));
+ editor.init(UIHelperSupport.isBindingFromBean(editor), UIHelperSupport.isBindingToBean(editor));
}
protected void init(BeanCheckBox editor) {
@@ -764,7 +762,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
if (StringUtils.isEmpty(propertyName)) {
editor.setProperty(editor.getName());
}
- editor.init(isBindingFromBean(editor), isBindingToBean(editor));
+ editor.init(UIHelperSupport.isBindingFromBean(editor), UIHelperSupport.isBindingToBean(editor));
}
protected <B extends Enum<B>> void init(BeanEnumEditor<B> editor) {
@@ -773,7 +771,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
if (StringUtils.isEmpty(propertyName)) {
editor.setProperty(editor.getName());
}
- editor.init(isBindingFromBean(editor), isBindingToBean(editor));
+ editor.init(UIHelperSupport.isBindingFromBean(editor), UIHelperSupport.isBindingToBean(editor));
ImmutableMap.Builder<B, String> labelsBuilder = ImmutableMap.builder();
for (B e : EnumSet.allOf(editor.getType())) {
@@ -791,7 +789,7 @@ public class ContentUIInitializer<UI extends ContentUI> {
if (StringUtils.isEmpty(propertyName)) {
editor.setProperty(editor.getName());
}
- editor.init(isBindingFromBean(editor), isBindingToBean(editor));
+ editor.init(UIHelperSupport.isBindingFromBean(editor), UIHelperSupport.isBindingToBean(editor));
editor.setLocale(ObserveSwingApplicationContextSupport.get().getConfig().getLocale());
JFormattedTextField formattedTextField = editor.getEditor();
formattedTextField.setEditable(true);
@@ -840,16 +838,6 @@ public class ContentUIInitializer<UI extends ContentUI> {
log.debug("init table editor " + editor.getName());
}
- private boolean isBindingToBean(JComponent editor) {
- Boolean skip = (Boolean) editor.getClientProperty(CLIENT_PROPERTY_SKIP_BINDING_TO_BEAN);
- return skip == null || !skip;
- }
-
- private boolean isBindingFromBean(JComponent editor) {
- Boolean skip = (Boolean) editor.getClientProperty(CLIENT_PROPERTY_SKIP_BINDING_FROM_BEAN);
- return skip == null || !skip;
- }
-
private boolean isAutoSelectOnFocus(JComponent comp) {
Boolean selectOnFocus = (Boolean) comp.getClientProperty("selectOnFocus");
return BooleanUtils.isTrue(selectOnFocus);
=====================================
client-db/src/main/java/fr/ird/observe/client/ui/util/UIHelperSupport.java
=====================================
@@ -76,6 +76,8 @@ public class UIHelperSupport extends SwingUtil {
public static final PropertyChangeListener LOG_PROPERTY_CHANGE_LISTENER = new LogPropertyChanged();
static private final Logger log = LogManager.getLogger(UIHelperSupport.class);
+ private static final String CLIENT_PROPERTY_SKIP_BINDING_TO_BEAN = "skipBindingToBean";
+ private static final String CLIENT_PROPERTY_SKIP_BINDING_FROM_BEAN = "skipBindingFromBean";
/**
* Choisir un fichier via un sélecteur graphique de fichiers.
@@ -357,6 +359,16 @@ public class UIHelperSupport extends SwingUtil {
return new JAXXInitialContext().add(model).add(ui);
}
+ public static boolean isBindingToBean(JComponent editor) {
+ Boolean skip = (Boolean) editor.getClientProperty(CLIENT_PROPERTY_SKIP_BINDING_TO_BEAN);
+ return skip == null || !skip;
+ }
+
+ public static boolean isBindingFromBean(JComponent editor) {
+ Boolean skip = (Boolean) editor.getClientProperty(CLIENT_PROPERTY_SKIP_BINDING_FROM_BEAN);
+ return skip == null || !skip;
+ }
+
public static class LogPropertyChanged implements PropertyChangeListener {
@Override
public void propertyChange(PropertyChangeEvent evt) {
=====================================
observe-i18n/src/main/i18n/translations/observe_en_GB.properties
=====================================
@@ -33,8 +33,6 @@ observe.action.about.tip=About ObServe...
observe.action.admin.cancel=Cancel wizard
observe.action.admin.close=Close wizard
observe.action.apply=Apply
-observe.action.auto.copy.to.clipboard=Automatic copy in clipboard
-observe.action.auto.copy.to.clipboard.tip=Copy automaticly in clipboard with report result
observe.action.back.to.list=Back to list
observe.action.back.to.list.tip=Go back to the list
observe.action.cancel=Cancel
@@ -84,10 +82,6 @@ observe.action.connexions=Manage connections
observe.action.connexions.tip=Manage connection profiles
observe.action.continue=Continue
observe.action.copy=Copy
-observe.action.copy.column.headers=Copy column headers
-observe.action.copy.column.headers.tip=Add in result column headers
-observe.action.copy.row.headers=Copy row header
-observe.action.copy.row.headers.tip=Add in result row headers
observe.action.copy.to.clipBoard=Copy in clipboard
observe.action.copyFloatingObjectPartToLeft=Copy values from leaving to arriving
observe.action.copyFloatingObjectPartToLeft.tip=Copy values from leaving to arriving
@@ -236,18 +230,6 @@ observe.actions.operation.message.running=Operation <%1$s> is running...
observe.actions.operation.message.successed=operation <%1$> is done.
observe.actions.operations=operations
observe.actions.report=Report
-observe.actions.report.config=Report configuration
-observe.actions.report.copy.options=Copy into clipboard options
-observe.actions.report.description=Generate reports
-observe.actions.report.model.type=Model type to use
-observe.actions.report.report.description=Description of selected report
-observe.actions.report.result=Results
-observe.actions.report.select=Select report
-observe.actions.report.select.file=File of reports definitions
-observe.actions.report.select.file.tip=Choose file of reports definitions
-observe.actions.report.title=Help to generat reports
-observe.actions.report.title.tip=Help to generate reports
-observe.actions.report.variables=Variables configuration
observe.actions.saveLocal=Save local database
observe.actions.saveLocal.description=Save modifcations on local database
observe.actions.synchro.cancel.tip=Cancel
@@ -369,6 +351,24 @@ observe.actions.validate.validator.message.header=Message
observe.actions.validate.validator.message.header.tip=Message
observe.actions.validate.validator.scope.header=...
observe.actions.validate.validator.scope.header.tip=Type of message
+observe.admin.report.auto.copy.to.clipboard=Automatic copy in clipboard
+observe.admin.report.auto.copy.to.clipboard.tip=Copy automaticly in clipboard with report result
+observe.admin.report.config=Report configuration
+observe.admin.report.copy.column.headers=Copy column headers
+observe.admin.report.copy.column.headers.tip=Add in result column headers
+observe.admin.report.copy.options=Copy into clipboard options
+observe.admin.report.copy.row.headers=Copy row header
+observe.admin.report.copy.row.headers.tip=Add in result row headers
+observe.admin.report.description=Generate reports
+observe.admin.report.model.type=Model type to use
+observe.admin.report.report.description=Description of selected report
+observe.admin.report.result=Results
+observe.admin.report.select=Select report
+observe.admin.report.select.file=File of reports definitions
+observe.admin.report.select.file.tip=Choose file of reports definitions
+observe.admin.report.title=Help to generat reports
+observe.admin.report.title.tip=Help to generate reports
+observe.admin.report.variables=Variables configuration
observe.admin.resume.no.operation.done=No operation done.
observe.admin.resume.operation.canceled=operation canceled
observe.admin.resume.operation.done=operation done
=====================================
observe-i18n/src/main/i18n/translations/observe_es_ES.properties
=====================================
@@ -33,8 +33,6 @@ observe.action.about.tip=A cerca de ObServe...
observe.action.admin.cancel=Anular el asintente
observe.action.admin.close=Cerrar el asistente
observe.action.apply=Aplicar
-observe.action.auto.copy.to.clipboard=Copia automatica al portapapeles
-observe.action.auto.copy.to.clipboard.tip=Puesta a punto automáticamente el contenido del portapapeles con los resultados
observe.action.back.to.list=Volver a la lista
observe.action.back.to.list.tip=Volver a la lista de datos
observe.action.cancel=Cancelar
@@ -84,10 +82,6 @@ observe.action.connexions=Gérer les connexions \#TODO
observe.action.connexions.tip=Gérer les profiles de connexion \#TODO
observe.action.continue=Continuar
observe.action.copy=Copiar en el portapeles
-observe.action.copy.column.headers=Copiar los encabezados de columnas
-observe.action.copy.column.headers.tip=Añadir al resultado las cabeceras de columna
-observe.action.copy.row.headers=Copiar las cabeceras de linea
-observe.action.copy.row.headers.tip=Añadir al resultado las cabeceras de linea (ej. la primera columna)
observe.action.copy.to.clipBoard=Copiar el contenido en el portapapeles
observe.action.copyFloatingObjectPartToLeft=Copy values from leaving to arriving \#TODO
observe.action.copyFloatingObjectPartToLeft.tip=Copy values from leaving to arriving \#TODO
@@ -236,18 +230,6 @@ observe.actions.operation.message.running=La operación < %1$s > se está ejecut
observe.actions.operation.message.successed=La operación < %1$s > se terminó.
observe.actions.operations=Operaciones a realizar
observe.actions.report=Cuadros de síntesis
-observe.actions.report.config=Configuración de los informes
-observe.actions.report.copy.options=Opciones de copia en el portapapeles
-observe.actions.report.description=Generar los cuadros de síntesis del informe de fin del embarque
-observe.actions.report.model.type=Tipo de modelo a utilizar
-observe.actions.report.report.description=Descripción del informe seleccionado
-observe.actions.report.result=Resultados del informe
-observe.actions.report.select=Selección del informe
-observe.actions.report.select.file=Archivo de definición de informes
-observe.actions.report.select.file.tip=Elegir el archivo de definición de informes
-observe.actions.report.title=Ayuda a la generación de informes
-observe.actions.report.title.tip=Ayuda a la generación del informe de fin del embarque
-observe.actions.report.variables=Configuración de variables
observe.actions.saveLocal=Copia de seguridad de la base local
observe.actions.saveLocal.description=Guardar las modificationes realizadas en la base locale
observe.actions.synchro.cancel.tip=Cancelar
@@ -369,6 +351,24 @@ observe.actions.validate.validator.message.header=Mensaje
observe.actions.validate.validator.message.header.tip=El texto del mensaje
observe.actions.validate.validator.scope.header=...
observe.actions.validate.validator.scope.header.tip=El tipo del mensaje
+observe.admin.report.auto.copy.to.clipboard=Copia automatica al portapapeles
+observe.admin.report.auto.copy.to.clipboard.tip=Puesta a punto automáticamente el contenido del portapapeles con los resultados
+observe.admin.report.config=Configuración de los informes
+observe.admin.report.copy.column.headers=Copiar los encabezados de columnas
+observe.admin.report.copy.column.headers.tip=Añadir al resultado las cabeceras de columna
+observe.admin.report.copy.options=Opciones de copia en el portapapeles
+observe.admin.report.copy.row.headers=Copiar las cabeceras de linea
+observe.admin.report.copy.row.headers.tip=Añadir al resultado las cabeceras de linea (ej. la primera columna)
+observe.admin.report.description=Generar los cuadros de síntesis del informe de fin del embarque
+observe.admin.report.model.type=Tipo de modelo a utilizar
+observe.admin.report.report.description=Descripción del informe seleccionado
+observe.admin.report.result=Resultados del informe
+observe.admin.report.select=Selección del informe
+observe.admin.report.select.file=Archivo de definición de informes
+observe.admin.report.select.file.tip=Elegir el archivo de definición de informes
+observe.admin.report.title=Ayuda a la generación de informes
+observe.admin.report.title.tip=Ayuda a la generación del informe de fin del embarque
+observe.admin.report.variables=Configuración de variables
observe.admin.resume.no.operation.done=Ninguna operación realizada
observe.admin.resume.operation.canceled=operación cancelada
observe.admin.resume.operation.done=operacion realizada
=====================================
observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
=====================================
@@ -33,8 +33,6 @@ observe.action.about.tip=À propos d'ObServe...
observe.action.admin.cancel=Annulation de l'assistant
observe.action.admin.close=Fermeture de l'assistant
observe.action.apply=Appliquer
-observe.action.auto.copy.to.clipboard=Copie automatique dans le presse-papier
-observe.action.auto.copy.to.clipboard.tip=Mettre à jour automatiquement le contenu du presse-papier avec les résultats
observe.action.back.to.list=Retour à la liste
observe.action.back.to.list.tip=Retour à la liste des données
observe.action.cancel=Annuler
@@ -84,10 +82,6 @@ observe.action.connexions=Gérer les connexions
observe.action.connexions.tip=Gérer les profiles de connexion
observe.action.continue=Continuer
observe.action.copy=Copier dans le presse-papier
-observe.action.copy.column.headers=Copier les entêtes de colonne
-observe.action.copy.column.headers.tip=Ajoute dans le résultat les entêtes de colonne (i.e la première ligne)
-observe.action.copy.row.headers=Copier les entêtes de ligne
-observe.action.copy.row.headers.tip=Ajoute dans le résultat les entêtes de ligne (i.e la première colonne)
observe.action.copy.to.clipBoard=Copier le contenu dans le presse-papier
observe.action.copyFloatingObjectPartToLeft=Recopier les valeurs du départ vers l'arrivée
observe.action.copyFloatingObjectPartToLeft.tip=Recopier les valeurs du départ vers l'arrivée
@@ -236,18 +230,6 @@ observe.actions.operation.message.running=L'opération < %1$s > est en cours d'e
observe.actions.operation.message.successed=L'opération < %1$s > est terminée.
observe.actions.operations=Opérations à effectuer
observe.actions.report=Tableaux de synthèse
-observe.actions.report.config=Configuration des reports
-observe.actions.report.copy.options=Options de copie dans le presse-papier
-observe.actions.report.description=Générer les tableaux de synthèse du rapport de fin d'embarquement
-observe.actions.report.model.type=Type de modèle à utiliser
-observe.actions.report.report.description=Description du rapport sélectionné
-observe.actions.report.result=Résultats du rapport
-observe.actions.report.select=Sélection du rapport
-observe.actions.report.select.file=Fichier de définition de reports
-observe.actions.report.select.file.tip=Choisir le fichier de définition des reports
-observe.actions.report.title=Aide à la génération de rapport
-observe.actions.report.title.tip=Aide à la génération du rapport de fin d'embarquement
-observe.actions.report.variables=Configuration des variables
observe.actions.saveLocal=Sauvegarde de la base locale
observe.actions.saveLocal.description=Sauvegarder les modifications effectuées vers la base locale
observe.actions.synchro.cancel.tip=Annuler
@@ -369,6 +351,24 @@ observe.actions.validate.validator.message.header=Message
observe.actions.validate.validator.message.header.tip=Le texte du message
observe.actions.validate.validator.scope.header=...
observe.actions.validate.validator.scope.header.tip=Le type de message
+observe.admin.report.auto.copy.to.clipboard=Copie automatique dans le presse-papier
+observe.admin.report.auto.copy.to.clipboard.tip=Mettre à jour automatiquement le contenu du presse-papier avec les résultats
+observe.admin.report.config=Configuration des reports
+observe.admin.report.copy.column.headers=Copier les entêtes de colonne
+observe.admin.report.copy.column.headers.tip=Ajoute dans le résultat les entêtes de colonne (i.e la première ligne)
+observe.admin.report.copy.options=Options de copie dans le presse-papier
+observe.admin.report.copy.row.headers=Copier les entêtes de ligne
+observe.admin.report.copy.row.headers.tip=Ajoute dans le résultat les entêtes de ligne (i.e la première colonne)
+observe.admin.report.description=Générer les tableaux de synthèse du rapport de fin d'embarquement
+observe.admin.report.model.type=Type de modèle à utiliser
+observe.admin.report.report.description=Description du rapport sélectionné
+observe.admin.report.result=Résultats du rapport
+observe.admin.report.select=Sélection du rapport
+observe.admin.report.select.file=Fichier de définition de reports
+observe.admin.report.select.file.tip=Choisir le fichier de définition des reports
+observe.admin.report.title=Aide à la génération de rapport
+observe.admin.report.title.tip=Aide à la génération du rapport de fin d'embarquement
+observe.admin.report.variables=Configuration des variables
observe.admin.resume.no.operation.done=Aucune opération réalisée.
observe.admin.resume.operation.canceled=opération annulée
observe.admin.resume.operation.done=opération réussie
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/ebe457ca303b922f53224288b3a…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/ebe457ca303b922f53224288b3a…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] [V8 ou V9] Passer l'heure de fin de coulissage en optionnel - Closes #1385
by Tony CHEMIT 24 Sep '19
by Tony CHEMIT 24 Sep '19
24 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
a2480e4a by tchemit at 2019-09-24T14:13:28Z
[V8 ou V9] Passer l'heure de fin de coulissage en optionnel - Closes #1385
- - - - -
7 changed files:
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/SetUI.jcss
- observe-i18n/src/main/i18n/translations/observe_en_GB.properties
- observe-i18n/src/main/i18n/translations/observe_es_ES.properties
- observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
- validation/src/main/i18n/getters/validation-messages.getter
- validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SetDto-create-error-validation.xml
- validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SetDto-update-error-validation.xml
Changes:
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/SetUI.jcss
=====================================
@@ -27,6 +27,7 @@
#endPursingTimeStamp {
propertyDayDate: {SetDto.PROPERTY_END_PURSING_DATE};
propertyTimeDate: {SetDto.PROPERTY_END_PURSING_TIME};
+ showReset:true;
}
#endSetTimeStamp {
=====================================
observe-i18n/src/main/i18n/translations/observe_en_GB.properties
=====================================
@@ -3244,6 +3244,7 @@ observe.validation.set.endDate.after.endPursingDate=End date must be fater pursi
observe.validation.set.endPursingDate.after.date=End pursing date must be after observation date.
observe.validation.set.endPursingTimeStamp.after.startTime=Pursing time must be after starting time.
observe.validation.set.endSetTimeStamp.after.endPursingTimeStamp=End time must be after end pursing time.
+observe.validation.set.endSetTimeStamp.after.startTime=End time must be after start time.
observe.validation.set.null.currentDirection=Current direction is not filled.
observe.validation.set.required.comment.for.reasonForNullSet=A comment is required for the selected reason for null set.
observe.validation.set.size.supportVesselName=Support vessel name size can't exceed %1 characters.
=====================================
observe-i18n/src/main/i18n/translations/observe_es_ES.properties
=====================================
@@ -3244,6 +3244,7 @@ observe.validation.set.endDate.after.endPursingDate=El día de fin debe ser supe
observe.validation.set.endPursingDate.after.date=El día de final de recogida de la jareta debe ser superior o igual a la día de observación.
observe.validation.set.endPursingTimeStamp.after.startTime=La hora final de recogida de la jareta debe ser superior o igual a la hora de comienzo.
observe.validation.set.endSetTimeStamp.after.endPursingTimeStamp=La hora de fin debe ser superior o igual a la hora de fin de recogida de la jareta.
+observe.validation.set.endSetTimeStamp.after.startTime=End time must be after start time. \#TODO
observe.validation.set.null.currentDirection=Dirección actual no introducida.
observe.validation.set.required.comment.for.reasonForNullSet=Es necesario un comentario para la causa de lance nulo seleccionado.
observe.validation.set.size.supportVesselName=El count del supply debe tener una longitud inferior a %1$s caracteres.
=====================================
observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
=====================================
@@ -3244,6 +3244,7 @@ observe.validation.set.endDate.after.endPursingDate=La date de fin doit être su
observe.validation.set.endPursingDate.after.date=La date de fin de coulissage doit être supérieure ou égal à la date du jour d'observation.
observe.validation.set.endPursingTimeStamp.after.startTime=L'heure de fin de coulissage doit être supérieure ou égal à l'heure de début.
observe.validation.set.endSetTimeStamp.after.endPursingTimeStamp=L'heure de fin doit être supérieure ou égal à l'heure de fin de coulissage.
+observe.validation.set.endSetTimeStamp.after.startTime=L'heure de fin doit être supérieure ou égal à l'heure de de début.
observe.validation.set.null.currentDirection=Direction courant non saisie.
observe.validation.set.required.comment.for.reasonForNullSet=Un commentaire est requis pour la cause coup nul sélectionnée.
observe.validation.set.size.supportVesselName=Le nom supply doit avoir une taille inférieure à %1$s caractères.
=====================================
validation/src/main/i18n/getters/validation-messages.getter
=====================================
@@ -66,6 +66,7 @@ observe.validation.set.endDate.after.endPursingDate
observe.validation.set.endPursingDate.after.date
observe.validation.set.endPursingTimeStamp.after.startTime
observe.validation.set.endSetTimeStamp.after.endPursingTimeStamp
+observe.validation.set.endSetTimeStamp.after.startTime
observe.validation.set.size.supportVesselName
observe.validation.set.startTime.after.time
observe.validation.setLongline.baitsComposition.uniqueKey
=====================================
validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SetDto-create-error-validation.xml
=====================================
@@ -64,6 +64,15 @@
<message>observe.validation.set.size.supportVesselName##${ints.maxLength}</message>
</field-validator>
</field>
+ <field name="startTime">
+ <!-- startTime <= activity.time -->
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[ startTime == null || ! currentPsObservationActivity.timeSecond.after(startSetTime) ]]>
+ </param>
+ <message>observe.validation.set.startTime.after.time</message>
+ </field-validator>
+ </field>
<field name="endPursingDate">
<!-- routeEntity.date <= endPursingDate -->
<field-validator type="fieldexpression" short-circuit="true">
@@ -92,10 +101,16 @@
</field-validator>
</field>
<field name="endSetTimeStamp">
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[ endSetTimeStamp == null || ! startTime.after(endSetTimeStamp) ]]>
+ </param>
+ <message>observe.validation.set.endSetTimeStamp.after.startTime</message>
+ </field-validator>
<!-- endPursingTimeStamp < = endSetTimeStamp && endSetTimeStamp - endPursingTimeStamp > 45 minutes -->
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ endSetTimeStamp == null || ! endPursingTimeStamp.after(endSetTimeStamp) ]]>
+ <![CDATA[ endSetTimeStamp == null || endPursingTimeStamp == null || ! endPursingTimeStamp.after(endSetTimeStamp) ]]>
</param>
<message>observe.validation.set.endSetTimeStamp.after.endPursingTimeStamp</message>
</field-validator>
@@ -104,7 +119,7 @@
<field-validator type="fieldexpressionwithparams">
<param name="intParams">maxLength:45</param>
<param name="expression">
- <![CDATA[ (endSetTimeStamp.time - endPursingTimeStamp.time) >= (ints.maxLength * 60000) ]]>
+ <![CDATA[ endSetTimeStamp == null || endPursingTimeStamp == null || (endSetTimeStamp.time - endPursingTimeStamp.time) >= (ints.maxLength * 60000) ]]>
</param>
<message>observe.validation.set.bound.delay##${ints.maxLength}</message>
</field-validator>
=====================================
validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SetDto-update-error-validation.xml
=====================================
@@ -53,6 +53,7 @@
<message/>
</field-validator>
</field>
+
<field name="supportVesselName">
<!-- supportVesselName de ${maxLength} caractères maximum -->
<field-validator type="fieldexpressionwithparams">
@@ -91,7 +92,7 @@
</field-validator>
</field>
<field name="endSetDate">
- <!-- endDateCoulissage <= endSetDate -->
+ <!-- endPursingDate <= endSetDate -->
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
<![CDATA[ endPursingDate == null || ! endPursingDate.after(endSetDate) ]]>
@@ -100,19 +101,25 @@
</field-validator>
</field>
<field name="endSetTimeStamp">
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[ endSetTimeStamp == null || ! startTime.after(endSetTimeStamp) ]]>
+ </param>
+ <message>observe.validation.set.endSetTimeStamp.after.startTime</message>
+ </field-validator>
<!-- endPursingTimeStamp < = endSetTimeStamp && endSetTimeStamp - endPursingTimeStamp > 45 minutes -->
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ endSetTimeStamp == null || ! endPursingTimeStamp.after(endSetTimeStamp) ]]>
+ <![CDATA[ endSetTimeStamp == null || endPursingTimeStamp == null || ! endPursingTimeStamp.after(endSetTimeStamp) ]]>
</param>
<message>observe.validation.set.endSetTimeStamp.after.endPursingTimeStamp</message>
</field-validator>
- <!--verifier que la duree de la set est d'au moins 45 minutes -->
+ <!-- verifier que la duree de la set est d'au moins 45 minutes -->
<field-validator type="fieldexpressionwithparams">
<param name="intParams">maxLength:45</param>
<param name="expression">
- <![CDATA[ (endSetTimeStamp.time - endPursingTimeStamp.time) >= (ints.maxLength * 60000) ]]>
+ <![CDATA[ endSetTimeStamp == null || endPursingTimeStamp == null || (endSetTimeStamp.time - endPursingTimeStamp.time) >= (ints.maxLength * 60000) ]]>
</param>
<message>observe.validation.set.bound.delay##${ints.maxLength}</message>
</field-validator>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/a2480e4a5376d987e306af26bf3…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/a2480e4a5376d987e306af26bf3…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] [REFERENTIEL][FOB] Présentation référentiel matériaux - Closes #1344
by Tony CHEMIT 24 Sep '19
by Tony CHEMIT 24 Sep '19
24 Sep '19
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
346e933e by tchemit at 2019-09-24T13:53:59Z
[REFERENTIEL][FOB] Présentation référentiel matériaux - Closes #1344
- - - - -
3 changed files:
- dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java
- + dto/src/main/java/fr/ird/observe/dto/decoration/decorators/ObjectMaterialReferenceDecorator.java
- dto/src/main/java/fr/ird/observe/dto/decoration/decorators/ReferentialReferenceDecorator.java
Changes:
=====================================
dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java
=====================================
@@ -8,12 +8,12 @@
* it under the terms of the GNU 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 Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
@@ -97,6 +97,7 @@ import fr.ird.observe.dto.decoration.decorators.LengthWeightParameterDecorator;
import fr.ird.observe.dto.decoration.decorators.NonTargetCatchDecorator;
import fr.ird.observe.dto.decoration.decorators.NonTargetCatchReleaseDecorator;
import fr.ird.observe.dto.decoration.decorators.NonTargetLengthDecorator;
+import fr.ird.observe.dto.decoration.decorators.ObjectMaterialReferenceDecorator;
import fr.ird.observe.dto.decoration.decorators.ObjectObservedSpeciesDecorator;
import fr.ird.observe.dto.decoration.decorators.ObserveDecorator;
import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator;
@@ -209,7 +210,6 @@ import fr.ird.observe.dto.referential.seine.NonTargetCatchReleaseStatusReference
import fr.ird.observe.dto.referential.seine.NonTargetCatchReleasingTimeDto;
import fr.ird.observe.dto.referential.seine.NonTargetCatchReleasingTimeReference;
import fr.ird.observe.dto.referential.seine.ObjectMaterialDto;
-import fr.ird.observe.dto.referential.seine.ObjectMaterialReference;
import fr.ird.observe.dto.referential.seine.ObjectMaterialTypeDto;
import fr.ird.observe.dto.referential.seine.ObjectMaterialTypeReference;
import fr.ird.observe.dto.referential.seine.ObjectOperationDto;
@@ -791,7 +791,9 @@ public class DecoratorService extends DecoratorProvider {
@Override
public void initObjectMaterialDto() {
- registerDefaultReferentialAndReferentialReferenceDecorator(ObjectMaterialDto.class, ObjectMaterialReference.class, libelle);
+ registerDecorator(new ObjectMaterialReferenceDecorator());
+ registerObserveDecorator(ObjectMaterialDto.class, "${code}$s##${" + libelle + "}$s", " ");
+// registerDefaultReferentialAndReferentialReferenceDecorator(ObjectMaterialDto.class, ObjectMaterialReference.class, libelle);
}
@Override
=====================================
dto/src/main/java/fr/ird/observe/dto/decoration/decorators/ObjectMaterialReferenceDecorator.java
=====================================
@@ -0,0 +1,45 @@
+package fr.ird.observe.dto.decoration.decorators;
+
+/*-
+ * #%L
+ * ObServe :: Dto
+ * %%
+ * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU 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 Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ird.observe.dto.referential.ReferentialDto;
+import fr.ird.observe.dto.referential.seine.ObjectMaterialReference;
+import org.apache.commons.jxpath.JXPathContext;
+
+import static io.ultreia.java4all.i18n.I18n.t;
+
+public class ObjectMaterialReferenceDecorator extends ReferentialReferenceDecorator<ObjectMaterialReference> {
+
+ public ObjectMaterialReferenceDecorator() {
+ super(ObjectMaterialReference.class, "${code}$s##${label}$s");
+ }
+
+ @Override
+ protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
+ Comparable<Comparable<?>> result = super.getTokenValue(jxcontext, token);
+ if (ReferentialDto.PROPERTY_CODE.equals(token) && (result == null || (result + "").isEmpty())) {
+ result = (Comparable) t("observe.common.nocode");
+ }
+ return result;
+ }
+}
=====================================
dto/src/main/java/fr/ird/observe/dto/decoration/decorators/ReferentialReferenceDecorator.java
=====================================
@@ -55,7 +55,7 @@ public class ReferentialReferenceDecorator<R extends ReferentialDtoReference> ex
JXPathContext jxcontext = JXPathContext.newContext(data);
Comparable<Comparable<?>> key = getTokenValue(jxcontext, ReferentialDto.PROPERTY_CODE);
// on passe en 000000x comme ça si on a des nombres, ils seront bien triés
- String value = key == null ? "" : StringUtils.leftPad(key.toString(), 6, "0");
+ String value = key == null || key.equals(t("observe.common.nocode")) ? "" : StringUtils.leftPad(key.toString(), 6, "0");
valueCache.put(data, (Comparable) value);
}
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/346e933e7d8ae85d46b37601665…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/346e933e7d8ae85d46b37601665…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] [PS][V7] Contrôle sur champ cuve - Closes #1390
by Tony CHEMIT 24 Sep '19
by Tony CHEMIT 24 Sep '19
24 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
f0cb7151 by tchemit at 2019-09-24T13:22:20Z
[PS][V7] Contrôle sur champ cuve - Closes #1390
- - - - -
1 changed file:
- validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/TargetCatchDto-update-targetCatch-error-validation.xml
Changes:
=====================================
validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/TargetCatchDto-update-targetCatch-error-validation.xml
=====================================
@@ -42,7 +42,7 @@
</field-validator>
</field>
<field name="well">
- <field-validator type="mandatory" short-circuit="true">
+ <field-validator type="mandatoryString" short-circuit="true">
<message/>
</field-validator>
</field>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/f0cb71517504e49aa3fdd146eca…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/f0cb71517504e49aa3fdd146eca…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] [PS][V7] Contrôle sur champ cuve - Closes #1390
by Tony CHEMIT 24 Sep '19
by Tony CHEMIT 24 Sep '19
24 Sep '19
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
5d715a6d by tchemit at 2019-09-24T13:19:34Z
[PS][V7] Contrôle sur champ cuve - Closes #1390
- - - - -
1 changed file:
- validation/src/main/resources/fr/ird/observe/dto/data/seine/TargetCatchDto-update-targetCatch-error-validation.xml
Changes:
=====================================
validation/src/main/resources/fr/ird/observe/dto/data/seine/TargetCatchDto-update-targetCatch-error-validation.xml
=====================================
@@ -42,7 +42,7 @@
</field-validator>
</field>
<field name="well">
- <field-validator type="mandatory" short-circuit="true">
+ <field-validator type="mandatoryString" short-circuit="true">
<message/>
</field-validator>
</field>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/5d715a6d95f4ce14bc6d2be1f64…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/5d715a6d95f4ce14bc6d2be1f64…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 9 commits: update changelog [skip ci]
by Tony CHEMIT 24 Sep '19
by Tony CHEMIT 24 Sep '19
24 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
0463703d by tchemit at 2019-09-24T08:55:26Z
update changelog [skip ci]
- - - - -
bbd691c0 by tchemit at 2019-09-24T09:52:30Z
Impossible de lancer l'opération d'apparairment d'activités LL - Closes #1391
- - - - -
1b7aee96 by tchemit at 2019-09-24T10:34:49Z
Labels non traduits sur l'écran de validation - Closes #1393
- - - - -
bc8aec63 by tchemit at 2019-09-24T10:51:30Z
Répertoire des rapports à générer disparait si on annule le changement du répertoire - Closes #1392
- - - - -
4ddf1c3c by tchemit at 2019-09-24T11:02:12Z
Erreur lors de la sélection des référentiels dans l'écran de validation - Closes #1394
- - - - -
81aaee4e by tchemit at 2019-09-24T11:18:14Z
Rapport LL ne fonctionne pas - Closes #1396
- - - - -
c0053bf5 by tchemit at 2019-09-24T12:08:54Z
Make validate action works again
- - - - -
d719c1c7 by tchemit at 2019-09-24T12:42:57Z
on ne voit pas le nom des variables dans l'écran de tableaux de synthèses -Closes #1395
- - - - -
eee79993 by tchemit at 2019-09-24T12:43:37Z
Stash again in progress client
- - - - -
12 changed files:
- + .mvn/gitlab-cache/milestones/1005038-artifacts.json
- .mvn/gitlab-cache/milestones/532657-issues.json → .mvn/gitlab-cache/milestones/1005038-issues.json
- .mvn/gitlab-cache/milestones/893806.json → .mvn/gitlab-cache/milestones/1005038.json
- + .mvn/gitlab-cache/milestones/1005048-artifacts.json
- .mvn/gitlab-cache/milestones/761666-issues.json → .mvn/gitlab-cache/milestones/1005048-issues.json
- .mvn/gitlab-cache/milestones/898778.json → .mvn/gitlab-cache/milestones/1005048.json
- − .mvn/gitlab-cache/milestones/364752-issues.json
- − .mvn/gitlab-cache/milestones/364752.json
- − .mvn/gitlab-cache/milestones/364753-issues.json
- − .mvn/gitlab-cache/milestones/364753.json
- .mvn/gitlab-cache/milestones/370039-issues.json
- − .mvn/gitlab-cache/milestones/528849-artifacts.json
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/79264f9dc6a9b6cd24c9dd1e3d…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/79264f9dc6a9b6cd24c9dd1e3d…
You're receiving this email because of your account on gitlab.com.
1
0
17 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
79264f9d by tchemit at 2019-09-17T12:17:15Z
update changelog [skip ci]
- - - - -
12 changed files:
- + .mvn/gitlab-cache/milestones/1005038-artifacts.json
- .mvn/gitlab-cache/milestones/532657-issues.json → .mvn/gitlab-cache/milestones/1005038-issues.json
- .mvn/gitlab-cache/milestones/893806.json → .mvn/gitlab-cache/milestones/1005038.json
- + .mvn/gitlab-cache/milestones/1005048-artifacts.json
- .mvn/gitlab-cache/milestones/761666-issues.json → .mvn/gitlab-cache/milestones/1005048-issues.json
- .mvn/gitlab-cache/milestones/898778.json → .mvn/gitlab-cache/milestones/1005048.json
- − .mvn/gitlab-cache/milestones/364752-issues.json
- − .mvn/gitlab-cache/milestones/364752.json
- − .mvn/gitlab-cache/milestones/364753-issues.json
- − .mvn/gitlab-cache/milestones/364753.json
- .mvn/gitlab-cache/milestones/370039-issues.json
- − .mvn/gitlab-cache/milestones/528849-artifacts.json
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/79264f9dc6a9b6cd24c9dd1e3d1…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/79264f9dc6a9b6cd24c9dd1e3d1…
You're receiving this email because of your account on gitlab.com.
1
0
16 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
9dff93cf by tchemit at 2019-09-16T17:09:16Z
update changelog [skip ci]
- - - - -
3 changed files:
- .mvn/gitlab-cache/milestones/958566-artifacts.json
- .mvn/gitlab-cache/milestones/958566.json
- CHANGELOG.md
Changes:
=====================================
.mvn/gitlab-cache/milestones/958566-artifacts.json
=====================================
@@ -1,12 +1,12 @@
[
{
"name": "Application",
- "filename": "observe-7.1.1.zip",
- "url": "http://repo1.maven.org/maven2/fr/ird/observe/observe/7.1.1/observe-7.1.1.zip"
+ "filename": "observe-7.2.0.zip",
+ "url": "http://repo1.maven.org/maven2/fr/ird/observe/observe/7.2.0/observe-7.2.0.zip"
},
{
"name": "Serveur",
- "filename": "observe-7.1.1.war",
- "url": "http://repo1.maven.org/maven2/fr/ird/observe/observe/7.1.1/observe-7.1.1.war"
+ "filename": "observe-7.2.0.war",
+ "url": "http://repo1.maven.org/maven2/fr/ird/observe/observe/7.2.0/observe-7.2.0.war"
}
]
\ No newline at end of file
=====================================
.mvn/gitlab-cache/milestones/958566.json
=====================================
@@ -3,7 +3,7 @@
"iid": 148,
"projectId": 2722779,
"groupId": 0,
- "title": "7.1.1",
+ "title": "7.2.0",
"dueDate": "Sep 12, 2019 2:00:00 AM",
"startDate": "Aug 2, 2019 2:00:00 AM",
"state": "closed"
=====================================
CHANGELOG.md
=====================================
@@ -1,7 +1,7 @@
# ObServe changelog
* Author [Tony Chemit](mailto:dev@tchemit.fr)
- * Last generated at 2019-09-12 12:50.
+ * Last generated at 2019-09-16 19:04.
## Version [8.0-RC-4](https://gitlab.com/ultreiaio/ird-observe/milestones/146)
@@ -222,13 +222,13 @@ Premier lot du contrat IRD-2018-01-V8
* [[Evolution 922]](https://gitlab.com/ultreiaio/ird-observe/issues/922) **Ajoute le référentiel observe_common.DataQuality sur les données existantes** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
* [[Evolution 950]](https://gitlab.com/ultreiaio/ird-observe/issues/950) **Renommage de la classe seine.WeightCategory en seine.WeightCategorySeine** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
-## Version [7.1.1](https://gitlab.com/ultreiaio/ird-observe/milestones/148)
+## Version [7.2.0](https://gitlab.com/ultreiaio/ird-observe/milestones/148)
**Closed at 2019-09-12.**
### Download
-* [Application (observe-7.1.1.zip)](http://repo1.maven.org/maven2/fr/ird/observe/observe/7.…)
-* [Serveur (observe-7.1.1.war)](http://repo1.maven.org/maven2/fr/ird/observe/observe/7.…)
+* [Application (observe-7.2.0.zip)](http://repo1.maven.org/maven2/fr/ird/observe/observe/7.…)
+* [Serveur (observe-7.2.0.war)](http://repo1.maven.org/maven2/fr/ird/observe/observe/7.…)
### Issues
* [[Anomalie 1373]](https://gitlab.com/ultreiaio/ird-observe/issues/1373) **[LL] Une marée provoque un dépassement mémoire et/ou a un souci de commentaires trop longs** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/9dff93cfd8d95321b2680c93f62…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/9dff93cfd8d95321b2680c93f62…
You're receiving this email because of your account on gitlab.com.
1
0