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;
- @Override
- public void onChange(ChangeEvent evt) {
- collectiviteOrBudgetChange();
- }
- });
- buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.ADD_CRITERE, new AddCriteriaClickListener(SearchWidget.this));
- buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.SEARCH, new ClickHandler() {
+ initializeCollectiviteBudgetChooser(result.getSearchSessionId(), result.getDocumentId(), result.hasTooMuchCollectivites(), result.getCollectivites(), result.getFirstCollectiviteBudgets());
- public void onClick(ClickEvent evt) {
- search();
- }
- });
- buttonsBarWidget.addClickListener(ButtonsBarWidget.ClickListenerType.RESET_CRITERES, new ClickHandler() {
+ buttonsBarWidget.disableSearchPossibilities();
+ registerToolBarEvents();
- 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() {
+ searchInitParameters = initParameters.getSearchInitParameters();
+
+ 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);
+ }
+
+ 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 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:
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
exportPossible = true;
}
- buttonsBarWidget.setEnableExport(listDataProvider.getList().size() > 0);
+ if(listDataProvider.getList().size() > 0){
+ buttonsBarWidget.enableExport();
+ }else{
+ buttonsBarWidget.disableExport();
+ }
+
endLongWait();
}
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;
// 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> {
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);
+ }-*/;
}