From 05b8ad270a8e3bd27b2c34be698c268db8de46e2 Mon Sep 17 00:00:00 2001 From: hjkhjk54 Date: Wed, 28 Mar 2012 18:13:10 +0000 Subject: [PATCH] updates to allow related concepts to be returned from GEMET as well as display which results are best matches and which are not. --- .../freemarker/edit/forms/css/addConcept.css | 16 +++++++++++++++- .../edit/forms/images/conceptCheckMark.png | Bin 0 -> 283 bytes .../edit/forms/images/conceptSpacer.png | Bin 0 -> 206 bytes .../freemarker/edit/forms/js/addConcept.js | 17 +++++++++++------ .../semservices/service/impl/GemetService.java | 3 ++- 5 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 productMods/templates/freemarker/edit/forms/images/conceptCheckMark.png create mode 100644 productMods/templates/freemarker/edit/forms/images/conceptSpacer.png diff --git a/productMods/templates/freemarker/edit/forms/css/addConcept.css b/productMods/templates/freemarker/edit/forms/css/addConcept.css index fa2afdc9..967571ab 100644 --- a/productMods/templates/freemarker/edit/forms/css/addConcept.css +++ b/productMods/templates/freemarker/edit/forms/css/addConcept.css @@ -3,7 +3,7 @@ .concepts .column { float:left; padding-right:3px; - + clear:none !important; /*Overriding customFor div's clearing*/ } .concepts .row { @@ -23,6 +23,20 @@ width:400px; } +/* For adding an empty element under the best match column*/ +.emptyColumn { + width:67px; + height:18px; + background: url("../images/conceptSpacer.png") no-repeat left center; +} + +/*For adding the checkmark under the best match column*/ +.bestMatchFlag { + width:67px; + height:18px; + background: url("../images/conceptCheckMark.png") no-repeat left center; +} + form#addConceptForm { display:none; } diff --git a/productMods/templates/freemarker/edit/forms/images/conceptCheckMark.png b/productMods/templates/freemarker/edit/forms/images/conceptCheckMark.png new file mode 100644 index 0000000000000000000000000000000000000000..197767db213bb072f4028486057fdec1ebfcdc62 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPav$QC?-h)?anm{3?64!_l=ltB< z)VvY~=c3falGGH1^30M91$R&10EPTKg+vA4#N_rB<<3CWxt=bLAr`04Uh(ESpuod& zVI#-E-|}IbR;~8RNS3wd-s~smY|yr*D%m;qMo7AYCyQqaZ&kxm7qOG8iYK)5IP0cx z{Bq7%(azxT#?;8eH%0o5LN|lMhV9?#q;)>soM?VP;oYXU3f)&y&o8t1Ev@-A-{d6w T=alzAiy1s!{an^LB{Ts5n^avA literal 0 HcmV?d00001 diff --git a/productMods/templates/freemarker/edit/forms/images/conceptSpacer.png b/productMods/templates/freemarker/edit/forms/images/conceptSpacer.png new file mode 100644 index 0000000000000000000000000000000000000000..f5c1d743ee40871a5e10e22d5b7d9a2e19ab96bd GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPav$QCuT*L-zZlI7-iEBiObAE1a zYF-J0b5UwyNotBhd1gt5g1e`0fI@zrLZX6iVsiV6a%Z4w1y2{p5R22vfBt=bUeBh* qpvI=v7})H_D`lE-Wx>HD0fy8~EIh(5XRigSW$<+Mb6Mw<&;$S#TR4jV literal 0 HcmV?d00001 diff --git a/productMods/templates/freemarker/edit/forms/js/addConcept.js b/productMods/templates/freemarker/edit/forms/js/addConcept.js index 4af36acc..e80358ca 100644 --- a/productMods/templates/freemarker/edit/forms/js/addConcept.js +++ b/productMods/templates/freemarker/edit/forms/js/addConcept.js @@ -256,9 +256,9 @@ var addConceptForm = { generateIndividualConceptDisplay: function(cuiURI, label, definition, type, definedBy, isBestMatch) { var htmlAdd = "
  • " + "
    " + - "" + + "
    " + addConceptForm.generateIndividualCUIInput(cuiURI, label, type, definedBy) + - label + addConceptForm.generateIndividualTypeDisplay(type) + "" + + label + addConceptForm.generateIndividualTypeDisplay(type) + "
    " + addConceptForm.generateIndividualDefinitionDisplay(definition) + addConceptForm.generateBestOrAlternate(isBestMatch) + "
    " + @@ -275,15 +275,20 @@ var addConceptForm = { return ""; }, generateIndividualDefinitionDisplay:function(definition) { - return "" + definition + ""; + //The definition in some cases may be an empty string, so to prevent the div + //from not appearing, we are replacing with + if(definition == null || definition.length == 0) { + definition = " "; + } + return "
    " + definition + "
    "; }, //adds another div with "best match" next to it if best match generateBestOrAlternate:function(isBestMatch) { - var content = " "; + var className = "emptyColumn"; if(isBestMatch) { - content = "(Best Match)" + className = "bestMatchFlag"; } - return "" + content + ""; + return "
     
    "; }, validateConceptSelection:function(checkedElements) { var numberElements = checkedElements.length; diff --git a/src/edu/cornell/mannlib/semservices/service/impl/GemetService.java b/src/edu/cornell/mannlib/semservices/service/impl/GemetService.java index 3ae27c0f..e71b6a0d 100644 --- a/src/edu/cornell/mannlib/semservices/service/impl/GemetService.java +++ b/src/edu/cornell/mannlib/semservices/service/impl/GemetService.java @@ -35,6 +35,7 @@ import org.xml.sax.SAXException; import edu.cornell.mannlib.semservices.bo.Concept; import edu.cornell.mannlib.semservices.service.ExternalConceptService; import edu.cornell.mannlib.semservices.util.XMLUtils; +import edu.cornell.mannlib.vitro.webapp.web.URLEncoder; public class GemetService implements ExternalConceptService { protected final Log logger = LogFactory.getLog(getClass()); @@ -187,7 +188,7 @@ public class GemetService implements ExternalConceptService { protected String getConceptsMatchingKeyword(String keyword) throws Exception { String result = new String(); String serviceUrl = GemetWS_address + "getConceptsMatchingKeyword" + - "?keyword=" + keyword + + "?keyword=" + URLEncoder.encode(keyword) + "&search_mode=0" + "&thesaurus_uri=http://www.eionet.europa.eu/gemet/concept/" + "&language=en";