Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: a7ca15f7 by Tony Chemit at 2024-03-18T08:26:56+01:00 Lors d'exports massifs de données, le token expire rapidement et fait échouer la suite du processus - Closes #2839 - - - - - c1eb65e2 by Tony Chemit at 2024-03-18T09:23:24+01:00 Amélioration de la taille des colonnes du tableau des résultats d'un rapport - Closes #2853 - - - - - 2 changed files: - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Prepare.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java Changes: ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Prepare.java ===================================== @@ -58,7 +58,7 @@ public class Prepare extends ExportUIActionSupport { addAdminWorker(ui.getPrepare().getToolTipText(), this::doPrepareAction0); } - private WizardState doPrepareAction0() throws Exception { + private WizardState doPrepareAction0() { AdminUIModel model = ui.getModel(); List<CopyDataTask> data = CopyDataTask.of(TaskSide.FROM_LEFT, model.getSelectDataModel().getSelectionDataModel()).collect(Collectors.toList()); @@ -70,10 +70,6 @@ public class Prepare extends ExportUIActionSupport { ConfigModel configModel = model.getConfigModel(); ObserveSwingDataSource targetSource = configModel.getRightSourceModel().getSafeSourceNotOpened(); - if (!targetSource.canWriteData()) { - throw new IllegalStateException(String.format("Can't export if target source (%s) has no data rights", targetSource.getLabel())); - } - ObserveSwingDataSource incomingSource = configModel.getLeftSourceModel().getSafeSourceNotOpened(); stepModel.setData(data); ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java ===================================== @@ -57,7 +57,11 @@ import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingUtilities; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableColumn; +import javax.swing.table.TableColumnModel; import java.awt.BorderLayout; +import java.awt.Component; import java.awt.event.ItemEvent; import java.beans.PropertyChangeListener; import java.io.File; @@ -508,6 +512,9 @@ public class ReportModel extends AdminActionModel { if (reportColumnRenderersParameters != null) { reportColumnRenderersParameters.consumeColumnRenderersSwing(resultTable); } + resizeColumnWidth(resultTable,-1); + + } catch (Exception e) { clearResult(ui); throw e; @@ -516,6 +523,30 @@ public class ReportModel extends AdminActionModel { } } + public static void resizeColumnWidth(JXTable table, int maxWidth) { + final TableColumnModel columnModel = table.getColumnModel(); + for (int column = 0; column < table.getColumnCount(); column++) { + // Account for header size + TableColumn tableColumn = table.getColumnModel().getColumn(column); + TableCellRenderer renderer = tableColumn.getCellRenderer(); + if (renderer==null) { + renderer = table.getTableHeader().getDefaultRenderer(); + } + Component component = renderer.getTableCellRendererComponent(table, tableColumn.getHeaderValue(), false, false, -1, column); + double width = component.getPreferredSize().width; + for (int row = 0; row < table.getRowCount(); row++) { + renderer = table.getCellRenderer(row, column); + Component comp = table.prepareRenderer(renderer, row, column); + width = Math.max(comp.getPreferredSize().width + 1, width); + } + if (maxWidth>0 && width > maxWidth) { + width = maxWidth; + } + tableColumn.setPreferredWidth((int) width); + log.debug("Column {} - width (min/max/pref): {} {}/{}/{}", tableColumn.getModelIndex(), tableColumn.getWidth(), tableColumn.getMinWidth(), tableColumn.getMaxWidth(), tableColumn.getPreferredWidth()); + } + } + private void clearResult(ReportUI ui) { getResultModel().clear(); ui.getConfigurationPane().setTitle(null); View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c375649ae2eaba140213ff6ed... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c375649ae2eaba140213ff6ed... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT (@tchemit)