📄 keywordssearcher.java
字号:
sSouth = sLowCorner.substring(sLowCorner.indexOf(' ')).trim(); } // uppercorner Value upperCorner = resultsTable.getValue(row, 3); String sUpperCorner = ""; String sWest = ""; String sNorth = ""; if (upperCorner != null) { sUpperCorner = upperCorner.toString(); sWest = sUpperCorner.substring(0, sUpperCorner.indexOf(' ')).trim(); sNorth = sUpperCorner.substring(sUpperCorner.indexOf(' ')) .trim(); } KeywordBean kb = new KeywordBean(idKeyword, sValue, sDefinition, sUri, sEast, sWest, sSouth, sNorth, sThesaurusName, false, _lang); _results.add(kb); idKeyword++; } } } } public void searchBN(ServiceContext srvContext, Element params, String request) throws Exception { // TODO : Add geonetinfo elements. String id = Util.getParam(params, "id"); String sThesaurusName = Util.getParam(params, "thesaurus"); Thesaurus thesaurus = _tm.getThesaurusByName(sThesaurusName); String _lang = srvContext.getLanguage(); searchBN(id, sThesaurusName, request, _lang); } public void searchBN(String id, String sThesaurusName, String request, String _lang) throws Exception { Thesaurus thesaurus = _tm.getThesaurusByName(sThesaurusName); _results = new ArrayList<KeywordBean>(); String _query = "SELECT prefLab, note, id " + " from {id} rdf:type {skos:Concept};" + " skos:prefLabel {prefLab};" + " [skos:"+request+" {b}];" + " [skos:scopeNote {note} WHERE lang(note) LIKE \""+_lang+"\"] " + " WHERE lang(prefLab) LIKE \""+_lang+"\"" + " AND b LIKE \"*"+id+"\"" + " IGNORE CASE " + " USING NAMESPACE skos=<http://www.w3.org/2004/02/skos/core#>, gml=<http://www.opengis.net/gml#> "; // Perform request QueryResultsTable resultsTable = thesaurus.performRequest(_query); int rowCount = resultsTable.getRowCount(); int idKeyword = 0; for (int row = 0; row < rowCount; row++) { // preflab Value value = resultsTable.getValue(row, 0); String sValue = ""; if (value != null) { sValue = value.toString(); }// uri (= id in RDF file != id in list) Value uri = resultsTable.getValue(row, 2); String sUri = ""; if (uri != null) { sUri = uri.toString(); } KeywordBean kb = new KeywordBean(idKeyword, sValue, "", sUri, "", "", "", "", sThesaurusName, false, _lang); _results.add(kb); idKeyword++; } } public void findEnclosedGeoKeyword(String sKeywordCode){ _query = "SELECT prefLab, note, id, lowc, uppc " + " FROM {id} rdf:type {skos:Concept}; " + " skos:prefLabel {prefLab};" + " [skos:scopeNote {note} WHERE lang(note) LIKE \""+_lang+"\"]; " + " [gml:BoundedBy {} gml:lowerCorner {lowc}]; " + " [gml:BoundedBy {} gml:upperCorner {uppc}] " + " WHERE lang(prefLab) LIKE \""+_lang+"\"" + " AND prefLab LIKE \"" + sKeywordCode + "*\" " + " USING NAMESPACE skos=<http://www.w3.org/2004/02/skos/core#>, gml=<http://www.opengis.net/gml#> "; } public int getNbResults() { return _results.size(); } public void sortResults(String tri) { _sortBy = tri; if ("label".equals(tri)) { // on tri la collection par code libelle Collections.sort((List) _results, new Comparator() { // M閠hode de comparaison public int compare(final Object o1, final Object o2) { final KeywordBean kw1 = (KeywordBean) o1; final KeywordBean kw2 = (KeywordBean) o2; return kw1.getValue().compareToIgnoreCase(kw2.getValue()); } }); } if ("definition".equals(tri)) { // on tri la collection par code libelle Collections.sort((List) _results, new Comparator() { // M閠hode de comparaison public int compare(final Object o1, final Object o2) { final KeywordBean kw1 = (KeywordBean) o1; final KeywordBean kw2 = (KeywordBean) o2; return kw1.getDefinition().compareToIgnoreCase( kw2.getDefinition()); } }); } } public Element getResults(Element params) throws Exception { Element elDescKeys = new Element("descKeys"); // Return only the n first elements according to GUI. int nbResults = 36000; // FIXME if (params.getChild("nbResults") != null) nbResults = Util.getParam(params, "nbResults", this.getNbResults()); nbResults = (this.getNbResults()<=nbResults?this.getNbResults():nbResults); //for (int i = from; i <= to; i++) { for (int i = 0; i <= nbResults - 1; i++) { KeywordBean kb = (KeywordBean) _results.get(i); Element elKeyword = new Element("keyword"); Element elSelected = new Element("selected"); // TODO : Add Thesaurus name if (kb.isSelected()) { elSelected.addContent("true"); } else { elSelected.addContent("false"); } Element elId = new Element("id"); elId.addContent(Integer.toString(kb.getId())); Element elValue = new Element("value"); elValue.addContent(kb.getValue()); Element elDefiniton = new Element("definition"); elDefiniton.addContent(kb.getDefinition()); Element elUri = new Element("uri"); elUri.addContent(kb.getCode()); elKeyword.addContent(elSelected); elKeyword.addContent(elId); elKeyword.addContent(elValue); elKeyword.addContent(elDefiniton); elKeyword.addContent(elUri); elDescKeys.addContent(elKeyword); } return elDescKeys; } public void selectUnselectKeywords(Element params) { List listIdKeywordsSelected = params.getChildren("pIdKeyword"); for (int i = 0; i < listIdKeywordsSelected.size(); i++) { Element el = (Element) listIdKeywordsSelected.get(i); int keywordId = Integer.decode(el.getTextTrim()); for (int j = 0; j < _results.size(); j++) { if (((KeywordBean) _results.get(j)).getId() == keywordId) { ((KeywordBean) _results.get(j)) .setSelected(!((KeywordBean) _results.get(j)) .isSelected()); } } } } /** * @return an element describing the list of selected keywords */ public Element getSelectedKeywords() { Element elDescKeys = new Element("descKeys"); int nbSelectedKeywords = 0; for (int i = 0; i < this.getNbResults(); i++) { KeywordBean kb = (KeywordBean) _results.get(i); if (kb.isSelected()) { Element elKeyword = new Element("keyword"); // keyword type String thesaurusType = kb.getThesaurus(); thesaurusType = thesaurusType.replace('.', '-'); thesaurusType = thesaurusType.split("-")[1]; elKeyword.setAttribute("type", thesaurusType); Element elValue = new Element("value"); elValue.addContent(kb.getValue()); Element elCode = new Element("code"); String code=kb.getRelativeCode(); //code = code.split("#")[1]; elCode.addContent(code); if (kb.getCoordEast() != null && kb.getCoordWest() != null && kb.getCoordSouth() != null && kb.getCoordNorth() != null) { Element elBbox = new Element("geo"); Element elEast = new Element("east"); elEast.addContent(kb.getCoordEast()); Element elWest = new Element("west"); elWest.addContent(kb.getCoordWest()); Element elSouth = new Element("south"); elSouth.addContent(kb.getCoordSouth()); Element elNorth = new Element("north"); elNorth.addContent(kb.getCoordNorth()); elBbox.addContent(elEast); elBbox.addContent(elWest); elBbox.addContent(elSouth); elBbox.addContent(elNorth); elKeyword.addContent(elBbox); } elKeyword.addContent(elCode); elKeyword.addContent(elValue); elDescKeys.addContent(elKeyword); nbSelectedKeywords++; } } Element elNbTot = new Element("nbtot"); elNbTot.addContent(Integer.toString(nbSelectedKeywords)); elDescKeys.addContent(elNbTot); return elDescKeys; } /** * @return a collection of descKeys element describing the list of selected keywords */ public ArrayList getSelectedKeywordsInDescKeys() { ArrayList listSelectedKeywords = new ArrayList(); ArrayList listElDescKeys = new ArrayList(); // Reccuperer tous les mots cl
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -