import fr.gouv.finances.dgfip.xemelios.web2.gwt.shared.SearchInitParametersDTO;
import fr.gouv.finances.dgfip.xemelios.web2.gwt.shared.SearchParameterDTO;
import fr.gouv.finances.dgfip.xemelios.web2.gwt.shared.SearchResultDTO;
+import fr.gouv.finances.dgfip.xemelios.web2.gwt.shared.SearchResultDTO.ColumnDefinition;
import fr.gouv.finances.dgfip.xemelios.web2.gwt.shared.StoredSearchDTO;
import fr.gouv.finances.dgfip.xemelios.web2.gwt.shared.XemWidgetDTO;
SearchWidget.this.initParameters = result;
SearchWidget.searchWidgetInstance = SearchWidget.this;
searchInitParameters = initParameters.getSearchInitParameters();
-
+
buttonsBarWidget.disableSearchPossibilities();
registerToolBarEvents();
} else {
colAndBudChooserWidget.init(collectivites, firstCollectivites);
criteriaTable.init(searchInitParameters, false);
-
- if(criteriaTable.getRowCount() < 1){
- addCritere(); //ajout du premier critere si besoin
+
+ if (criteriaTable.getRowCount() < 1) {
+ addCritere(); // ajout du premier critere si besoin
}
-
+
buttonsBarWidget.enableSearchPossibilities();
}
@Override
public void onChange(ChangeEvent evt) {
criteriaTable.init(searchInitParameters, true);
-
- if(criteriaTable.getRowCount() < 1){
- addCritere(); //ajout du premier critere si besoin
+
+ if (criteriaTable.getRowCount() < 1) {
+ addCritere(); // ajout du premier critere si besoin
}
-
+
buttonsBarWidget.enableSearchPossibilities();
}
});
buttonsBarWidget.disableSearchPossibilities();
}
}
-
-
-
+
public String getSearchSessionId() {
return this.initParameters != null ? initParameters.getSearchSessionId() : null;
}
public void onSuccess(ListResultatDTO result) {
DlgSearchParams dsp = new DlgSearchParams(SearchWidget.this, result);
+
dsp.show();
}
});
* true si c'est une première recherche, et pas un changement de page
*/
private void handleSearchResult(SearchResultDTO result, boolean firstSearch) {
- if (firstSearch) {
- while (resultTableContainer.getWidgetCount() > 0) {
- resultTableContainer.remove(0);
- }
- listDataProvider = new ListDataProvider<RowResultDTO>(result.getData());
- ListHandler<RowResultDTO> listHandler = new ListHandler<RowResultDTO>(listDataProvider.getList());
+ ListHandler<RowResultDTO> listHandler = new ListHandler<RowResultDTO>(result.getData());
+
+ if(firstSearch){
+ cleanResultTableContainer();
+
+ listDataProvider = new ListDataProvider<RowResultDTO>();
table = new CellTable<RowResultDTO>();
- table.setPageSize(listDataProvider.getList().size());
- // table.setPageSize(result.getPaginationInfo().getPageSize());
+
table.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
-
- for (SearchResultDTO.ColumnDefinition columnDef : result.getColumns()) {
- if (columnDef.isDisplay()) {
- final String id = columnDef.getId();
- final String sLibelle = columnDef.getLibelle();
- final String format = columnDef.getFormat();
-
- Column<RowResultDTO, ?> column = null;
-
- if ("integer".equals(columnDef.getDatatype())) {
- column = buildIntegerResultColumn(id, listHandler);
- column.setSortable(true);
- column.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
- } else if ("amount".equals(columnDef.getDatatype())) {
- column = buildDecimalResultColumn(id, listHandler);
- column.setSortable(true);
- column.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
- } else if ("date".equals(columnDef.getDatatype())) {
- column = buildDateResultColumn(id, format, listHandler);
- column.setSortable(true);
- } else if ("pj-list".equals(columnDef.getDatatype())) {
- column = buildSafeHtmlResultColumn(id);
- column.setSortable(false);
- } else {
- // pour tout autre type de colonne (inconnue ou non), c'est du texte
- // <=>if ("string".equals(columnDef.getDatatype()))
- column = buildTextResultColumn(id, listHandler);
- column.setSortable(true);
- }
-
- if (column != null) {
- SafeHtmlBuilder libelleBuilder = new SafeHtmlBuilder();
- libelleBuilder.appendEscaped(sLibelle);
-
- if (columnDef.isAggregate()) {
- RightClickableHeader header = new RightClickableHeader(libelleBuilder.toSafeHtml(), id, columnDef.getDatatype());
- table.addColumn(column, header);
- } else {
- table.addColumn(column, libelleBuilder.toSafeHtml());
- }
- }
- }
- }
-
table.addColumnSortHandler(listHandler);
+
resultTableContainer.add(new ScrollPanel(table));
listDataProvider.addDataDisplay(table);
-
- // Add a selection model to handle user selection.
+
final SingleSelectionModel<RowResultDTO> selectionModel = new SingleSelectionModel<RowResultDTO>();
table.setSelectionModel(selectionModel);
}
});
__selectionModel = selectionModel;
- } else {
- listDataProvider.getList().clear();
- listDataProvider.getList().addAll(result.getData());
}
-
+
+
+ table.setPageSize(result.getData().size());
+
+ buildListHeader(table, result.getColumns(), listHandler);
+
+
+ listDataProvider.getList().clear();
+ listDataProvider.getList().addAll(result.getData());
+
statusBar.getPaginationWidget().setPaginationInfo(result.getPaginationInfo());
+
if (result.getCountAll() <= 0) {
statusBar.setText(new HTML(" Aucun " + getSearchInitParameters().getImportableElementLibelle() + " trouvé").getText());
exportPossible = false;
exportPossible = true;
}
- if(listDataProvider.getList().size() > 0){
+ if (listDataProvider.getList().size() > 0) {
buttonsBarWidget.enableExport();
- }else{
+ } else {
buttonsBarWidget.disableExport();
}
-
+
endLongWait();
}
+
+ private void cleanResultTableContainer(){
+ while (resultTableContainer.getWidgetCount() > 0) {
+ resultTableContainer.remove(0);
+ }
+ }
+
+ private void buildListHeader(CellTable<RowResultDTO> table, List<ColumnDefinition> columns, ListHandler<RowResultDTO> listHandler) {
+ for (SearchResultDTO.ColumnDefinition columnDef : columns) {
+ if (columnDef.isDisplay()) {
+ final String id = columnDef.getId();
+ final String sLibelle = columnDef.getLibelle();
+ final String format = columnDef.getFormat();
+
+ Column<RowResultDTO, ?> column = null;
+
+ if ("integer".equals(columnDef.getDatatype())) {
+ column = buildIntegerResultColumn(id, listHandler);
+ column.setSortable(true);
+ column.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
+ } else if ("amount".equals(columnDef.getDatatype())) {
+ column = buildDecimalResultColumn(id, listHandler);
+ column.setSortable(true);
+ column.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
+ } else if ("date".equals(columnDef.getDatatype())) {
+ column = buildDateResultColumn(id, format, listHandler);
+ column.setSortable(true);
+ } else if ("pj-list".equals(columnDef.getDatatype())) {
+ column = buildSafeHtmlResultColumn(id);
+ column.setSortable(false);
+ } else {
+ // pour tout autre type de colonne (inconnue ou non), c'est du texte
+ // <=>if ("string".equals(columnDef.getDatatype()))
+ column = buildTextResultColumn(id, listHandler);
+ column.setSortable(true);
+ }
+
+ if (column != null) {
+ SafeHtmlBuilder libelleBuilder = new SafeHtmlBuilder();
+ libelleBuilder.appendEscaped(sLibelle);
+
+ if (columnDef.isAggregate()) {
+ RightClickableHeader header = new RightClickableHeader(libelleBuilder.toSafeHtml(), id, columnDef.getDatatype());
+ table.addColumn(column, header);
+ } else {
+ table.addColumn(column, libelleBuilder.toSafeHtml());
+ }
+ }
+ }
+ }
+ }
private final void __onRowDoubleClick() {
if (__selectionModel.getSelectedObject() != null) {
public void done(Object result) {
getTabs().getTabPanel().add(sw, "Ligne ERAR");
ArrayList<CritereTypeDTO> mandatoryCriterias = new ArrayList<CritereTypeDTO>();
- CritereTypeDTO critere = buildStringCriteria(widget.getParameter("deb-nom-crit-id").getValue(), // critere d'origine
+ CritereTypeDTO critere = buildStringCriteria(widget.getParameter("deb-nom-crit-id").getValue(), // critere d'origine
widget.getParameter("deb-nom-input-id").getValue(), // input id
row.getStringValue(widget.getParameter("deb-nom-res-id").getValue()) // inputvalue
);
}
}
-
-
private static String[] splitString(String s) {
int splitters = 0;
for (int i = 0; i < s.length(); i++) {
// DlgSelectNavigationTarget(documentId);
}
-
-
private class RightClickableHeader extends Header<SafeHtml> {
private SafeHtml header;