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. |