|
From: <de...@us...> - 2015-10-09 23:02:48
|
Revision: 9185
http://sourceforge.net/p/fudaa/svn/9185
Author: deniger
Date: 2015-10-09 23:02:45 +0000 (Fri, 09 Oct 2015)
Log Message:
-----------
CRUE-644
Modified Paths:
--------------
trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaReportExecutorDelegate.java
trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaReportExecutorDelegateTemporal.java
trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/common/CourbesUiController.java
trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/longitudinal/ReportLongitudinalTimeChooser.java
trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/temporal/ReportTemporalCourbesUiResController.java
trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/temporal/ReportTemporalTopComponent.java
trunk/soft/fudaa-crue/ui-report/src/main/resources/org/fudaa/fudaa/crue/report/Bundle.properties
trunk/soft/fudaa-crue/ui-report/src/main/resources/org/fudaa/fudaa/crue/report/data/Bundle.properties
trunk/soft/fudaa-crue/ui-report/src/main/resources/org/fudaa/fudaa/crue/report/export/Bundle.properties
Added Paths:
-----------
trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/report/export/
trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/report/export/ReportExportTemporal.java
trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/data/ReportVariableChooser.java
trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/export/ReportCourbeExportActionAbstract.java
trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/export/ReportTemporalExportAction.java
Modified: trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaReportExecutorDelegate.java
===================================================================
--- trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaReportExecutorDelegate.java 2015-10-09 19:53:32 UTC (rev 9184)
+++ trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaReportExecutorDelegate.java 2015-10-09 23:02:45 UTC (rev 9185)
@@ -13,7 +13,6 @@
import org.fudaa.dodico.crue.common.BusinessMessages;
import org.fudaa.dodico.crue.config.ccm.CrueConfigMetierConstants;
import org.fudaa.dodico.crue.config.ccm.DecimalFormatEpsilonEnum;
-import org.fudaa.dodico.crue.config.ccm.ItemVariable;
import org.fudaa.dodico.crue.config.ccm.PropertyNature;
import org.fudaa.dodico.crue.metier.emh.ResultatTimeKey;
import org.fudaa.dodico.crue.projet.report.ReportViewLineInfoAndType;
Modified: trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaReportExecutorDelegateTemporal.java
===================================================================
--- trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaReportExecutorDelegateTemporal.java 2015-10-09 19:53:32 UTC (rev 9184)
+++ trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaReportExecutorDelegateTemporal.java 2015-10-09 23:02:45 UTC (rev 9185)
@@ -10,11 +10,8 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.lang.StringUtils;
import org.fudaa.ctulu.CtuluLog;
import org.fudaa.dodico.crue.common.BusinessMessages;
-import org.fudaa.dodico.crue.config.ccm.DecimalFormatEpsilonEnum;
-import org.fudaa.dodico.crue.config.ccm.PropertyNature;
import org.fudaa.dodico.crue.metier.emh.ResultatTimeKey;
import org.fudaa.dodico.crue.projet.report.ReportViewLineInfoAndType;
import org.fudaa.dodico.crue.projet.report.data.ReportRunKey;
Added: trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/report/export/ReportExportTemporal.java
===================================================================
--- trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/report/export/ReportExportTemporal.java (rev 0)
+++ trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/report/export/ReportExportTemporal.java 2015-10-09 23:02:45 UTC (rev 9185)
@@ -0,0 +1,89 @@
+/*
+ GPL 2
+ */
+package org.fudaa.dodico.crue.projet.report.export;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.fudaa.ctulu.CtuluLibFile;
+import org.fudaa.ctulu.CtuluLibString;
+import org.fudaa.ctulu.CtuluResource;
+import org.fudaa.ctulu.table.CtuluTableXlsxWriter;
+import org.fudaa.dodico.crue.common.BusinessMessages;
+import org.fudaa.dodico.crue.metier.emh.ResultatTimeKey;
+import org.fudaa.dodico.crue.projet.report.ReportResultProviderServiceContrat;
+import org.fudaa.dodico.crue.projet.report.data.ReportRunVariableEmhKey;
+import org.fudaa.dodico.crue.projet.report.persist.ReportTemporalConfig;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class ReportExportTemporal {
+
+ private final ReportTemporalConfig config;
+ private final ReportResultProviderServiceContrat resultService;
+ private final String name;
+
+ public ReportExportTemporal(ReportTemporalConfig config, ReportResultProviderServiceContrat resultService, String name) {
+ this.config = config;
+ this.resultService = resultService;
+ this.name = name;
+ }
+
+ public void export(List<ReportRunVariableEmhKey> variablesToExport, List<ResultatTimeKey> times, File target) {
+ Workbook wb = new XSSFWorkbook();
+ writeInBook(wb, variablesToExport, times);
+ writeToFile(wb, target);
+
+ }
+
+ protected void writeInBook(Workbook wb, List<ReportRunVariableEmhKey> variablesToExport, List<ResultatTimeKey> times) {
+ String sheetName = name;
+ if (sheetName == null) {
+ sheetName = CtuluResource.CTULU.getString("Feuille {0}", CtuluLibString.getString(1));
+ }
+ Sheet currentSheet = wb.createSheet(sheetName);
+ //Titres
+ int rowIdx = 0;
+ Row row = currentSheet.createRow(rowIdx++);
+ int idx = 0;
+ row.createCell(idx++).setCellValue(BusinessMessages.getString("Export.Calcul.ColumnName"));
+ row.createCell(idx++).setCellValue(BusinessMessages.getString("Export.Temps.ColumnName"));
+ for (ReportRunVariableEmhKey variable : variablesToExport) {
+ row.createCell(idx++).setCellValue(variable.getRunVariableKey().getVariable().getVariableDisplayName() + "-" + variable.getEmhName());
+ }
+ for (ResultatTimeKey time : times) {
+ idx = 0;
+ row = currentSheet.createRow(rowIdx++);
+ row.createCell(idx++).setCellValue(time.getNomCalcul());
+ row.createCell(idx++).setCellValue(time.getTemps());
+ for (ReportRunVariableEmhKey variable : variablesToExport) {
+ Double val = resultService.getValue(time, variable.getRunVariableKey(), variable.getEmhName());
+ row.createCell(idx++).setCellValue(val.doubleValue());
+ }
+
+ }
+ }
+
+ protected void writeToFile(Workbook wb, File target) {
+ FileOutputStream fileOut = null;
+ try {
+ fileOut = new FileOutputStream(target);
+ wb.write(fileOut);
+ fileOut.close();
+ } catch (IOException ex) {
+ Logger.getLogger(CtuluTableXlsxWriter.class.getName()).log(Level.SEVERE, null, ex);
+ } finally {
+ CtuluLibFile.close(fileOut);
+ }
+ }
+}
Modified: trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/common/CourbesUiController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/common/CourbesUiController.java 2015-10-09 19:53:32 UTC (rev 9184)
+++ trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/common/CourbesUiController.java 2015-10-09 23:02:45 UTC (rev 9185)
@@ -45,90 +45,90 @@
* @author Frederic Deniger
*/
public class CourbesUiController implements CtuluImageProducer {
-
+
protected EGFillePanel panel;
protected EGTableGraphePanel tableGraphePanel;
protected EGAxeHorizontal axeH;
protected JPanel toolbar;
protected boolean useVariableForAxeH;
protected List<EbliActionInterface> editCourbeActions = new ArrayList<EbliActionInterface>();
-
+
protected void configureTablePanel() {
tableGraphePanel.getTable().setModel(createTableModel());
tableGraphePanel.setPreferredSize(new Dimension(300, 600));
new LoiTimeExportDecorator(tableGraphePanel.getTable());
}
-
+
public boolean isUseVariableForAxeH() {
return useVariableForAxeH;
}
-
+
public void setUseVariableForAxeH(boolean useVariableForAxeH) {
this.useVariableForAxeH = useVariableForAxeH;
}
-
+
public void installComboxSelector() {
tableGraphePanel.getTitleLabel().setVisible(false);
tableGraphePanel.remove(tableGraphePanel.getTitleLabel());
ComboboxCourbeSelector cb = new ComboboxCourbeSelector(getGraphe());
tableGraphePanel.add(cb.getCb(), BorderLayout.NORTH);
-
+
}
-
+
public EGGrapheSimpleModel getEGGrapheSimpleModel() {
return (EGGrapheSimpleModel) getGraphe().getModel();
}
-
+
public EGTableGraphePanel getTableGraphePanel() {
return tableGraphePanel;
}
-
+
public EGAxeHorizontal getAxeX() {
return getEGGrapheSimpleModel().getAxeX();
}
-
+
public List<EGAxeVertical> getAxesY() {
return getGraphe().getAllAxeVertical();
}
-
+
@Override
public BufferedImage produceImage(final Map _params) {
return panel.produceImage(_params);
-
+
}
-
+
@Override
public BufferedImage produceImage(int _w, int _h, Map _params) {
return panel.produceImage(_w, _h, _params);
}
-
+
@Override
public Dimension getDefaultImageDimension() {
return panel.getDefaultImageDimension();
}
-
+
public void addExportImagesToToolbar() {
toolbar.add(new ExportImageAction(panel).buildToolButton(EbliComponentFactory.INSTANCE));
toolbar.add(new ExportImageToClipboardAction(panel).buildToolButton(EbliComponentFactory.INSTANCE));
}
-
+
public JPanel getToolbar() {
return toolbar;
}
-
+
public EGFillePanel getPanel() {
return panel;
}
-
+
public EGGraphe getGraphe() {
return panel.getGraphe();
}
-
+
public void removeEditActions() {
tableGraphePanel.removeEditButtonsButCopy();
removeActions("MOVE_POINT", "SIMPLIFY");
}
-
+
public void removeActions(String... actionCommands) {
if (toolbar != null) {
Set<String> command = new HashSet<String>(Arrays.asList(actionCommands));
@@ -140,12 +140,12 @@
toolbar.remove(component);
}
}
-
+
}
}
-
+
}
-
+
public List<EbliActionInterface> getActions(String... command) {
EbliActionInterface[] specificActions = panel.getSpecificActions();
List<EbliActionInterface> res = new ArrayList<EbliActionInterface>();
@@ -161,11 +161,11 @@
}
return res;
}
-
+
public List<EbliActionInterface> getEditActions() {
return getActions("CONFIGURE", "CONFIGURE_REPERE");
}
-
+
public CourbesUiController() {
final EGGrapheSimpleModel grapheModel = new LoiGrapheSimpleModel();
axeH = new EGAxeHorizontal();
@@ -212,21 +212,25 @@
popupGraphe.setEditEnable(true);
popupGraphe.install(panel.getGraphe(), tableGraphePanel.getTable(), CtuluUIForNetbeans.DEFAULT);
}
+
+ public void addToolbarAction(EbliActionInterface action) {
+ toolbar.add(action.buildToolButton(EbliComponentFactory.INSTANCE), toolbar.getComponentCount() - 2);
+ }
protected boolean editable;
-
+
public void setEditable(boolean b) {
editable = b;
tableGraphePanel.updateState();
for (EbliActionInterface ebliActionInterface : editCourbeActions) {
ebliActionInterface.setEnabled(b);
-
+
}
}
-
+
protected AbstractTableModel createTableModel() {
return new EGTableGraphePanel.SpecTableModel(tableGraphePanel);
}
-
+
public void configureAxeH(final PropertyNature natureAbscisse, boolean usePresentation) {
if (natureAbscisse == null) {
return;
@@ -237,7 +241,7 @@
axeH.setUnite(natureAbscisse.getUnite());
installFormatter(natureAbscisse, axeH, usePresentation);
}
-
+
public void configureAxeH(final ItemVariable varAbscisse, boolean usePresentation) {
if (varAbscisse == null) {
return;
@@ -246,15 +250,15 @@
axeH.setTitre(varAbscisse.getDisplayNom());
axeH.setUserObject(varAbscisse);
}
-
+
public EGAxeVertical findAxe(final ItemVariable varOrdonnee) {
if (varOrdonnee == null) {
return null;
}
return findAxe(varOrdonnee.getNature());
-
+
}
-
+
public EGAxeVertical findAxe(final PropertyNature nature) {
if (nature == null) {
return null;
@@ -267,15 +271,15 @@
}
return null;
}
-
+
public EGAxeVertical createAxeVertical(final ItemVariable varOrdonnee, boolean usePresentation) {
if (varOrdonnee == null) {
return null;
}
return createAxeVertical(varOrdonnee.getNature(), usePresentation);
-
+
}
-
+
public EGAxeVertical createAxeVertical(final PropertyNature nature, boolean usePresentation) {
EGAxeVertical axeV = null;
if (nature != null) {
@@ -289,7 +293,7 @@
installFormatter(nature, axeV, usePresentation);
return axeV;
}
-
+
public void setAxeHSpecificFormats(CtuluNumberFormatI mainFormat, CtuluNumberFormatI detailFormat, final CtuluValueEditorI _valueEditor) {
if (getAxeX() != null) {
getAxeX().setSpecificFormat(mainFormat);
@@ -297,10 +301,10 @@
getAxeX().setValueEditor(_valueEditor);
}
}
-
+
protected void installFormatter(final PropertyNature var, EGAxe axe, boolean usePresentation) {
if (var != null) {
-
+
if (var.isEnum()) {
axe.setSpecificFormat(new EnumNumberFormatter(var));
axe.setAxisIterator(new FixedIntegerIterator(var.getItemEnumByValue().keys()));
@@ -318,7 +322,7 @@
}
axe.setUserObject(var);
}
-
+
public LoiPopupMenuReceiver createLoiPoupReceiver() {
return new LoiPopupMenuReceiver(panel);
}
@@ -338,7 +342,7 @@
configureAxeH(varAbscisse.getNature(), usePresentationFormat);
}
}
-
+
public void initAxeWithDuration(final PropertyNature var, EGAxe axe) {
final ToStringTransformerSecond toStringTransformerSecond = new ToStringTransformerSecond();
final CtuluNumberFormatDefault toSecondFormat = new CtuluNumberFormatDefault(var.getFormatter(DecimalFormatEpsilonEnum.COMPARISON));
Added: trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/data/ReportVariableChooser.java
===================================================================
--- trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/data/ReportVariableChooser.java (rev 0)
+++ trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/data/ReportVariableChooser.java 2015-10-09 23:02:45 UTC (rev 9185)
@@ -0,0 +1,97 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.crue.report.data;
+
+import com.jidesoft.swing.CheckBoxList;
+import java.awt.BorderLayout;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import javax.swing.JCheckBox;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import org.fudaa.dodico.crue.projet.report.data.ReportRunKey;
+import org.fudaa.dodico.crue.projet.report.data.ReportRunVariableEmhKey;
+import org.fudaa.dodico.crue.projet.report.data.ReportVariableKey;
+import org.fudaa.fudaa.crue.common.PerspectiveEnum;
+import org.fudaa.fudaa.crue.common.helper.CheckBoxListPopupListener;
+import org.fudaa.fudaa.crue.common.helper.DialogHelper;
+import org.fudaa.fudaa.crue.report.longitudinal.ReportLongitudinalTimeChooser;
+import org.fudaa.fudaa.crue.report.service.ReportResultProviderService;
+import org.openide.util.NbBundle;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class ReportVariableChooser {
+
+ private final List<String> choosableVariables;
+ private final Set<String> currentSelected;
+
+ public ReportVariableChooser(List<String> choosableVariables, Set<String> currentSelected) {
+ this.choosableVariables = choosableVariables;
+ this.currentSelected = currentSelected;
+ }
+
+ public List<ReportRunVariableEmhKey> getKeysForCurrentRun(ReportResultProviderService reportService, List<String> variables, List<String> emhs) {
+ List<ReportRunVariableEmhKey> res = new ArrayList<>();
+ if (variables != null) {
+ for (String variable : variables) {
+ final ReportVariableKey createVariableKey = reportService.createVariableKey(variable);
+ for (String emh : emhs) {
+ ReportRunVariableEmhKey key = new ReportRunVariableEmhKey(reportService.getReportService().getCurrentRunKey(), createVariableKey, emh);
+ res.add(key);
+ }
+ }
+ }
+ return res;
+
+ }
+
+ public List<String> choose() {
+ final CheckBoxList list = new CheckBoxList(choosableVariables.toArray());
+ for (int i = 0; i < choosableVariables.size(); i++) {
+ if (currentSelected.contains(choosableVariables.get(i))) {
+ list.addSelectionInterval(i, i);
+ }
+
+ }
+ list.setCellRenderer(new ReportVariableCellRenderer());
+ new CheckBoxListPopupListener(list);
+ JPanel pn = new JPanel(new BorderLayout(0, 5));
+ final JCheckBox selectAll = new JCheckBox(NbBundle.getMessage(ReportLongitudinalTimeChooser.class, "ChooseTime.SelectAllNone"));
+ selectAll.addItemListener(new ItemListener() {
+
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ boolean select = selectAll.isSelected();
+ if (select) {
+ list.selectAll();
+ } else {
+ list.selectNone();
+ }
+ }
+ });
+ pn.add(new JScrollPane(list));
+ pn.add(selectAll, BorderLayout.NORTH);
+ String title = org.openide.util.NbBundle.getMessage(ReportVariableChooser.class, "ReportVariableChooser.DialogTitle");
+ boolean ok = DialogHelper.showQuestionAndSaveDialogConf(title, pn, getClass());
+ if (ok) {
+ final Object[] checkBoxListSelectedValues = list.getCheckBoxListSelectedValues();
+ List<String> res = new ArrayList<>();
+ for (Object checkBoxListSelectedValue : checkBoxListSelectedValues) {
+ res.add((String) checkBoxListSelectedValue);
+ }
+ return res;
+ }
+ return Collections.emptyList();
+
+ }
+
+}
Added: trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/export/ReportCourbeExportActionAbstract.java
===================================================================
--- trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/export/ReportCourbeExportActionAbstract.java (rev 0)
+++ trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/export/ReportCourbeExportActionAbstract.java 2015-10-09 23:02:45 UTC (rev 9185)
@@ -0,0 +1,48 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.crue.report.export;
+
+import com.memoire.bu.BuResource;
+import java.io.File;
+import org.fudaa.ctulu.gui.CtuluExportTableChooseFile;
+import org.fudaa.ctulu.gui.CtuluFileChooserCsvExcel;
+import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.fudaa.crue.common.helper.CrueProgressUtils;
+import org.fudaa.fudaa.crue.common.helper.CtuluUIForNetbeans;
+import org.fudaa.fudaa.crue.common.helper.DialogHelper;
+import org.fudaa.fudaa.crue.report.AbstractReportTimeViewTopComponent;
+import org.netbeans.api.progress.ProgressRunnable;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public abstract class ReportCourbeExportActionAbstract<T extends AbstractReportTimeViewTopComponent> extends EbliActionSimple {
+
+ protected final T topComponent;
+
+ public ReportCourbeExportActionAbstract(T topComponent) {
+ super(org.openide.util.NbBundle.getMessage(ReportCourbeExportActionAbstract.class, "ExportAll.Action"), BuResource.BU.getToolIcon("exporter"),
+ "EXPORT");
+ setDefaultToolTip(org.openide.util.NbBundle.getMessage(ReportCourbeExportActionAbstract.class, "ExportAll.Tootltip"));
+ this.topComponent = topComponent;
+ }
+
+ protected File chooseTargetFile() {
+ final CtuluFileChooserCsvExcel choose = new CtuluFileChooserCsvExcel(CtuluUIForNetbeans.DEFAULT);
+ choose.removeChoosableFileFilter(choose.getFtCsv());
+ choose.removeChoosableFileFilter(choose.getFtXsl());
+ final File f = new CtuluExportTableChooseFile(choose).chooseExportFile();
+ return f;
+ }
+
+ protected void execute(ProgressRunnable<Boolean> runnable, File f) {
+ Boolean res = CrueProgressUtils.showProgressDialogAndRun(runnable, getTitle());
+ if (Boolean.TRUE.equals(res)) {
+ DialogHelper.showNotifyOperationTermine(getTitle(), org.openide.util.NbBundle.getMessage(ReportTemporalExportAction.class, "ExportEnded", f.
+ getAbsolutePath()));
+ }
+ }
+
+}
Added: trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/export/ReportTemporalExportAction.java
===================================================================
--- trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/export/ReportTemporalExportAction.java (rev 0)
+++ trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/export/ReportTemporalExportAction.java 2015-10-09 23:02:45 UTC (rev 9185)
@@ -0,0 +1,67 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.crue.report.export;
+
+import java.awt.event.ActionEvent;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import org.fudaa.dodico.crue.metier.emh.ResultatTimeKey;
+import org.fudaa.dodico.crue.projet.report.data.ReportRunContent;
+import org.fudaa.dodico.crue.projet.report.data.ReportRunVariableEmhKey;
+import org.fudaa.dodico.crue.projet.report.export.ReportExportTemporal;
+import org.fudaa.fudaa.crue.report.data.ReportVariableChooser;
+import org.fudaa.fudaa.crue.report.service.ReportResultProviderService;
+import org.fudaa.fudaa.crue.report.temporal.ReportTemporalTopComponent;
+import org.netbeans.api.progress.ProgressHandle;
+import org.netbeans.api.progress.ProgressRunnable;
+import org.openide.util.Lookup;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class ReportTemporalExportAction extends ReportCourbeExportActionAbstract<ReportTemporalTopComponent> {
+
+ public ReportTemporalExportAction(ReportTemporalTopComponent topComponent) {
+ super(topComponent);
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent _e) {
+ final List<String> choosableVariables = new ArrayList<>(Arrays.asList(topComponent.getChoosableVariables()));
+ choosableVariables.remove(null);
+ final Set<String> selectedVariables = new HashSet<>(topComponent.getReportConfig().getVariables());
+ ReportVariableChooser variableChooser = new ReportVariableChooser(choosableVariables, selectedVariables);
+ final List<String> toExport = variableChooser.choose();
+ if (!toExport.isEmpty()) {
+ final ReportResultProviderService reportResultProviderService = Lookup.getDefault().lookup(ReportResultProviderService.class);
+ final List<ResultatTimeKey> selectedTimeKeys = reportResultProviderService.getReportService().getRangeSelectedTimeKeys();
+ final List<ReportRunVariableEmhKey> variablesKeys = variableChooser.getKeysForCurrentRun(reportResultProviderService, toExport, topComponent.
+ getReportConfig().getEmhs());
+
+ final File f = chooseTargetFile();
+ if (f != null) {
+ ProgressRunnable runnable = new ProgressRunnable<Boolean>() {
+
+ @Override
+ public Boolean run(ProgressHandle handle) {
+ final ReportRunContent runCourant = reportResultProviderService.getRunCourant();
+ String currentRunName = runCourant.getScenario().getNom() + "-" + runCourant.getRun().getNom();
+ ReportExportTemporal exporter = new ReportExportTemporal(topComponent.getReportConfig(), reportResultProviderService, currentRunName);
+ exporter.export(variablesKeys, selectedTimeKeys, f);
+ return Boolean.TRUE;
+ }
+ };
+ execute(runnable, f);
+
+ }
+
+ }
+ }
+
+}
Modified: trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/longitudinal/ReportLongitudinalTimeChooser.java
===================================================================
--- trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/longitudinal/ReportLongitudinalTimeChooser.java 2015-10-09 19:53:32 UTC (rev 9184)
+++ trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/longitudinal/ReportLongitudinalTimeChooser.java 2015-10-09 23:02:45 UTC (rev 9185)
@@ -64,8 +64,7 @@
});
pn.add(new JScrollPane(list));
pn.add(selectAll, BorderLayout.NORTH);
- String title = org.openide.util.NbBundle.getMessage(ReportLongitudinalTimeChooser.class, "ChooseTime.DialogTitle",
- "vueProfilLongitudinalConfigurationPasDeTemps", PerspectiveEnum.REPORT);
+ String title = org.openide.util.NbBundle.getMessage(ReportLongitudinalTimeChooser.class, "ChooseTime.DialogTitle");
boolean ok = DialogHelper.showQuestionAndSaveDialogConf(title, pn, getClass(), "vueProfilLongitudinal_ConfigurationPasDeTemps",
PerspectiveEnum.REPORT, true);
if (ok) {
Modified: trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/temporal/ReportTemporalCourbesUiResController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/temporal/ReportTemporalCourbesUiResController.java 2015-10-09 19:53:32 UTC (rev 9184)
+++ trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/temporal/ReportTemporalCourbesUiResController.java 2015-10-09 23:02:45 UTC (rev 9185)
@@ -25,6 +25,7 @@
tableAction.setShowColumnToExport(false);
tableAction.setDisplayAll(true);
tableAction.setShowLabel(true);
+
}
@Override
Modified: trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/temporal/ReportTemporalTopComponent.java
===================================================================
--- trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/temporal/ReportTemporalTopComponent.java 2015-10-09 19:53:32 UTC (rev 9184)
+++ trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/temporal/ReportTemporalTopComponent.java 2015-10-09 23:02:45 UTC (rev 9185)
@@ -1,5 +1,6 @@
package org.fudaa.fudaa.crue.report.temporal;
+import org.fudaa.fudaa.crue.report.export.ReportTemporalExportAction;
import org.fudaa.dodico.crue.projet.report.persist.ReportTemporalConfig;
import com.memoire.bu.BuGridLayout;
import java.awt.BorderLayout;
@@ -12,6 +13,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.MissingResourceException;
import java.util.Set;
import javax.swing.JComboBox;
import javax.swing.JLabel;
@@ -113,6 +115,7 @@
@Override
protected CourbesUiResController createCourbesUiController() {
CourbesUiResController res = new ReportTemporalCourbesUiResController();
+ res.addToolbarAction(new ReportTemporalExportAction(this));
return res;
}
@@ -181,15 +184,7 @@
}
public void chooseVariable() {
- EnumCatEMH usedCat = ChooseEMHByTypeHelper.getUsedCat(reportService, content.getEmhs());
- if (CollectionUtils.isNotEmpty(content.getEmhs())
- && usedCat == null) {
- DialogHelper.showWarn(org.openide.util.NbBundle.getMessage(ChooseEMHByTypeHelper.class, "UsedEMHNotFound.warning"));
- }
- OrdResExtractor extractor = new OrdResExtractor(getScenario().getOrdResScenario());
- List<String> selectedVariables = extractor.getSelectableVariables(usedCat, reportFormuleService.getVariablesKeys());
- selectedVariables.add(0, null);
- String[] selectedVariablesArray = (String[]) selectedVariables.toArray(new String[selectedVariables.size()]);
+ String[] selectedVariablesArray = getChoosableVariables();
ReportVariableCellRenderer cellRenderer = new ReportVariableCellRenderer();
ByRunSelector selector = new ByRunSelector();
@@ -231,7 +226,7 @@
}
}
}
-
+
boolean accepted = DialogHelper.showQuestionOkCancel(NbBundle.getMessage(ReportTemporalTopComponent.class, "ChooseVariable.ButtonName"), pn);
if (accepted) {
content.getVariables().clear();
@@ -273,6 +268,19 @@
}
}
+ public String[] getChoosableVariables() throws MissingResourceException {
+ EnumCatEMH usedCat = ChooseEMHByTypeHelper.getUsedCat(reportService, content.getEmhs());
+ if (CollectionUtils.isNotEmpty(content.getEmhs())
+ && usedCat == null) {
+ DialogHelper.showWarn(org.openide.util.NbBundle.getMessage(ChooseEMHByTypeHelper.class, "UsedEMHNotFound.warning"));
+ }
+ OrdResExtractor extractor = new OrdResExtractor(getScenario().getOrdResScenario());
+ List<String> selectedVariables = extractor.getSelectableVariables(usedCat, reportFormuleService.getVariablesKeys());
+ selectedVariables.add(0, null);
+ String[] selectedVariablesArray = (String[]) selectedVariables.toArray(new String[selectedVariables.size()]);
+ return selectedVariablesArray;
+ }
+
@Override
protected void saveCourbeConfig(EGCourbePersist persitUiConfig, ReportKeyContract key) {
if (ReportVerticalTimeKey.isTimeKey(key)) {
Modified: trunk/soft/fudaa-crue/ui-report/src/main/resources/org/fudaa/fudaa/crue/report/Bundle.properties
===================================================================
--- trunk/soft/fudaa-crue/ui-report/src/main/resources/org/fudaa/fudaa/crue/report/Bundle.properties 2015-10-09 19:53:32 UTC (rev 9184)
+++ trunk/soft/fudaa-crue/ui-report/src/main/resources/org/fudaa/fudaa/crue/report/Bundle.properties 2015-10-09 23:02:45 UTC (rev 9185)
@@ -51,3 +51,4 @@
formuleCyclesDetected.error=<html><body>La vue n''a pas \u00e9t\u00e9 valid\u00e9e. Des cycles ont \u00e9t\u00e9 d\u00e9tect\u00e9s pour:<ul>{0}</ul></body></html>
button.export.name=Exporter
viewManager.columnName=Rapports
+
Modified: trunk/soft/fudaa-crue/ui-report/src/main/resources/org/fudaa/fudaa/crue/report/data/Bundle.properties
===================================================================
--- trunk/soft/fudaa-crue/ui-report/src/main/resources/org/fudaa/fudaa/crue/report/data/Bundle.properties 2015-10-09 19:53:32 UTC (rev 9184)
+++ trunk/soft/fudaa-crue/ui-report/src/main/resources/org/fudaa/fudaa/crue/report/data/Bundle.properties 2015-10-09 23:02:45 UTC (rev 9185)
@@ -1 +1,2 @@
-Variable.NoSelection=Vide
\ No newline at end of file
+Variable.NoSelection=Vide
+ReportVariableChooser.DialogTitle=Choisir les variables
Modified: trunk/soft/fudaa-crue/ui-report/src/main/resources/org/fudaa/fudaa/crue/report/export/Bundle.properties
===================================================================
--- trunk/soft/fudaa-crue/ui-report/src/main/resources/org/fudaa/fudaa/crue/report/export/Bundle.properties 2015-10-09 19:53:32 UTC (rev 9184)
+++ trunk/soft/fudaa-crue/ui-report/src/main/resources/org/fudaa/fudaa/crue/report/export/Bundle.properties 2015-10-09 23:02:45 UTC (rev 9185)
@@ -12,4 +12,7 @@
Export.OperationFinish=Exportation termin\u00e9e: {0}
ReportExportNodeAction.DisplayName=Exporter
Export.ChooseFile.LabelName=Fichier CSV:
-DefaultExportType=type export: action exporter perspective Rapports
\ No newline at end of file
+DefaultExportType=type export: action exporter perspective Rapports
+ExportAll.Action=Exporter\n
+ExportAll.Tootltip=Export en masse
+ExportEnded=Export termin\u00e9 vers le fichier {0}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|