*/
package fr.gouv.finances.cp.xemelios.ui.tools;
+import java.awt.Rectangle;
+import java.awt.event.MouseEvent;
import java.io.File;
import java.lang.reflect.Constructor;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
+import java.util.Vector;
+
+import javax.xml.namespace.QName;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
import org.apache.log4j.Logger;
+import org.w3c.dom.Document;
+
+import com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl;
import fr.gouv.finances.cp.utils.PropertiesExpansion;
+import fr.gouv.finances.cp.utils.xml.marshal.XmlMarshallable;
+import fr.gouv.finances.cp.xemelios.data.impl.mysql.MySqlDataResultSet;
+import fr.gouv.finances.cp.xemelios.ui.CriteriaViewer;
import fr.gouv.finances.cp.xemelios.ui.MainWindow;
import fr.gouv.finances.cp.xemelios.ui.importArchive.ArchiveWizardDisplayer;
+import fr.gouv.finances.cp.xemelios.ui.search.PnlSearch;
+import fr.gouv.finances.cp.xemelios.ui.search.PnlSearch.DisplayParameters;
+import fr.gouv.finances.cp.xemelios.ui.xhtmlviewer.XemeliosUserAgent;
+import fr.gouv.finances.dgfip.utils.Pair;
+import fr.gouv.finances.dgfip.utils.xml.FactoryProvider;
import fr.gouv.finances.dgfip.xemelios.auth.XemeliosUser;
import fr.gouv.finances.dgfip.xemelios.common.Constants;
+import fr.gouv.finances.dgfip.xemelios.common.config.CritereModel;
import fr.gouv.finances.dgfip.xemelios.common.config.DocumentModel;
+import fr.gouv.finances.dgfip.xemelios.common.config.ElementModel;
+import fr.gouv.finances.dgfip.xemelios.common.config.EtatModel;
+import fr.gouv.finances.dgfip.xemelios.common.config.ListeResultatModel;
+import fr.gouv.finances.dgfip.xemelios.common.config.PropertyModel;
+import fr.gouv.finances.dgfip.xemelios.data.DataHandler;
+import fr.gouv.finances.dgfip.xemelios.data.DataImpl;
import fr.gouv.finances.dgfip.xemelios.data.DataLayerManager;
+import fr.gouv.finances.dgfip.xemelios.data.DataResultSet;
import fr.gouv.finances.dgfip.xemelios.importers.EtatImporteur;
import fr.gouv.finances.dgfip.xemelios.tools.ServiceException;
import fr.gouv.finances.dgfip.xemelios.tools.ToolServiceProviderFactory;
import fr.gouv.finances.dgfip.xemelios.tools.XemeliosToolServiceProvider;
+import fr.gouv.finances.dgfip.xemelios.tools.XemeliosToolServiceProvider.XemeliosCollectivite;
/**
*
}
return null;
}
+
+ @Override
+ public List<XemeliosCollectivite> getAllLibellesFromReferentielBySiret(String documentId, String siret) {
+ List<XemeliosCollectivite> libellesCollectivites = new ArrayList<XemeliosCollectivite>();
+ try {
+ final XemeliosUser user= MainWindow.getInstance().getConnectedUser();
+ final Pair collectivite = new Pair("0000","Référentiel");
+ final Pair budget = new Pair("00","--");
+ final DocumentModel dm = MainWindow.getInstance().getDocModels().getDocumentById(documentId);
+ final DataImpl dataLayer = DataLayerManager.getImplementation();
+ final EtatModel em = dm.getEtatById("Referentiel");
+ final ElementModel elm = em.getElementById("Collectivite");
+ final ListeResultatModel lrm = elm.getListeResultat();
+ final PropertiesExpansion properties = MainWindow.getInstance().getEnvProperties();
+ final DisplayParameters dp = new DisplayParameters();
+ final PnlSearch pnl = new PnlSearch(dm, em, elm, dp, user, properties) {
+ @Override
+ public void stopWaiter() {}
+ @Override
+ public void startWaiter() {}
+ @Override
+ public void setTitle(String newTitle) {}
+ @Override
+ public void resizeParent(Rectangle bounds) {}
+ @Override
+ public void redisplayTitle() {}
+ @Override
+ public void notifyParentStateChanged() {}
+ @Override
+ public void iconify(boolean iconified) {}
+ @Override
+ public String getTitle() {return null;}
+ @Override
+ public boolean canExport() {return false;}
+ @Override
+ public void actionOnRowPerformed(MouseEvent evt, int row) {}
+ };
+ final CriteriaViewer cv = new CriteriaViewer(pnl, elm, collectivite, budget, true);
+ CritereModel newCm = elm.getCritere("CRI_REFERENTIEL_COLLECTIVITE_IDCOLL");
+ PropertyModel propModelOperator = new PropertyModel("OPERATEUR:idColl", "xem:StringEquals");
+ PropertyModel propModelValeur = new PropertyModel("VALEUR:idColl", siret);
+ newCm.addChild(propModelOperator, new QName("property"));
+ newCm.addChild(propModelValeur, new QName("property"));
+ cv.changeCritereModel(newCm);
+
+ final Vector<CritereModel> crms = new Vector<CritereModel>();
+ CritereModel crm = cv.getCurrentCritereModel();
+ crms.add(crm);
+
+ final String xpath = "/n:Referentiel/n:CollectivitesSPL/n:Collectivite[xem:StringEquals(upper-case(@idColl)," + siret +")]";
+
+ final DataResultSet collectivites = dataLayer.search(elm, collectivite, budget , xpath, lrm, crms, user);
+ DataHandler dataHandler;
+ while (collectivites.hasNext() && (dataHandler = collectivites.next()) != null) {
+ XemeliosCollectiviteImpl collectiviteImpl = new XemeliosCollectiviteImpl();
+ Document doc = dataHandler.getDocument();
+ XPath xp = FactoryProvider.getXPathFactory().newXPath();
+ xp.setNamespaceContext(dm.getNamespaces());
+ String libelleCollectivite = (String) xp.evaluate("//n:Collectivite/@libelle", doc.getDocumentElement(), XPathConstants.STRING);
+ String libellePoste = (String) xp.evaluate("//n:Collectivite/@libelle-poste", doc.getDocumentElement(), XPathConstants.STRING);
+ collectiviteImpl.setLibelleCollectivite(libelleCollectivite);
+ collectiviteImpl.setLibellePoste(libellePoste);
+ libellesCollectivites.add(collectiviteImpl);
+ }
+
+ } catch (final Exception mEx) {
+ logger.error("getAllLibellesFromReferentielBySiret(" + documentId + "," + siret + ")", mEx);
+ return null;
+ } finally {
+ return libellesCollectivites;
+ }
+ }
}
}