import com.google.gwt.user.client.ui.SplitLayoutPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.view.client.ListDataProvider;
-import com.google.gwt.view.client.SelectionChangeEvent;
import com.google.gwt.view.client.SingleSelectionModel;
import fr.gouv.finances.dgfip.xemelios.web2.gwt.client.service.ServiceLocator;
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;
private Image searchingImage;
private WorkingPanel working;
private CellTable<RowResultDTO> table;
- private ListDataProvider<RowResultDTO> listDataProvider;
- private SingleSelectionModel<RowResultDTO> __selectionModel;
private static NumberFormat __nf = null;
public SearchWidget() {
initWidget(this.mainPanel);
criteriaTable.getElement().getParentElement().setId("parentSubnav".concat(getIdMarker()));
getElement().setId("SearchWidget".concat(getIdMarker()));
- buttonsBarWidget.setEnableExport(false);
+ buttonsBarWidget.disableSearchPossibilities();
searchingImage = new Image(SearchResources.INSTANCE.getSearchingImage());
}
*/
public void init(final String documentId, final String etatId, final String elementId, final DoneListener doneListener) {
ServiceLocator.getXemeliosService().initSearchWindow(documentId, etatId, elementId, new AsyncCallback<InitParametersDTO>() {
-
public void onFailure(Throwable throwable) {
- // StringBuilder sb = new StringBuilder();
- // sb.append(throwable.getMessage()).append("\n");
- // for(StackTraceElement ste:throwable.getStackTrace()) {
- // sb.append("\t").append(ste.toString()).append("\n");
- // }
- // Window.alert(sb.toString());
ServiceLocator.getXemeliosService().getLibelleElement(documentId, etatId, elementId, new AsyncCallback<String>() {
public void onFailure(Throwable caught) {
if (caught instanceof DisconnectedException) {
Window.Location.replace(((DisconnectedException) caught).getLoginPageUrl());
} else {
- String message = "Aucun(e) " + documentId + "." + etatId + "." + elementId + " n'a été importé.";
- SafeHtmlBuilder shb = new SafeHtmlBuilder();
- shb.append(SafeHtmlUtils.fromSafeConstant(SafeHtmlUtils.htmlEscapeAllowEntities(message)));
- new DlgShowMessage(shb.toSafeHtml(), DlgShowMessage.MESSAGE_TYPE_INFO);
+ displayNoDocumentImported(documentId, etatId, elementId);
}
}
public void onSuccess(String result) {
- new DlgShowMessage(new SafeHtmlBuilder().append(SafeHtmlUtils.fromSafeConstant(SafeHtmlUtils.htmlEscapeAllowEntities("Aucun(e) " + result + " n'a été importé."))).toSafeHtml(),
- DlgShowMessage.MESSAGE_TYPE_INFO);
+ displayNoDocumentImported(result);
}
});
}
@SuppressWarnings("unchecked")
public void onSuccess(InitParametersDTO result) {
-
if (!result.hasTooMuchCollectivites() && result.getCollectivites().isEmpty()) {
- new DlgShowMessage(new SafeHtmlBuilder().append(SafeHtmlUtils.fromSafeConstant(SafeHtmlUtils.htmlEscapeAllowEntities("Aucun(e) " + documentId + "." + etatId + "." + elementId + " n'a été importé."))).toSafeHtml(),
- DlgShowMessage.MESSAGE_TYPE_INFO);
+ displayNoDocumentImported(documentId, etatId, elementId);
} else {
SearchWidget.this.initParameters = result;
- colAndBudChooserWidget.setSearchSessionId(result.getSearchSessionId());
- if (result.hasTooMuchCollectivites()) {
- colAndBudChooserWidget.init(result.getDocumentId());
- } else {
- colAndBudChooserWidget.init(result.getCollectivites(), result.getFirstCollectiviteBudgets());
- }
- colAndBudChooserWidget.addChangeHandler(new ChangeHandler() {
+ SearchWidget.searchWidgetInstance = SearchWidget.this;
+ searchInitParameters = initParameters.getSearchInitParameters();
- @Override
- public void onChange(ChangeEvent evt) {
- collectiviteOrBudgetChange();
- }
- });
- buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.ADD_CRITERE, new AddCriteriaClickListener(SearchWidget.this));
- buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.SEARCH, new ClickHandler() {
+ buttonsBarWidget.disableSearchPossibilities();
+ registerToolBarEvents();
- public void onClick(ClickEvent evt) {
- search();
- }
- });
- buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.RESET_CRITERES, new ClickHandler() {
+ initializeCollectiviteBudgetChooser(result.getSearchSessionId(), result.getDocumentId(), result.hasTooMuchCollectivites(), result.getCollectivites(), result.getFirstCollectiviteBudgets());
- public void onClick(ClickEvent evt) {
- resetCriteres();
+ Window.addCloseHandler(new CloseHandler<Window>() {
+ public void onClose(CloseEvent<Window> ce) {
+ releaseSearchSession();
}
});
- buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.OPEN_SEARCH, new ClickHandler() {
- public void onClick(ClickEvent evt) {
- openSearch();
- }
- });
- buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.SAVE_REQUEST, new ClickHandler() {
+ doneListener.done(result);
+ }
+ }
+ });
+ }
- public void onClick(ClickEvent evt) {
- saveSearch();
- }
- });
- buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.SEARCH_PARAMS, new ClickHandler() {
+ protected void displayNoDocumentImported(String libelle) {
+ String message = "Aucun(e) " + libelle + " n'a été importé.";
+ SafeHtml safeHtmlMessage = SafeHtmlUtils.fromSafeConstant(SafeHtmlUtils.htmlEscapeAllowEntities(message));
- @Override
- public void onClick(ClickEvent evt) {
- searchParams();
- }
- });
- buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.EXPORT, new ClickHandler() {
+ new DlgShowMessage(safeHtmlMessage, DlgShowMessage.MESSAGE_TYPE_INFO);
+ }
- @Override
- public void onClick(ClickEvent event) {
- exportSearchResult((Widget) event.getSource());
- }
- });
- if (SearchWidget.this.initParameters.hasRepository()) {
- buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.REPOSITORY, new ClickHandler() {
+ protected void displayNoDocumentImported(String documentId, String etatId, String elementId) {
+ String message = "Aucun(e) " + documentId + "." + etatId + "." + elementId + " n'a été importé.";
+ SafeHtml safeHtmlMessage = SafeHtmlUtils.fromSafeConstant(SafeHtmlUtils.htmlEscapeAllowEntities(message));
- public void onClick(ClickEvent evt) {
- showRepository();
- }
- });
- } else {
- buttonsBarWidget.disableRepositoryButton();
- }
- SearchWidget.searchWidgetInstance = SearchWidget.this;
- Window.addCloseHandler(new CloseHandler<Window>() {
+ new DlgShowMessage(safeHtmlMessage, DlgShowMessage.MESSAGE_TYPE_INFO);
+ }
- public void onClose(CloseEvent<Window> ce) {
- releaseSearchSession();
- }
- });
- setSearchInitParameters(initParameters.getSearchInitParameters());
- doneListener.done(result);
+ protected void initializeCollectiviteBudgetChooser(String searchSessionId, String documentId, boolean hasTooMuchCollectivites, ArrayList<LabelValueDTO> collectivites, ArrayList<LabelValueDTO> firstCollectivites) {
+ colAndBudChooserWidget.setSearchSessionId(searchSessionId);
+
+ if (hasTooMuchCollectivites) {
+ colAndBudChooserWidget.init(documentId);
+ } else {
+ colAndBudChooserWidget.init(collectivites, firstCollectivites);
+ criteriaTable.init(searchInitParameters, false);
+
+ if (criteriaTable.getRowCount() < 1) {
+ addCritere(); // ajout du premier critere si besoin
+ }
+
+ buttonsBarWidget.enableSearchPossibilities();
+ }
+
+ colAndBudChooserWidget.addChangeHandler(new ChangeHandler() {
+
+ @Override
+ public void onChange(ChangeEvent evt) {
+ criteriaTable.init(searchInitParameters, true);
+
+ if (criteriaTable.getRowCount() < 1) {
+ addCritere(); // ajout du premier critere si besoin
}
+
+ buttonsBarWidget.enableSearchPossibilities();
+ }
+ });
+ }
+
+ protected void registerToolBarEvents() {
+ buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.ADD_CRITERE, new ClickHandler() {
+
+ public void onClick(ClickEvent evt) {
+ addCritere();
+ }
+ });
+ buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.SEARCH, new ClickHandler() {
+
+ public void onClick(ClickEvent evt) {
+ search();
}
});
+ buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.RESET_CRITERES, new ClickHandler() {
+
+ public void onClick(ClickEvent evt) {
+ resetCriteres();
+ }
+ });
+ buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.OPEN_SEARCH, new ClickHandler() {
+
+ public void onClick(ClickEvent evt) {
+ openSearch();
+ }
+ });
+ buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.SAVE_REQUEST, new ClickHandler() {
+
+ public void onClick(ClickEvent evt) {
+ saveSearch();
+ }
+ });
+ buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.SEARCH_PARAMS, new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent evt) {
+ searchParams();
+ }
+ });
+ buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.EXPORT, new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ exportSearchResult((Widget) event.getSource());
+ }
+ });
+ if (SearchWidget.this.initParameters.hasRepository()) {
+ buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.REPOSITORY, new ClickHandler() {
+
+ public void onClick(ClickEvent evt) {
+ showRepository(initParameters.getDocumentId(), getCollectiviteId());
+ }
+ });
+ } else {
+ buttonsBarWidget.disableRepositoryButton();
+ }
+ }
+
+ protected void setSearchInitParameters(SearchInitParametersDTO searchInitParameters) {
+ if (colAndBudChooserWidget.getCollectiviteId() != null) {
+ buttonsBarWidget.enableSearchPossibilities();
+ this.searchInitParameters = searchInitParameters;
+
+ criteriaTable.init(getSearchInitParameters(), false);
+
+ if (getSearchInitParameters().getPluginId() == null && !getSearchInitParameters().getOptionalCritereTypes().isEmpty()) {
+ addCritere();
+ }
+
+ } else {
+ buttonsBarWidget.disableSearchPossibilities();
+ }
+ }
+
+ public String getSearchSessionId() {
+ return this.initParameters != null ? initParameters.getSearchSessionId() : null;
+ }
+
+ public String getCollectiviteId() {
+ return this.colAndBudChooserWidget.getCollectiviteId();
}
+ public String getBudgetId() {
+ return this.colAndBudChooserWidget.getBudgetId();
+ }
+
+ private SearchInitParametersDTO getSearchInitParameters() {
+ return this.searchInitParameters;
+ }
+
+ // ############################### CallBack click bouttons ###############################
+
public void addCritere() {
- this.criteriaTable.addEmptyCriterion();
+ criteriaTable.addNewCriteria();
}
public void resetCriteres() {
- setSearchInitParameters(this.initParameters.getSearchInitParameters());
+ criteriaTable.removeAllCriteres();
+ addCritere();
}
public void search() {
}
}
- /**
- * Renvoie un marker propre à l'implémentation. Cela sert à éviter d'avoir plusieurs éléments avec le même id
- *
- * @return
- */
- public String getIdMarker() {
- return "";
+ public void openSearch() {
+ final DlgChooseStoredSearch dlg = new DlgChooseStoredSearch("Ouverture d'une recherche");
+ dlg.show();
+ dlg.center();
+ ServiceLocator.getXemeliosService().getStoredSearchs(getSearchSessionId(), new AsyncCallback<List<StoredSearchDTO>>() {
+
+ public void onFailure(Throwable throwable) {
+ GWTUtils.handleRPCError(throwable);
+ }
+
+ public void onSuccess(List<StoredSearchDTO> result) {
+ dlg.setSearchItems(result);
+ dlg.addSelectListener(new DlgChooseOnePair.SelectListener() {
+
+ public void onSelect(Object selectedItem) {
+ loadSearch((StoredSearchDTO) selectedItem);
+ }
+ });
+ }
+ });
}
public void saveSearch() {
public void onSuccess(ListResultatDTO result) {
DlgSearchParams dsp = new DlgSearchParams(SearchWidget.this, result);
+
dsp.show();
}
});
}
- public void showRepository() {
- showRepository(initParameters.getDocumentId(), getCollectiviteId());
+ public void showRepository(String documentId, String collectiviteId) {
+ StringBuilder shb = new StringBuilder();
+ shb.append("<iframe width=\"100%\" height=\"100%\" id=\"rep.");
+ shb.append(documentId);
+ shb.append(".");
+ shb.append(collectiviteId);
+ shb.append("\" src=\"");
+ shb.append(GWTUtils.getContextPath());
+ shb.append("showRepository.do?docId=");
+ shb.append(documentId);
+ shb.append("&collectivite=");
+ shb.append(collectiviteId);
+ shb.append("\" onload=\"javascript:setTabTitle(this, this.contentWindow.document.title);\"/>");
+ HTML html = new HTML(shb.toString());
+ getTabs().getTabPanel().add(html, "Nomenclature");
}
protected void exportSearchResult(Widget source) {
dpp.show();
}
- static public void _configExport() {
- DlgSelectExport dlg = new DlgSelectExport();
- dlg.show();
- }
+ // ####################################################################################
- protected void _simpleExport() {
+ public void _simpleExport() {
StringBuilder sb = new StringBuilder();
sb.append(GWTUtils.getContextPath()).append("simpleExport.do?searchSessionId=").append(getSearchSessionId());
downloadUrl(sb.toString());
}
- static public void _complexExport(String searchSessionId) {
+ public void _complexExport(String searchSessionId) {
if (_isExportPossible()) {
DlgSelectExport dlg = new DlgSelectExport(searchSessionId);
dlg.show();
}
}
+ /**
+ * Renvoie un marker propre à l'implémentation. Cela sert à éviter d'avoir plusieurs éléments avec le même id
+ *
+ * @return
+ */
+ public String getIdMarker() {
+ return "";
+ }
+
+ static public void _configExport() {
+ DlgSelectExport dlg = new DlgSelectExport();
+ dlg.show();
+ }
+
private Tabs getTabs() {
Widget parent = getParent();
while (parent.getElement().getId() == null || parent.getElement().getId().length() == 0) {
return null;
}
- private void showRepository(String documentId, String collectiviteId) {
- StringBuilder shb = new StringBuilder();
- shb.append("<iframe width=\"100%\" height=\"100%\" id=\"rep.");
- shb.append(documentId);
- shb.append(".");
- shb.append(collectiviteId);
- shb.append("\" src=\"");
- shb.append(GWTUtils.getContextPath());
- shb.append("showRepository.do?docId=");
- shb.append(documentId);
- shb.append("&collectivite=");
- shb.append(collectiviteId);
- shb.append("\" onload=\"javascript:setTabTitle(this, this.contentWindow.document.title);\"/>");
- HTML html = new HTML(shb.toString());
- getTabs().getTabPanel().add(html, "Nomenclature");
- }
-
@Override
public void executeSaveRequest(List<SearchParameterDTO> parameters, String requestName, String requestId) {
if (requestId == null || requestId.length() == 0) {
}
}
- public void openSearch() {
- final DlgChooseStoredSearch dlg = new DlgChooseStoredSearch("Ouverture d'une recherche");
- dlg.show();
- dlg.center();
- ServiceLocator.getXemeliosService().getStoredSearchs(getSearchSessionId(), new AsyncCallback<List<StoredSearchDTO>>() {
-
- public void onFailure(Throwable throwable) {
- GWTUtils.handleRPCError(throwable);
- }
-
- public void onSuccess(List<StoredSearchDTO> result) {
- dlg.setSearchItems(result);
- dlg.addSelectListener(new DlgChooseOnePair.SelectListener() {
-
- public void onSelect(Object selectedItem) {
- loadSearch((StoredSearchDTO) selectedItem);
- }
- });
- }
- });
- }
-
private void loadSearch(StoredSearchDTO storedSearch) {
switch (storedSearch.getType()) {
case StoredSearchDTO.TYPE_EXPORT:
protected void displaySavedRequest(SearchInitParametersDTO params) {
criteriaTable.removeAllCriteres();
- int i = 0;
- for (CritereTypeDTO critere : params.getMandatoryCritereTypes()) {
- PostRunnable pr = new PostRunnable(Integer.toString(i)) {
- boolean alreadyRun = false;
+ int row = 0;
+ for (CritereTypeDTO critereType : params.getMandatoryCritereTypes()) {
+ criteriaTable.buildCriteriaSelectUI(row, critereType, false);
+ criteriaTable.buildCriteriaInputUI(row, critereType);
- @Override
- public void run() {
- if (!alreadyRun) {
- criteriaTable.getSelectCritereWidget(getIntValue()).setSelectedCritere((CritereTypeDTO) getAdditionalObject("critere"));
- criteriaTable.initCriteria(getIntValue(), (PostRunnable) this);
- alreadyRun = true;
- }
- }
- };
- pr.setAdditionalObject("critere", critere);
- pr.setAdditionalInt(i);
- int row = criteriaTable.addEmptyCriterion(pr);
- i++;
+ row++;
}
}
working.hide();
}
- // ---------------- Split de la méthode handleSearchResult
- // ------------------
+ // ############################### Split de la méthode handleSearchResult ###############################
private TextCell buildTextCell() {
TextCell cell = new TextCell() {
return column;
}
- // ----------------- fin du split -----------------
+ // #############################################################################################
/**
* Affiche le résultat de recherche
* 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());
- 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.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
-
- public void onSelectionChange(SelectionChangeEvent event) {
- RowResultDTO selected = selectionModel.getSelectedObject();
- }
- });
- __selectionModel = selectionModel;
- } else {
- listDataProvider.getList().clear();
- listDataProvider.getList().addAll(result.getData());
- }
+ List<RowResultDTO> data = result.getData();
+ ListDataProvider<RowResultDTO> listDataProvider = new ListDataProvider<RowResultDTO>();
+ ListHandler<RowResultDTO> listHandler = new ListHandler<RowResultDTO>(listDataProvider.getList());
+
+ table = new CellTable<RowResultDTO>(data.size());
+
+ buildListHeader(table, result.getColumns(), listHandler);
+
+ resultTableContainer.clear();
+
+ listDataProvider.getList().addAll(data);
+ listDataProvider.addDataDisplay(table);
+
+ table.addColumnSortHandler(listHandler);
+ table.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
+ table.setSelectionModel(new SingleSelectionModel<RowResultDTO>());
+
+ resultTableContainer.add(new ScrollPanel(table));
statusBar.getPaginationWidget().setPaginationInfo(result.getPaginationInfo());
+
if (result.getCountAll() <= 0) {
statusBar.setText(new HTML(" Aucun " + getSearchInitParameters().getImportableElementLibelle() + " trouvé").getText());
exportPossible = false;
exportPossible = true;
}
- buttonsBarWidget.setEnableExport(listDataProvider.getList().size() > 0);
+ if (listDataProvider.getList().size() > 0) {
+ buttonsBarWidget.enableExport();
+ } else {
+ buttonsBarWidget.disableExport();
+ }
+
endLongWait();
}
+ 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());
+ }
+ }
+ }
+ }
+ }
+
+ @SuppressWarnings("unchecked")
private final void __onRowDoubleClick() {
- if (__selectionModel.getSelectedObject() != null) {
- onDoubleClickOnRowResult(__selectionModel.getSelectedObject());
+ SingleSelectionModel<RowResultDTO> selModel = (SingleSelectionModel<RowResultDTO>) table.getSelectionModel();
+
+ if (selModel.getSelectedObject() != null) {
+ onDoubleClickOnRowResult(selModel.getSelectedObject());
}
}
+ @SuppressWarnings("unchecked")
private final void __onRowContextMenu(int x, int y) {
- if (__selectionModel.getSelectedObject() != null) {
- onRowContextMenu(__selectionModel.getSelectedObject(), x, y);
+ SingleSelectionModel<RowResultDTO> selModel = (SingleSelectionModel<RowResultDTO>) table.getSelectionModel();
+
+ if (selModel.getSelectedObject() != null) {
+ onRowContextMenu(selModel.getSelectedObject(), x, y);
}
}
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
- widget.getParameter("deb-nom-input-id").getValue(), // input
- // id
- row.getStringValue(widget.getParameter("deb-nom-res-id").getValue()) // input
- // value
+ 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
);
if (critere != null)
mandatoryCriterias.add(critere);
critere = null;
- critere = buildStringCriteria(widget.getParameter("deb-prenom-crit-id").getValue(), // critere
- // d'origine
- widget.getParameter("deb-prenom-input-id").getValue(), // input
- // id
- row.getStringValue(widget.getParameter("deb-prenom-res-id").getValue()) // input
- // value
+ critere = buildStringCriteria(widget.getParameter("deb-prenom-crit-id").getValue(), // critered'origine
+ widget.getParameter("deb-prenom-input-id").getValue(), // input id
+ row.getStringValue(widget.getParameter("deb-prenom-res-id").getValue()) // inputvalue
);
if (critere != null)
mandatoryCriterias.add(critere);
critere = null;
- critere = buildStringCriteria(widget.getParameter("deb-adr1-crit-id").getValue(), // critere
- // d'origine
- widget.getParameter("deb-adr1-input-id").getValue(), // input
- // id
- row.getStringValue(widget.getParameter("deb-adr1-res-id").getValue()) // input
- // value
+ critere = buildStringCriteria(widget.getParameter("deb-adr1-crit-id").getValue(), // critered'origine
+ widget.getParameter("deb-adr1-input-id").getValue(), // inputid
+ row.getStringValue(widget.getParameter("deb-adr1-res-id").getValue()) // inputvalue
);
if (critere != null)
mandatoryCriterias.add(critere);
critere = null;
- critere = buildStringCriteria(widget.getParameter("deb-adr2-crit-id").getValue(), // critere
- // d'origine
- widget.getParameter("deb-adr2-input-id").getValue(), // input
- // id
+ critere = buildStringCriteria(widget.getParameter("deb-adr2-crit-id").getValue(), // critered'origine
+ widget.getParameter("deb-adr2-input-id").getValue(), // input id
row.getStringValue(widget.getParameter("deb-adr2-res-id").getValue()) // input
// value
);
}
}
- private void collectiviteOrBudgetChange() {
- resetCriteres();
- }
-
- public String getSearchSessionId() {
- return this.initParameters != null ? initParameters.getSearchSessionId() : null;
- }
-
- public String getCollectiviteId() {
- return this.colAndBudChooserWidget.getCollectiviteId();
- }
-
- public String getBudgetId() {
- return this.colAndBudChooserWidget.getBudgetId();
- }
-
- private SearchInitParametersDTO getSearchInitParameters() {
- return this.searchInitParameters;
- }
-
- private void setSearchInitParameters(SearchInitParametersDTO searchInitParameters) {
- if (colAndBudChooserWidget.getCollectiviteId() != null) {
- buttonsBarWidget.enableSearchPossibilities(true);
- this.searchInitParameters = searchInitParameters;
- criteriaTable.init(getSearchInitParameters());
- if (getSearchInitParameters().getPluginId() == null && !getSearchInitParameters().getOptionalCritereTypes().isEmpty()) {
- addCritere();
- }
- buttonsBarWidget.setAddCritereEnable(!getSearchInitParameters().getOptionalCritereTypes().isEmpty());
- } else {
- buttonsBarWidget.enableSearchPossibilities(false);
- }
- }
-
- private native String transformXml(String searchResultAsXml)/*-{
- return $wnd.transformXml(searchResultAsXml);
- }-*/;
-
- private native void downloadUrl(String url)/*-{
- $wnd.window.location.href = url;
- }-*/;
-
- private static native String encodeURIComponent(String url) /*-{
- return $wnd.encodeURIComponent(url);
- }-*/;
-
- private static native String encodeURI(String url) /*-{
- return $wnd.encodeURI(url);
- }-*/;
-
private static String[] splitString(String s) {
int splitters = 0;
for (int i = 0; i < s.length(); i++) {
// DlgSelectNavigationTarget(documentId);
}
- public static class AddCriteriaClickListener implements ClickHandler {
-
- private SearchWidget sw;
- private boolean enabled = true;
-
- public AddCriteriaClickListener(SearchWidget sw) {
- super();
- this.sw = sw;
- }
-
- public void setEnabled(boolean enabled) {
- this.enabled = enabled;
- }
-
- public void onClick(ClickEvent ce) {
- if (enabled) {
- sw.addCritere();
- }
- }
- }
-
- private static NumberFormat createNumberFormat() {
- if (__nf == null) {
- __nf = new OwnNumberFormat(new SpacedNumberConstants(), "#,##0.00;-#,##0.00", new DefaultCurrencyData("EUR", "?"));
- }
- return __nf;
- }
-
private class RightClickableHeader extends Header<SafeHtml> {
private SafeHtml header;
return operator;
}
}
+
+ private static NumberFormat createNumberFormat() {
+ if (__nf == null) {
+ __nf = new OwnNumberFormat(new SpacedNumberConstants(), "#,##0.00;-#,##0.00", new DefaultCurrencyData("EUR", "?"));
+ }
+ return __nf;
+ }
+
+ // ############ Natives ###############
+
+ private native String transformXml(String searchResultAsXml)/*-{
+ return $wnd.transformXml(searchResultAsXml);
+ }-*/;
+
+ private native void downloadUrl(String url)/*-{
+ $wnd.window.location.href = url;
+ }-*/;
+
+ private static native String encodeURIComponent(String url) /*-{
+ return $wnd.encodeURIComponent(url);
+ }-*/;
+
+ private static native String encodeURI(String url) /*-{
+ return $wnd.encodeURI(url);
+ }-*/;
}