You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(7) |
Sep
(5) |
Oct
(194) |
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
|
Feb
(43) |
Mar
(140) |
Apr
(65) |
May
(36) |
Jun
(67) |
Jul
(178) |
Aug
(72) |
Sep
(112) |
Oct
(71) |
Nov
(29) |
Dec
(14) |
2008 |
Jan
(65) |
Feb
(112) |
Mar
(55) |
Apr
(52) |
May
(29) |
Jun
(25) |
Jul
(116) |
Aug
(24) |
Sep
(38) |
Oct
(128) |
Nov
(199) |
Dec
(210) |
2009 |
Jan
(178) |
Feb
(376) |
Mar
(418) |
Apr
(768) |
May
(828) |
Jun
(324) |
Jul
(280) |
Aug
(434) |
Sep
(214) |
Oct
(125) |
Nov
(154) |
Dec
(165) |
2010 |
Jan
(96) |
Feb
(63) |
Mar
(113) |
Apr
(150) |
May
(48) |
Jun
(170) |
Jul
(83) |
Aug
(196) |
Sep
(90) |
Oct
(100) |
Nov
(198) |
Dec
(152) |
2011 |
Jan
(165) |
Feb
(131) |
Mar
(223) |
Apr
(79) |
May
(134) |
Jun
(144) |
Jul
(107) |
Aug
(108) |
Sep
(61) |
Oct
(164) |
Nov
(70) |
Dec
(65) |
2012 |
Jan
(100) |
Feb
(92) |
Mar
(223) |
Apr
(126) |
May
(83) |
Jun
(150) |
Jul
(55) |
Aug
(13) |
Sep
(28) |
Oct
(73) |
Nov
(74) |
Dec
(129) |
2013 |
Jan
(105) |
Feb
(72) |
Mar
(21) |
Apr
(64) |
May
(101) |
Jun
(46) |
Jul
(26) |
Aug
(4) |
Sep
(1) |
Oct
(44) |
Nov
(60) |
Dec
(48) |
2014 |
Jan
(73) |
Feb
(31) |
Mar
(12) |
Apr
(20) |
May
(33) |
Jun
(72) |
Jul
(17) |
Aug
(12) |
Sep
(12) |
Oct
(15) |
Nov
(24) |
Dec
(94) |
2015 |
Jan
(146) |
Feb
(103) |
Mar
(91) |
Apr
(65) |
May
(23) |
Jun
(46) |
Jul
(49) |
Aug
(23) |
Sep
(20) |
Oct
(21) |
Nov
(42) |
Dec
(70) |
2016 |
Jan
(43) |
Feb
(90) |
Mar
(89) |
Apr
(37) |
May
(58) |
Jun
(103) |
Jul
(90) |
Aug
(37) |
Sep
(55) |
Oct
(57) |
Nov
(50) |
Dec
(42) |
2017 |
Jan
(42) |
Feb
(77) |
Mar
(26) |
Apr
(18) |
May
(49) |
Jun
(48) |
Jul
(36) |
Aug
(25) |
Sep
(41) |
Oct
(21) |
Nov
(45) |
Dec
(21) |
2018 |
Jan
(14) |
Feb
(11) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <fxp...@us...> - 2008-04-08 11:13:55
|
Revision: 1266 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1266&view=rev Author: fxprunayre Date: 2008-04-08 04:14:00 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Added OGC WxS GetCapabilities harvester Added Paths: ----------- trunk/web/geonetwork/scripts/harvesting/ogcwxs/ trunk/web/geonetwork/scripts/harvesting/ogcwxs/model.js trunk/web/geonetwork/scripts/harvesting/ogcwxs/ogcwxs.js trunk/web/geonetwork/scripts/harvesting/ogcwxs/view.js Added: trunk/web/geonetwork/scripts/harvesting/ogcwxs/model.js =================================================================== --- trunk/web/geonetwork/scripts/harvesting/ogcwxs/model.js (rev 0) +++ trunk/web/geonetwork/scripts/harvesting/ogcwxs/model.js 2008-04-08 11:14:00 UTC (rev 1266) @@ -0,0 +1,109 @@ +//===================================================================================== +//=== +//=== Model (type:ogcwxs) +//=== +//===================================================================================== + +ogcwxs.Model = function(xmlLoader) +{ + HarvesterModel.call(this); + + var loader = xmlLoader; + var callBackF = null; + + this.retrieveGroups = retrieveGroups; + this.retrieveCategories= retrieveCategories; + this.retrieveIcons = retrieveIcons; + this.getUpdateRequest = getUpdateRequest; + +//===================================================================================== + +function retrieveGroups(callBack) +{ + new InfoService(loader, 'groups', callBack); +} + +//===================================================================================== + +function retrieveCategories(callBack) +{ + new InfoService(loader, 'categories', callBack); +} + +//===================================================================================== + +function retrieveIcons(callBack) +{ + callBackF = callBack; + + var request = ker.createRequest('type', 'icons'); + + ker.send('xml.harvesting.info', request, ker.wrap(this, retrieveIcons_OK)); +} + +//------------------------------------------------------------------------------------- + +function retrieveIcons_OK(xmlRes) +{ + if (xmlRes.nodeName == 'error') + ker.showError(loader.getText('cannotRetrieve'), xmlRes); + else + { + var data = []; + var list = xml.children(xml.children(xmlRes)[0]); + + for (var i=0; i<list.length; i++) + data.push(xml.textContent(list[i])); + + callBackF(data); + } +} + +//===================================================================================== + +function getUpdateRequest(data) +{ + var request = str.substitute(updateTemp, data); + //alert (this.substituteCommon(data, request)); + return this.substituteCommon(data, request); +} + +//===================================================================================== + +var updateTemp = +' <node id="{ID}" type="{TYPE}">'+ +' <site>'+ +' <name>{NAME}</name>'+ +' <ogctype>{OGCTYPE}</ogctype>'+ +' <url>{CAPAB_URL}</url>'+ +' <icon>{ICON}</icon>'+ +' <account>'+ +' <use>{USE_ACCOUNT}</use>'+ +' <username>{USERNAME}</username>'+ +' <password>{PASSWORD}</password>'+ +' </account>'+ +' </site>'+ + +' <options>'+ +' <every>{EVERY}</every>'+ +' <oneRunOnly>{ONE_RUN_ONLY}</oneRunOnly>'+ +' <lang>{LANG}</lang>'+ +' <topic>{TOPIC}</topic>' + +' <createThumbnails>{CREATETHUMBNAILS}</createThumbnails>' + +' <useLayer>{USELAYER}</useLayer>' + +' <useLayerMd>{USELAYERMD}</useLayerMd>'+ +' <datasetCategory>{DATASETCATEGORY}</datasetCategory>'+ +' </options>'+ + +' <privileges>'+ +' {PRIVIL_LIST}'+ +' </privileges>'+ + +' <categories>'+ +' {CATEG_LIST}'+ +' </categories>'+ +' </node>'; + + +//===================================================================================== +} Added: trunk/web/geonetwork/scripts/harvesting/ogcwxs/ogcwxs.js =================================================================== --- trunk/web/geonetwork/scripts/harvesting/ogcwxs/ogcwxs.js (rev 0) +++ trunk/web/geonetwork/scripts/harvesting/ogcwxs/ogcwxs.js 2008-04-08 11:14:00 UTC (rev 1266) @@ -0,0 +1,97 @@ +//===================================================================================== +//=== +//=== ogcwxs controller +//=== +//===================================================================================== + +ker.include('harvesting/ogcwxs/model.js'); +ker.include('harvesting/ogcwxs/view.js'); + +var ogcwxs = new Object(); + +//===================================================================================== + +function OgcWxs(xmlLoader) +{ + //--- call super constructor + Harvester.call(this); + + var loader= xmlLoader; + + var model = new ogcwxs.Model(loader); + var view = new ogcwxs.View(loader); + + //--- public methods + this.addGroupRow = addGroupRow; + this.removeGroupRow = view.removeGroupRow; + this.getResultTip = view.getResultTip; + + this.model = model; + this.view = view; + +//===================================================================================== +//=== +//=== API methods +//=== +//===================================================================================== + +this.getType = function() { return "ogcwxs"; } +this.getLabel = function() { return loader.eval("info[@type='ogcwxs']/long"); } +this.getEditPanel = function() { return "ogcwxs.editPanel"; } + +//===================================================================================== + +this.init = function() +{ + this.view.init(); + + model.retrieveGroups (ker.wrap(this, init_groups_OK)); + model.retrieveCategories(ker.wrap(this, init_categ_OK)); + model.retrieveIcons (ker.wrap(this, init_icons_OK)); +} + +//------------------------------------------------------------------------------------- + +function init_groups_OK(data) +{ + view.clearGroups(); + + for (var i=0; i<data.length; i++) + view.addGroup(data[i].id, data[i].label[Env.lang]); +} + +//------------------------------------------------------------------------------------- + +function init_categ_OK(data) +{ + view.clearCategories(); + + for (var i=0; i<data.length; i++) { + view.addCategory(data[i].id, data[i].label[Env.lang]); + + gui.addToSelect('ogcwxs.datasetCategory', data[i].id, data[i].label[Env.lang]); + } +} + +//------------------------------------------------------------------------------------- + +function init_icons_OK(data) +{ + view.clearIcons(); + + for (var i=0; i<data.length; i++) + view.addIcon(data[i]); +} + +//===================================================================================== + +function addGroupRow() +{ + var groups = view.getSelectedGroups(); + + if (groups.length == 0) alert(loader.getText('pleaseSelectGroup')); + else view.addEmptyGroupRows(groups); +} + +//===================================================================================== +} Added: trunk/web/geonetwork/scripts/harvesting/ogcwxs/view.js =================================================================== --- trunk/web/geonetwork/scripts/harvesting/ogcwxs/view.js (rev 0) +++ trunk/web/geonetwork/scripts/harvesting/ogcwxs/view.js 2008-04-08 11:14:00 UTC (rev 1266) @@ -0,0 +1,182 @@ +//===================================================================================== +//=== +//=== View (type:ogcwxs) +//=== +//===================================================================================== + +ogcwxs.View = function(xmlLoader) +{ + HarvesterView.call(this); + + var privilTransf = new XSLTransformer('harvesting/ogcwxs/client-privil-row.xsl', xmlLoader); + var resultTransf = new XSLTransformer('harvesting/ogcwxs/client-result-tip.xsl', xmlLoader); + + var loader = xmlLoader; + var valid = new Validator(loader); + var shower = null; + + + var currSearchId = 0; + + this.setPrefix('ogcwxs'); + + this.setPrivilTransf(privilTransf); + this.setResultTransf(resultTransf); + + //--- public methods + + this.init = init; + this.setEmpty = setEmpty; + this.setData = setData; + this.getData = getData; + this.isDataValid = isDataValid; + this.clearIcons = clearIcons; + this.addIcon = addIcon; + + Event.observe('ogcwxs.icon', 'change', ker.wrap(this, updateIcon)); + +//===================================================================================== +//=== +//=== API methods +//=== +//===================================================================================== + +function init() +{ + valid.add( + [ + { id:'ogcwxs.name', type:'length', minSize :1, maxSize :200 }, + { id:'ogcwxs.capabUrl', type:'length', minSize :1, maxSize :200 }, + { id:'ogcwxs.capabUrl', type:'url' }, + { id:'ogcwxs.username', type:'length', minSize :0, maxSize :200 }, + { id:'ogcwxs.password', type:'length', minSize :0, maxSize :200 }, + { id:'ogcwxs.every.days', type:'integer', minValue:0, maxValue:99 }, + { id:'ogcwxs.every.hours', type:'integer', minValue:0, maxValue:23 }, + { id:'ogcwxs.every.mins', type:'integer', minValue:0, maxValue:59 } + ]); + shower = new Shower('ogcwxs.useAccount', 'ogcwxs.account'); + +} + +//===================================================================================== + +function setEmpty() +{ + this.setEmptyCommon(); + + $('ogcwxs.useLayer').checked = false; + $('ogcwxs.useLayerMd').checked = false; + $('ogcwxs.createThumbnails').checked = false; + $('ogcwxs.ogctype').value = 'WMS111'; + $('ogcwxs.lang').value = 'eng'; + $('ogcwxs.topic').value = ''; + $('ogcwxs.capabUrl').value = ''; + + var icons = $('ogcwxs.icon').options; + + for (var i=0; i<icons.length; i++) + if (icons[i].value == 'default.gif') + { + icons[i].selected = true; + break; + } + + shower.update(); + updateIcon(); +} + +//===================================================================================== + +function setData(node) +{ + this.setDataCommon(node); + + var site = node.getElementsByTagName('site') [0]; + var options = node.getElementsByTagName('options')[0]; + + hvutil.setOption(site, 'url', 'ogcwxs.capabUrl'); + hvutil.setOption(site, 'ogctype', 'ogcwxs.ogctype'); + hvutil.setOption(site, 'icon', 'ogcwxs.icon'); + hvutil.setOption(options, 'topic', 'ogcwxs.topic'); + hvutil.setOption(options, 'createThumbnails', 'ogcwxs.createThumbnails'); + hvutil.setOption(options, 'useLayer', 'ogcwxs.useLayer'); + hvutil.setOption(options, 'useLayerMd', 'ogcwxs.useLayerMd'); + hvutil.setOption(options, 'lang', 'ogcwxs.lang'); + hvutil.setOption(options, 'datasetCategory', 'ogcwxs.datasetCategory'); + + + //--- add privileges entries + + this.removeAllGroupRows(); + this.addGroupRows(node); + + //--- set categories + + this.unselectCategories(); + this.selectCategories(node); + + shower.update(); + updateIcon(); +} + +//===================================================================================== + +function getData() +{ + var data = this.getDataCommon(); + + data.CAPAB_URL = $F('ogcwxs.capabUrl'); + data.ICON = $F('ogcwxs.icon'); + data.OGCTYPE = $F('ogcwxs.ogctype'); + data.LANG = $F('ogcwxs.lang'); + data.TOPIC = $F('ogcwxs.topic'); + data.DATASETCATEGORY = $F('ogcwxs.datasetCategory'); + data.CREATETHUMBNAILS = $('ogcwxs.createThumbnails').checked; + data.USELAYER = $('ogcwxs.useLayer').checked; + data.USELAYERMD = $('ogcwxs.useLayerMd').checked; + + //--- retrieve privileges and categories information + + data.PRIVILEGES = this.getPrivileges(); + data.CATEGORIES = this.getSelectedCategories(); + + return data; +} + +//===================================================================================== + +function isDataValid() +{ + if (!valid.validate()) + return false; + + return this.isDataValidCommon(); +} + +//===================================================================================== + +function clearIcons() +{ + $('ogcwxs.icon').options.length = 0; +} + +//===================================================================================== + +function addIcon(file) +{ + gui.addToSelect('ogcwxs.icon', file, file); +} + +//===================================================================================== + +function updateIcon() +{ + var icon = $F('ogcwxs.icon'); + var image= $('ogcwxs.icon.image'); + + image.setAttribute('src', Env.url +'/images/harvesting/'+icon); +} + +//===================================================================================== +} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 11:07:22
|
Revision: 1265 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1265&view=rev Author: fxprunayre Date: 2008-04-08 04:07:16 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Added template for xlink used to link datasets and service Modified Paths: -------------- trunk/web/geonetwork/xsl/metadata-iso19139.xsl Modified: trunk/web/geonetwork/xsl/metadata-iso19139.xsl =================================================================== --- trunk/web/geonetwork/xsl/metadata-iso19139.xsl 2008-04-08 11:05:33 UTC (rev 1264) +++ trunk/web/geonetwork/xsl/metadata-iso19139.xsl 2008-04-08 11:07:16 UTC (rev 1265) @@ -5,6 +5,7 @@ xmlns:gmx="http://www.isotc211.org/2005/gmx" xmlns:srv="http://www.isotc211.org/2005/srv" xmlns:gml="http://www.opengis.net/gml" + xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:geonet="http://www.fao.org/geonetwork" xmlns:xalan = "http://xml.apache.org/xalan"> @@ -75,6 +76,43 @@ <!-- ==================================================================== --> + <!-- ===================================================================== --> + <!-- xLink : transform xlink to hyperlink with href --> + <!-- ===================================================================== --> + <xsl:template mode="iso19139" match="srv:operatesOn[@xlink:href]"> + <xsl:param name="schema"/> + <xsl:param name="edit"/> + + <xsl:variable name="title"> + <xsl:call-template name="getTitle"> + <xsl:with-param name="name" select="name(.)"/> + <xsl:with-param name="schema" select="$schema"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="helpLink"> + <xsl:call-template name="getHelpLink"> + <xsl:with-param name="name" select="name(.)"/> + <xsl:with-param name="schema" select="$schema"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="text"> + <a> + <xsl:attribute name="href"><xsl:value-of select="@xlink:href"/></xsl:attribute> + <xsl:value-of select="@xlink:title"/> + </a> + </xsl:variable> + <xsl:apply-templates mode="simpleElement" select="."> + <xsl:with-param name="schema" select="$schema"/> + <xsl:with-param name="edit" select="$edit"/> + <xsl:with-param name="title" select="$title"/> + <xsl:with-param name="helpLink" select="$helpLink"/> + <xsl:with-param name="text" select="$text"/> + </xsl:apply-templates> + + </xsl:template> + + <!-- ==================================================================== --> + <xsl:template name="iso19139String"> <xsl:param name="schema"/> <xsl:param name="edit"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 11:05:46
|
Revision: 1264 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1264&view=rev Author: fxprunayre Date: 2008-04-08 04:05:33 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Fixed removed duplicate strings Added OGC WxS and pdf harvester strings Modified Paths: -------------- trunk/web/geonetwork/loc/en/xml/strings.xml trunk/web/geonetwork/loc/fr/xml/harvesting.xml Modified: trunk/web/geonetwork/loc/en/xml/strings.xml =================================================================== --- trunk/web/geonetwork/loc/en/xml/strings.xml 2008-04-08 11:04:54 UTC (rev 1263) +++ trunk/web/geonetwork/loc/en/xml/strings.xml 2008-04-08 11:05:33 UTC (rev 1264) @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <strings> + <savepdf>Save search results as pdf</savepdf> <savexml> <dc>Save Dublin Core metadata as XML</dc> <fgdc>Save FGDC metadata as XML</fgdc> Modified: trunk/web/geonetwork/loc/fr/xml/harvesting.xml =================================================================== --- trunk/web/geonetwork/loc/fr/xml/harvesting.xml 2008-04-08 11:04:54 UTC (rev 1263) +++ trunk/web/geonetwork/loc/fr/xml/harvesting.xml 2008-04-08 11:05:33 UTC (rev 1264) @@ -41,11 +41,35 @@ <long>OAI Protocol for Metadata Harvesting 2.0</long> </info> + <info type="ogcwxs"> + <short>OGC WxS</short> + <long>OGC Web services (ie. WMS, WFS and WCS)</long> + </info> + + <wxstype>Type of OGC webservice</wxstype> + <wxstypes> + <type value="WMS1.0.0">OGC Web Map Service (WMS) Version 1.0.0</type> + <type value="WMS1.1.1">OGC Web Map Service (WMS) Version 1.1.1 - preferred</type> + <!-- <type value="WMS1.3.0">OGC Web Map Service (WMS) Version 1.3.0</type> --> + <type value="WFS1.0.0">OGC Web Feature Service (WFS) Version 1.0.0</type> + <type value="WFS1.1.0">OGC Web Feature Service (WFS) Version 1.1.0 - preferred</type> + <type value="WCS1.0.0">OGC Web Coverage Service (WCS) Version 1.0.0</type> + </wxstypes> + + <wxslang>Metadata language</wxslang> + <wxsImp>Type of import</wxsImp> + <wxs119Only>By default GetCapabilities harvester will create<br/> only metadata for services in ISO19119.</wxs119Only> + <wxs139>Create metadata for layer elements using GetCapabilities information.</wxs139> + <wxs139Layer>Create metadata for layer elements using metadataURL attributs (if existing, if not use GetCapabilities).</wxs139Layer> + <createThumbnails>Create thumbnails for WMS layers.</createThumbnails> + + <serviceCategory>Category for service</serviceCategory> + <datasetCategory>Category for datasets</datasetCategory> + <!-- Editing form - - - - - - - - - - - - - - - - - - - - - - --> <site>Site</site> - <name>Nom</name> <host>Hôte</host> <port>Port</port> <servlet>Servlet</servlet> @@ -69,12 +93,10 @@ <warn>Vous pouvez récupérer ces informations seulement après avoir saisie la section de description du site</warn> <options>Options</options> - <every>Touts les</every> <everySpec>(jours : heures : minutes)</everySpec> <oneRun>Une seule exécution</oneRun> <createGroups>Créer les groupes</createGroups> <createCateg>Créer les catégories</createCateg> - <status>Status</status> <active>Active</active> <inactive></inactive> @@ -85,7 +107,6 @@ <criteria>Criteria</criteria> <validate>Valider</validate> <recurse>Recurse</recurse> - <host>hôte</host> <privileges>Privilèges</privileges> <categories>Categories</categories> <url>URL</url> @@ -206,6 +227,11 @@ <unretrievable>Inrécupérable</unretrievable> <badFormat>Mauvais format XML</badFormat> <doesNotValidate>Non valide</doesNotValidate> + <datasetAdded>Datasets</datasetAdded> + <datasetExist>Existing datasets</datasetExist> + <datasetMdUrl>Metadata Url used</datasetMdUrl> + <thumbnails>Thumbnails</thumbnails> + <thumbnailsFailed>Thumbnails failed</thumbnailsFailed> </tipHeader> <notRun>En attente du premier lancement</notRun> @@ -332,6 +358,48 @@ <tip id="oai.prefix"> Choose the metadata format you want to harvest. </tip> + + <!-- OGCWXS harvesting type - - - - - - - - - - - - - - - - - - - - - - --> + + <tip id="ogcwxs.wxstype"> + The type of the OGC web services. + </tip> + + <tip id="ogcwxs.version"> + The version of the OGC web services. + </tip> + + <tip id="ogcwxs.lang"> + The language of the produced metadata. + </tip> + + <tip id="ogcwxs.capabUrl"> + The given URL must point to a web service entry point. The format of a + URL is like this:<br/> + http://HOST/PATH + </tip> + + + + <tip id="ogcwxs.addSearch"> + Add one search on the remote server. You have to specify at least one search in order to + retrieve some metadata. + </tip> + + <tip id="ogcwxs.groups"> + You can choose the privileges to associate to harvested metadata. + </tip> + + <tip id="ogcwxs.addGroups"> + Select one or more groups (using the <b><CTRL></b> key) on the left panel and press this button. + </tip> + + <tip id="ogcwxs.categories"> + You can assign one or more categories to harvested metadata. Use the <b><CTRL></b> + key to select more than one category. + </tip> + + </tips> </strings> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 11:04:50
|
Revision: 1263 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1263&view=rev Author: fxprunayre Date: 2008-04-08 04:04:54 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Fixed removed duplicate strings Added OGC WxS and pdf harvester strings Modified Paths: -------------- trunk/web/geonetwork/loc/ar/xml/config.xml trunk/web/geonetwork/loc/ar/xml/harvesting.xml trunk/web/geonetwork/loc/ar/xml/strings.xml trunk/web/geonetwork/loc/cn/xml/config.xml trunk/web/geonetwork/loc/cn/xml/harvesting.xml trunk/web/geonetwork/loc/cn/xml/strings.xml trunk/web/geonetwork/loc/en/xml/harvesting.xml trunk/web/geonetwork/loc/es/xml/config.xml trunk/web/geonetwork/loc/es/xml/harvesting.xml trunk/web/geonetwork/loc/es/xml/strings.xml trunk/web/geonetwork/loc/fr/xml/config.xml trunk/web/geonetwork/loc/fr/xml/strings.xml Modified: trunk/web/geonetwork/loc/ar/xml/config.xml =================================================================== --- trunk/web/geonetwork/loc/ar/xml/config.xml 2008-04-08 11:02:47 UTC (rev 1262) +++ trunk/web/geonetwork/loc/ar/xml/config.xml 2008-04-08 11:04:54 UTC (rev 1263) @@ -2,30 +2,30 @@ <strings> <site>Site</site> - <name>Name</name> - <organ>Organization</organ> - + <name>Name</name> + <organ>Organization</organ> + <server>Server</server> - <host>Host</host> - <port>Port</port> - + <host>Host</host> + <port>Port</port> + <intranet>Intranet</intranet> - <network>Network</network> - <netmask>Netmask</netmask> - + <network>Network</network> + <netmask>Netmask</netmask> + <z3950>Z39.50 Server</z3950> - <enable>Enable</enable> - + <enable>Enable</enable> + <feedback>Feedback</feedback> - <email>EMail</email> - <smtpHost>SMTP Host</smtpHost> - <smtpPort>SMTP Port</smtpPort> - + <email>EMail</email> + <smtpHost>SMTP Host</smtpHost> + <smtpPort>SMTP Port</smtpPort> + <proxy>Proxy</proxy> - <use>Use</use> - + <use>Use</use> + <!-- Buttons --> - + <save>Save</save> <refresh>Refresh</refresh> <username>Username</username> @@ -42,103 +42,134 @@ <password>Password</password> <profile>Profile</profile> <!-- validator messages --> - + <validator> <length> - <cannotBeEmpty>The field '{NAME}' cannot be empty</cannotBeEmpty> - <invalidMinSize>The field '{NAME}' must be at least {VALUE} character(s) long</invalidMinSize> - <invalidMaxSize>The field '{NAME}' must be maximum {VALUE} character(s) long</invalidMaxSize> + <cannotBeEmpty> + The field '{NAME}' cannot be empty + </cannotBeEmpty> + <invalidMinSize> + The field '{NAME}' must be at least {VALUE} character(s) + long + </invalidMinSize> + <invalidMaxSize> + The field '{NAME}' must be maximum {VALUE} character(s) + long + </invalidMaxSize> </length> - + <integer> <notInt>The field '{NAME}' must be an integer</notInt> - <invalidMinValue>The field '{NAME}' must be >= {VALUE}</invalidMinValue> - <invalidMaxValue>The field '{NAME}' must be <= {VALUE}</invalidMaxValue> - </integer> - + <invalidMinValue> + The field '{NAME}' must be >= {VALUE} + </invalidMinValue> + <invalidMaxValue> + The field '{NAME}' must be <= {VALUE} + </invalidMaxValue> + </integer> + <alphanum> - <notAlphaNumeric>The field '{NAME}' must be alphanumeric (starting with a letter)</notAlphaNumeric> + <notAlphaNumeric> + The field '{NAME}' must be alphanumeric (starting with a + letter) + </notAlphaNumeric> </alphanum> - + <hostname> - <notHostName>The field '{NAME}' is not a valid host name</notHostName> + <notHostName> + The field '{NAME}' is not a valid host name + </notHostName> </hostname> - + <url> <notURL>The field '{NAME}' is not a valid URL</notURL> </url> - + <ipaddress> <notIP>The field '{NAME}' is not a valid IP address</notIP> </ipaddress> </validator> - + <!-- display messages --> - + <cannotGet>Unable to get the system configuration</cannotGet> <cannotSave>Unable to save the system configuration</cannotSave> <saveOk>System configuration saved.</saveOk> - + <!-- tooltips --> - + <tips> - <tip id="site.name"> - Used to identify the installation. - </tip> - + <tip id="site.name">Used to identify the installation.</tip> + <!-- server --> - + <tip id="server.host"> - The server's <b>host</b> and <b>port</b> are used to create URLs to - the GeoNetwork server. For example, they are used during metadata - editing to create resource links and when returning the server's - capabilities during a CS/W request. - <br/> - <b>Please note:</b> you should use the GAST tool to reflect this - change inside the metadata. + The server's + <b>host</b> + and + <b>port</b> + are used to create URLs to the GeoNetwork server. For + example, they are used during metadata editing to create + resource links and when returning the server's capabilities + during a CS/W request. + <br /> + <b>Please note:</b> + you should use the GAST tool to reflect this change inside + the metadata. </tip> - + <!-- intranet --> - + <tip id="intranet.network"> - The <b>network</b> and <b>netmask</b> parameters are used to identify - internal connections to GeoNetwork, that is, to identify the intranet - group. + The + <b>network</b> + and + <b>netmask</b> + parameters are used to identify internal connections to + GeoNetwork, that is, to identify the intranet group. </tip> - + <!-- Z39.50 --> - + <tip id="z3950.enable"> - If set, during startup GeoNetwork will start the Z39.50 server component. - This component uses the ISO23950 protocol. - <br/> - <b>Please note:</b> restart GeoNetwork to make this change active. + If set, during startup GeoNetwork will start the Z39.50 + server component. This component uses the ISO23950 protocol. + <br /> + <b>Please note:</b> + restart GeoNetwork to make this change active. </tip> - + <tip id="z3950.port"> Change the Z39.50 listening port. - <br/> - <b>Please note:</b> restart GeoNetwork to make this change active. + <br /> + <b>Please note:</b> + restart GeoNetwork to make this change active. </tip> - + <!-- proxy --> - + <tip id="proxy.use"> - If set, GeoNetwork will use the provided proxy parameters when accessing - remote nodes. For example, this is used during the harvesting. + If set, GeoNetwork will use the provided proxy parameters + when accessing remote nodes. For example, this is used + during the harvesting. </tip> - + <!-- feedback --> - + <tip id="feedback.email"> - This is the administrator's email address used to send feedback. + This is the administrator's email address used to send + feedback. </tip> - + <tip id="feedback.mail.host"> - The SMTP <b>host</b> and <b>port</b> parameters are used to send emails - to GeoNetwork's users when a resource is downloaded. + The SMTP + <b>host</b> + and + <b>port</b> + parameters are used to send emails to GeoNetwork's users + when a resource is downloaded. </tip> </tips> - + </strings> Modified: trunk/web/geonetwork/loc/ar/xml/harvesting.xml =================================================================== --- trunk/web/geonetwork/loc/ar/xml/harvesting.xml 2008-04-08 11:02:47 UTC (rev 1262) +++ trunk/web/geonetwork/loc/ar/xml/harvesting.xml 2008-04-08 11:04:54 UTC (rev 1263) @@ -45,7 +45,6 @@ <site>Site</site> - <name>Name</name> <host>Host</host> <port>Port</port> <servlet>Servlet</servlet> @@ -69,12 +68,10 @@ <warn>You can retrieve only after filling the site part</warn> <options>Options</options> - <every>Every</every> <everySpec>(days : hours : minutes)</everySpec> <oneRun>One run only</oneRun> <createGroups>Create groups</createGroups> <createCateg>Create categories</createCateg> - <status>Status</status> <active>Active</active> <inactive></inactive> <retrieveSources>Retrieve sources</retrieveSources> @@ -84,7 +81,6 @@ <criteria>Criteria</criteria> <validate>Validate</validate> <recurse>Recurse</recurse> - <host>Host</host> <privileges>Privileges</privileges> <categories>Categories</categories> <url>URL</url> @@ -205,10 +201,42 @@ <unretrievable>Unretrievable</unretrievable> <badFormat>Bad XML format</badFormat> <doesNotValidate>Does not validate</doesNotValidate> - </tipHeader> + <datasetAdded>Datasets</datasetAdded> + <datasetExist>Existing datasets</datasetExist> + <datasetMdUrl>Metadata Url used</datasetMdUrl> + <thumbnails>Thumbnails</thumbnails> + <thumbnailsFailed>Thumbnails failed</thumbnailsFailed> + </tipHeader> <notRun>Waiting for the first run</notRun> + + <info type="ogcwxs"> + <short>OGC WxS</short> + <long>OGC Web services (ie. WMS, WFS and WCS)</long> + </info> + + <wxstype>Type of OGC webservice</wxstype> + <wxstypes> + <type value="WMS1.0.0">OGC Web Map Service (WMS) Version 1.0.0</type> + <type value="WMS1.1.1">OGC Web Map Service (WMS) Version 1.1.1 - preferred</type> + <!-- <type value="WMS1.3.0">OGC Web Map Service (WMS) Version 1.3.0</type> --> + <type value="WFS1.0.0">OGC Web Feature Service (WFS) Version 1.0.0</type> + <type value="WFS1.1.0">OGC Web Feature Service (WFS) Version 1.1.0 - preferred</type> + <type value="WCS1.0.0">OGC Web Coverage Service (WCS) Version 1.0.0</type> + </wxstypes> + + <wxslang>Metadata language</wxslang> + <wxsImp>Type of import</wxsImp> + <wxs119Only>By default GetCapabilities harvester will create<br/> only metadata for services in ISO19119.</wxs119Only> + <wxs139>Create metadata for layer elements using GetCapabilities information.</wxs139> + <wxs139Layer>Create metadata for layer elements using metadataURL attributs (if existing, if not use GetCapabilities).</wxs139Layer> + <createThumbnails>Create thumbnails for WMS layers.</createThumbnails> + + <serviceCategory>Category for service</serviceCategory> + <datasetCategory>Category for datasets</datasetCategory> + + <tips> <!-- geonetwork harvesting type - - - - - - - - - - - - - - - - - - - - - - --> @@ -331,6 +359,49 @@ <tip id="oai.prefix"> Choose the metadata format you want to harvest. </tip> + + <!-- OGCWXS harvesting type - - - - - - - - - - - - - - - - - - - - - - --> + + <tip id="ogcwxs.wxstype"> + The type of the OGC web services. + </tip> + + <tip id="ogcwxs.version"> + The version of the OGC web services. + </tip> + + <tip id="ogcwxs.lang"> + The language of the produced metadata. + </tip> + + <tip id="ogcwxs.capabUrl"> + The given URL must point to a web service entry point. The format of a + URL is like this:<br/> + http://HOST/PATH + </tip> + + + + <tip id="ogcwxs.addSearch"> + Add one search on the remote server. You have to specify at least one search in order to + retrieve some metadata. + </tip> + + <tip id="ogcwxs.groups"> + You can choose the privileges to associate to harvested metadata. + </tip> + + <tip id="ogcwxs.addGroups"> + Select one or more groups (using the <b><CTRL></b> key) on the left panel and press this button. + </tip> + + <tip id="ogcwxs.categories"> + You can assign one or more categories to harvested metadata. Use the <b><CTRL></b> + key to select more than one category. + </tip> + + + </tips> </strings> Modified: trunk/web/geonetwork/loc/ar/xml/strings.xml =================================================================== --- trunk/web/geonetwork/loc/ar/xml/strings.xml 2008-04-08 11:02:47 UTC (rev 1262) +++ trunk/web/geonetwork/loc/ar/xml/strings.xml 2008-04-08 11:04:54 UTC (rev 1263) @@ -379,6 +379,7 @@ <rss>فتح RSS</rss> <rtitle>عنوان</rtitle> <save>حفظ</save> + <savepdf>Save search results as pdf</savepdf> <saveAndClose>حفظ وإغلاق</saveAndClose> <saveAndValidate>التحقق</saveAndValidate> <savexml> Modified: trunk/web/geonetwork/loc/cn/xml/config.xml =================================================================== --- trunk/web/geonetwork/loc/cn/xml/config.xml 2008-04-08 11:02:47 UTC (rev 1262) +++ trunk/web/geonetwork/loc/cn/xml/config.xml 2008-04-08 11:04:54 UTC (rev 1263) @@ -2,27 +2,27 @@ <strings> <site>Site</site> - <name>Name</name> - <organ>Organization</organ> - + <name>Name</name> + <organ>Organization</organ> + <server>Server</server> - <host>Host</host> - <port>Port</port> - + <host>Host</host> + <port>Port</port> + <intranet>Intranet</intranet> - <network>Network</network> - <netmask>Netmask</netmask> - + <network>Network</network> + <netmask>Netmask</netmask> + <z3950>Z39.50 Server</z3950> - <enable>Enable</enable> - + <enable>Enable</enable> + <feedback>Feedback</feedback> - <email>EMail</email> - <smtpHost>SMTP Host</smtpHost> - <smtpPort>SMTP Port</smtpPort> - + <email>EMail</email> + <smtpHost>SMTP Host</smtpHost> + <smtpPort>SMTP Port</smtpPort> + <proxy>Proxy</proxy> - <use>Use</use> + <use>Use</use> <username>Username</username> <removedMetadata>Removed metadata</removedMetadata> <dir>Directory</dir> @@ -37,108 +37,139 @@ <password>Password</password> <profile>Profile</profile> <!-- Buttons --> - + <save>Save</save> <refresh>Refresh</refresh> - + <!-- validator messages --> - + <validator> <length> - <cannotBeEmpty>The field '{NAME}' cannot be empty</cannotBeEmpty> - <invalidMinSize>The field '{NAME}' must be at least {VALUE} character(s) long</invalidMinSize> - <invalidMaxSize>The field '{NAME}' must be maximum {VALUE} character(s) long</invalidMaxSize> + <cannotBeEmpty> + The field '{NAME}' cannot be empty + </cannotBeEmpty> + <invalidMinSize> + The field '{NAME}' must be at least {VALUE} character(s) + long + </invalidMinSize> + <invalidMaxSize> + The field '{NAME}' must be maximum {VALUE} character(s) + long + </invalidMaxSize> </length> - + <integer> <notInt>The field '{NAME}' must be an integer</notInt> - <invalidMinValue>The field '{NAME}' must be >= {VALUE}</invalidMinValue> - <invalidMaxValue>The field '{NAME}' must be <= {VALUE}</invalidMaxValue> - </integer> - + <invalidMinValue> + The field '{NAME}' must be >= {VALUE} + </invalidMinValue> + <invalidMaxValue> + The field '{NAME}' must be <= {VALUE} + </invalidMaxValue> + </integer> + <alphanum> - <notAlphaNumeric>The field '{NAME}' must be alphanumeric (starting with a letter)</notAlphaNumeric> + <notAlphaNumeric> + The field '{NAME}' must be alphanumeric (starting with a + letter) + </notAlphaNumeric> </alphanum> - + <hostname> - <notHostName>The field '{NAME}' is not a valid host name</notHostName> + <notHostName> + The field '{NAME}' is not a valid host name + </notHostName> </hostname> - + <url> <notURL>The field '{NAME}' is not a valid URL</notURL> </url> - + <ipaddress> <notIP>The field '{NAME}' is not a valid IP address</notIP> </ipaddress> </validator> - + <!-- display messages --> - + <cannotGet>Unable to get the system configuration</cannotGet> <cannotSave>Unable to save the system configuration</cannotSave> <saveOk>System configuration saved.</saveOk> - + <!-- tooltips --> - + <tips> - <tip id="site.name"> - Used to identify the installation. - </tip> - + <tip id="site.name">Used to identify the installation.</tip> + <!-- server --> - + <tip id="server.host"> - The server's <b>host</b> and <b>port</b> are used to create URLs to - the GeoNetwork server. For example, they are used during metadata - editing to create resource links and when returning the server's - capabilities during a CS/W request. - <br/> - <b>Please note:</b> you should use the GAST tool to reflect this - change inside the metadata. + The server's + <b>host</b> + and + <b>port</b> + are used to create URLs to the GeoNetwork server. For + example, they are used during metadata editing to create + resource links and when returning the server's capabilities + during a CS/W request. + <br /> + <b>Please note:</b> + you should use the GAST tool to reflect this change inside + the metadata. </tip> - + <!-- intranet --> - + <tip id="intranet.network"> - The <b>network</b> and <b>netmask</b> parameters are used to identify - internal connections to GeoNetwork, that is, to identify the intranet - group. + The + <b>network</b> + and + <b>netmask</b> + parameters are used to identify internal connections to + GeoNetwork, that is, to identify the intranet group. </tip> - + <!-- Z39.50 --> - + <tip id="z3950.enable"> - If set, during startup GeoNetwork will start the Z39.50 server component. - This component uses the ISO23950 protocol. - <br/> - <b>Please note:</b> restart GeoNetwork to make this change active. + If set, during startup GeoNetwork will start the Z39.50 + server component. This component uses the ISO23950 protocol. + <br /> + <b>Please note:</b> + restart GeoNetwork to make this change active. </tip> - + <tip id="z3950.port"> Change the Z39.50 listening port. - <br/> - <b>Please note:</b> restart GeoNetwork to make this change active. + <br /> + <b>Please note:</b> + restart GeoNetwork to make this change active. </tip> - + <!-- proxy --> - + <tip id="proxy.use"> - If set, GeoNetwork will use the provided proxy parameters when accessing - remote nodes. For example, this is used during the harvesting. + If set, GeoNetwork will use the provided proxy parameters + when accessing remote nodes. For example, this is used + during the harvesting. </tip> - + <!-- feedback --> - + <tip id="feedback.email"> - This is the administrator's email address used to send feedback. + This is the administrator's email address used to send + feedback. </tip> - + <tip id="feedback.mail.host"> - The SMTP <b>host</b> and <b>port</b> parameters are used to send emails - to GeoNetwork's users when a resource is downloaded. + The SMTP + <b>host</b> + and + <b>port</b> + parameters are used to send emails to GeoNetwork's users + when a resource is downloaded. </tip> </tips> - + </strings> Modified: trunk/web/geonetwork/loc/cn/xml/harvesting.xml =================================================================== --- trunk/web/geonetwork/loc/cn/xml/harvesting.xml 2008-04-08 11:02:47 UTC (rev 1262) +++ trunk/web/geonetwork/loc/cn/xml/harvesting.xml 2008-04-08 11:04:54 UTC (rev 1263) @@ -41,11 +41,35 @@ <long>OAI Protocol for Metadata Harvesting 2.0</long> </info> + <info type="ogcwxs"> + <short>OGC WxS</short> + <long>OGC Web services (ie. WMS, WFS and WCS)</long> + </info> + + <wxstype>Type of OGC webservice</wxstype> + <wxstypes> + <type value="WMS1.0.0">OGC Web Map Service (WMS) Version 1.0.0</type> + <type value="WMS1.1.1">OGC Web Map Service (WMS) Version 1.1.1 - preferred</type> + <!-- <type value="WMS1.3.0">OGC Web Map Service (WMS) Version 1.3.0</type> --> + <type value="WFS1.0.0">OGC Web Feature Service (WFS) Version 1.0.0</type> + <type value="WFS1.1.0">OGC Web Feature Service (WFS) Version 1.1.0 - preferred</type> + <type value="WCS1.0.0">OGC Web Coverage Service (WCS) Version 1.0.0</type> + </wxstypes> + + <wxslang>Metadata language</wxslang> + <wxsImp>Type of import</wxsImp> + <wxs119Only>By default GetCapabilities harvester will create<br/> only metadata for services in ISO19119.</wxs119Only> + <wxs139>Create metadata for layer elements using GetCapabilities information.</wxs139> + <wxs139Layer>Create metadata for layer elements using metadataURL attributs (if existing, if not use GetCapabilities).</wxs139Layer> + <createThumbnails>Create thumbnails for WMS layers.</createThumbnails> + + <serviceCategory>Category for service</serviceCategory> + <datasetCategory>Category for datasets</datasetCategory> + + <!-- Editing form - - - - - - - - - - - - - - - - - - - - - - --> <site>Site</site> - - <name>Name</name> <host>Host</host> <port>Port</port> <servlet>Servlet</servlet> @@ -69,12 +93,10 @@ <warn>You can retrieve only after filling the site part</warn> <options>Options</options> - <every>Every</every> <everySpec>(days : hours : minutes)</everySpec> <oneRun>One run only</oneRun> <createGroups>Create groups</createGroups> <createCateg>Create categories</createCateg> - <status>Status</status> <active>Active</active> <inactive></inactive> <retrieveSources>Retrieve sources</retrieveSources> @@ -84,7 +106,6 @@ <criteria>Criteria</criteria> <validate>Validate</validate> <recurse>Recurse</recurse> - <host>Host</host> <privileges>Privileges</privileges> <categories>Categories</categories> <url>URL</url> @@ -205,6 +226,11 @@ <unretrievable>Unretrievable</unretrievable> <badFormat>Bad XML format</badFormat> <doesNotValidate>Does not validate</doesNotValidate> + <datasetAdded>Datasets</datasetAdded> + <datasetExist>Existing datasets</datasetExist> + <datasetMdUrl>Metadata Url used</datasetMdUrl> + <thumbnails>Thumbnails</thumbnails> + <thumbnailsFailed>Thumbnails failed</thumbnailsFailed> </tipHeader> <notRun>Waiting for the first run</notRun> @@ -331,6 +357,47 @@ <tip id="oai.prefix"> Choose the metadata format you want to harvest. </tip> + <!-- OGCWXS harvesting type - - - - - - - - - - - - - - - - - - - - - - --> + + <tip id="ogcwxs.wxstype"> + The type of the OGC web services. + </tip> + + <tip id="ogcwxs.version"> + The version of the OGC web services. + </tip> + + <tip id="ogcwxs.lang"> + The language of the produced metadata. + </tip> + + <tip id="ogcwxs.capabUrl"> + The given URL must point to a web service entry point. The format of a + URL is like this:<br/> + http://HOST/PATH + </tip> + + + + <tip id="ogcwxs.addSearch"> + Add one search on the remote server. You have to specify at least one search in order to + retrieve some metadata. + </tip> + + <tip id="ogcwxs.groups"> + You can choose the privileges to associate to harvested metadata. + </tip> + + <tip id="ogcwxs.addGroups"> + Select one or more groups (using the <b><CTRL></b> key) on the left panel and press this button. + </tip> + + <tip id="ogcwxs.categories"> + You can assign one or more categories to harvested metadata. Use the <b><CTRL></b> + key to select more than one category. + </tip> + + </tips> </strings> Modified: trunk/web/geonetwork/loc/cn/xml/strings.xml =================================================================== --- trunk/web/geonetwork/loc/cn/xml/strings.xml 2008-04-08 11:02:47 UTC (rev 1262) +++ trunk/web/geonetwork/loc/cn/xml/strings.xml 2008-04-08 11:04:54 UTC (rev 1263) @@ -31,6 +31,7 @@ <setAll>Set All</setAll> <Reviewer>Content reviewer</Reviewer> <waitGetCap>Loading server layers, please wait...</waitGetCap> + <savepdf>Save search results as pdf</savepdf> <savexml> <dc>Save Dublin Core metadata as XML</dc> <fgdc>Save FGDC metadata as XML</fgdc> Modified: trunk/web/geonetwork/loc/en/xml/harvesting.xml =================================================================== --- trunk/web/geonetwork/loc/en/xml/harvesting.xml 2008-04-08 11:02:47 UTC (rev 1262) +++ trunk/web/geonetwork/loc/en/xml/harvesting.xml 2008-04-08 11:04:54 UTC (rev 1263) @@ -41,11 +41,35 @@ <long>OAI Protocol for Metadata Harvesting 2.0</long> </info> + <info type="ogcwxs"> + <short>OGC WxS</short> + <long>OGC Web services (ie. WMS, WFS and WCS)</long> + </info> + <!-- Editing form - - - - - - - - - - - - - - - - - - - - - - --> <site>Site</site> + + <wxstype>Type of OGC webservice</wxstype> + <wxstypes> + <type value="WMS1.0.0">OGC Web Map Service (WMS) Version 1.0.0</type> + <type value="WMS1.1.1">OGC Web Map Service (WMS) Version 1.1.1 - preferred</type> + <!-- <type value="WMS1.3.0">OGC Web Map Service (WMS) Version 1.3.0</type> --> + <type value="WFS1.0.0">OGC Web Feature Service (WFS) Version 1.0.0</type> + <type value="WFS1.1.0">OGC Web Feature Service (WFS) Version 1.1.0 - preferred</type> + <type value="WCS1.0.0">OGC Web Coverage Service (WCS) Version 1.0.0</type> + </wxstypes> - <name>Name</name> + <wxslang>Metadata language</wxslang> + <wxsImp>Type of import</wxsImp> + <wxs119Only>By default GetCapabilities harvester will create<br/> only metadata for services in ISO19119.</wxs119Only> + <wxs139>Create metadata for layer elements using GetCapabilities information.</wxs139> + <wxs139Layer>Create metadata for layer elements using metadataURL attributs (if existing, if not use GetCapabilities).</wxs139Layer> + <createThumbnails>Create thumbnails for WMS layers.</createThumbnails> + + <serviceCategory>Category for service</serviceCategory> + <datasetCategory>Category for datasets</datasetCategory> + <host>Host</host> <port>Port</port> <servlet>Servlet</servlet> @@ -69,12 +93,10 @@ <warn>You can retrieve only after filling the site part</warn> <options>Options</options> - <every>Every</every> <everySpec>(days : hours : minutes)</everySpec> <oneRun>One run only</oneRun> <createGroups>Create groups</createGroups> <createCateg>Create categories</createCateg> - <status>Status</status> <active>Active</active> <inactive></inactive> <retrieveSources>Retrieve sources</retrieveSources> @@ -84,11 +106,10 @@ <criteria>Criteria</criteria> <validate>Validate</validate> <recurse>Recurse</recurse> - <host>Host</host> <privileges>Privileges</privileges> <categories>Categories</categories> <url>URL</url> - <capabUrl>Capabilities URL</capabUrl> + <capabUrl>Service URL</capabUrl> <icon>Icon</icon> <group>Group</group> <groups>Groups</groups> @@ -205,6 +226,11 @@ <unretrievable>Unretrievable</unretrievable> <badFormat>Bad XML format</badFormat> <doesNotValidate>Does not validate</doesNotValidate> + <datasetAdded>Datasets</datasetAdded> + <datasetExist>Existing datasets</datasetExist> + <datasetMdUrl>Metadata Url used</datasetMdUrl> + <thumbnails>Thumbnails</thumbnails> + <thumbnailsFailed>Thumbnails failed</thumbnailsFailed> </tipHeader> <notRun>Waiting for the first run</notRun> @@ -266,6 +292,47 @@ key to select more than one category. </tip> + <!-- OGCWXS harvesting type - - - - - - - - - - - - - - - - - - - - - - --> + + <tip id="ogcwxs.wxstype"> + The type of the OGC web services. + </tip> + + <tip id="ogcwxs.version"> + The version of the OGC web services. + </tip> + + <tip id="ogcwxs.lang"> + The language of the produced metadata. + </tip> + + <tip id="ogcwxs.capabUrl"> + The given URL must point to a web service entry point. The format of a + URL is like this:<br/> + http://HOST/PATH + </tip> + + + + <tip id="ogcwxs.addSearch"> + Add one search on the remote server. You have to specify at least one search in order to + retrieve some metadata. + </tip> + + <tip id="ogcwxs.groups"> + You can choose the privileges to associate to harvested metadata. + </tip> + + <tip id="ogcwxs.addGroups"> + Select one or more groups (using the <b><CTRL></b> key) on the left panel and press this button. + </tip> + + <tip id="ogcwxs.categories"> + You can assign one or more categories to harvested metadata. Use the <b><CTRL></b> + key to select more than one category. + </tip> + + <!-- OAI-PMH harvesting type - - - - - - - - - - - - - - - - - - - - - --> <tip id="oai.url"> Modified: trunk/web/geonetwork/loc/es/xml/config.xml =================================================================== --- trunk/web/geonetwork/loc/es/xml/config.xml 2008-04-08 11:02:47 UTC (rev 1262) +++ trunk/web/geonetwork/loc/es/xml/config.xml 2008-04-08 11:04:54 UTC (rev 1263) @@ -2,27 +2,27 @@ <strings> <site>Sitio</site> - <name>Nombre</name> - <organ>Organización</organ> - + <name>Nombre</name> + <organ>Organización</organ> + <server>Servidor</server> - <host>Servidor</host> - <port>Puerto</port> - + <host>Servidor</host> + <port>Puerto</port> + <intranet>Intranet</intranet> - <network>Red</network> - <netmask>Mascara de red</netmask> - + <network>Red</network> + <netmask>Mascara de red</netmask> + <z3950>Servidor Z39.50</z3950> - <enable>Activar</enable> - + <enable>Activar</enable> + <feedback>Retroalimentación</feedback> - <email>Correo</email> - <smtpHost>Servidor SMTP</smtpHost> - <smtpPort>Puerto SMTP</smtpPort> - + <email>Correo</email> + <smtpHost>Servidor SMTP</smtpHost> + <smtpPort>Puerto SMTP</smtpPort> + <proxy>Proxy</proxy> - <use>Uso</use> + <use>Uso</use> <username>Username</username> <removedMetadata>Removed metadata</removedMetadata> <dir>Directory</dir> @@ -37,107 +37,146 @@ <password>Password</password> <profile>Profile</profile> <!-- Buttons --> - + <save>Guardar</save> <refresh>Refrescar</refresh> - + <!-- validator messages --> - + <validator> <length> - <cannotBeEmpty>El campo '{NAME}' no puede ser vacio</cannotBeEmpty> - <invalidMinSize>El campo '{NAME}' debe ser al menos de {VALUE} caracter(es) de longitud</invalidMinSize> - <invalidMaxSize>El campo '{NAME}' debe de ser de al máximo {VALUE} caracter(es) de longitud</invalidMaxSize> + <cannotBeEmpty> + El campo '{NAME}' no puede ser vacio + </cannotBeEmpty> + <invalidMinSize> + El campo '{NAME}' debe ser al menos de {VALUE} + caracter(es) de longitud + </invalidMinSize> + <invalidMaxSize> + El campo '{NAME}' debe de ser de al máximo {VALUE} + caracter(es) de longitud + </invalidMaxSize> </length> - + <integer> <notInt>El campo '{NAME}' debe ser un entero</notInt> - <invalidMinValue>El campo '{NAME}' debe ser >= {VALUE}</invalidMinValue> - <invalidMaxValue>El campo '{NAME}' debe ser <= {VALUE}</invalidMaxValue> - </integer> - + <invalidMinValue> + El campo '{NAME}' debe ser >= {VALUE} + </invalidMinValue> + <invalidMaxValue> + El campo '{NAME}' debe ser <= {VALUE} + </invalidMaxValue> + </integer> + <alphanum> - <notAlphaNumeric>El campo '{NAME}' debe ser alfanúmerico (comenzando con una letra)</notAlphaNumeric> + <notAlphaNumeric> + El campo '{NAME}' debe ser alfanúmerico (comenzando con + una letra) + </notAlphaNumeric> </alphanum> - + <hostname> - <notHostName>El campo '{NAME}' no es un nombre de servidor válido</notHostName> + <notHostName> + El campo '{NAME}' no es un nombre de servidor válido + </notHostName> </hostname> - + <url> <notURL>El campo '{NAME}' no es una URL válida</notURL> </url> - + <ipaddress> - <notIP>El campo '{NAME}' no es un dirección IP válida</notIP> + <notIP> + El campo '{NAME}' no es un dirección IP válida + </notIP> </ipaddress> </validator> - + <!-- display messages --> - - <cannotGet>No es posible obtener la configuración del sistema</cannotGet> - <cannotSave>No es posible guardar la configuración del sistema</cannotSave> + + <cannotGet> + No es posible obtener la configuración del sistema + </cannotGet> + <cannotSave> + No es posible guardar la configuración del sistema + </cannotSave> <saveOk>Configuración del sistema almacenada.</saveOk> <!-- tooltips --> - + <tips> - <tip id="site.name"> - Usado para identificar la instalación. - </tip> - + <tip id="site.name">Usado para identificar la instalación.</tip> + <!-- server --> - + <tip id="server.host"> - El <b>servidor</b> y <b>puerto</b> son usados para crear URLs - al servidor GeoNetwork. Por ejemplo, son usados durante la edición - de metadatos para crear ligas a los recursos y para regresar el - capabilities del servidor durante un requerimiento CS/W. - <br/> - <b>Por favor note:</b> debería utilizar la herramienta GAST para reflejar este + El + <b>servidor</b> + y + <b>puerto</b> + son usados para crear URLs al servidor GeoNetwork. Por + ejemplo, son usados durante la edición de metadatos para + crear ligas a los recursos y para regresar el capabilities + del servidor durante un requerimiento CS/W. + <br /> + <b>Por favor note:</b> + debería utilizar la herramienta GAST para reflejar este cambio dentro de los metadatos. </tip> - + <!-- intranet --> - + <tip id="intranet.network"> - Los parámetros <b>red</b> y <b>máscara de red </b> son usados para identificar - conexiones internas a GeoNetwork, esto es, para identificar el grupo intranet. + Los parámetros + <b>red</b> + y + <b>máscara de red</b> + son usados para identificar conexiones internas a + GeoNetwork, esto es, para identificar el grupo intranet. </tip> - + <!-- Z39.50 --> - + <tip id="z3950.enable"> - Si está establecido, durante la inicialización Geonetwork iniciará el componente de servidor Z39.50. - Este componente usa el protocolo ISO23950. - <br/> - <b>Por favor note:</b> debe reiniciar GeoNetwork para que este cambio tenga efecto. + Si está establecido, durante la inicialización Geonetwork + iniciará el componente de servidor Z39.50. Este componente + usa el protocolo ISO23950. + <br /> + <b>Por favor note:</b> + debe reiniciar GeoNetwork para que este cambio tenga efecto. </tip> - + <tip id="z3950.port"> Cambie el puerto de Z39.50. - <br/> - <b>Por favor note:</b> debe reiniciar GeoNetwork para que este cambio tenga efecto. + <br /> + <b>Por favor note:</b> + debe reiniciar GeoNetwork para que este cambio tenga efecto. </tip> - + <!-- proxy --> - + <tip id="proxy.use"> - Si está establecido, GeoNetwork usará los parámetros para accesar - nodos remotos. Por ejemplo, es usado durante el harvesting. + Si está establecido, GeoNetwork usará los parámetros para + accesar nodos remotos. Por ejemplo, es usado durante el + harvesting. </tip> - + <!-- feedback --> - + <tip id="feedback.email"> - Este es el correo del administrador usado para retroalimentación. + Este es el correo del administrador usado para + retroalimentación. </tip> - + <tip id="feedback.mail.host"> - Los parámetros SMTP <b>servidor</b> y <b>puerto</b> son usados para enviar correos - a los usuarios de GeoNetwork cuando un recurso es bajado. + Los parámetros SMTP + <b>servidor</b> + y + <b>puerto</b> + son usados para enviar correos a los usuarios de GeoNetwork + cuando un recurso es bajado. </tip> </tips> - + </strings> Modified: trunk/web/geonetwork/loc/es/xml/harvesting.xml =================================================================== --- trunk/web/geonetwork/loc/es/xml/harvesting.xml 2008-04-08 11:02:47 UTC (rev 1262) +++ trunk/web/geonetwork/loc/es/xml/harvesting.xml 2008-04-08 11:04:54 UTC (rev 1263) @@ -40,12 +40,35 @@ <short>OAIPMH</short> <long>Protocolo OAI para Metadata Harvesting 2.0</long> </info> - + <info type="ogcwxs"> + <short>OGC WxS</short> + <long>OGC Web services (ie. WMS, WFS and WCS)</long> + </info> + + <wxstype>Type of OGC webservice</wxstype> + <wxstypes> + <type value="WMS1.0.0">OGC Web Map Service (WMS) Version 1.0.0</type> + <type value="WMS1.1.1">OGC Web Map Service (WMS) Version 1.1.1 - preferred</type> + <!-- <type value="WMS1.3.0">OGC Web Map Service (WMS) Version 1.3.0</type> --> + <type value="WFS1.0.0">OGC Web Feature Service (WFS) Version 1.0.0</type> + <type value="WFS1.1.0">OGC Web Feature Service (WFS) Version 1.1.0 - preferred</type> + <type value="WCS1.0.0">OGC Web Coverage Service (WCS) Version 1.0.0</type> + </wxstypes> + + <wxslang>Metadata language</wxslang> + <wxsImp>Type of import</wxsImp> + <wxs119Only>By default GetCapabilities harvester will create<br/> only metadata for services in ISO19119.</wxs119Only> + <wxs139>Create metadata for layer elements using GetCapabilities information.</wxs139> + <wxs139Layer>Create metadata for layer elements using metadataURL attributs (if existing, if not use GetCapabilities).</wxs139Layer> + <createThumbnails>Create thumbnails for WMS layers.</createThumbnails> + + <serviceCategory>Category for service</serviceCategory> + <datasetCategory>Category for datasets</datasetCategory> + <!-- Editing form - - - - - - - - - - - - - - - - - - - - - - --> <site>Site</site> - <name>Nombre</name> <host>Servidor</host> <port>Puerto</port> <servlet>Servlet</servlet> @@ -69,12 +92,10 @@ <warn>Solo puedes recuperar despues de haber llenado la parte del sitio</warn> <options>Opciones</options> - <every>Cada</every> <everySpec>(dias : horas : minutos)</everySpec> <oneRun>Solo una ejecución</oneRun> <createGroups>Crear grupos</createGroups> <createCateg>Crear categorias</createCateg> - <status>Estado</status> <active>Activo</active> <inactive></inactive> <retrieveSources>Recuperar fuentes</retrieveSources> @@ -84,7 +105,6 @@ <criteria>Criterios</criteria> <validate>Validar</validate> <recurse>Recurso</recurse> - <host>Servidor</host> <privileges>Privilegios</privileges> <categories>Categorias</categories> <url>URL</url> @@ -205,6 +225,11 @@ <unretrievable>No recuperable</unretrievable> <badFormat>Mal formato XML</badFormat> <doesNotValidate>No validar</doesNotValidate> + <datasetAdded>Datasets</datasetAdded> + <datasetExist>Existing datasets</datasetExist> + <datasetMdUrl>Metadata Url used</datasetMdUrl> + <thumbnails>Thumbnails</thumbnails> + <thumbnailsFailed>Thumbnails failed</thumbnailsFailed> </tipHeader> <notRun>Esperando por la primera ejecución</notRun> @@ -331,6 +356,48 @@ <tip id="oai.prefix"> Elija el formato de metadato al cual desea hacer harvesting. </tip> + + <!-- OGCWXS harvesting type - - - - - - - - - - - - - - - - - - - - - - --> + + <tip id="ogcwxs.wxstype"> + The type of the OGC web services. + </tip> + + <tip id="ogcwxs.version"> + The version of the OGC web services. + </tip> + + <tip id="ogcwxs.lang"> + The language of the produced metadata. + </tip> + + <tip id="ogcwxs.capabUrl"> + The given URL must point to a web service entry point. The format of a + URL is like this:<br/> + http://HOST/PATH + </tip> + + + + <tip id="ogcwxs.addSearch"> + Add one search on the remote server. You have to specify at least one search in order to + retrieve some metadata. + </tip> + + <tip id="ogcwxs.groups"> + You can choose the privileges to associate to harvested metadata. + </tip> + + <tip id="ogcwxs.addGroups"> + Select one or more groups (using the <b><CTRL></b> key) on the left panel and press this button. + </tip> + + <tip id="ogcwxs.categories"> + You can assign one or more categories to harvested metadata. Use the <b><CTRL></b> + key to select more than one category. + </tip> + + </tips> </strings> Modified: trunk/web/geonetwork/loc/es/xml/strings.xml =================================================================== --- trunk/web/geonetwork/loc/es/xml/strings.xml 2008-04-08 11:02:47 UTC (rev 1262) +++ trunk/web/geonetwork/loc/es/xml/strings.xml 2008-04-08 11:04:54 UTC (rev 1263) @@ -9,7 +9,6 @@ <extensionInfoTab>Ext. Info</extensionInfoTab> <transferOwnership>Transfer ownership</transferOwnership> <transferOwnershipDes>Transfer metadata ownership to another user</transferOwnershipDes> - <highlights>Highlights</highlights> <intermapSearch>Geographic search</intermapSearch> <opensearch> GeoNetwork opensearch service allow search to be made into the metadata catalog. @@ -18,7 +17,8 @@ <protocol>Protocol</protocol> <Reviewer>Content reviewer</Reviewer> <waitGetCap>Loading server layers, please wait...</waitGetCap> - <savexml> + <savepdf>Save search results as pdf</savepdf> + <savexml> <dc>Guardar metadatos de Dublin Core como XML</dc> <fgdc>Guardar metadatos FGDC como XML</fgdc> <iso19115Esri>Guardar metadatos ISO19115 en XML para ESRI ArcCatalog</iso19115Esri> @@ -163,7 +163,6 @@ <confirmNewPassword>Confirmar nueva contraseña</confirmNewPassword> <confirmPassword>Confirmar la Contraseña</confirmPassword> <constraintsTab>Restricciones</constraintsTab> - <contactUs>Inf. Contacto</contactUs> <convert>Convertir</convert> <copyright1>Copyright</copyright1> <copyright2> @@ -244,7 +243,6 @@ <help>Ayuda</help> <helpComplete>Ayuda Completa</helpComplete> <hideAdvancedOptions>Búsqueda Simple</hideAdvancedOptions> - <highlights>Destacados</highlights> <hitsPerPage>Resultados por página</hitsPerPage> <hitsPerPageChoice value="10">10</hitsPerPageChoice> <hitsPerPageChoice value="20">20</hitsPerPageChoice> Modified: trunk/web/geonetwork/loc/fr/xml/config.xml =================================================================== --- trunk/web/geonetwork/loc/fr/xml/config.xml 2008-04-08 11:02:47 UTC (rev 1262) +++ trunk/web/geonetwork/loc/fr/xml/config.xml 2008-04-08 11:04:54 UTC (rev 1263) @@ -1,132 +1,184 @@ <?xml version="1.0" encoding="UTF-8"?> <strings> + <username>Utilisateur</username> + <removedMetadata>Supprimer metadonnées</removedMetadata> + <dir>Répertoire</dir> + <ldap>LDAP Authentication</ldap> + <defProfile>Profil par défaut</defProfile> + <login>Login</login> + <userDN>User DN</userDN> + <distNames>Distinguished names</distNames> + <baseDN>Base</baseDN> + <usersDN>Users</usersDN> + <userAttribs>User's attributes</userAttribs> + <password>Password</password> + <profile>Profil</profile> <site>Site</site> - <name>Nom</name> - <organ>Organisme</organ> - + <name>Nom</name> + <organ>Organisme</organ> + <server>Serveur</server> - <host>Hôte</host> - <port>Port</port> - + <host>Hôte</host> + <port>Port</port> + <intranet>Intranet</intranet> - <network>Network</network> - <netmask>Masque de sous-réseau</netmask> - + <network>Network</network> + <netmask>Masque de sous-réseau</netmask> + <z3950>Z39.50 Serveur</z3950> - <enable>Activé</enable> - + <enable>Activé</enable> + <feedback>Retour d'information</feedback> - <email>EMail</email> - <smtpHost>SMTP Hôte</smtpHost> - <smtpPort>SMTP Port</smtpPort> - + <email>EMail</email> + <smtpHost>SMTP Hôte</smtpHost> + <smtpPort>SMTP Port</smtpPort> + <proxy>Proxy</proxy> - <use>Activé</use> - + <use>Activé</use> + <!-- Buttons --> - + <save>Sauvegarder</save> <refresh>Rafraîchir</refresh> - + <!-- validator messages --> - + <validator> <length> - <cannotBeEmpty>Le champ '{NAME}' ne peut être vide</cannotBeEmpty> - <invalidMinSize>Le champ '{NAME}' doit avoir au moins {VALUE} caractère(s)</invalidMinSize> - <invalidMaxSize>Le champ '{NAME}' doit avoir au maximum {VALUE} caractère(s)</invalidMaxSize> + <cannotBeEmpty> + Le champ '{NAME}' ne peut être vide + </cannotBeEmpty> + <invalidMinSize> + Le champ '{NAME}' doit avoir au moins {VALUE} + caractère(s) + </invalidMinSize> + <invalidMaxSize> + Le champ '{NAME}' doit avoir au maximum {VALUE} + caractère(s) + </invalidMaxSize> </length> - + <integer> <notInt>Le champ '{NAME}' doit être un entier</notInt> - <invalidMinValue>Le champ '{NAME}' doit être >= {VALUE}</invalidMinValue> - <invalidMaxValue>Le champ '{NAME}' doit être <= {VALUE}</invalidMaxValue> - </integer> - + <invalidMinValue> + Le champ '{NAME}' doit être >= {VALUE} + </invalidMinValue> + <invalidMaxValue> + Le champ '{NAME}' doit être <= {VALUE} + </invalidMaxValue> + </integer> + <alphanum> - <notAlphaNumeric>Le champ '{NAME}' doit être alphanumérique (commençant par une lettre)</notAlphaNumeric> + <notAlphaNumeric> + Le champ '{NAME}' doit être alphanumérique (commençant + par une lettre) + </notAlphaNumeric> </alphanum> - + <hostname> - <notHostName>Le champ '{NAME}' n'est pas un nom d'hôte valide</notHostName> + <notHostName> + Le champ '{NAME}' n'est pas un nom d'hôte valide + </notHostName> </hostname> - + <url> - <notURL>Le champ '{NAME}' n'est pas une URL valide</notURL> + <notURL> + Le champ '{NAME}' n'est pas une URL valide + </notURL> </url> - + <ipaddress> - <notIP>Le champ '{NAME}' n'est pas une adresse IP valide</notIP> + <notIP> + Le champ '{NAME}' n'est pas une adresse IP valide + </notIP> </ipaddress> </validator> - + <!-- display messages --> - - <cannotGet>Impossible d'obtenir la configuration du système</cannotGet> - <cannotSave>Impossible de sauver la configuration du système</cannotSave> + + <cannotGet> + Impossible d'obtenir la configuration du système + </cannotGet> + <cannotSave> + Impossible de sauver la configuration du système + </cannotSave> <saveOk>System configuration saved.</saveOk> - + <!-- tooltips --> - + <tips> - <tip id="site.name"> - Used to identify the installation. - </tip> - + <tip id="site.name">Used to identify the installation.</tip> + <!-- server --> - + <tip id="server.host"> - The server's <b>host</b> and <b>port</b> are used to create URLs to - the GeoNetwork server. For example, they are used during metadata - editing to create resource links and when returning the server's - capabilities during a CS/W request. - <br/> - <b>Please note:</b> you should use the GAST tool to reflect this - change inside the metadata. + The server's + <b>host</b> + and + <b>port</b> + are used to create URLs to the GeoNetwork server. For + example, they are used during metadata editing to create + resource links and when returning the server's capabilities + during a CS/W request. + <br /> + <b>Please note:</b> + you should use the GAST tool to reflect this change inside + the metadata. </tip> - + <!-- intranet --> - + <tip id="intranet.network"> - The <b>network</b> and <b>netmask</b> parameters are used to identify - internal connections to GeoNetwork, that is, to identify the intranet - group. + The + <b>network</b> + and + <b>netmask</b> + parameters are used to identify internal connections to + GeoNetwork, that is, to identify the intranet group. </tip> - + <!-- Z39.50 --> - + <tip id="z3950.enable"> - If set, during startup GeoNetwork will start the Z39.50 server component. - This component uses the ISO23950 protocol. - <br/> - <b>Please note:</b> restart GeoNetwork to make this change active. + If set, during startup GeoNetwork will start the Z39.50 + server component. This component uses the ISO23950 protocol. + <br /> + <b>Please note:</b> + restart GeoNetwork to make this change active. </tip> - + <tip id="z3950.port"> Change the Z39.50 listening port. - <br/> - <b>Please note:</b> restart GeoNetwork to make this change active. + <br /> + <b>Please note:</b> + restart GeoNetwork to make this change active. </tip> - + <!-- proxy --> - + <tip id="proxy.use"> - If set, GeoNetwork will use the provided proxy parameters when accessing - remote nodes. For example, this is used during the harvesting. + If set, GeoNetwork will use the provided proxy parameters + when accessing remote nodes. For example, this is used + during the harvesting. </tip> - + <!-- feedback --> - + <tip id="feedback.email"> - This is the administrator's email address used to send feedback. + This is the administrator's email address used to send + feedback. </tip> - + <tip id="feedback.mail.host"> - The SMTP <b>host</b> and <b>port</b> parameters are used to send emails - to GeoNetwork's users when a resource is downloaded. + The SMTP + <b>host</b> + and + <b>port</b> + parameters are used to send emails to GeoNetwork's users + when a resource is downloaded. </tip> </tips> - + </strings> Modified: trunk/web/geonetwork/loc/fr/xml/strings.xml =================================================================== --- trunk/web/geonetwork/loc/fr/xml/strings.xml 2008-04-08 11:02:47 UTC (rev 1262) +++ trunk/web/geonetwork/loc/fr/xml/strings.xml 2008-04-08 11:04:54 UTC (rev 1263) @@ -6,8 +6,6 @@ <dateRelChoice/> <downloadEmail>Email Téléchargement</downloadEmail> <extensionInfoTab>Ext. Info</extensionInfoTab> - <feedbackCardTitle>Commentaire</feedbackCardTitle> - <feedbackComments>Retour/Commentaires</feedbackComments> <transferOwnership>Transfert de privilèges</transferOwnership> <transferOwnershipDes>Transfert des privilèges de métadonnées pour un autre utilisateur</transferOwnershipDes> <intermapSearch>Recherche géographique</intermapSearch> @@ -16,7 +14,8 @@ <downloadable>Téléchargeable</downloadable> <dynamic>Interactive</dynamic> <opensearch>Service de recherche OpenSearch de GeoNetwork permettant la recherche de métadonnées dans le catalogue.</opensearch> - <savexml> + <savepdf>Visualiser les résultats de la recherche au format pdf</savepdf> + <savexml> <dc>Télécharger les métadonnées au format Dublin Core</dc> <fgdc>Télécharger les métadonnées au format FGDC</fgdc> <iso19115Esri>Télécharger les métadonnées au format ESRI ArcCatalog</iso19115Esri> @@ -96,11 +95,9 @@ <contactUs>Contact</contactUs> <highlights>Epinglés</highlights> <recentAdditions>Derniers ajouts</recentAdditions> - <feedbackCardTitle>Retour et Commentaire</feedbackCardTitle> <loginCardTitle>Connexion / identification</loginCardTitle> <organisation>Organisation / Service</organisation> <emailAddress>Mel</emailAddress> - <feedbackComments>Retour / Commentaire</feedbackComments> <!-- End new strings --> <language>fr</language> @@ -378,6 +375,7 @@ <onlink>Liens</onlink> <operation>Opération</operation> <!-- <organisation>Organisation / départment</organisation> --> + <options>Options</options> <paper>Copie papier</paper> <partial>Recouvert partiellement</partial> <partialCooordinate>Coordonnées partielles</partialCooordinate> @@ -393,6 +391,7 @@ <progressChoice value="complete">terminé</progressChoice> <progressChoice value="in-work">en cours</progressChoice> <progressChoice value="planned">prévu</progressChoice> + <protocol>Protocol</protocol> <protocolChoice show="y" value="WWW:LINK-1.0-http--link">Adresse Internet (URL)</protocolChoice> <protocolChoice show="y" value="WWW:LINK-1.0-http--samples">Produit vitrine (URL)</protocolChoice> <protocolChoice show="y" value="WWW:LINK-1.0-http--related">Adresse Internet associée (URL)</protocolChoice> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 11:02:55
|
Revision: 1262 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1262&view=rev Author: fxprunayre Date: 2008-04-08 04:02:47 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Added pdf.search service Added test.i18n, test.i18n.xml services Modified Paths: -------------- trunk/web/geonetwork/WEB-INF/config-portal.xml trunk/web/geonetwork/WEB-INF/config.xml trunk/web/geonetwork/xml/user-profiles.xml Modified: trunk/web/geonetwork/WEB-INF/config-portal.xml =================================================================== --- trunk/web/geonetwork/WEB-INF/config-portal.xml 2008-04-08 11:01:55 UTC (rev 1261) +++ trunk/web/geonetwork/WEB-INF/config-portal.xml 2008-04-08 11:02:47 UTC (rev 1262) @@ -101,6 +101,20 @@ <call name="sources" class=".guiservices.util.Sources"/> </output> </service> + + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + + <service name="pdf.search"> + <class name=".services.main.Search"> + <param name="maxSummaryKeys" value="1000" /> + </class> + + <output sheet="portal-present-fop.xsl" file="true" contentType="application/pdf"> + <call name="mdresults" class=".services.main.Result" /> + <call name="siteURL" class=".guiservices.util.GetSiteURL" /> + </output> + </service> + </services> </geonet> Modified: trunk/web/geonetwork/WEB-INF/config.xml =================================================================== --- trunk/web/geonetwork/WEB-INF/config.xml 2008-04-08 11:01:55 UTC (rev 1261) +++ trunk/web/geonetwork/WEB-INF/config.xml 2008-04-08 11:02:47 UTC (rev 1262) @@ -908,6 +908,7 @@ <include>config-harvesting.xml</include> <include>config-portal.xml</include> <include>config-export.xml</include> + <include>config-test.xml</include> <!-- ====================================================================== --> Modified: trunk/web/geonetwork/xml/user-profiles.xml =================================================================== --- trunk/web/geonetwork/xml/user-profiles.xml 2008-04-08 11:01:55 UTC (rev 1261) +++ trunk/web/geonetwork/xml/user-profiles.xml 2008-04-08 11:02:47 UTC (rev 1262) @@ -245,6 +245,8 @@ <allow service="portal.sources"/> <!-- Metadata export services --> + <allow service="pdf.search"/> + <allow service="iso19115.pdf"/> <allow service="dc.xml"/> <allow service="fgdc.xml"/> <allow service="iso19115to19139.xml"/> @@ -290,6 +292,10 @@ <allow service="keywords.getselected"/> <allow service="thesaurus.list"/> <allow service="thesaurus.view"/><!-- FIXME : Check if needed --> + + <!-- Test i18n --> + <allow service="test.i18n"/> + <allow service="test.i18n.xml"/> </profile> <!-- ====================================================================== --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 11:01:50
|
Revision: 1261 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1261&view=rev Author: fxprunayre Date: 2008-04-08 04:01:55 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Added test.i18n and test.i18n.xml service to check loc files Added Paths: ----------- trunk/web/geonetwork/WEB-INF/config-test.xml trunk/web/geonetwork/xsl/test-i18n-xml.xsl trunk/web/geonetwork/xsl/test-i18n.xsl Added: trunk/web/geonetwork/WEB-INF/config-test.xml =================================================================== --- trunk/web/geonetwork/WEB-INF/config-test.xml (rev 0) +++ trunk/web/geonetwork/WEB-INF/config-test.xml 2008-04-08 11:01:55 UTC (rev 1261) @@ -0,0 +1,107 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<geonet> + <services package="org.fao.geonet"> + <!-- Test services - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <service name="test.i18n"> + <output sheet="test-i18n.xsl"> + <!-- strings.xml --> + <xml name="strings.en" file="loc/en/xml/strings.xml" + localized="false" /> + <xml name="strings.fr" file="loc/fr/xml/strings.xml" + localized="false" /> + <xml name="strings.es" file="loc/es/xml/strings.xml" + localized="false" /> + <xml name="strings.cn" file="loc/cn/xml/strings.xml" + localized="false" /> + <xml name="strings.ar" file="loc/ar/xml/strings.xml" + localized="false" /> + <!-- about.xml --> + <xml name="about.en" file="loc/en/xml/about.xml" + localized="false" /> + <xml name="about.fr" file="loc/fr/xml/about.xml" + localized="false" /> + <xml name="about.es" file="loc/es/xml/about.xml" + localized="false" /> + <xml name="about.cn" file="loc/cn/xml/about.xml" + localized="false" /> + <xml name="about.ar" file="loc/ar/xml/about.xml" + localized="false" /> + <!-- config.xml --> + <xml name="config.en" file="loc/en/xml/config.xml" + localized="false" /> + <xml name="config.fr" file="loc/fr/xml/config.xml" + localized="false" /> + <xml name="config.es" file="loc/es/xml/config.xml" + localized="false" /> + <xml name="config.cn" file="loc/cn/xml/config.xml" + localized="false" /> + <xml name="config.ar" file="loc/ar/xml/config.xml" + localized="false" /> + <!-- harvesting.xml --> + <xml name="harvesting.en" + file="loc/en/xml/harvesting.xml" localized="false" /> + <xml name="harvesting.fr" + file="loc/fr/xml/harvesting.xml" localized="false" /> + <xml name="harvesting.es" + file="loc/es/xml/harvesting.xml" localized="false" /> + <xml name="harvesting.cn" + file="loc/cn/xml/harvesting.xml" localized="false" /> + <xml name="harvesting.ar" + file="loc/ar/xml/harvesting.xml" localized="false" /> + <!-- TODO : add other loc files --> + </output> + </service> + + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <service name="test.i18n.xml"> + <output sheet="test-i18n-xml.xsl" + contentType="text/xml; charset=UTF-8"> + <!-- strings.xml --> + <xml name="strings.en" file="loc/en/xml/strings.xml" + localized="false" /> + <xml name="strings.fr" file="loc/fr/xml/strings.xml" + localized="false" /> + <xml name="strings.es" file="loc/es/xml/strings.xml" + localized="false" /> + <xml name="strings.cn" file="loc/cn/xml/strings.xml" + localized="false" /> + <xml name="strings.ar" file="loc/ar/xml/strings.xml" + localized="false" /> + <!-- about.xml --> + <xml name="about.en" file="loc/en/xml/about.xml" + localized="false" /> + <xml name="about.fr" file="loc/fr/xml/about.xml" + localized="false" /> + <xml name="about.es" file="loc/es/xml/about.xml" + localized="false" /> + <xml name="about.cn" file="loc/cn/xml/about.xml" + localized="false" /> + <xml name="about.ar" file="loc/ar/xml/about.xml" + localized="false" /> + <!-- config.xml --> + <xml name="config.en" file="loc/en/xml/config.xml" + localized="false" /> + <xml name="config.fr" file="loc/fr/xml/config.xml" + localized="false" /> + <xml name="config.es" file="loc/es/xml/config.xml" + localized="false" /> + <xml name="config.cn" file="loc/cn/xml/config.xml" + localized="false" /> + <xml name="config.ar" file="loc/ar/xml/config.xml" + localized="false" /> + <!-- harvesting.xml --> + <xml name="harvesting.en" + file="loc/en/xml/harvesting.xml" localized="false" /> + <xml name="harvesting.fr" + file="loc/fr/xml/harvesting.xml" localized="false" /> + <xml name="harvesting.es" + file="loc/es/xml/harvesting.xml" localized="false" /> + <xml name="harvesting.cn" + file="loc/cn/xml/harvesting.xml" localized="false" /> + <xml name="harvesting.ar" + file="loc/ar/xml/harvesting.xml" localized="false" /> + <!-- TODO : add other loc files --> + </output> + </service> + </services> +</geonet> \ No newline at end of file Property changes on: trunk/web/geonetwork/WEB-INF/config-test.xml ___________________________________________________________________ Name: svn:mime-type + text/plain Added: trunk/web/geonetwork/xsl/test-i18n-xml.xsl =================================================================== --- trunk/web/geonetwork/xsl/test-i18n-xml.xsl (rev 0) +++ trunk/web/geonetwork/xsl/test-i18n-xml.xsl 2008-04-08 11:01:55 UTC (rev 1261) @@ -0,0 +1,214 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:xalan="http://xml.apache.org/xalan"> + + <xsl:output method="xml"/> + + <xsl:variable name="langs"> + <langs> + <!-- TODO : add a master lang param to be able to compare to other lang than en <en master="true"/> --> + <fr /> + <es /> + <cn /> + <ar /> + </langs> + </xsl:variable> + + <xsl:template match="/"> + + <root> + <info>This service produce an XML document containing all missing localized terms in each loc files. + You could use this service in order to have more up to date localized files. + Use copy/paste to update the files and translate the term from english to the other language.</info> + <warning>WARNING: This will not produce sub-child elements. It will only produce correct + localized file for the first level of element with no attribute or with an id, value or type attribute.</warning> + <strings file="strings.xml"> + <xsl:variable name="master" select="//strings.en"/> + + <xsl:for-each select="xalan:nodeset($langs)/langs/*"> + + <xsl:variable name="l" select="name(.)"/> + <xsl:element name="{$l}"> + <xsl:for-each select="$master/*"> + <xsl:call-template name="checki18n-lang"> + <xsl:with-param name="elem" select="." /> + <xsl:with-param name="lang" select="$l" /> + <xsl:with-param name="file">strings</xsl:with-param> + </xsl:call-template> + </xsl:for-each> + </xsl:element> + </xsl:for-each> + </strings> + <about file="about.xml"> + <xsl:variable name="master" select="//about.en"/> + + <xsl:for-each select="xalan:nodeset($langs)/langs/*"> + + <xsl:variable name="l" select="name(.)"/> + + <xsl:element name="{$l}"> + <xsl:for-each select="$master/*"> + <xsl:call-template name="checki18n-lang"> + <xsl:with-param name="elem" select="." /> + <xsl:with-param name="lang" select="$l" /> + <xsl:with-param name="file">about</xsl:with-param> + </xsl:call-template> + </xsl:for-each> + </xsl:element> + </xsl:for-each> + </about> + <config file="config.xml"> + <xsl:variable name="master" select="//config.en"/> + + <xsl:for-each select="xalan:nodeset($langs)/langs/*"> + + <xsl:variable name="l" select="name(.)"/> + + <xsl:element name="{$l}"> + <xsl:for-each select="$master/*"> + <xsl:call-template name="checki18n-lang"> + <xsl:with-param name="elem" select="." /> + <xsl:with-param name="lang" select="$l" /> + <xsl:with-param name="file">config</xsl:with-param> + </xsl:call-template> + </xsl:for-each> + </xsl:element> + </xsl:for-each> + </config> + <harvesting file="harvesting.xml"> + <xsl:variable name="master" select="//harvesting.en"/> + + <xsl:for-each select="xalan:nodeset($langs)/langs/*"> + + <xsl:variable name="l" select="name(.)"/> + + <xsl:element name="{$l}"> + <xsl:for-each select="$master/*"> + <xsl:call-template name="checki18n-lang"> + <xsl:with-param name="elem" select="." /> + <xsl:with-param name="lang" select="$l" /> + <xsl:with-param name="file">harvesting</xsl:with-param> + </xsl:call-template> + </xsl:for-each> + </xsl:element> + </xsl:for-each> + </harvesting> + </root> + </xsl:template> + + + + <xsl:template name="checki18n-lang"> + <xsl:param name="elem"></xsl:param> + <xsl:param name="lang"></xsl:param> + <xsl:param name="file"></xsl:param> + + <xsl:variable name="tag" select="name($elem)" /> + <xsl:variable name="string" select="$elem/." /> + <xsl:variable name="value" select="$elem/@value" /> + <xsl:variable name="id" select="$elem/@id" /> + <xsl:variable name="type" select="$elem/@type" /> + + + <xsl:variable name="ok"> + <xsl:call-template name="compare"> + <xsl:with-param name="tag" select="$tag" /> + <xsl:with-param name="string" select="$string" /> + <xsl:with-param name="value" select="$value" /> + <xsl:with-param name="type" select="$type" /> + <xsl:with-param name="id" select="$id" /> + <xsl:with-param name="loctag1" + select="xalan:nodeset(//*[name(.)=concat($file, '.', $lang)]/*)" /> + <xsl:with-param name="loctag2" + select="xalan:nodeset(//*[name(.)=concat($file, '.', $lang)]/*/*)" /> + </xsl:call-template><!-- TODO add lang param --> + </xsl:variable> + + <xsl:if test="$ok='red'"> + <!-- FIXME : this will not take sub-child element --> + <!-- TODO : how to create an element name from var ? + <xsl:element name="$tag"></xsl:element> + --> + <xsl:element name="{$tag}"> + + <xsl:if test="$value"> + <xsl:attribute name="value"> + <xsl:value-of select="$value" /> + </xsl:attribute> + </xsl:if> + <xsl:if test="$id"> + <xsl:attribute name="id"> + <xsl:value-of select="$id" /> + </xsl:attribute> + </xsl:if> + <xsl:if test="$type"> + <xsl:attribute name="type"> + <xsl:value-of select="$type" /> + </xsl:attribute> + </xsl:if> + <xsl:value-of select="$string" /> + </xsl:element> + </xsl:if> + </xsl:template> + + + <xsl:template name="compare"> + <xsl:param name="tag"></xsl:param> + <xsl:param name="string"></xsl:param> + <xsl:param name="value"></xsl:param> + <xsl:param name="type"></xsl:param> + <xsl:param name="id"></xsl:param> + <xsl:param name="loctag1"></xsl:param> + <xsl:param name="loctag2"></xsl:param> + <xsl:choose> + <xsl:when test="$value or $id or $type"> + <xsl:choose> + <xsl:when + test="count($loctag2[name(.)=$tag and (@type=$type or @value=$value or @id=$id)])=1"> + <xsl:text>green</xsl:text> + </xsl:when> + <xsl:when + test="count($loctag1[name(.)=$tag and (@type=$type or @value=$value or @id=$id)])=1"> + <xsl:text>green</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>red</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="count($loctag2[name(.)=$tag])=1"> + <xsl:choose> + <xsl:when + test="$loctag2[name(.)=$tag]/. = $string"> + <xsl:text>yellow</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>green</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:when test="count($loctag1[name(.)=$tag])=1"> + <xsl:choose> + <xsl:when + test="$loctag1[name(.)=$tag]/. = $string"> + <xsl:text>yellow</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>green</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:text>red</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + +</xsl:stylesheet> + Property changes on: trunk/web/geonetwork/xsl/test-i18n-xml.xsl ___________________________________________________________________ Name: svn:mime-type + text/plain Added: trunk/web/geonetwork/xsl/test-i18n.xsl =================================================================== --- trunk/web/geonetwork/xsl/test-i18n.xsl (rev 0) +++ trunk/web/geonetwork/xsl/test-i18n.xsl 2008-04-08 11:01:55 UTC (rev 1261) @@ -0,0 +1,300 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:xalan="http://xml.apache.org/xalan"> + + + <xsl:variable name="langs"> + <langs> + <!-- TODO : add a master lang param to be able to compare to other lang than en <en master="true"/> --> + <fr/> + <es/> + <cn/> + <ar/> + </langs> + </xsl:variable> + + <xsl:template match="/"> + <h1>Test i18n</h1> + <p>This service should help GeoNetwork opensource developpers to have up to date localized files. + Even if there's no tranlsation, all terms should be added to all localized files (even if no translation + are available). If new terms appear, you could ask to the gen...@so... for + some contribution on that. <b>Try to reduce the number of red squares in that page ;).</b> Thanks.</p> + <i> + "en" is master language. Each element of english files are + compared to the others + </i> + <p> + A draft XML document to use to update localized files is available <a href="test.i18n.xml">here</a>. + </p> + <table> + <tr> + <td bgcolor="green" width="30px"></td> + <td>ok</td> + </tr> + <tr> + <td bgcolor="red" width="30px"></td> + <td>missing element</td> + </tr> + <tr> + <td bgcolor="yellow" width="30px"></td> + <td> + existing element but translation is equal to "en" value + (and that could be valid) + </td> + </tr> + </table> + + <table> + <th> + <td width="20px"><b>en</b></td> + <xsl:for-each select="xalan:nodeset($langs)/langs/*"> + <td width="20px"><b><xsl:value-of select="name(.)"/></b></td> + </xsl:for-each> + </th> + + <!-- FIXME: This loop over xml loc files is not really elegant :( --> + <tr> + <td colspan="5"> + <h1>strings.xml</h1> + </td> + </tr> + <xsl:for-each select="//strings.en/*"> + <tr> + <xsl:call-template name="checki18n"> + <xsl:with-param name="elem" select="." /> + <xsl:with-param name="file">strings</xsl:with-param> + </xsl:call-template> + </tr> + </xsl:for-each> + <tr> + <td colspan="4"> + <h1>about.xml</h1> + </td> + </tr> + <xsl:for-each select="//about.en/*"> + <tr> + <xsl:call-template name="checki18n"> + <xsl:with-param name="elem" select="." /> + <xsl:with-param name="file">about</xsl:with-param> + </xsl:call-template> + </tr> + </xsl:for-each> + <tr> + <td colspan="4"> + <h1>config.xml</h1> + </td> + </tr> + <xsl:for-each select="//config.en/*"> + <tr> + <xsl:call-template name="checki18n"> + <xsl:with-param name="elem" select="." /> + <xsl:with-param name="file">config</xsl:with-param> + </xsl:call-template> + </tr> + </xsl:for-each> + <tr> + <td colspan="4"> + <h1>harvesting.xml</h1> + </td> + </tr> + <xsl:for-each select="//harvesting.en/*"> + <tr> + <xsl:call-template name="checki18n"> + <xsl:with-param name="elem" select="." /> + <xsl:with-param name="file">harvesting</xsl:with-param> + </xsl:call-template> + </tr> + </xsl:for-each> + + + </table> + + + <p> + TODO: + <ul> + <li>Check all elements exist somewhere in XSL files</li> + <li>Check all loc files</li> + <li>Add a master lang parameter</li> + </ul> + </p> + </xsl:template> + + + + <xsl:template name="checki18n"> + <xsl:param name="elem"></xsl:param> + <xsl:param name="file"></xsl:param> + + <xsl:variable name="tag" select="name($elem)" /> + <xsl:variable name="string" select="$elem/." /> + <xsl:variable name="value" select="$elem/@value" /> + <xsl:variable name="id" select="$elem/@id" /> + <xsl:variable name="type" select="$elem/@type" /> + + + <td> + <xsl:attribute name="title"> + <xsl:value-of select="$string" /> + </xsl:attribute> + + <xsl:value-of select="$tag" /> + <xsl:if test="$value"> + (value: + <xsl:value-of select="$value" /> + ) + </xsl:if> + <xsl:if test="$id"> + (id: + <xsl:value-of select="$id" /> + ) + </xsl:if> + <xsl:if test="$type"> + (type: + <xsl:value-of select="$type" /> + ) + </xsl:if> + </td> + <!-- FIXME: Why can't loop on $la ? + <xsl:for-each select="xalan:nodeset($langs)/langs/*"> + <td> + <xsl:variable name="la"><xsl:value-of select="concat($file, '.', name(.))"/></xsl:variable> + <xsl:value-of select="$la"/> + <xsl:value-of select="count(xalan:nodeset(//*[name()='strings.fr']/*))"/> + + <xsl:call-template name="compare"> + <xsl:with-param name="tag" select="$tag" /> + <xsl:with-param name="string" select="$string" /> + <xsl:with-param name="value" select="$value" /> + <xsl:with-param name="type" select="$type" /> + <xsl:with-param name="id" select="$id" /> + <xsl:with-param name="loctag1" + select="xalan:nodeset(//*[name(.)=$la]/*)" /> + <xsl:with-param name="loctag2" + select="xalan:nodeset(//*[name(.)=$la]/*/*)" /> + </xsl:call-template> + </td> + </xsl:for-each> --> + <!-- FIXME: This loop over languages is not really elegant too :( --> + <td bgcolor="green"></td> + <td> + <xsl:call-template name="compare"> + <xsl:with-param name="tag" select="$tag" /> + <xsl:with-param name="string" select="$string" /> + <xsl:with-param name="value" select="$value" /> + <xsl:with-param name="type" select="$type" /> + <xsl:with-param name="id" select="$id" /> + <xsl:with-param name="loctag1" + select="xalan:nodeset(//*[name(.)=concat($file, '.fr')]/*)" /> + <xsl:with-param name="loctag2" + select="xalan:nodeset(//*[name(.)=concat($file, '.fr')]/*/*)" /> + </xsl:call-template> + </td> + <td> + <xsl:call-template name="compare"> + <xsl:with-param name="tag" select="$tag" /> + <xsl:with-param name="string" select="$string" /> + <xsl:with-param name="value" select="$value" /> + <xsl:with-param name="type" select="$type" /> + <xsl:with-param name="id" select="$id" /> + <xsl:with-param name="loctag1" + select="xalan:nodeset(//*[name(.)=concat($file, '.es')]/*)" /> + <xsl:with-param name="loctag2" + select="xalan:nodeset(//*[name(.)=concat($file, '.es')]/*/*)" /> + </xsl:call-template> + </td> + <td> + <xsl:call-template name="compare"> + <xsl:with-param name="tag" select="$tag" /> + <xsl:with-param name="string" select="$string" /> + <xsl:with-param name="value" select="$value" /> + <xsl:with-param name="type" select="$type" /> + <xsl:with-param name="id" select="$id" /> + <xsl:with-param name="loctag1" + select="xalan:nodeset(//*[name(.)=concat($file, '.cn')]/*)" /> + <xsl:with-param name="loctag2" + select="xalan:nodeset(//*[name(.)=concat($file, '.cn')])/*/*" /> + </xsl:call-template> + </td> + <td> + <xsl:call-template name="compare"> + <xsl:with-param name="tag" select="$tag" /> + <xsl:with-param name="string" select="$string" /> + <xsl:with-param name="value" select="$value" /> + <xsl:with-param name="type" select="$type" /> + <xsl:with-param name="id" select="$id" /> + <xsl:with-param name="loctag1" + select="xalan:nodeset(//*[name(.)=concat($file, '.ar')])/*" /> + <xsl:with-param name="loctag2" + select="xalan:nodeset(//*[name(.)=concat($file, '.ar')])/*/*" /> + </xsl:call-template> + </td> + </xsl:template> + + + + + + <xsl:template name="compare"> + <xsl:param name="tag"></xsl:param> + <xsl:param name="string"></xsl:param> + <xsl:param name="value"></xsl:param> + <xsl:param name="type"></xsl:param> + <xsl:param name="id"></xsl:param> + <xsl:param name="loctag1"></xsl:param> + <xsl:param name="loctag2"></xsl:param> + <xsl:choose> + <xsl:when test="$value or $id or $type"> + <xsl:choose> + <xsl:when + test="count($loctag2[name(.)=$tag and (@type=$type or @value=$value or @id=$id)])=1"> + <xsl:attribute name="bgcolor">green</xsl:attribute> + </xsl:when> + <xsl:when + test="count($loctag1[name(.)=$tag and (@type=$type or @value=$value or @id=$id)])=1"> + <xsl:attribute name="bgcolor">green</xsl:attribute> + </xsl:when> + <xsl:otherwise> + <xsl:attribute name="bgcolor">red</xsl:attribute> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="$string=''"><!-- Empty tag --> + <xsl:attribute name="bgcolor">green</xsl:attribute> + </xsl:when> + <xsl:when test="count($loctag2[name(.)=$tag])=1"> + <xsl:choose> + <xsl:when + test="$loctag2[name(.)=$tag]/. = $string"> + <xsl:attribute name="bgcolor">yellow</xsl:attribute> + </xsl:when> + <xsl:otherwise> + <xsl:attribute name="bgcolor">green</xsl:attribute> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:when test="count($loctag1[name(.)=$tag])=1"> + <xsl:choose> + <xsl:when + test="$loctag1[name(.)=$tag]/. = $string"> + <xsl:attribute name="bgcolor">yellow</xsl:attribute> + </xsl:when> + <xsl:otherwise> + <xsl:attribute name="bgcolor">green</xsl:attribute> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:attribute name="bgcolor">red</xsl:attribute> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + +</xsl:stylesheet> + Property changes on: trunk/web/geonetwork/xsl/test-i18n.xsl ___________________________________________________________________ Name: svn:mime-type + text/plain This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 11:01:01
|
Revision: 1260 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1260&view=rev Author: fxprunayre Date: 2008-04-08 04:01:03 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Added OGC WxS GetCapabilities harvester Modified Paths: -------------- trunk/web/geonetwork/scripts/harvesting/harvesting.js Modified: trunk/web/geonetwork/scripts/harvesting/harvesting.js =================================================================== --- trunk/web/geonetwork/scripts/harvesting/harvesting.js 2008-04-08 11:00:34 UTC (rev 1259) +++ trunk/web/geonetwork/scripts/harvesting/harvesting.js 2008-04-08 11:01:03 UTC (rev 1260) @@ -11,6 +11,7 @@ ker.include('harvesting/geonet20/geonetwork20.js'); ker.include('harvesting/webdav/webdav.js'); ker.include('harvesting/csw/csw.js'); +ker.include('harvesting/ogcwxs/ogcwxs.js'); ker.include('harvesting/z3950/z3950.js'); ker.include('harvesting/oaipmh/oaipmh.js'); ker.include('harvesting/model.js'); @@ -45,6 +46,7 @@ var csw = new Csw(loader); var z3950 = new Z3950(loader); var oaipmh = new OaiPmh(loader); + var ogcwxs = new OgcWxs(loader); //--- public objects @@ -54,6 +56,7 @@ this.csw = csw; this.z3950 = z3950; this.oaipmh = oaipmh; + this.ogcwxs = ogcwxs; //--- public methods @@ -77,9 +80,10 @@ function init() { view.register(geonet); + view.register(geonet20); view.register(webdav); view.register(csw); - view.register(geonet20); + view.register(ogcwxs); view.register(z3950); view.register(oaipmh); view.show(SHOW.LIST); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 11:00:29
|
Revision: 1259 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1259&view=rev Author: fxprunayre Date: 2008-04-08 04:00:34 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Added pdf.search service Modified Paths: -------------- trunk/web/geonetwork/scripts/gn_search.js Modified: trunk/web/geonetwork/scripts/gn_search.js =================================================================== --- trunk/web/geonetwork/scripts/gn_search.js 2008-04-08 11:00:03 UTC (rev 1258) +++ trunk/web/geonetwork/scripts/gn_search.js 2008-04-08 11:00:34 UTC (rev 1259) @@ -32,9 +32,17 @@ } /* */ -function runSimpleSearch() +function runPdfSearch() { + if (document.cookie.indexOf("search=advanced")!=-1) + runAdvancedSearch("pdf"); + else + runSimpleSearch("pdf"); +} + +function runSimpleSearch(type) { - preparePresent(); + if (type != "pdf") + preparePresent(); var pars = "any=" + encodeURIComponent($('any') .value); @@ -53,8 +61,11 @@ pars += fetchParam('hitsPerPage'); pars += fetchParam('output'); - // Load results via AJAX - gn_search(pars); + if (type == "pdf") + gn_searchpdf(pars); + else + // Load results via AJAX + gn_search(pars); } function resetSimpleSearch() @@ -185,9 +196,10 @@ } -function runAdvancedSearch() +function runAdvancedSearch(type) { - preparePresent(); + if (type != "pdf") + preparePresent(); var pars = "any=" + encodeURIComponent($('any') .value); pars += fetchParam('phrase'); @@ -230,8 +242,12 @@ pars += fetchParam('hitsPerPage'); pars += fetchParam('output'); - // Load results via AJAX - gn_search(pars); + + if (type == "pdf") + gn_searchpdf(pars); + else + // Load results via AJAX + gn_search(pars); } function resetAdvancedSearch() @@ -503,6 +519,16 @@ ); } +function gn_searchpdf(pars) +{ + pars = pars.replace(/hitsPerPage=\d{2,3}/, 'hitsPerPage=9999'); + // Update this value if more document required in PDF output + // FIXME : Should be defined in service config. + location.replace ( + getGNServiceURL('pdf.search') + "?" + pars + ); +} + function gn_present(frompage, topage) { preparePresent(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 11:00:00
|
Revision: 1258 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1258&view=rev Author: fxprunayre Date: 2008-04-08 04:00:03 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Added pdf.search service Modified Paths: -------------- trunk/web/geonetwork/xsl/search-results-xhtml.xsl Added Paths: ----------- trunk/web/geonetwork/xsl/metadata-fop.xsl trunk/web/geonetwork/xsl/portal-present-fop.xsl Added: trunk/web/geonetwork/xsl/metadata-fop.xsl =================================================================== --- trunk/web/geonetwork/xsl/metadata-fop.xsl (rev 0) +++ trunk/web/geonetwork/xsl/metadata-fop.xsl 2008-04-08 11:00:03 UTC (rev 1258) @@ -0,0 +1,314 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:xalan="http://xml.apache.org/xalan" + exclude-result-prefixes="xalan" + xmlns:gco="http://www.isotc211.org/2005/gco" + xmlns:geonet="http://www.fao.org/geonetwork" + xmlns:fo="http://www.w3.org/1999/XSL/Format"> + + + <!-- + gui to show a simple element + --> + <xsl:template name="simpleElementFop"> + <xsl:param name="title" /> + <xsl:param name="text" /> + <xsl:param name="helpLink" /> + <xsl:param name="addLink" /> + <xsl:param name="removeLink" /> + <xsl:param name="upLink" /> + <xsl:param name="downLink" /> + <xsl:param name="schematronLink" /> + <xsl:param name="schema" /> + <xsl:param name="edit" select="false()" /> + <!-- used as do*ElementAction url anchor to go back to the same position after editing operations --> + <xsl:param name="anchor"> + <xsl:choose> + + <!-- current node is an element --> + <xsl:when test="geonet:element/@ref"> + _ + <xsl:value-of select="geonet:element/@ref" /> + </xsl:when> + + <!-- current node is an attribute or a new child: create anchor to parent --> + <xsl:when test="../geonet:element/@ref"> + _ + <xsl:value-of select="../geonet:element/@ref" /> + </xsl:when> + + </xsl:choose> + </xsl:param> + + + <fo:table-row> + <fo:table-cell> + <fo:block> + <fo:inline font-weight="bold"> + <xsl:value-of select="$title" /> + </fo:inline> + </fo:block> + </fo:table-cell> + <fo:table-cell number-columns-spanned="2"> + <fo:block> + <xsl:value-of select="$text" /> + </fo:block> + </fo:table-cell> + </fo:table-row> + </xsl:template> + + + <!-- + gui to show a complex element + --> + <xsl:template name="complexElementFop"> + <xsl:param name="title" /> + <xsl:param name="text" /> + <xsl:param name="content" /> + <xsl:param name="helpLink" /> + <xsl:param name="addLink" /> + <xsl:param name="removeLink" /> + <xsl:param name="upLink" /> + <xsl:param name="downLink" /> + <xsl:param name="schematronLink" /> + <xsl:param name="schema" /> + <xsl:param name="edit" select="false()" /> + + <!-- used as do*ElementAction url anchor to go back to the same position after editing operations --> + <xsl:param name="anchor"> + <xsl:choose> + + <!-- current node is an element --> + <xsl:when test="geonet:element/@ref"> + _ + <xsl:value-of select="geonet:element/@ref" /> + </xsl:when> + + <!-- current node is a new child: create anchor to parent --> + <xsl:when test="../geonet:element/@ref"> + _ + <xsl:value-of select="../geonet:element/@ref" /> + </xsl:when> + + </xsl:choose> + </xsl:param> + + <fo:table-row> + <fo:table-cell> + <fo:block> + <fo:table width="100%" table-layout="fixed"> + <fo:table-column column-width="3cm" /> + <fo:table-column column-width="12cm" /> + <fo:table-column column-width="1cm" /> + <fo:table-body> + <fo:table-row> + <fo:table-cell + number-columns-spanned="3"> + <fo:block + border-top="2pt solid black"> + <fo:inline font-weight="bold"> + <xsl:text>::</xsl:text> + <xsl:value-of + select="$title" /> + </fo:inline> + </fo:block> + </fo:table-cell> + </fo:table-row> + <fo:table-row> + <fo:table-cell> + <fo:block></fo:block> + </fo:table-cell> + <fo:table-cell> + <fo:block> + <xsl:variable name="n" + select="xalan:nodeset($content)" /> + <xsl:if test="$n/node()"> + <fo:table + table-layout="fixed" width="100%" + border-collapse="separate"> + <fo:table-body> + <xsl:copy-of + select="$content" /> + </fo:table-body> + </fo:table> + </xsl:if> + </fo:block> + </fo:table-cell> + </fo:table-row> + </fo:table-body> + </fo:table> + </fo:block> + </fo:table-cell> + </fo:table-row> + + </xsl:template> + + + + <!-- + metadata result to fop + --> + <xsl:template name="fo"> + <xsl:param name="res" /> + <xsl:param name="server" /> + <xsl:param name="gui" /> + <xsl:param name="remote" /> + + <xsl:for-each select="$res/*"> + <xsl:variable name="md"> + <xsl:apply-templates mode="brief" select="."/> + </xsl:variable> + <xsl:variable name="metadata" select="xalan:nodeset($md)/*[1]"/> + + <xsl:if test="$metadata/geonet:info/id != ''"> + <fo:table-row> + <fo:table-cell> + + <xsl:variable name="source" select="string($metadata/geonet:info/source)"/> + + <fo:block font-weight="bold" font-size="14pt" + border-top="2pt solid black"> + <fo:external-graphic content-width="35pt"> + <xsl:attribute name="src"> + url('<xsl:value-of + select="concat('http://', $server/host,':', $server/port, $gui/url, '/images/logos/', $source , '.gif')" />')" + </xsl:attribute> + </fo:external-graphic> + <xsl:value-of select="$metadata/title" /> + </fo:block> + <fo:block text-align="left"> + <xsl:value-of select="$gui/strings/abstract" /> + : + <xsl:value-of select="$metadata/abstract" /> + </fo:block> + <!-- keywords --> + <xsl:if test="$metadata/keyword"> + <fo:block text-align="left" + font-style="italic"> + <xsl:value-of select="$gui/strings/keywords" /> + : + <xsl:for-each select="$metadata/keyword"> + <xsl:if test="position() > 1"> + , + </xsl:if> + <xsl:value-of select="." /> + </xsl:for-each> + </fo:block> + </xsl:if> + + <fo:block text-align="left"> + |<fo:basic-link text-decoration="underline" + color="blue"> + <xsl:attribute + name="external-destination"> + url('<xsl:value-of + select="concat('http://', $server/host,':', $server/port, $gui/locService,'/metadata.show?id=', $metadata/geonet:info/id, '&currTab=simple')" />') + </xsl:attribute> + <xsl:value-of select="$gui/strings/show" /> + </fo:basic-link>| + + <xsl:if test="$metadata/geonet:info/download='true'"> + <xsl:for-each + select="$metadata/link[@type='download']"> + <fo:basic-link + text-decoration="underline" color="blue"> + <xsl:attribute + name="external-destination"> + url('<xsl:value-of + select="." />') + </xsl:attribute> + <xsl:value-of + select="$gui/strings/download" /> + </fo:basic-link>| + </xsl:for-each> + </xsl:if> + + <xsl:if test="$metadata/geonet:info/dynamic='true'"> + <xsl:for-each + select="$metadata/link[@type='application/vnd.ogc.wms_xml']"> + <fo:basic-link + text-decoration="underline" color="blue"> + <xsl:attribute + name="external-destination"> + url('<xsl:value-of + select="@href" />') + </xsl:attribute> + <xsl:value-of + select="$gui/strings/interactiveMap" /> + </fo:basic-link>| + </xsl:for-each> + </xsl:if> + + + </fo:block> + </fo:table-cell> + <fo:table-cell> + <fo:block> + <xsl:if test="$metadata/image"> + <xsl:choose> + <xsl:when + test="contains($metadata/image ,'://')"> + <fo:external-graphic> + <xsl:attribute name="src"><xsl:text>url('</xsl:text><xsl:value-of + select="$metadata/image" /><xsl:text>')"</xsl:text></xsl:attribute> + </fo:external-graphic> + </xsl:when> + <xsl:otherwise> + <fo:external-graphic> + <xsl:attribute name="src"><xsl:text>url('</xsl:text><xsl:value-of + select="concat('http://', $server/host,':', $server/port, $metadata/image)" /><xsl:text>')"</xsl:text></xsl:attribute> + </fo:external-graphic> + </xsl:otherwise> + </xsl:choose> + + </xsl:if> + </fo:block> + </fo:table-cell> + </fo:table-row> + </xsl:if> + </xsl:for-each> + </xsl:template> + + + <!-- + main pdf banner + --> + <xsl:template name="banner"> + <fo:table table-layout="fixed" width="100%"> + <fo:table-column + column-width="proportional-column-width(1)" /> + <fo:table-body> + <fo:table-row> + <fo:table-cell display-align="left" background-color="#064377"> + <fo:block text-align="left"> + <!-- FIXME --> + <fo:external-graphic> + <xsl:attribute name="src"> + url('<xsl:value-of + select="concat('http://', //server/host,':', //server/port, /root/gui/url,'/images/header-left.jpg')" />')" + </xsl:attribute> + </fo:external-graphic> + </fo:block> + </fo:table-cell><fo:table-cell display-align="right" background-color="#064377"> + <fo:block text-align="right"> + <fo:external-graphic> + <xsl:attribute name="src"> + url('<xsl:value-of + select="concat('http://', //server/host,':', //server/port, /root/gui/url,'/images/header-right.gif')" />')" + </xsl:attribute> + + </fo:external-graphic> + </fo:block> + </fo:table-cell> + </fo:table-row> + </fo:table-body> + </fo:table> + </xsl:template> + + + + + + +</xsl:stylesheet> Property changes on: trunk/web/geonetwork/xsl/metadata-fop.xsl ___________________________________________________________________ Name: svn:mime-type + text/plain Added: trunk/web/geonetwork/xsl/portal-present-fop.xsl =================================================================== --- trunk/web/geonetwork/xsl/portal-present-fop.xsl (rev 0) +++ trunk/web/geonetwork/xsl/portal-present-fop.xsl 2008-04-08 11:00:03 UTC (rev 1258) @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0" xmlns:geonet="http://www.fao.org/geonetwork" + xmlns:xalan="http://xml.apache.org/xalan" + xmlns:date="http://exslt.org/dates-and-times" + exclude-result-prefixes="xsl xalan geonet"> + + <xsl:include href="metadata-fop.xsl" /> + <xsl:include href="metadata.xsl" /> + <xsl:include href="utils.xsl" /> + + <xsl:template match="/root"> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master master-name="simpleA4" + page-height="29.7cm" page-width="21cm" margin-top="1cm" + margin-bottom="1cm" margin-left="1cm" margin-right="1cm"> + <fo:region-body margin-top="1cm" /> + <fo:region-before extent="1cm" /> + </fo:simple-page-master> + + + <fo:page-sequence-master master-name="PSM_Name"> + <fo:single-page-master-reference + master-reference="simpleA4" /> + </fo:page-sequence-master> + </fo:layout-master-set> + + <fo:page-sequence master-reference="simpleA4" + initial-page-number="1"> + + <xsl:variable name="df">yyyy-MM-dd'T'HH:mm:ss</xsl:variable> + + <fo:static-content flow-name="xsl-region-before"> + <fo:block text-align="end"> + GeoNetwork opensource - <xsl:value-of select="date:format-date(date:date-time(),$df)"/> - + <fo:page-number /> + / + <fo:page-number-citation ref-id="terminator" /> + </fo:block> + </fo:static-content> + + <fo:flow flow-name="xsl-region-body"> + + <!-- Banner level --> + <xsl:call-template name="banner" /> + + + <fo:block font-size="10pt"> + + <fo:table width="100%" table-layout="fixed"> + <fo:table-column column-width="13cm" /> + <fo:table-column column-width="5cm" /> + <fo:table-body> + <fo:table-row height="10mm"> + <fo:table-cell + display-align="center"> + <fo:block text-align="center"> + <xsl:value-of + select="/root/gui/strings/resultsMatching" /> + <xsl:value-of + select="/root/response/summary/@count" /> + </fo:block> + </fo:table-cell> + </fo:table-row> + + <xsl:variable name="remote" + select="/root/response/summary/@type='remote'" /> + + + <xsl:call-template name="fo"> + <xsl:with-param name="res" + select="//mdresults" /> + <xsl:with-param name="gui" + select="/root/gui" /> + <xsl:with-param name="server" + select="//server" /> + <xsl:with-param name="remote" + select="$remote" /> + + </xsl:call-template> + </fo:table-body> + </fo:table> + </fo:block> + + <fo:block id="terminator" /> + </fo:flow> + </fo:page-sequence> + </fo:root> + </xsl:template> + + <!-- ============================================================== --> + + <xsl:template match="geonet:info/title" mode="strip" /> + + <xsl:template match="@*|node()" mode="strip"> + <xsl:copy> + <xsl:apply-templates select="@*|node()" mode="strip" /> + </xsl:copy> + </xsl:template> + +</xsl:stylesheet> Property changes on: trunk/web/geonetwork/xsl/portal-present-fop.xsl ___________________________________________________________________ Name: svn:mime-type + text/plain Modified: trunk/web/geonetwork/xsl/search-results-xhtml.xsl =================================================================== --- trunk/web/geonetwork/xsl/search-results-xhtml.xsl 2008-04-08 10:58:31 UTC (rev 1257) +++ trunk/web/geonetwork/xsl/search-results-xhtml.xsl 2008-04-08 11:00:03 UTC (rev 1258) @@ -87,7 +87,14 @@ </xsl:for-each> </select> </xsl:if> - </div> + </div> + + <xsl:if test="/root/response/summary/@count > 0"> + <!-- print pdf - - - - - - - - - - - - - - - - - - - - --> + <div style="float:right;"> + <a href="#" onclick="runPdfSearch();"><img align="absmiddle" src="{/root/gui/url}/images/pdf.gif" alt="{/root/gui/strings/savepdf}" title="{/root/gui/strings/savepdf}"/></a> + </div> + </xsl:if> </td> </tr> </xsl:template> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 10:58:29
|
Revision: 1257 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1257&view=rev Author: fxprunayre Date: 2008-04-08 03:58:31 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Added OGC WxS GetCapabilities harvester Modified Paths: -------------- trunk/web/geonetwork/xsl/harvesting/harvesting.xsl Added Paths: ----------- trunk/web/geonetwork/xsl/conversion/import/OGCSLD-to-ISO19139.xsl trunk/web/geonetwork/xsl/conversion/import/OGCWMC-to-ISO19139.xsl trunk/web/geonetwork/xsl/conversion/import/OGCWxSGetCapabilities-to-ISO19119_ISO19139.xsl trunk/web/geonetwork/xsl/xml/harvesting/ogcwxs.xsl Added: trunk/web/geonetwork/xsl/conversion/import/OGCSLD-to-ISO19139.xsl =================================================================== --- trunk/web/geonetwork/xsl/conversion/import/OGCSLD-to-ISO19139.xsl (rev 0) +++ trunk/web/geonetwork/xsl/conversion/import/OGCSLD-to-ISO19139.xsl 2008-04-08 10:58:31 UTC (rev 1257) @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="1.0" xmlns="http://www.fao.org/geonetwork" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + <xsl:include href="../OGCSLDtoISO19139/OGCSLD-to-ISO19139.xsl"/> + <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" /> + <xsl:template match="/"> + <xsl:apply-templates /> + </xsl:template> +</xsl:stylesheet> Property changes on: trunk/web/geonetwork/xsl/conversion/import/OGCSLD-to-ISO19139.xsl ___________________________________________________________________ Name: svn:mime-type + text/plain Added: trunk/web/geonetwork/xsl/conversion/import/OGCWMC-to-ISO19139.xsl =================================================================== --- trunk/web/geonetwork/xsl/conversion/import/OGCWMC-to-ISO19139.xsl (rev 0) +++ trunk/web/geonetwork/xsl/conversion/import/OGCWMC-to-ISO19139.xsl 2008-04-08 10:58:31 UTC (rev 1257) @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="1.0" xmlns="http://www.fao.org/geonetwork" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + <xsl:include href="../OGCWMCtoISO19139/OGCWMC-to-ISO19139.xsl"/> + <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" /> + <xsl:template match="/"> + <xsl:apply-templates /> + </xsl:template> +</xsl:stylesheet> Property changes on: trunk/web/geonetwork/xsl/conversion/import/OGCWMC-to-ISO19139.xsl ___________________________________________________________________ Name: svn:mime-type + text/plain Added: trunk/web/geonetwork/xsl/conversion/import/OGCWxSGetCapabilities-to-ISO19119_ISO19139.xsl =================================================================== --- trunk/web/geonetwork/xsl/conversion/import/OGCWxSGetCapabilities-to-ISO19119_ISO19139.xsl (rev 0) +++ trunk/web/geonetwork/xsl/conversion/import/OGCWxSGetCapabilities-to-ISO19119_ISO19139.xsl 2008-04-08 10:58:31 UTC (rev 1257) @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="1.0" xmlns="http://www.fao.org/geonetwork" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + <xsl:include href="../OGCWxSGetCapabilitiesto19119/OGCWxSGetCapabilities-to-19119.xsl"/> + <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" /> + <xsl:template match="/"> + <xsl:apply-templates /> + </xsl:template> +</xsl:stylesheet> \ No newline at end of file Property changes on: trunk/web/geonetwork/xsl/conversion/import/OGCWxSGetCapabilities-to-ISO19119_ISO19139.xsl ___________________________________________________________________ Name: svn:mime-type + text/plain Modified: trunk/web/geonetwork/xsl/harvesting/harvesting.xsl =================================================================== --- trunk/web/geonetwork/xsl/harvesting/harvesting.xsl 2008-04-08 10:57:29 UTC (rev 1256) +++ trunk/web/geonetwork/xsl/harvesting/harvesting.xsl 2008-04-08 10:58:31 UTC (rev 1257) @@ -10,6 +10,7 @@ <xsl:include href="geonet20/geonetwork.xsl"/> <xsl:include href="webdav/webdav.xsl"/> <xsl:include href="csw/csw.xsl"/> + <xsl:include href="ogcwxs/ogcwxs.xsl"/> <xsl:include href="z3950/z3950.xsl"/> <xsl:include href="oaipmh/oaipmh.xsl"/> @@ -87,7 +88,8 @@ <xsl:call-template name="editPanel-WD"/> <xsl:call-template name="editPanel-GN20"/> <xsl:call-template name="editPanel-CSW"/> - <xsl:call-template name="editPanel-Z39"/> + <xsl:call-template name="editPanel-OGCWXS"/> + <xsl:call-template name="editPanel-Z39"/> <xsl:call-template name="editPanel-OAI"/> </xsl:template> Added: trunk/web/geonetwork/xsl/xml/harvesting/ogcwxs.xsl =================================================================== --- trunk/web/geonetwork/xsl/xml/harvesting/ogcwxs.xsl (rev 0) +++ trunk/web/geonetwork/xsl/xml/harvesting/ogcwxs.xsl 2008-04-08 10:58:31 UTC (rev 1257) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + + <!-- ============================================================================================= --> + + <xsl:import href="common.xsl"/> + + <!-- ============================================================================================= --> + <!-- === OGC WxS harvesting node --> + <!-- ============================================================================================= --> + + <xsl:template match="*" mode="site"> + <url><xsl:value-of select="url/value" /></url> + <ogctype><xsl:value-of select="ogctype/value" /></ogctype> + <icon><xsl:value-of select="icon/value" /></icon> + </xsl:template> + + <!-- ============================================================================================= --> + + <xsl:template match="*" mode="options"> + <lang><xsl:value-of select="lang/value" /></lang> + <topic><xsl:value-of select="topic/value" /></topic> + <createThumbnails><xsl:value-of select="createThumbnails/value" /></createThumbnails> + <useLayer><xsl:value-of select="useLayer/value" /></useLayer> + <useLayerMd><xsl:value-of select="useLayerMd/value" /></useLayerMd> + <datasetCategory><xsl:value-of select="datasetCategory/value" /></datasetCategory> + </xsl:template> + + <!-- ============================================================================================= --> + + <xsl:template match="*" mode="searches"/> + + <!-- ============================================================================================= --> + +</xsl:stylesheet> Property changes on: trunk/web/geonetwork/xsl/xml/harvesting/ogcwxs.xsl ___________________________________________________________________ Name: svn:mime-type + text/plain This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 10:57:26
|
Revision: 1256 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1256&view=rev Author: fxprunayre Date: 2008-04-08 03:57:29 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Updated Jeeves lib with pdf support Modified Paths: -------------- trunk/web/geonetwork/WEB-INF/lib/jeeves.jar Modified: trunk/web/geonetwork/WEB-INF/lib/jeeves.jar =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 10:56:58
|
Revision: 1255 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1255&view=rev Author: fxprunayre Date: 2008-04-08 03:56:59 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Added PDF icon Added Paths: ----------- trunk/web/geonetwork/images/pdf.gif Added: trunk/web/geonetwork/images/pdf.gif =================================================================== (Binary files differ) Property changes on: trunk/web/geonetwork/images/pdf.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 10:56:29
|
Revision: 1254 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1254&view=rev Author: fxprunayre Date: 2008-04-08 03:56:32 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Added existsMetadataUuid method to check uuid exist or not Modified Paths: -------------- trunk/src/org/fao/geonet/kernel/DataManager.java Modified: trunk/src/org/fao/geonet/kernel/DataManager.java =================================================================== --- trunk/src/org/fao/geonet/kernel/DataManager.java 2008-04-08 10:55:05 UTC (rev 1253) +++ trunk/src/org/fao/geonet/kernel/DataManager.java 2008-04-08 10:56:32 UTC (rev 1254) @@ -480,7 +480,7 @@ return record.getChildText("id"); } - + //-------------------------------------------------------------------------- public String getMetadataId(ServiceContext srvContext, String uuid) throws Exception { @@ -492,7 +492,6 @@ Element record = (Element) list.get(0); return record.getChildText("id"); } - //-------------------------------------------------------------------------- public String getMetadataUuid(Dbms dbms, String id) throws Exception @@ -892,6 +891,17 @@ return list.size() != 0; } + /** Returns true if the metadata uuid exists in the database + */ + + public boolean existsMetadataUuid(Dbms dbms, String uuid) throws Exception + { + //FIXME : should use lucene + + List list = dbms.select("SELECT uuid FROM Metadata WHERE uuid='" + uuid + "'").getChildren(); + return list.size() != 0; + } + //-------------------------------------------------------------------------- /** Returns all the keywords in the system */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 10:55:11
|
Revision: 1253 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1253&view=rev Author: fxprunayre Date: 2008-04-08 03:55:05 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Added OGC WxS GetCapabilities harvester Modified Paths: -------------- trunk/src/org/fao/geonet/constants/Geonet.java trunk/src/org/fao/geonet/kernel/harvest/harvester/AbstractHarvester.java trunk/src/org/fao/geonet/services/thumbnail/Set.java trunk/src/org/fao/geonet/services/thumbnail/Unset.java Added Paths: ----------- trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/ trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/Harvester.java trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/OgcWxSHarvester.java trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/OgcWxSParams.java Modified: trunk/src/org/fao/geonet/constants/Geonet.java =================================================================== --- trunk/src/org/fao/geonet/constants/Geonet.java 2008-04-08 10:41:29 UTC (rev 1252) +++ trunk/src/org/fao/geonet/constants/Geonet.java 2008-04-08 10:55:05 UTC (rev 1253) @@ -99,7 +99,8 @@ public static final String CSW = Jeeves.Path.XML + "csw/"; public static final String VALIDATION = Jeeves.Path.XML + "validation/"; public static final String STYLESHEETS = "/xsl"; - public static final String IMPORT_STYLESHEETS = "/xsl/conversion/import"; + public static final String CONV_STYLESHEETS = STYLESHEETS + "/conversion"; + public static final String IMPORT_STYLESHEETS = CONV_STYLESHEETS + "/import"; public static final String LOGOS = "/images/logos/"; } Modified: trunk/src/org/fao/geonet/kernel/harvest/harvester/AbstractHarvester.java =================================================================== --- trunk/src/org/fao/geonet/kernel/harvest/harvester/AbstractHarvester.java 2008-04-08 10:41:29 UTC (rev 1252) +++ trunk/src/org/fao/geonet/kernel/harvest/harvester/AbstractHarvester.java 2008-04-08 10:55:05 UTC (rev 1253) @@ -44,6 +44,7 @@ import org.fao.geonet.kernel.harvest.harvester.geonet.GeonetHarvester; import org.fao.geonet.kernel.harvest.harvester.geonet20.Geonet20Harvester; import org.fao.geonet.kernel.harvest.harvester.oaipmh.OaiPmhHarvester; +import org.fao.geonet.kernel.harvest.harvester.ogcwxs.OgcWxSHarvester; import org.fao.geonet.kernel.harvest.harvester.webdav.WebDavHarvester; import org.fao.geonet.kernel.harvest.harvester.z3950.Z3950Harvester; import org.fao.geonet.kernel.setting.SettingManager; @@ -63,11 +64,12 @@ public static void staticInit(ServiceContext context) throws Exception { register(context, GeonetHarvester .class); + register(context, Geonet20Harvester.class); register(context, WebDavHarvester .class); - register(context, Geonet20Harvester.class); register(context, CswHarvester .class); register(context, Z3950Harvester .class); register(context, OaiPmhHarvester .class); + register(context, OgcWxSHarvester .class); } //--------------------------------------------------------------------------- Added: trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/Harvester.java =================================================================== --- trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/Harvester.java (rev 0) +++ trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/Harvester.java 2008-04-08 10:55:05 UTC (rev 1253) @@ -0,0 +1,875 @@ +//============================================================================= +//=== Copyright (C) 2001-2007 Food and Agriculture Organization of the +//=== United Nations (FAO-UN), United Nations World Food Programme (WFP) +//=== and United Nations Environment Programme (UNEP) +//=== +//=== This program is free software; you can redistribute it and/or modify +//=== it under the terms of the GNU General Public License as published by +//=== the Free Software Foundation; either version 2 of the License, or (at +//=== your option) any later version. +//=== +//=== This program is distributed in the hope that it will be useful, but +//=== WITHOUT ANY WARRANTY; without even the implied warranty of +//=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +//=== General Public License for more details. +//=== +//=== You should have received a copy of the GNU General Public License +//=== along with this program; if not, write to the Free Software +//=== Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +//=== +//=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, +//=== Rome - Italy. email: geo...@os... +//============================================================================== + +package org.fao.geonet.kernel.harvest.harvester.ogcwxs; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.ArrayList; +import java.util.Date; +import java.util.Map; +import java.util.HashMap; +import java.util.UUID; +import java.net.URL; + +import jeeves.constants.Jeeves; +import jeeves.exceptions.OperationAbortedEx; +import jeeves.interfaces.Logger; +import jeeves.resources.dbms.Dbms; +import jeeves.server.context.ServiceContext; +import jeeves.utils.Xml; +import jeeves.utils.BinaryFile; +import org.fao.geonet.GeonetContext; +import org.fao.geonet.constants.Geonet; +import org.fao.geonet.constants.Params; +import org.fao.geonet.kernel.DataManager; +import org.fao.geonet.kernel.harvest.harvester.CategoryMapper; +import org.fao.geonet.kernel.harvest.harvester.GroupMapper; +import org.fao.geonet.kernel.harvest.harvester.Privileges; +import org.fao.geonet.kernel.harvest.harvester.UUIDMapper; +import org.fao.geonet.kernel.harvest.harvester.UriMapper; +import org.fao.geonet.lib.Lib; +import org.fao.geonet.services.thumbnail.Set; +import org.fao.geonet.services.thumbnail.Unset; +import org.jdom.Element; +import org.jdom.filter.ElementFilter; +import org.jdom.Namespace; +import org.jdom.xpath.XPath; +import org.jdom.JDOMException; +import org.wfp.vam.intermap.kernel.map.mapServices.wms.CapabilitiesStore; +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpException; +import org.apache.commons.httpclient.methods.GetMethod; + + +//============================================================================= +/** + * A OgcWxSHarvester is able to generate metadata for data and service + * from a GetCapabilities documents. Metadata for layers are generated + * using layer information contained in the GetCapabilities document + * or using a xml document pointed by the metadataUrl attribute of layer + * element. + * + * OGC services supported are : + * <ul> + * <li>WMS</li> + * <li>WFS</li> + * <li>WCS</li> + * </ul> + * + * Metadata produced are : + * <ul> + * <li>ISO19119 for service's metadata</li> + * <li>ISO19139 for data's metadata</li> + * </ul> + * + * Note : Layer stands for "Layer" for WMS, "FeatureType" for WFS + * and "Coverage" for WCS. + * + * <pre> + * <nodes> + * <node type="ogcwxs" id="113"> + * <site> + * <name>TEST</name> + * <uuid>c1da2928-c866-49fd-adde-466fe36d3508</uuid> + * <account> + * <use>true</use> + * <username /> + * <password /> + * </account> + * <url>http://localhost:8080/geoserver/wms</url> + * <ogctype>WMS111</ogctype> + * <icon>default.gif</icon> + * </site> + * <options> + * <every>90</every> + * <oneRunOnly>false</oneRunOnly> + * <status>active</status> + * <lang>eng</lang> + * <useLayer>true</useLayer> + * <useLayerMd>false</useLayerMd> + * <datasetCategory></datasetCategory> + * </options> + * <privileges> + * <group id="1"> + * <operation name="view" /> + * </group> + * </privileges> + * <categories> + * <category id="3" /> + * </categories> + * <info> + * <lastRun>2007-12-05T16:17:20</lastRun> + * <running>false</running> + * </info> + * </node> + * </nodes> + * </pre> + * + * @author fxprunayre + * + */ +class Harvester +{ + + + /** + * Constructor + * + * @param log + * @param context Jeeves context + * @param dbms Database + * @param OgcWxSParam Information about harvesting configuration for the node + * + * @return null + */ + public Harvester(Logger log, + ServiceContext context, + Dbms dbms, + OgcWxSParams params) { + this.log = log; + this.context= context; + this.dbms = dbms; + this.params = params; + + result = new OgcWxSResult (); + + GeonetContext gc = (GeonetContext) context.getHandlerContext (Geonet.CONTEXT_NAME); + dataMan = gc.getDataManager (); + + + } + + //--------------------------------------------------------------------------- + //--- + //--- API methods + //--- + //--------------------------------------------------------------------------- + /** + * Start the harvesting of a WMS, WFS or WCS node. + */ + public OgcWxSResult harvest() throws Exception { + Element xml = null; + + log.info("Retrieving remote metadata information for : " + params.name); + + // Clean all before harvest : Remove/Add mechanism + // If harvest failed (ie. if node unreachable), metadata will be removed, and + // the node will not be referenced in the catalogue until next harvesting. + // TODO : define a rule for UUID in order to be able to do an update operation ? + localUuids = new UUIDMapper(dbms, params.uuid); + + + // Try to load capabilities document + String url = + params.url + (params.url.contains("?")?"":"?") + + "&SERVICE=" + params.ogctype.substring(0,3) + + "&VERSION=" + params.ogctype.substring(3) + + "&REQUEST=" + GETCAPABILITIES + ; + + xml = Xml.loadFile (new URL(url)); + + //----------------------------------------------------------------------- + //--- remove old metadata + for (String uuid : localUuids.getUUIDs()) + { + String id = localUuids.getID (uuid); + + log.debug (" - Removing old metadata before update with id: " + id); + + // Remove thumbnails + unsetThumbnail (id); + + // Remove metadata + dataMan.deleteMetadata (dbms, id); + + result.locallyRemoved ++; + } + + if (result.locallyRemoved > 0) + dbms.commit (); + + // Convert from GetCapabilities to ISO19119 + addMetadata (xml); + + dbms.commit (); + + result.total = result.added + result.layer; + + return result; + } + + + + /** + * Add metadata to the node for a WxS service + * + * 1.Use GetCapabilities Document + * 2.Transform using XSLT to iso19119 + * 3.Loop through layers + * 4.Create md for layer + * 5.Add operatesOn elem with uuid + * 6.Save all + * + * @param capa GetCapabilities document + * + */ + private void addMetadata (Element capa) throws Exception + { + if (capa == null) + return; + + //--- Loading categories and groups + localCateg = new CategoryMapper (dbms); + localGroups = new GroupMapper (dbms); + + String uuid = params.url; // is the service identifier + // FIXME : a better approach could be to md5 the full capabilities URL + + //--- Loading stylesheet + String styleSheet = context.getAppPath() + + Geonet.Path.IMPORT_STYLESHEETS + + "/OGCWxSGetCapabilities-to-ISO19119_ISO19139.xsl"; + + log.debug (" - XSLT transformation using OGCWxSGetCapabilities-to-ISO19119_ISO19139.xsl"); + + Map<String, String> param = new HashMap<String, String>(); + param.put("lang", params.lang); + param.put("topic", params.topic); + + Element md = Xml.transform (capa, styleSheet, param); + + String schema = dataMan.autodetectSchema (md); // ie. iso19139; + + if (schema == null) { + log.warning("Skipping metadata with unknown schema."); + result.unknownSchema ++; + } + + + //--- Create metadata for layers only if user ask for + if (params.useLayer || params.useLayerMd) { + // Load CRS + // TODO + + //--- Select layers, featureTypes and Coverages (for layers having no child named layer = not take group of layer into account) + // and add the metadata + XPath xp = XPath.newInstance ("//Layer[count(./*[name(.)='Layer'])=0] | " + + "//wfs:FeatureType | " + + "//wcs:CoverageOfferingBrief"); + xp.addNamespace("wfs", "http://www.opengis.net/wfs"); + xp.addNamespace("wcs", "http://www.opengis.net/wcs"); + + List<Element> layers = xp.selectNodes(capa); + log.info(" - Number of layers, featureTypes or Coverages found : " + layers.size()); + + for (Element layer : layers) { + WxSLayerRegistry s = addLayerMetadata (layer, capa); + if (s != null) + layersRegistry.add(s); + } + + // Update ISO19119 for data/service links creation (ie. operatesOn element) + // The editor will support that but it will make quite heavy XML. + md = addOperatesOnUuid (md, layersRegistry); + + } + + // Save iso19119 metadata in DB + log.info(" - Adding metadata for services with " + uuid); + DateFormat df = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss"); + Date date = new Date(); + + String id = dataMan.insertMetadataExt(dbms, schema, md, context.getSerialFactory(), + params.uuid, df.format(date), df.format(date), + uuid, 1, null); + + int iId = Integer.parseInt(id); + + addPrivileges(id); + addCategories(id); + + dataMan.setTemplate(dbms, iId, "n", null); + dataMan.setHarvested(dbms, iId, params.uuid, params.url); + + dbms.commit(); + //dataMan.indexMetadata(dbms, id); setHarvested update the index + + result.added ++; + + // Add Thumbnails only after metadata insertion to avoid concurrent transaction + // and loaded thumbnails could eventually failed anyway. + if (params.ogctype.startsWith("WMS") && params.createThumbnails) + for (WxSLayerRegistry layer : layersRegistry) + loadThumbnail (layer); + + + } + + + + /** + * Add OperatesOn elements on an ISO19119 metadata + * + * <srv:operatesOn> + * <gmd:MD_DataIdentification uuidref=""/> + * </srv:operatesOn> + * + * @param md iso19119 metadata + * @param uuid uuid to be added as an uuidref attribute + * + */ + private Element addOperatesOnUuid (Element md, List<WxSLayerRegistry> layersRegistry) { + + Namespace gmd = Namespace.getNamespace("http://www.isotc211.org/2005/gmd"); + Namespace gco = Namespace.getNamespace("http://www.isotc211.org/2005/gco"); + Namespace srv = Namespace.getNamespace("http://www.isotc211.org/2005/srv"); + Namespace xlink = Namespace.getNamespace("xlink", "http://www.w3.org/1999/xlink"); + + + Element root = md.getChild("identificationInfo", gmd) + .getChild("SV_ServiceIdentification", srv); + Element co = md.getChild("identificationInfo", gmd) + .getChild("SV_ServiceIdentification", srv) + .getChild("containsOperations", srv); + int idx = md.indexOf(co); + + + /* + * TODO + * + For each queryable layer queryable = "1" et /ROOT/Capability/Request/*[name()!='getCapabilities'] + or queryable = "0" et /ROOT/Capability/Request/*[name()!='getCapabilities' and name!='GetFeatureInfo'] + should do + srv:coupledResource/srv:SV_CoupledResource/srv:OperationName = /ROOT/Capability/Request/child::name() + srv:coupledResource/srv:SV_CoupledResource/srv:identifier = UUID of the data metadata + srv:coupledResource/srv:SV_CoupledResource/gco:ScopedName = Layer/Name + But is this really useful in ISO19119 ? + */ + + if (root != null) { + log.debug(" - add SV_CoupledResource and OperatesOnUuid"); + + for (WxSLayerRegistry layer : layersRegistry) + { + // and maybe add the title for display in metadata of the service + + /* + Element cr = new Element ("coupledResource", srv); + Element scr = new Element ("SV_CoupledResource", srv); + Element on = new Element ("OperationName", srv); + + if (params.ogctype.startsWith("WMS")) + on.setText("GetMap"); + else if (params.ogctype.startsWith("WFS")) + on.setText("GetFeature"); + else if (params.ogctype.startsWith("WCS")) + on.setText("GetCoverage"); + // FIXME : we should use operations name others /ROOT/Capability/Request/child::name() + + Element id = new Element ("identifier", srv); + id.setText(layer.uuid); + Element sn = new Element ("ScopedName", gco); + sn.setText(layer.name); + + scr.addContent(on); + scr.addContent(id); + scr.addContent(sn); + cr.setContent(scr); + + root.addContent(cr); + + */ + + Element op = new Element ("operatesOn", srv); + //Element di = new Element ("MD_DataIdentification", gmd); + op.setAttribute("uuidref", layer.uuid); + // FIXME : + // * This could use URN instead of URL. But then, how to resolve URN ? + // * This should use UUID instead + op.setAttribute("href", context.getBaseUrl() + "/srv/en/metadata.show?id=" + layer.id, xlink); + op.setAttribute("title", layer.name, xlink); + //op.setContent(di); + + root.addContent(op); + + } + } + + return md; + } + + + /** + * Add metadata for a Layer/FeatureType/Coverage element of a GetCapabilities document. + * This function search for a metadataUrl element (with @type = TC211 and format = text/xml) + * and try to load the XML document. + * If failed, then an XSLT is used for creating metadata from the + * Layer/FeatureType/Coverage element. + * If loaded document contain an existing uuid, metadata will not be loaded in the catalogue. + * + * @param md Layer/FeatureType/Coverage element + * @param capa GetCapabilities document + * + * @return uuid + * + */ + private WxSLayerRegistry addLayerMetadata (Element layer, Element capa) throws JDOMException + { + + DateFormat df = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss"); + Date dt = new Date (); + WxSLayerRegistry reg= new WxSLayerRegistry (); + String schema = "iso19139"; + String mdXml = ""; + String date = df.format (dt); + //--- Loading stylesheet + String styleSheet = context.getAppPath () + + Geonet.Path.CONV_STYLESHEETS + + "/OGCWxSGetCapabilitiesto19119/OGCWxSGetCapabilitiesLayer-to-19139.xsl"; + Element xml = null; + + boolean exist = false; + boolean loaded = false; + + reg.uuid = UUID.randomUUID().toString(); + + if (params.ogctype.substring(0,3).equals("WMS")) { + reg.name = layer.getChild ("Name").getValue (); + } else if (params.ogctype.substring(0,3).equals("WFS")) { + Namespace wfs = Namespace.getNamespace("http://www.opengis.net/wfs"); + reg.name = layer.getChild ("Name", wfs).getValue (); + } else if (params.ogctype.substring(0,3).equals("WCS")) { + Namespace wcs = Namespace.getNamespace("http://www.opengis.net/wcs"); + reg.name = layer.getChild ("name", wcs).getValue (); + } + + log.info (" - Loading layer: " + reg.name); + + + //--- Trying loading metadataUrl element + if (params.useLayerMd && !params.ogctype.substring(0,3).equals("WMS")) { + log.info(" - MetadataUrl harvester only supported for WMS layers."); + } + + if (params.useLayerMd && params.ogctype.substring(0,3).equals("WMS")) { + + Namespace xlink = Namespace.getNamespace ("http://www.w3.org/1999/xlink"); + + // Get metadataUrl xlink:href + // TODO : add support for WCS & WFS metadataUrl element. + XPath mdUrl = XPath.newInstance ("./MetadataURL[@type='TC211' and Format='text/xml']/OnlineResource"); + Element onLineSrc = (Element) mdUrl.selectSingleNode (layer); + + if (onLineSrc != null) { + org.jdom.Attribute href = onLineSrc.getAttribute ("href", xlink); + + if (href != null) { // No metadataUrl attribute for that layer + mdXml = href.getValue (); + try { + xml = Xml.loadFile (new URL(mdXml)); + + schema = dataMan.autodetectSchema (xml); // ie. iso19115 or 139 or DC + // Extract uuid from loaded xml document + // FIXME : uuid could be duplicate if metadata already exist in catalog + reg.uuid = dataMan.extractUUID(schema, xml); + exist = dataMan.existsMetadataUuid(dbms, reg.uuid); + + if (exist) { + log.warning(" Metadata uuid already exist in the catalogue. Metadata will not be loaded."); + result.layerUuidExist ++; + // FIXME : return null, service and metadata will not be linked by default. + return null; + } + + if (schema == null) { + log.warning(" Failed to detect schema from metadataUrl file. Use GetCapabilities document instead for that layer."); + result.unknownSchema ++; + loaded = false; + } else { + log.info(" - Load layer metadataUrl document ok: " + mdXml); + + loaded = true; + result.layerUsingMdUrl ++; + } + // TODO : catch other exception + }catch (Exception e) { + log.warning(" - Failed to load layer using metadataUrl attribute : " + e.getMessage()); + loaded = false; + } + } else { + log.info(" - No metadataUrl attribute with format text/xml found for that layer"); + loaded = false; + } + } else { + log.info(" - No OnlineResource found for that layer"); + loaded = false; + } + } + + + //--- using GetCapabilities document + if (!loaded){ + try { + //--- set XSL param to filter on layer and set uuid + Map<String, String> param = new HashMap<String, String>(); + param.put("uuid", reg.uuid); + param.put("Name", reg.name); + param.put("lang", params.lang); + param.put("topic", params.topic); + + xml = Xml.transform (capa, styleSheet, param); + log.debug(" - Layer loaded using GetCapabilities document."); + + } catch (Exception e) { + log.warning(" - Failed to do XSLT transformation on Layer element : " + e.getMessage()); + } + } + + + // Insert in db + try { + reg.id = dataMan.insertMetadataExt(dbms, schema, xml, context.getSerialFactory(), + params.uuid, date, date, + reg.uuid, 1, null); + int iId = Integer.parseInt(reg.id); + log.debug(" - Layer loaded in DB."); + + log.debug(" - Set Privileges and category."); + addPrivileges(reg.id); + dataMan.setCategory (dbms, reg.id, params.datasetCategory); + + log.debug(" - Set Harvested."); + dataMan.setHarvested(dbms, iId, params.uuid, params.url); // FIXME : harvestUuid should be a MD5 string + + dbms.commit(); + + //dataMan.indexMetadata(dbms, reg.id); setHarvested update the index + + + // Load bbox info for later use (eg. WMS thumbnails creation) + Namespace gmd = Namespace.getNamespace("http://www.isotc211.org/2005/gmd"); + Namespace gco = Namespace.getNamespace("http://www.isotc211.org/2005/gco"); + + Iterator<Element> bboxes = xml.getDescendants( + new ElementFilter ("EX_GeographicBoundingBox", gmd) + ); + + while (bboxes.hasNext()) { + Element box = (Element) bboxes.next(); + // FIXME : Could be null. Default bbox if from root layer + reg.minx = Double.valueOf(box.getChild("westBoundLongitude", gmd).getChild("Decimal", gco).getText()); + reg.miny = Double.valueOf(box.getChild("southBoundLatitude", gmd).getChild("Decimal", gco).getText()); + reg.maxx = Double.valueOf(box.getChild("eastBoundLongitude", gmd).getChild("Decimal", gco).getText()); + reg.maxy = Double.valueOf(box.getChild("northBoundLatitude", gmd).getChild("Decimal", gco).getText()); + + } + + + result.layer ++; + log.info(" - metadata loaded with uuid: " + reg.uuid + "/internal id: " + reg.id); + + } catch (Exception e) { + log.warning(" - Failed to load layer metadata : " + e.getMessage()); + result.unretrievable ++; + return null; + } + + return reg; + } + + + /** + * Call GeoNetwork service to load thumbnails and create small and + * big ones. + * + * + * @param layer layer for which the thumbnail needs to be generated + * + */ + private void loadThumbnail (WxSLayerRegistry layer){ + log.debug(" - Creating thumbnail for layer metadata: " + layer.name + " id: " + layer.id); + Set s = new org.fao.geonet.services.thumbnail.Set (); + + try { + String filename = getMapThumbnail(layer); + if (filename != null) { + Element par = new Element ("request"); + par.addContent(new Element ("id").setText(layer.id)); + par.addContent(new Element ("version").setText("10")); + par.addContent(new Element ("type").setText("large")); + + Element fname = new Element ("fname").setText(filename); + fname.setAttribute("content-type", "image/png"); + fname.setAttribute("type", "file"); + fname.setAttribute("size", ""); + + par.addContent(fname); // TODO + par.addContent(new Element ("add").setText("Add")); + par.addContent(new Element ("scaling").setText("on")); + par.addContent(new Element ("scalingFactor").setText("800")); + par.addContent(new Element ("scalingDir").setText("width")); + par.addContent(new Element ("createSmall").setText("on")); + par.addContent(new Element ("smallScalingFactor").setText("180")); + par.addContent(new Element ("smallScalingDir").setText("width")); + + // Call the services + s.execOnHarvest(par, context, dbms, dataMan); + + result.thumbnails ++; + } else + result.thumbnailsFailed ++; + } catch (Exception e) { + log.warning(" - Failed to set thumbnail for metadata: " + e.getMessage()); + result.thumbnailsFailed ++; + } + + } + + /** + * Remove thumbnails directory for all metadata + * FIXME : Do this only for existing one ! + * + * @param layer layer for which the thumbnail needs to be generated + * + */ + private void unsetThumbnail (String id){ + //log.debug(" - Removing thumbnail for layer metadata: " + id); + + try { + String file = Lib.resource.getDir(context, Params.Access.PUBLIC, id) + id; + + if (!new File(file).delete()) + log.error(" - Failed to remove thumbnail for metadata: " + id); + + } catch (Exception e) { + log.warning(" - Failed to remove thumbnail for metadata: " + e.getMessage()); + } + } + + + + /** + * Load thumbnails making a GetMap operation. + * Width is 300px. Ratio is computed for height using LatLongBoundingBoxElement. + * + * + * @param layer layer for which the thumbnail needs to be generated + * + */ + private String getMapThumbnail (WxSLayerRegistry layer) { + String filename = layer.uuid + ".png"; + String dir = context.getUploadDir(); + Double r = WIDTH / + (layer.maxx - layer.minx) * + (layer.maxy - layer.miny); + + + // Usual GetMap url tested with mapserver and geoserver + // http://localhost:8080/geoserver/wms?service=WMS&request=GetMap&VERSION=1.1.1& + // LAYERS=gn:world&WIDTH=200&HEIGHT=200&FORMAT=image/png&BBOX=-180,-90,180,90&STYLES= + String url = + params.url + (params.url.contains("?")?"":"?") + + "&SERVICE=" + params.ogctype.substring(0,3) + + "&VERSION=" + params.ogctype.substring(3) + + "&REQUEST=" + GETMAP + + "&FORMAT=" + IMAGE_FORMAT + + "&WIDTH=" + WIDTH + + "&SRS=EPSG:4326" + + "&HEIGHT=" + Integer.valueOf(r.intValue()) + + "&LAYERS=" + layer.name + + "&STYLES=" + + "&BBOX=" + + layer.minx + "," + + layer.miny + "," + + layer.maxx + "," + + layer.maxy + ; + // All is in Lat/Long epsg:4326 + + HttpClient httpclient = new HttpClient (); + GetMethod req = new GetMethod (url); + + // TODO : Proxy ? BA ? + log.debug ("Retrieving remote document: " + url); + + try { + // Connect + int result = httpclient.executeMethod (req); + log.debug(" Get " + result); + + if (result == 200) { + // Save image document to temp directory + // TODO: Check OGC exception + File f = new File (dir + filename); + OutputStream fo = new FileOutputStream (dir + filename); + BinaryFile.copy (req.getResponseBodyAsStream(), + fo, + true, + true); + } else { + log.info (" Http error connecting"); + return null; + } + } catch (HttpException he) { + log.info (" Http error connecting to '" + httpclient.toString() + "'"); + log.info (he.getMessage()); + return null; + } catch (IOException ioe){ + log.info (" Unable to connect to '" + httpclient.toString() + "'"); + return null; + } finally { + // Release current connection to the connection pool once you are done + req.releaseConnection (); + } + + return filename; + } + + + + /** + * Validates metadata according to the schema. + * + * + * @param schema Usually iso19139 + * @param md Metadata to be validated + * + * @return true or false + * + */ + private boolean validates(String schema, Element md) + { + try + { + dataMan.validate(schema, md); + return true; + } + catch (Exception e) + { + return false; + } + } + + /** + * Add categories according to harvesting configuration + * + * @param id GeoNetwork internal identifier + * + */ + private void addCategories (String id) throws Exception + { + for(String catId : params.getCategories ()) + { + String name = localCateg.getName (catId); + + if (name == null) + log.debug (" - Skipping removed category with id:"+ catId); + else { + dataMan.setCategory (dbms, id, catId); + } + } + } + + /** + * Add privileges according to harvesting configuration + * + * @param id GeoNetwork internal identifier + * + */ + private void addPrivileges (String id) throws Exception + { + for (Privileges priv : params.getPrivileges ()) + { + String name = localGroups.getName( priv.getGroupId ()); + + if (name == null) + log.debug (" - Skipping removed group with id:"+ priv.getGroupId ()); + else + { + for (int opId: priv.getOperations ()) + { + name = dataMan.getAccessManager().getPrivilegeName(opId); + + //--- allow only: view, dynamic, featured + if (opId == 0 || opId == 5 || opId == 6) + { + dataMan.setOperation(dbms, id, priv.getGroupId(), opId +""); + } + else + log.debug(" --> "+ name +" (skipped)"); + } + } + } + } + + //--------------------------------------------------------------------------- + //--- + //--- Variables + //--- + //--------------------------------------------------------------------------- + + private Logger log; + private ServiceContext context; + private Dbms dbms; + private OgcWxSParams params; + private DataManager dataMan; + private CategoryMapper localCateg; + private GroupMapper localGroups; + private UriMapper localUris; + private OgcWxSResult result; + private UUIDMapper localUuids; + private String crs = "epsg:4326"; + private static final int WIDTH = 300; + private static final String GETCAPABILITIES = "GetCapabilities"; + private static final String GETMAP = "GetMap"; + private static final String IMAGE_TYPE = "png"; + private static final String IMAGE_FORMAT = "image/png"; + private static final int BUF_SIZE = 8192; + private List<WxSLayerRegistry> layersRegistry = new ArrayList(); + + private class WxSLayerRegistry { + public String uuid; + public String id; + public String name; + public String url; // FIXME : if params.url is not the same as the GetMap Online link + public Double minx = -180.0; + public Double miny = -90.0; + public Double maxx = 180.0; + public Double maxy = 90.0; + }; + +} + +//============================================================================= + Added: trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/OgcWxSHarvester.java =================================================================== --- trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/OgcWxSHarvester.java (rev 0) +++ trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/OgcWxSHarvester.java 2008-04-08 10:55:05 UTC (rev 1253) @@ -0,0 +1,244 @@ +//============================================================================= +//=== Copyright (C) 2001-2007 Food and Agriculture Organization of the +//=== United Nations (FAO-UN), United Nations World Food Programme (WFP) +//=== and United Nations Environment Programme (UNEP) +//=== +//=== This program is free software; you can redistribute it and/or modify +//=== it under the terms of the GNU General Public License as published by +//=== the Free Software Foundation; either version 2 of the License, or (at +//=== your option) any later version. +//=== +//=== This program is distributed in the hope that it will be useful, but +//=== WITHOUT ANY WARRANTY; without even the implied warranty of +//=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +//=== General Public License for more details. +//=== +//=== You should have received a copy of the GNU General Public License +//=== along with this program; if not, write to the Free Software +//=== Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +//=== +//=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, +//=== Rome - Italy. email: geo...@os... +//============================================================================== + +package org.fao.geonet.kernel.harvest.harvester.ogcwxs; + +import java.io.File; +import java.sql.SQLException; +import java.util.UUID; +import jeeves.exceptions.BadInputEx; +import jeeves.interfaces.Logger; +import jeeves.resources.dbms.Dbms; +import jeeves.server.context.ServiceContext; +import jeeves.server.resources.ResourceManager; +import org.fao.geonet.constants.Geonet; +import org.fao.geonet.kernel.harvest.harvester.AbstractHarvester; +import org.fao.geonet.kernel.harvest.harvester.AbstractParams; +import org.fao.geonet.lib.Lib; +import org.jdom.Element; + +//============================================================================= + +public class OgcWxSHarvester extends AbstractHarvester +{ + //-------------------------------------------------------------------------- + //--- + //--- Static init + //--- + //-------------------------------------------------------------------------- + + public static void init(ServiceContext context) throws Exception {} + + //-------------------------------------------------------------------------- + //--- + //--- Harvesting type + //--- + //-------------------------------------------------------------------------- + + public String getType() { return "ogcwxs"; } + + //-------------------------------------------------------------------------- + //--- + //--- Init + //--- + //-------------------------------------------------------------------------- + + protected void doInit(Element node) throws BadInputEx + { + params = new OgcWxSParams(dataMan); + params.create(node); + } + + //--------------------------------------------------------------------------- + //--- + //--- doDestroy + //--- + //--------------------------------------------------------------------------- + + protected void doDestroy(Dbms dbms) throws SQLException + { + File icon = new File(context.getAppPath() +"images/logos", params.uuid +".gif"); + + icon.delete(); + Lib.sources.delete(dbms, params.uuid); + } + + //--------------------------------------------------------------------------- + //--- + //--- Add + //--- + //--------------------------------------------------------------------------- + + protected String doAdd(Dbms dbms, Element node) throws BadInputEx, SQLException + { + params = new OgcWxSParams(dataMan); + + //--- retrieve/initialize information + params.create(node); + + //--- force the creation of a new uuid + params.uuid = UUID.randomUUID().toString(); + + String id = settingMan.add(dbms, "harvesting", "node", getType()); + + storeNode(dbms, params, "id:"+id); + Lib.sources.update(dbms, params.uuid, params.name, true); + Lib.sources.copyLogo(context, "/images/harvesting/"+ params.icon, params.uuid); + + return id; + } + + //--------------------------------------------------------------------------- + //--- + //--- Update + //--- + //--------------------------------------------------------------------------- + + protected void doUpdate(Dbms dbms, String id, Element node) + throws BadInputEx, SQLException + { + OgcWxSParams copy = params.copy(); + + //--- update variables + copy.update(node); + + String path = "harvesting/id:"+ id; + + settingMan.removeChildren(dbms, path); + + //--- update database + storeNode(dbms, copy, path); + + //--- we update a copy first because if there is an exception Params + //--- could be half updated and so it could be in an inconsistent state + + Lib.sources.update(dbms, copy.uuid, copy.name, true); + Lib.sources.copyLogo(context, "/images/harvesting/"+ copy.icon, copy.uuid); + + params = copy; + } + + //--------------------------------------------------------------------------- + + protected void storeNodeExtra(Dbms dbms, AbstractParams p, String path, + String siteId, String optionsId) throws SQLException + { + OgcWxSParams params = (OgcWxSParams) p; + + settingMan.add(dbms, "id:"+siteId, "url", params.url); + settingMan.add(dbms, "id:"+siteId, "icon", params.icon); + settingMan.add(dbms, "id:"+siteId, "ogctype", params.ogctype); + settingMan.add(dbms, "id:"+optionsId, "lang", params.lang); + settingMan.add(dbms, "id:"+optionsId, "topic", params.topic); + settingMan.add(dbms, "id:"+optionsId, "createThumbnails", params.createThumbnails); + settingMan.add(dbms, "id:"+optionsId, "useLayer", params.useLayer); + settingMan.add(dbms, "id:"+optionsId, "useLayerMd", params.useLayerMd); + settingMan.add(dbms, "id:"+optionsId, "datasetCategory", params.datasetCategory); + } + + //--------------------------------------------------------------------------- + //--- + //--- AbstractParameters + //--- + //--------------------------------------------------------------------------- + + public AbstractParams getParams() { return params; } + + //--------------------------------------------------------------------------- + //--- + //--- AddInfo + //--- + //--------------------------------------------------------------------------- + + protected void doAddInfo(Element node) + { + //--- if the harvesting is not started yet, we don't have any info + + if (result == null) + return; + + //--- ok, add proper info + + Element info = node.getChild("info"); + Element res = new Element("result"); + + add(res, "total", result.total); + add(res, "added", result.added); + add(res, "layer", result.layer); + add(res, "layerUuidExist", result.layerUuidExist); + add(res, "layerUsingMdUrl", result.layerUsingMdUrl); + add(res, "unknownSchema", result.unknownSchema); + add(res, "removed", result.locallyRemoved); + add(res, "unretrievable", result.unretrievable); + add(res, "badFormat", result.badFormat); + add(res, "doesNotValidate", result.doesNotValidate); + add(res, "thumbnails", result.thumbnails); + add(res, "thumbnailsFailed", result.thumbnailsFailed); + + info.addContent(res); + } + + //--------------------------------------------------------------------------- + //--- + //--- Harvest + //--- + //--------------------------------------------------------------------------- + + protected void doHarvest(Logger log, ResourceManager rm) throws Exception + { + Dbms dbms = (Dbms) rm.open(Geonet.Res.MAIN_DB); + + Harvester h = new Harvester(log, context, dbms, params); + result = h.harvest(); + } + + //--------------------------------------------------------------------------- + //--- + //--- Variables + //--- + //--------------------------------------------------------------------------- + + private OgcWxSParams params; + private OgcWxSResult result; +} + +//============================================================================= + +class OgcWxSResult +{ + public int total; // = md for data and service (ie. data + 1) + public int added; // = total + public int layer; // = md for data + public int layerUuidExist; // = uuid already in catalogue + public int layerUsingMdUrl; // = md for data using metadata URL document if ok + public int locallyRemoved; // = md removed + public int unknownSchema; // = md with unknown schema (should be 0 if no layer loaded using md url) + public int unretrievable; // = http connection failed + public int badFormat; // + public int doesNotValidate; // = 0 cos' not validated + public int thumbnails; // = number of thumbnail generated + public int thumbnailsFailed;// = number of thumbnail creation which failed +} + +//============================================================================= + Added: trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/OgcWxSParams.java =================================================================== --- trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/OgcWxSParams.java (rev 0) +++ trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/OgcWxSParams.java 2008-04-08 10:55:05 UTC (rev 1253) @@ -0,0 +1,140 @@ +//============================================================================= +//=== Copyright (C) 2001-2007 Food and Agriculture Organization of the +//=== United Nations (FAO-UN), United Nations World Food Programme (WFP) +//=== and United Nations Environment Programme (UNEP) +//=== +//=== This program is free software; you can redistribute it and/or modify +//=== it under the terms of the GNU General Public License as published by +//=== the Free Software Foundation; either version 2 of the License, or (at +//=== your option) any later version. +//=== +//=== This program is distributed in the hope that it will be useful, but +//=== WITHOUT ANY WARRANTY; without even the implied warranty of +//=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +//=== General Public License for more details. +//=== +//=== You should have received a copy of the GNU General Public License +//=== along with this program; if not, write to the Free Software +//=== Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +//=== +//=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, +//=== Rome - Italy. email: geo...@os... +//============================================================================== + +package org.fao.geonet.kernel.harvest.harvester.ogcwxs; + +import jeeves.exceptions.BadInputEx; +import jeeves.utils.Util; +import org.fao.geonet.kernel.DataManager; +import org.fao.geonet.kernel.harvest.harvester.AbstractParams; +import org.jdom.Element; + +//============================================================================= + +public class OgcWxSParams extends AbstractParams +{ + //-------------------------------------------------------------------------- + //--- + //--- Constructor + //--- + //-------------------------------------------------------------------------- + + public OgcWxSParams(DataManager dm) + { + super(dm); + } + + //--------------------------------------------------------------------------- + //--- + //--- Create : called when a new entry must be added. Reads values from the + //--- provided entry, providing default values + //--- + //--------------------------------------------------------------------------- + + public void create(Element node) throws BadInputEx + { + super.create(node); + + Element site = node.getChild("site"); + Element opt = node.getChild("options"); + + url = Util.getParam(site, "url", ""); + icon = Util.getParam(site, "icon", ""); + ogctype = Util.getParam(site, "ogctype", ""); + lang = Util.getParam(opt, "lang", ""); + topic = Util.getParam(opt, "topic", ""); + createThumbnails= Util.getParam(opt, "createThumbnails", false); + useLayer = Util.getParam(opt, "useLayer", false); + useLayerMd = Util.getParam(opt, "useLayerMd", false); + datasetCategory = Util.getParam(opt, "datasetCategory", ""); + } + + //--------------------------------------------------------------------------- + //--- + //--- Update : called when an entry has changed and variables must be updated + //--- + //--------------------------------------------------------------------------- + + public void update(Element node) throws BadInputEx + { + super.update(node); + + Element site = node.getChild("site"); + Element opt = node.getChild("options"); + + url = Util.getParam(site, "url", url); + icon = Util.getParam(site, "icon", icon); + ogctype = Util.getParam(site, "ogctype", ogctype); + + lang = Util.getParam(opt, "lang", lang); + topic = Util.getParam(opt, "topic", topic); + createThumbnails= Util.getParam(opt, "createThumbnails", createThumbnails); + useLayer = Util.getParam(opt, "useLayer", useLayer); + useLayerMd = Util.getParam(opt, "useLayerMd", useLayerMd); + datasetCategory = Util.getParam(opt, "datasetCategory", datasetCategory); + } + + //--------------------------------------------------------------------------- + //--- + //--- Other API methods + //--- + //--------------------------------------------------------------------------- + + public OgcWxSParams copy() + { + OgcWxSParams copy = new OgcWxSParams(dm); + copyTo(copy); + + copy.url = url; + copy.icon = icon; + copy.ogctype = ogctype; + copy.lang = lang; + copy.topic = topic; + copy.createThumbnails = createThumbnails; + copy.useLayer = useLayer; + copy.useLayerMd = useLayerMd; + copy.datasetCategory = datasetCategory; + return copy; + } + + //--------------------------------------------------------------------------- + //--- + //--- Variables + //--- + //--------------------------------------------------------------------------- + + public String url; + public String icon; + public String ogctype; + public String lang; + public String topic; + public String crs = "epsg:4326"; + public boolean createThumbnails; + public boolean useLayer; + public boolean useLayerMd; + public String datasetCategory; +} + +//============================================================================= + + Modified: trunk/src/org/fao/geonet/services/thumbnail/Set.java =================================================================== --- trunk/src/org/fao/geonet/services/thumbnail/Set.java 2008-04-08 10:41:29 UTC (rev 1252) +++ trunk/src/org/fao/geonet/services/thumbnail/Set.java 2008-04-08 10:55:05 UTC (rev 1253) @@ -156,6 +156,85 @@ return response; } + // FIXME : not elegant + public Element execOnHarvest( + Element params, + ServiceContext context, + Dbms dbms, + DataManager dataMan) throws Exception + { + String id = Util.getParam (params, Params.ID); + String type = Util.getParam (params, Params.TYPE); + String version = Util.getParam (params, Params.VERSION); + String file = Util.getParam (params, Params.FNAME); + String scalingDir = Util.getParam (params, Params.SCALING_DIR); + boolean scaling = Util.getParam (params, Params.SCALING, false); + int scalingFactor = Util.getParamAsInt(params, Params.SCALING_FACTOR); + + boolean createSmall = Util.getParam(params, Params.CREATE_SMALL, false); + String smallScalingDir = Util.getParam(params, Params.SMALL_SCALING_DIR, ""); + int smallScalingFactor = Util.getParam(params, Params.SMALL_SCALING_FACTOR, 0); + + GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME); + + String dataDir = Lib.resource.getDir(context, Params.Access.PUBLIC, id); + + new File(dataDir).mkdirs(); + //----------------------------------------------------------------------- + //--- create the small thumbnail, removing the old one + + if (createSmall) + { + String smallFile = getFileName(file, true); + String inFile = context.getUploadDir() + file; + String outFile = dataDir + smallFile; + // FIXME should be done before removeOldThumbnail(context, id, "small"); + createThumbnail(inFile, outFile, smallScalingFactor, smallScalingDir); + dataMan.setThumbnail(dbms, id, true, smallFile); + } + + //----------------------------------------------------------------------- + //--- create the requested thumbnail, removing the old one + // FIXME removeOldThumbnail(context, id, type); + + if (scaling) + { + String newFile = getFileName(file, type.equals("small")); + String inFile = context.getUploadDir() + file; + String outFile = dataDir + newFile; + + createThumbnail(inFile, outFile, scalingFactor, scalingDir); + + if (!new File(inFile).delete()) + context.error("Error while deleting thumbnail : "+inFile); + + dataMan.setThumbnail(dbms, id, type.equals("small"), newFile); + } + else + { + //--- move uploaded file to destination directory + + File inFile = new File(context.getUploadDir(), file); + File outFile = new File(dataDir, file); + + if (!inFile.renameTo(outFile)) + { + inFile.delete(); + throw new Exception("unable to move uploaded thumbnail to destination directory"); + } + + dataMan.setThumbnail(dbms, id, type.equals("small"), file); + } + + //----------------------------------------------------------------------- + + Element response = new Element("Response"); + response.addContent(new Element("id").setText(id)); + // NOT NEEDEDresponse.addContent(new Element("version").setText(dataMan.getNewVersion(id))); + + return response; + } + //-------------------------------------------------------------------------- //--- //--- Private methods Modified: trunk/src/org/fao/geonet/services/thumbnail/Unset.java =================================================================== --- trunk/src/org/fao/geonet/services/thumbnail/Unset.java 2008-04-08 10:41:29 UTC (rev 1252) +++ trunk/src/org/fao/geonet/services/thumbnail/Unset.java 2008-04-08 10:55:05 UTC (rev 1253) @@ -30,6 +30,7 @@ import jeeves.server.ServiceConfig; import jeeves.server.context.ServiceContext; import jeeves.utils.Util; +import jeeves.utils.Xml; import org.fao.geonet.GeonetContext; import org.fao.geonet.constants.Geonet; import org.fao.geonet.constants.Params; @@ -106,6 +107,49 @@ return response; } + + /* + * Remove thumbnail images. + * (Useful for harvester which can not edit metadata but could have + * set up a thumbnail on harvesting + * ) + */ + public void removeThumbnailFile (String id, String type, ServiceContext context) throws Exception { + GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME); + + DataManager dataMan = gc.getDataManager(); + + Dbms dbms = (Dbms) context.getResourceManager().open(Geonet.Res.MAIN_DB); + + Element result = dataMan.getThumbnails(dbms, id); + + if (result == null) + throw new OperationAbortedEx("Metadata not found", id); + + if (type == null) { + remove (result, "thumbnail", id, context); + remove (result, "large_thumbnail", id, context); + } else { + remove (result, type, id, context); + } + + } + + private void remove (Element result, String type, String id, ServiceContext context) throws Exception { + + result = result.getChild(type); + + if (result == null) + throw new OperationAbortedEx("Metadata has no thumbnail", id); + + String file = Lib.resource.getDir(context, Params.Access.PUBLIC, id) + result.getText(); + + if (!new File(file).delete()) + context.error("Error while deleting thumbnail : "+file); + + + } + } //============================================================================= This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 10:41:26
|
Revision: 1252 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1252&view=rev Author: fxprunayre Date: 2008-04-08 03:41:29 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Added lib for PDF file creation using FOP Added Paths: ----------- trunk/web/geonetwork/WEB-INF/lib/avalon-framework-4.2.0.jar trunk/web/geonetwork/WEB-INF/lib/batik-all-1.6.jar trunk/web/geonetwork/WEB-INF/lib/fop.jar trunk/web/geonetwork/WEB-INF/lib/jaxen-1.1.1.jar trunk/web/geonetwork/WEB-INF/lib/xercesImpl-2.7.1.jar trunk/web/geonetwork/WEB-INF/lib/xml-apis-1.3.02.jar trunk/web/geonetwork/WEB-INF/lib/xmlgraphics-commons-1.2.jar Added: trunk/web/geonetwork/WEB-INF/lib/avalon-framework-4.2.0.jar =================================================================== (Binary files differ) Property changes on: trunk/web/geonetwork/WEB-INF/lib/avalon-framework-4.2.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/web/geonetwork/WEB-INF/lib/batik-all-1.6.jar =================================================================== (Binary files differ) Property changes on: trunk/web/geonetwork/WEB-INF/lib/batik-all-1.6.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/web/geonetwork/WEB-INF/lib/fop.jar =================================================================== (Binary files differ) Property changes on: trunk/web/geonetwork/WEB-INF/lib/fop.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/web/geonetwork/WEB-INF/lib/jaxen-1.1.1.jar =================================================================== (Binary files differ) Property changes on: trunk/web/geonetwork/WEB-INF/lib/jaxen-1.1.1.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/web/geonetwork/WEB-INF/lib/xercesImpl-2.7.1.jar =================================================================== (Binary files differ) Property changes on: trunk/web/geonetwork/WEB-INF/lib/xercesImpl-2.7.1.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/web/geonetwork/WEB-INF/lib/xml-apis-1.3.02.jar =================================================================== (Binary files differ) Property changes on: trunk/web/geonetwork/WEB-INF/lib/xml-apis-1.3.02.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/web/geonetwork/WEB-INF/lib/xmlgraphics-commons-1.2.jar =================================================================== (Binary files differ) Property changes on: trunk/web/geonetwork/WEB-INF/lib/xmlgraphics-commons-1.2.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2008-04-08 10:31:15
|
Revision: 1251 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1251&view=rev Author: fxprunayre Date: 2008-04-08 03:31:20 -0700 (Tue, 08 Apr 2008) Log Message: ----------- Updated and translated comments to avoid javadoc warning. Modified Paths: -------------- trunk/src/org/fao/geonet/services/thesaurus/Add.java trunk/src/org/fao/geonet/services/thesaurus/Delete.java trunk/src/org/fao/geonet/services/thesaurus/DeleteElement.java trunk/src/org/fao/geonet/services/thesaurus/Download.java trunk/src/org/fao/geonet/services/thesaurus/EditUtils.java trunk/src/org/fao/geonet/services/thesaurus/GetNarrowerBroader.java trunk/src/org/fao/geonet/services/thesaurus/GetSelectedKeywords.java trunk/src/org/fao/geonet/services/thesaurus/List.java trunk/src/org/fao/geonet/services/thesaurus/SelectKeywords.java trunk/src/org/fao/geonet/services/thesaurus/SortKeywords.java trunk/src/org/fao/geonet/services/thesaurus/Upload.java Modified: trunk/src/org/fao/geonet/services/thesaurus/Add.java =================================================================== --- trunk/src/org/fao/geonet/services/thesaurus/Add.java 2008-04-08 07:39:33 UTC (rev 1250) +++ trunk/src/org/fao/geonet/services/thesaurus/Add.java 2008-04-08 10:31:20 UTC (rev 1251) @@ -58,7 +58,6 @@ GeonetContext gc = (GeonetContext) context .getHandlerContext(Geonet.CONTEXT_NAME); - // Recuperation des parametres String fname = Util.getParam(params, "fname"); String dname = Util.getParam(params, "dname"); String type = Util.getParam(params, "type"); Modified: trunk/src/org/fao/geonet/services/thesaurus/Delete.java =================================================================== --- trunk/src/org/fao/geonet/services/thesaurus/Delete.java 2008-04-08 07:39:33 UTC (rev 1250) +++ trunk/src/org/fao/geonet/services/thesaurus/Delete.java 2008-04-08 10:31:20 UTC (rev 1251) @@ -53,29 +53,23 @@ //--- //-------------------------------------------------------------------------- - /* - * TODO - * SPEC : PAS DE SUPPRESSION DE NOMENCLATURE ! - */ public Element exec(Element params, ServiceContext context) throws Exception { GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME); ThesaurusManager manager = gc.getThesaurusManager(); - // Param\xE8tres : thesaurus + // Get parameters String name = Util.getParam(params, Params.REF); -// String dir = Util.getParam(params, Params.DIR).replace('.', '/'); -// String fname = Util.getParam(params, Params.FNAME); - // R\xE9cup\xE9ration du fichier + // Load file Thesaurus thesaurus = manager.getThesaurusByName(name); File item = thesaurus.getFile(); - // Retrait du manager + // Remove old file from thesaurus manager manager.remove(name); - // Suppression du fichier + // Remove file if (item.exists()) item.delete(); else throw new IllegalArgumentException("Thesaurus not found --> " + name); Modified: trunk/src/org/fao/geonet/services/thesaurus/DeleteElement.java =================================================================== --- trunk/src/org/fao/geonet/services/thesaurus/DeleteElement.java 2008-04-08 07:39:33 UTC (rev 1250) +++ trunk/src/org/fao/geonet/services/thesaurus/DeleteElement.java 2008-04-08 10:31:20 UTC (rev 1251) @@ -82,13 +82,7 @@ } Element elResp = new Element(Jeeves.Elem.RESPONSE); - // ajout des parametres necessaires pour le service thesaurus.edit -// elResp.addContent(new Element("pTypeSearch").setText("0")); -// elResp.addContent(new Element("pKeyword").setText("*")); -// elResp.addContent(new Element("pNewSearch").setText("true")); -// elResp.addContent(new Element("pThesauri").setText(sThesaurusName)); -// elResp.addContent(new Element("pNbResPerPage").setText("10")); -// elResp.addContent(new Element("mode").setText("edit")); + return elResp; } } Modified: trunk/src/org/fao/geonet/services/thesaurus/Download.java =================================================================== --- trunk/src/org/fao/geonet/services/thesaurus/Download.java 2008-04-08 07:39:33 UTC (rev 1250) +++ trunk/src/org/fao/geonet/services/thesaurus/Download.java 2008-04-08 10:31:20 UTC (rev 1251) @@ -69,7 +69,6 @@ GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME); ThesaurusManager manager = gc.getThesaurusManager(); - // Param\xE8tres : thesaurus String name = Util.getParam(params, Params.REF); Thesaurus directory = manager.getThesaurusByName(name); Modified: trunk/src/org/fao/geonet/services/thesaurus/EditUtils.java =================================================================== --- trunk/src/org/fao/geonet/services/thesaurus/EditUtils.java 2008-04-08 07:39:33 UTC (rev 1250) +++ trunk/src/org/fao/geonet/services/thesaurus/EditUtils.java 2008-04-08 10:31:20 UTC (rev 1251) @@ -59,19 +59,10 @@ UserSession session = context.getUserSession(); - // Param\xE8tres : thesaurus String name = Util.getParam(params, Params.NAME); String dir = Util.getParam(params, Params.DIR).replace('.', '/'); String fname = Util.getParam(params, Params.FNAME); -// //----------------------------------------------------------------------- -// //--- handle current tab -// -// Element elCurrTab = params.getChild(Params.CURRTAB); -// -// if (elCurrTab != null) -// session.setProperty(Geonet.Session.METADATA_SHOW, elCurrTab.getText()); - //----------------------------------------------------------------------- //--- check access Modified: trunk/src/org/fao/geonet/services/thesaurus/GetNarrowerBroader.java =================================================================== --- trunk/src/org/fao/geonet/services/thesaurus/GetNarrowerBroader.java 2008-04-08 07:39:33 UTC (rev 1250) +++ trunk/src/org/fao/geonet/services/thesaurus/GetNarrowerBroader.java 2008-04-08 10:31:20 UTC (rev 1251) @@ -60,8 +60,6 @@ // perform the search and save search result into session - // Creation d'un nouveau Keyword searcher - // Recup\xE9ration du thesaurus manager GeonetContext gc = (GeonetContext) context .getHandlerContext(Geonet.CONTEXT_NAME); ThesaurusManager thesaurusMan = gc.getThesaurusManager(); Modified: trunk/src/org/fao/geonet/services/thesaurus/GetSelectedKeywords.java =================================================================== --- trunk/src/org/fao/geonet/services/thesaurus/GetSelectedKeywords.java 2008-04-08 07:39:33 UTC (rev 1250) +++ trunk/src/org/fao/geonet/services/thesaurus/GetSelectedKeywords.java 2008-04-08 10:31:20 UTC (rev 1251) @@ -49,7 +49,7 @@ public Element exec(Element params, ServiceContext context) throws Exception { - // Recup\xE9ration du thesaurus manager + // Get thesaurus manager Element response = new Element(Jeeves.Elem.RESPONSE); UserSession session = context.getUserSession(); KeywordsSearcher searcher = (KeywordsSearcher)session.getProperty(Geonet.Session.SEARCH_KEYWORDS_RESULT); Modified: trunk/src/org/fao/geonet/services/thesaurus/List.java =================================================================== --- trunk/src/org/fao/geonet/services/thesaurus/List.java 2008-04-08 07:39:33 UTC (rev 1250) +++ trunk/src/org/fao/geonet/services/thesaurus/List.java 2008-04-08 10:31:20 UTC (rev 1251) @@ -65,7 +65,7 @@ init_type = params.getValue( Params.TYPE, "_none_" ); } - /** Filtre sur les r\xE9pertoires */ + /** Filter on directory */ private FilenameFilter directoryFilter = new FilenameFilter() { public boolean accept(File dir, String name) @@ -77,7 +77,7 @@ } }; - /** Filtre sur les r\xE9pertoires */ + /** Filter on directory */ private FilenameFilter thesauriFilter = new FilenameFilter() { public boolean accept(File dir, String name) @@ -152,7 +152,8 @@ /** - * Parcours l'arborescence des thesaurus et retourne les \xE9l\xE9ments en fonction du filtre et du mode + * Browse directory tree and return thesaurus in xml and rdf format + * * @param params * @param context * @return @@ -167,20 +168,20 @@ for (int i=0; i<rdfDataDirectory.length; i++){ - if(rdfDataDirectory[i].isDirectory()) { // R\xE9pertoire + if(rdfDataDirectory[i].isDirectory()) { - if (mode==1) { // ARBORESCENCE SIMPLE + if (mode==1) { // Simple tree Element dirE = new Element("directory").setAttribute("label", rdfDataDirectory[i].getName()); dirE.setAttribute("type", rootName); list.addContent(dirE); listThesauri(dirE, rdfDataDirectory[i].getAbsolutePath(), mode, filter, rootName); } - else if (mode==2) { // ARBORESCENCE FUSIONNEE LOCAL + EXTERNAL + else if (mode==2) { // Complex tree local + external Element dirE = new Element("directory").setAttribute("label", rdfDataDirectory[i].getName()); dirE.setAttribute("type", rootName); - // Recherche d'un \xE9l\xE9ment directory de m\xEAme nom + // Search directory with same name java.util.List children = list.getChildren("directory"); Element element = null; for (Iterator iter = children.iterator(); iter.hasNext();) { @@ -198,10 +199,10 @@ } } - else // TOUT A PLAT : PAS D'ARBORESCENCE + else // Flat tree listThesauri(list, rdfDataDirectory[i].getAbsolutePath(), mode, filter, rootName); - } else if (mode!=1) { // Fichier + } else if (mode!=1) { // File String thesaurusName = rootName+'.'+thesauriDirectory.getName()+'.'+rdfDataDirectory[i].getName().substring(0, rdfDataDirectory[i].getName().indexOf(".rdf")); Element thesaurusE = new Element("thesaurus").setAttribute("value",thesaurusName); Modified: trunk/src/org/fao/geonet/services/thesaurus/SelectKeywords.java =================================================================== --- trunk/src/org/fao/geonet/services/thesaurus/SelectKeywords.java 2008-04-08 07:39:33 UTC (rev 1250) +++ trunk/src/org/fao/geonet/services/thesaurus/SelectKeywords.java 2008-04-08 10:31:20 UTC (rev 1251) @@ -51,7 +51,6 @@ public Element exec(Element params, ServiceContext context) throws Exception { - // Recup\xE9ration du thesaurus manager Element response = new Element(Jeeves.Elem.RESPONSE); UserSession session = context.getUserSession(); KeywordsSearcher searcher = (KeywordsSearcher)session.getProperty(Geonet.Session.SEARCH_KEYWORDS_RESULT); Modified: trunk/src/org/fao/geonet/services/thesaurus/SortKeywords.java =================================================================== --- trunk/src/org/fao/geonet/services/thesaurus/SortKeywords.java 2008-04-08 07:39:33 UTC (rev 1250) +++ trunk/src/org/fao/geonet/services/thesaurus/SortKeywords.java 2008-04-08 10:31:20 UTC (rev 1251) @@ -51,7 +51,6 @@ public Element exec(Element params, ServiceContext context) throws Exception { - // Recup\xE9ration du thesaurus manager Element response = new Element(Jeeves.Elem.RESPONSE); UserSession session = context.getUserSession(); KeywordsSearcher searcher = (KeywordsSearcher)session.getProperty(Geonet.Session.SEARCH_KEYWORDS_RESULT); @@ -62,7 +61,7 @@ response.addContent(searcher.getResults(params)); - // Dans le cas de l'edition ou de la consultation d'un thesaurus + // If editing or consult thesaurus if (params.getChild("pMode") != null) { String mode = Util.getParam(params, "pMode"); if (mode.equals("edit") || mode.equals("consult")) { Modified: trunk/src/org/fao/geonet/services/thesaurus/Upload.java =================================================================== --- trunk/src/org/fao/geonet/services/thesaurus/Upload.java 2008-04-08 07:39:33 UTC (rev 1250) +++ trunk/src/org/fao/geonet/services/thesaurus/Upload.java 2008-04-08 10:31:20 UTC (rev 1251) @@ -53,8 +53,6 @@ static String FS = System.getProperty("file.separator", "/"); static int inc = 0; - // XSL - IMPORT NOMENCLATURE - FR - public static final String STYLESHEET_SKOS_FR = "lang-fr.xsl"; private String stylePath; //-------------------------------------------------------------------------- @@ -91,8 +89,6 @@ response.addContent(uploadResult); return response; -// cha\xEEner sur le service d'update/view de la nomenclature ? -// return update.exec(params, context); } @@ -108,26 +104,23 @@ String uploadDir = context.getUploadDir(); Element uploadResult = null; - // Le fichier particulier format rdf + // RDF file String fname = null; Element param = params.getChild(Params.FNAME); if (!(param == null || param.getTextTrim().length() == 0)) { fname = param.getTextTrim(); } - // Type de thesaurus (local, external) + // Thesaurus Type (local, external) String type = Util.getParam(params, Params.TYPE, "external"); - // R\xE9pertoire de thesaurus (Discipline, Place, Stratum, Temporal, Theme) + // Thesaurus directory - one of the ISO theme (Discipline, Place, Stratum, Temporal, Theme) String dir = Util.getParam(params, Params.DIR); - // Le sch\xE9ma cible par rapport auquel effectuer la validation \xE9ventuelle + // no XSL to be applied String style = Util.getParam(params, Params.STYLESHEET, "_none_"); - // ? - // String siteId = Util.getParam(params, Params.SITE_ID, gc.getSiteId()); - - // Valider par rapport au sch\xE9ma cible ? + // Validation or not boolean validate = Util.getParam(params, Params.VALIDATE, "off").equals("on"); if ((fname != null) && !fname.equals("")) { @@ -137,7 +130,6 @@ File oldFile = new File(uploadDir, fname); String extension = fname.substring(fname.lastIndexOf('.')).toLowerCase(); - // -> UN FICHIER XML if (extension.equals(".rdf")) { Log.debug("Thesaurus","Uploading thesaurus: "+fname); @@ -181,14 +173,13 @@ } else TS_xml = xml; - // Analyse du fichier + // Load document and check namespace if (TS_xml.getNamespacePrefix().equals("rdf") && TS_xml.getName().equals("RDF")) { GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME); ThesaurusManager thesaurusMan = gc.getThesaurusManager(); - // Copie du fichier dans l'espace ad\xE9quat - // Position dans l'arborescence d\xE9termin\xE9e par la categorie + // copy to directory according to type String path = thesaurusMan.buildThesaurusFilePath( fname, type, dir); File newFile = new File(path); Xml.writeResponse(new Document(TS_xml), new FileOutputStream(newFile)); @@ -200,8 +191,7 @@ { oldFile.delete(); - // CE N'EST PAS UN FICHIER SKOS ! - throw new Exception("Format de fichier inconnu"); + throw new Exception("Unknown format (Must be in SKOS format)."); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tic...@us...> - 2008-04-08 07:39:32
|
Revision: 1250 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1250&view=rev Author: ticheler Date: 2008-04-08 00:39:33 -0700 (Tue, 08 Apr 2008) Log Message: ----------- - Aligning with branch 22x Modified Paths: -------------- trunk/docs/changes.txt trunk/docs/docbook/gn_manual/qsg_installing.xml trunk/docs/known issues.txt trunk/docs/readme.html trunk/installer/installer-config-win-jre.xml trunk/installer/installer-config.xml trunk/installer/readme-install.txt trunk/src/org/fao/gast/cli/Cli.java trunk/src/org/fao/gast/cli/setup/Setup.java trunk/src/org/wfp/vam/intermap/kernel/map/images/ImageMerger.java trunk/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/WmsService.java trunk/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/schema/type/WMSFormat.java trunk/web/intermap/xsl/im_get-services-embedded.xsl trunk/web/intermap/xsl/im_get-services.xsl Added Paths: ----------- trunk/docs/docbook/gn_manual/images/install_packages.png trunk/docs/docbook/gn_manual/images/install_script.png trunk/src/org/fao/gast/cli/sampledata/ trunk/src/org/fao/gast/cli/sampledata/SampleData.java Modified: trunk/docs/changes.txt =================================================================== --- trunk/docs/changes.txt 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/docs/changes.txt 2008-04-08 07:39:33 UTC (rev 1250) @@ -1,5 +1,60 @@ ================================================================================ === +=== GeoNetwork 2.2.0 Final: List of changes +=== +================================================================================ +-------------------------------------------------------------------------------- +--- Known issues +-------------------------------------------------------------------------------- + +- On some Windows systems, installing in the default Program files folder causes + a stylesheet compilation error. The workaround is to install in a directory + without spaces in the folder names. E.g. in c:\geonetwork + +- In Postgresql an error occurs related to type casting while migrating from + version 2.0.3. Using the older version of the jdbc driver version 7.4 seems + to resolve this problem for Postgres v7 and v8.x. The old driver can be found + at http://jdbc.postgresql.org/download.html#archived + +-------------------------------------------------------------------------------- +--- Changes +-------------------------------------------------------------------------------- + +- Sample metadata is now an option in the package selection panel + +- The commandline installation using the install script generated by the + installer is working again. + +- Upgraded IzPack version. Debug information using -DTRACE=true now available + (see documentation on "Commandline installation"). + +- Presentation updates for embedded metadata show. + +- Simplification of the presentation of the metadata using 'fieldset' instead of + dotted lines to display metadata blocks + +- upgraded Jeeves and related commons-fileupload-1.2.1.jar + +- Label updates for French and English + +- Updated map services list + +- Start GeoNetwork headless (prevent pop-up Java windows) + +- Improved JavaDoc + +- GAST: Changed the delete table order to respect constraints + +-------------------------------------------------------------------------------- +--- Bug fixes +-------------------------------------------------------------------------------- + +- Fix for internet exploder upload problem + +- GAST: Fix the way the metadata owner is calculated during migration + +================================================================================ +=== === GeoNetwork 2.2.0 RC2: List of changes === ================================================================================ Added: trunk/docs/docbook/gn_manual/images/install_packages.png =================================================================== (Binary files differ) Property changes on: trunk/docs/docbook/gn_manual/images/install_packages.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/docs/docbook/gn_manual/images/install_script.png =================================================================== (Binary files differ) Property changes on: trunk/docs/docbook/gn_manual/images/install_script.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/docs/docbook/gn_manual/qsg_installing.xml =================================================================== --- trunk/docs/docbook/gn_manual/qsg_installing.xml 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/docs/docbook/gn_manual/qsg_installing.xml 2008-04-08 07:39:33 UTC (rev 1250) @@ -68,6 +68,8 @@ opensource Community website</ulink>. The software is also distributed through the SourceForge.net Website at <ulink url="http://sourceforge.net/projects/geonetwork"/>.</para> + <para>Use the platform independent installer (.jar) if you need anything more + than a plain Windows installation.</para> </section> <section> @@ -89,24 +91,24 @@ <para><emphasis role="bold">Other Software requirements</emphasis>: A Java Runtime Environment (JRE 1.5.0). For server installations, Apache Tomcat and a dedicated - JDBC compliant DBMS (MySQL, Oracle) are also required.<emphasis role="bold"/></para> + JDBC compliant DBMS (MySQL, Postgresql, Oracle) can be used instead of Jetty and McKoiDB respectively.<emphasis role="bold"/></para> <section> <title>Additional Software</title> - <para>The software listed here is not required to install GeoNetwork, but can be used + <para>The software listed here is not required to run GeoNetwork, but can be used for custom installations.</para> <orderedlist> <listitem> <para>MySQL DBMS v5.5+ (All)<footnote id="all_os"><para>All = Windows, Linux and Mac OS X</para></footnote></para> </listitem> <listitem> - <para>Apache Tomcat v5.5 (All)<footnoteref linkend="all_os"/></para> + <para>Postgresql DBMS v7+ (All)<footnoteref linkend="all_os"/></para> </listitem> <listitem> - <para>Apache HTTP v2.0+ (Windows), optional</para> + <para>Apache Tomcat v5.5+ (All)<footnoteref linkend="all_os"/></para> </listitem> <listitem> - <para>Druid v3.8 (All)<footnoteref linkend="all_os"/></para> + <para>Druid v3.8 (All)<footnoteref linkend="all_os"/> to inspect the database</para> </listitem> </orderedlist> </section> @@ -135,19 +137,25 @@ <para>Before running the GeoNetwork installer, make sure that all system requirements are satisfied, and in particular that the Java Runtime Environment version 1.5.0 is set up on your machine.</para> - + <section id="win_install"> + <title>On Windows</title> <para>If you use Windows, the following steps will guide you to complete the installation (other FOSS will follow):</para> <orderedlist> <listitem> <para>Double click on <emphasis role="bold" - >geonetwork-install-2.1.0.exe</emphasis> to start the GeoNetwok opensource + >geonetwork-install-2.2.0.exe</emphasis> to start the GeoNetwok opensource desktop installer</para> </listitem> <listitem> - <para>Follow the instructions on screen (<xref linkend="installer"/>)</para> + <para>Follow the instructions on screen (<xref linkend="installer"/>). You + can choose to install sample data, install the embedded map server (based on + <ulink url="http://www.geoserver.org">GeoServer</ulink> and the CSW 2.0.1 + test client. Developers may be interested in installing the source code + and installer building tools. Full source code can be found in the + GeoNetwork SubVersion code repository.</para> </listitem> <listitem> @@ -178,7 +186,55 @@ </imageobject> </mediaobject> </figure> - + <figure id="install_packages"> + <title>Packages to be installed</title> + <mediaobject> + <imageobject> + <imagedata fileref="images/install_packages.png" width="11cm" align="center"/> + </imageobject> + </mediaobject> + </figure> + </section> + <section> + <title>Installation using the platform independent installer</title> + <para>If you downloaded the platform independent installer (a .jar file), you can + in most cases start the installer by simply double clicking on it.</para> + <para>Follow the instructions on screen (see also <xref linkend="win_install"/>).</para> + <para>At the end of the installation process you can choose to save the installation + script (<xref linkend="install_script"/>).</para> + <figure id="install_script"> + <title>Save the installation script for commandline installations</title> + <mediaobject> + <imageobject> + <imagedata fileref="images/install_script.png" width="11cm" align="center"/> + </imageobject> + </mediaobject> + </figure> + </section> + <section> + <title>Commandline installation</title> + <para>If you downloaded the platform independent installer (a .jar file), you can + perform commandline installations on computers without a graphical interface. You first + need to generate an install script (see <xref linkend="install_script"/>). This install + script can be edited in a text editor to change some installation parameters.</para> + <para>To run the installation from the commandline, issue the following command in a + terminal window and hit enter to start:</para> + <programlisting> +<![CDATA[java -jar geonetwork-install-2.2.0-0.jar install.xml +[ Starting automated installation ] +[ Starting to unpack ] +[ Processing package: Core (1/3) ] +[ Processing package: Sample metadata (2/3) ] +[ Processing package: GeoServer web map server (3/3) ] +[ Unpacking finished ] +[ Writing the uninstaller data ... ] +[ Automated installation done ] +]]> + </programlisting> + <para>You can also run the installation with lots of debug output. To do so run the + installer with the flag <literal>-DTRACE=true</literal>: </para> + <programlisting>java -DTRACE=true -jar geonetwork-install-2.2.0-0.jar</programlisting> + </section> <para> <guilabel/> </para> Modified: trunk/docs/known issues.txt =================================================================== --- trunk/docs/known issues.txt 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/docs/known issues.txt 2008-04-08 07:39:33 UTC (rev 1250) @@ -4,15 +4,26 @@ Bugs: ================================================================== -- Some metadata element strings are not found in the editor +- (mostly fixed for version 2.2.0) Some metadata element strings are not found + in the editor. ================================================================== Issues: ================================================================== -- (RESOLVED for version 2.1.0) A big issue is the backward compatibility of the harvesting. v2.1 does not harvest - nodes of v2.0. This can not be. Even if less optimal harvesting, this should remain - possible when upgrading. +- On some Windows systems, installing in the default Program files folder causes + a stylesheet compilation error. The workaround is to install in a directory + without spaces in the folder names. E.g. in c:\geonetwork + +- In Postgresql an error occurs related to type casting while + migrating from version 2.0.3. Using the older version of the jdbc + driver version 7.4 seems to resolve this problem for Postgres v7 + and v8.x. The old driver can be found at + http://jdbc.postgresql.org/download.html#archived + +- (RESOLVED for version 2.1.0) A big issue is the backward compatibility of the + harvesting. v2.1 does not harvest nodes of v2.0. This can not be. Even if less + optimal harvesting, this should remain possible when upgrading. - (RESOLVED for version 2.1.0) Sample metadata does not have: - online resources (requires InterMap integration too) @@ -22,13 +33,14 @@ To do: ================================================================== -- in metadata.show.xsl & search-results.xsl the href does not point to baseURL yet of - the resource yet. +- (Done for version 2.2.0) in metadata.show.xsl & search-results.xsl the href + does not point to baseURL yet of the resource yet. -- Revisit the help.xml, links.xml and about.xml to verify and update (a.o. links & - some of the translations)) +- (Partially done) Revisit the help.xml, links.xml and about.xml to verify and + update (a.o. links & some of the translations)) -- (Done for version 2.1.0) Further improve help through the use of DHTML tooltips and AJAX request to server +- (Done for version 2.1.0) Further improve help through the use of DHTML + tooltips and AJAX request to server - (Done for version 2.1.0) Integrated version with InterMap opensource Modified: trunk/docs/readme.html =================================================================== --- trunk/docs/readme.html 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/docs/readme.html 2008-04-08 07:39:33 UTC (rev 1250) @@ -26,6 +26,7 @@ You should use the username <font color="#FF0000"><code><b>admin</b></code></font> and password <font color="#FF0000"><code><b>admin</b></code></font>. In the Administration section you can then <strong>modify your account</strong>. </p> + <p>Online documentation is available from the GeoNetwork homepage. Select <b><a href="http://localhost:8080/geonetwork/docs/index.html">Help</a></b> from the menu bar. A link to the printable PDF version can be found at the bottom of the help page.</p> <p>You can also start the Jetty webserver of GeoNetwork using the scripts located into the $INSTALL_PATH/bin directory.</p> Modified: trunk/installer/installer-config-win-jre.xml =================================================================== --- trunk/installer/installer-config-win-jre.xml 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/installer/installer-config-win-jre.xml 2008-04-08 07:39:33 UTC (rev 1250) @@ -48,14 +48,14 @@ <!-- =================================================================================== --> <panels> - <panel classname="HelloPanel"/> - <panel classname="HTMLLicencePanel"/> - <panel classname="TargetPanel"/> - <panel classname="PacksPanel"/> - <panel classname="InstallPanel"/> - <panel classname="ShortcutPanel"/> - <panel classname="HTMLInfoPanel"/> - <panel classname="FinishPanel"/> + <panel classname="HelloPanel" id="helloPanel"/> + <panel classname="HTMLLicencePanel" id="htmlLicensePanel"/> + <panel classname="TargetPanel" id="targetPanel"/> + <panel classname="PacksPanel" id="packsPanel"/> + <panel classname="InstallPanel" id="installPanel"/> + <panel classname="ShortcutPanel" id="shortcutPanel"/> + <panel classname="HTMLInfoPanel" id="htmlInfoPanel"/> + <panel classname="FinishPanel" id="finishPanel"/> </panels> <!-- =================================================================================== --> @@ -129,6 +129,20 @@ </pack> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + + <pack name="Sample metadata" required="no" preselected="yes" id="idSampleM"> + <description>Import sample metadata for testing</description> + <executable targetfile="$INSTALL_PATH/gast/gast.jar" + type ="jar" + keep ="true" + stage ="postinstall"> + <args> + <arg value="-sampleData"/> + </args> + </executable> + </pack> + + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <pack name="GeoServer web map server" required="no" preselected="yes"> <description>GeoServer is an Open Source server that connects your information Modified: trunk/installer/installer-config.xml =================================================================== --- trunk/installer/installer-config.xml 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/installer/installer-config.xml 2008-04-08 07:39:33 UTC (rev 1250) @@ -26,6 +26,7 @@ <os family="windows"/> <os family="mac"/> </laf> + <modifier value="true" key="showDebugWindow" /> </guiprefs> <!-- =================================================================================== --> @@ -48,14 +49,14 @@ <!-- =================================================================================== --> <panels> - <panel classname="HelloPanel"/> - <panel classname="HTMLLicencePanel"/> - <panel classname="TargetPanel"/> - <panel classname="PacksPanel"/> - <panel classname="InstallPanel"/> - <panel classname="ShortcutPanel"/> - <panel classname="HTMLInfoPanel"/> - <panel classname="FinishPanel"/> + <panel classname="HelloPanel" id="helloPanel"/> + <panel classname="HTMLLicencePanel" id="htmlLicensePanel"/> + <panel classname="TargetPanel" id="targetPanel"/> + <panel classname="PacksPanel" id="packsPanel"/> + <panel classname="InstallPanel" id="installPanel"/> + <panel classname="ShortcutPanel" id="shortcutPanel"/> + <panel classname="HTMLInfoPanel" id="htmlInfoPanel"/> + <panel classname="FinishPanel" id="finishPanel"/> </panels> <!-- =================================================================================== --> @@ -128,6 +129,20 @@ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <pack name="Sample metadata" required="no" preselected="yes" id="idSampleM"> + <description>Import sample metadata for testing</description> + <executable targetfile="$INSTALL_PATH/gast/gast.jar" + type ="jar" + keep ="true" + stage ="postinstall"> + <args> + <arg value="-sampleData"/> + </args> + </executable> + </pack> + + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <pack name="GeoServer web map server" required="no" preselected="yes"> <description>GeoServer is an Open Source server that connects your information to the Geospatial Web. This embedded version is setup to provide the base layers Modified: trunk/installer/readme-install.txt =================================================================== --- trunk/installer/readme-install.txt 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/installer/readme-install.txt 2008-04-08 07:39:33 UTC (rev 1250) @@ -9,6 +9,10 @@ http://java.sun.com/javase/downloads/index_jdk5.jsp +Please refer to the changes.txt file for a list of known issues. +Refer to the online documentation or mailing-lists if you need +more help at http://geonetwork-opensource.org + ================================================================== WINDOWS USERS ================================================================== Modified: trunk/src/org/fao/gast/cli/Cli.java =================================================================== --- trunk/src/org/fao/gast/cli/Cli.java 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/src/org/fao/gast/cli/Cli.java 2008-04-08 07:39:33 UTC (rev 1250) @@ -28,6 +28,7 @@ import org.fao.gast.boot.Starter; import org.fao.gast.cli.createdb.CreateDB; import org.fao.gast.cli.setup.Setup; +import org.fao.gast.cli.sampledata.SampleData; import org.fao.gast.lib.Lib; //============================================================================== @@ -51,13 +52,16 @@ if (command.equals("-setup")) new Setup().exec(appPath, al); - if (command.equals("-setupdb")) + else if (command.equals("-sampleData")) + new SampleData().exec(appPath, al); + + else if (command.equals("-setupdb")) new CreateDB().exec(appPath, al); - else + else { - System.out.println("Unknown command : "+ command); - System.out.println("Can be one of : -setup, -setupdb"); + Lib.log.warning("Unknown command : "+ command); + Lib.log.warning("Can be one of : -setup, -setupdb, -sampleData"); } } } Added: trunk/src/org/fao/gast/cli/sampledata/SampleData.java =================================================================== --- trunk/src/org/fao/gast/cli/sampledata/SampleData.java (rev 0) +++ trunk/src/org/fao/gast/cli/sampledata/SampleData.java 2008-04-08 07:39:33 UTC (rev 1250) @@ -0,0 +1,94 @@ +//============================================================================== +//=== Copyright (C) 2001-2007 Food and Agriculture Organization of the +//=== United Nations (FAO-UN), United Nations World Food Programme (WFP) +//=== and United Nations Environment Programme (UNEP) +//=== +//=== This program is free software; you can redistribute it and/or modify +//=== it under the terms of the GNU General Public License as published by +//=== the Free Software Foundation; either version 2 of the License, or (at +//=== your option) any later version. +//=== +//=== This program is distributed in the hope that it will be useful, but +//=== WITHOUT ANY WARRANTY; without even the implied warranty of +//=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +//=== General Public License for more details. +//=== +//=== You should have received a copy of the GNU General Public License +//=== along with this program; if not, write to the Free Software +//=== Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +//=== +//=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, +//=== Rome - Italy. email: geo...@os... +//============================================================================== + +package org.fao.gast.cli.sampledata; + +import java.io.File; +import java.util.List; +import jeeves.resources.dbms.Dbms; +import org.fao.gast.lib.Lib; +import org.fao.gast.lib.Resource; + +//============================================================================== + +public class SampleData +{ + public void exec(String appPath, List<String> args) throws Exception + { + //--- install sample data + addSampleData(appPath); + } + + //--------------------------------------------------------------------------- + + private void addSampleData(String appPath) throws Exception + { + Lib.log.info("Adding sample metadata"); + + Resource resource = Lib.config.createResource(); + Dbms dbms = (Dbms) resource.open(); + + try + { + int serial = Lib.database.getNextSerial(dbms, "Metadata"); + dbms.commit(); + + File sampleDir = new File(appPath, SAMPLE_PATH); + File[] samples = sampleDir.listFiles(); + + if (samples == null) + Lib.log.warning("Cannot scan directory : "+ sampleDir.getAbsolutePath()); + else + { + for (File sample : samples) + if (sample.getName().endsWith(".mef")) + { + Lib.mef.doImport(dbms, serial++, sample); + dbms.commit(); + } + } + + Lib.log.info("Synchronizing metadata"); + Lib.metadata.sync(dbms); + resource.close(); + Lib.log.info("Done"); + } + catch(Exception e) + { + Lib.log.fatal("Raised exception : "+ e.getMessage()); + resource.abort(); + throw e; + } + } + + //--------------------------------------------------------------------------- + //--- + //--- Variables + //--- + //--------------------------------------------------------------------------- + + private static final String SAMPLE_PATH = "gast/setup/sample-data"; +} + +//============================================================================== + Modified: trunk/src/org/fao/gast/cli/setup/Setup.java =================================================================== --- trunk/src/org/fao/gast/cli/setup/Setup.java 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/src/org/fao/gast/cli/setup/Setup.java 2008-04-08 07:39:33 UTC (rev 1250) @@ -55,63 +55,9 @@ Resource resource = Lib.config.createResource(); Lib.database.setup(resource, null); - - //--- ask for and install sample metadata - - if (Lib.gui.confirm(null, SAMPLE_MSG)) - addSampleData(appPath); + } - //--------------------------------------------------------------------------- - - private void addSampleData(String appPath) throws Exception - { - Lib.log.info("Adding sample metadata"); - - Resource resource = Lib.config.createResource(); - Dbms dbms = (Dbms) resource.open(); - - try - { - int serial = Lib.database.getNextSerial(dbms, "Metadata"); - dbms.commit(); - - File sampleDir = new File(appPath, SAMPLE_PATH); - File[] samples = sampleDir.listFiles(); - - if (samples == null) - Lib.log.warning("Cannot scan directory : "+ sampleDir.getAbsolutePath()); - else - { - for (File sample : samples) - if (sample.getName().endsWith(".mef")) - { - Lib.mef.doImport(dbms, serial++, sample); - dbms.commit(); - } - } - - Lib.log.info("Synchronizing metadata"); - Lib.metadata.sync(dbms); - resource.close(); - Lib.log.info("Done"); - } - catch(Exception e) - { - Lib.log.fatal("Raised exception : "+ e.getMessage()); - resource.abort(); - throw e; - } - } - - //--------------------------------------------------------------------------- - //--- - //--- Variables - //--- - //--------------------------------------------------------------------------- - - private static final String SAMPLE_MSG = "Do you want to install sample metadata ?"; - private static final String SAMPLE_PATH = "gast/setup/sample-data"; } //============================================================================== Modified: trunk/src/org/wfp/vam/intermap/kernel/map/images/ImageMerger.java =================================================================== --- trunk/src/org/wfp/vam/intermap/kernel/map/images/ImageMerger.java 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/src/org/wfp/vam/intermap/kernel/map/images/ImageMerger.java 2008-04-08 07:39:33 UTC (rev 1250) @@ -49,6 +49,8 @@ import java.util.List; import java.util.Vector; import javax.swing.ImageIcon; +import org.wfp.vam.intermap.Constants; +import jeeves.utils.Log; public class ImageMerger { static public final int JPG = 0; @@ -101,9 +103,9 @@ catch (IOException e) { if (e.getMessage() == "too many colors for a GIF") - System.out.println("too many colors for a GIF, will try to generate JPG"); + Log.debug(Constants.INTERMAP,"too many colors for a GIF, will try to generate JPG"); else - System.out.println("error in encoding GIF file: " + e.getMessage() + "; will try to generate a JPG"); + Log.debug(Constants.INTERMAP,"error in encoding GIF file: " + e.getMessage() + "; will try to generate a JPG"); encodeJPG(os, bi); } @@ -117,7 +119,7 @@ } catch (IOException e) { - System.out.println("error in encoding PNG file: " + e.getMessage() + "; will try to generate a JPG"); + Log.debug(Constants.INTERMAP,"error in encoding PNG file: " + e.getMessage() + "; will try to generate a JPG"); encodeJPG(os, bi); } } @@ -294,7 +296,7 @@ // alpha = 1F; // } -// System.out.println("i: " + i + "; alpha: " + alpha); // DEBUG +// Log.debug(Constants.INTERMAP,"i: " + i + "; alpha: " + alpha); // DEBUG destG.setComposite(AlphaComposite.getInstance(rule, alpha)); destG.drawImage(image, 0, 0, null); } @@ -338,7 +340,7 @@ destG.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, alpha)); destG.drawImage(base, 0, 0, null); - System.out.println("Compositing images ("+ow+","+oh+") over ("+bw+","+bh+") @"+x+"+"+y); + Log.debug(Constants.INTERMAP,"Compositing images ("+ow+","+oh+") over ("+bw+","+bh+") @"+x+"+"+y); // negative position starts from lower right corner, with -1 being aligned to the border if(x<0) @@ -347,7 +349,7 @@ if(y<0) y = bh - oh + y+1; - System.out.println(" @"+x+"+"+y); + Log.debug(Constants.INTERMAP," @"+x+"+"+y); destG.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); destG.drawImage(over, x, y, null); @@ -389,7 +391,7 @@ public static void main(String args[]) { if (args.length < 2) { - System.out.println("Usage: ImageMerger destFile srcFile1 ...\n"); + Log.debug(Constants.INTERMAP,"Usage: ImageMerger destFile srcFile1 ...\n"); System.exit(1); } Modified: trunk/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/WmsService.java =================================================================== --- trunk/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/WmsService.java 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/WmsService.java 2008-04-08 07:39:33 UTC (rev 1250) @@ -155,7 +155,7 @@ else request += "&STYLES="; - Log.debug(Constants.INTERMAP," - GetMap request : "+ request); + Log.debug(Constants.WMS," - GetMap request : "+ request); return request; } @@ -202,7 +202,7 @@ + "&INFO_FORMAT=" + infoFormat + "&STYLES=" + _styleName; - Log.debug(Constants.INTERMAP," - GetFeatureInfo request : "+ url); + Log.debug(Constants.WMS," - GetFeatureInfo request : "+ url); lastResponse = new Element("url").setText(url); Modified: trunk/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/schema/type/WMSFormat.java =================================================================== --- trunk/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/schema/type/WMSFormat.java 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/schema/type/WMSFormat.java 2008-04-08 07:39:33 UTC (rev 1250) @@ -26,6 +26,8 @@ import java.util.ArrayList; import java.util.List; import org.jdom.Element; +import org.wfp.vam.intermap.Constants; +import jeeves.utils.Log; /** * @author ETj @@ -51,7 +53,6 @@ ,APP_WMS("application/vnd.ogc.wms_xml") ,APP_WMSERR("application/vnd.ogc.se_xml") - ,v100_GIF("GIF") ,v100_JPEG("JPEG") ,v100_PNG("PNG") @@ -87,7 +88,7 @@ for(WMSFormat format: WMSFormat.values()) if(format.toString().equals(type)) return format; - System.out.println("WARNING: WMSFormat: type '"+type+"' is not defined internally. Please update the internal mimetype list."); + Log.debug(Constants.WMS,"WARNING: WMSFormat: type '"+type+"' is not defined internally. Please update the internal mimetype list."); return null; } Modified: trunk/web/intermap/xsl/im_get-services-embedded.xsl =================================================================== --- trunk/web/intermap/xsl/im_get-services-embedded.xsl 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/web/intermap/xsl/im_get-services-embedded.xsl 2008-04-08 07:39:33 UTC (rev 1250) @@ -254,7 +254,15 @@ <xsl:otherwise> <!-- It's a layer group --> <li class="layer_group"> - <b><xsl:value-of select="Title" /></b> + <xsl:choose> + <xsl:when test="./Name"> + <b><xsl:apply-templates select="." mode="title"/></b> + </xsl:when> + <xsl:otherwise> + <b><xsl:value-of select="Title" /></b> + </xsl:otherwise> + </xsl:choose> + </li> <ul> <xsl:apply-templates select="Layer"> Modified: trunk/web/intermap/xsl/im_get-services.xsl =================================================================== --- trunk/web/intermap/xsl/im_get-services.xsl 2008-04-04 15:51:52 UTC (rev 1249) +++ trunk/web/intermap/xsl/im_get-services.xsl 2008-04-08 07:39:33 UTC (rev 1250) @@ -1,320 +1,327 @@ -<?xml version="1.0" encoding="UTF-8"?> -<?xmlspysamplexml D:\temp\WMS_Capabilities.xml?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink"> - - <xsl:include href="main.xsl"/> - - <!-- Main template --> - <xsl:template match="/"> - <html> - <head> - <title> - <xsl:value-of select="/root/gui/strings/title"/> - </title> - <link rel="stylesheet" type="text/css" href="../../intermap.css"/> - <script language="JavaScript" src="../../scripts/intermap.js"/> - <script language="javascript"> - function getWmsLayerInfo(name) { - window.open(('<xsl:value-of select="/root/gui/locService" />/map.service.wmsLayerInfo?url=<xsl:value-of select="/root/response/url"/>&name=' + name).unescapeHTML(), 'dialog', 'HEIGHT=300,WIDTH=400,scrollbars=yes,toolbar=no,status=no,menubar=no,location=no,resizable=yes').focus(); - } - </script> - </head> - <body> - <xsl:call-template name="formLayout"> - <xsl:with-param name="title" select="/root/gui/strings/choosemapfromlist"/> - <xsl:with-param name="content"> - <xsl:copy-of select="/root/gui/strings/feedbackTopics"/> - <p/> - <form action="{/root/gui/locService}/map.addServices" method="post" name="form"> - <table> - <tr> - <td> - <xsl:apply-templates select="/root/response/ARCXML/RESPONSE/SERVICES"/> - <!-- ArcIMS --> - <xsl:apply-templates select="//WMT_MS_Capabilities/Service"/> - <!-- WMS --> - <xsl:apply-templates select="//Capability/Layer"> - <xsl:with-param name="first">true</xsl:with-param> - </xsl:apply-templates> - </td> - </tr> - </table> - <input type="hidden" name="url" value="{/root/response/url}"/> - <input type="hidden" name="type" value="{/root/response/type}"/> - </form> - </xsl:with-param> - <xsl:with-param name="buttons"> - <button class="content" onclick="document.form.action='{/root/gui/locService}/map.getMain';document.form.submit();"><xsl:value-of select="/root/gui/strings/cancel"/></button> -   - <button class="content" onclick="document.form.submit();"><xsl:value-of select="/root/gui/strings/ok"/></button> - </xsl:with-param> - </xsl:call-template> - </body> - </html> - </xsl:template> - - <!-- ArcIMS Services --> - <xsl:template match="/root/response/ARCXML/RESPONSE/SERVICES"> - <tr> - <td> - <b> - <xsl:value-of select="count(SERVICE[@type='ImageServer'])"/> - <xsl:text> </xsl:text> - <xsl:value-of select="/root/gui/strings/mapsfound"/> - </b> - </td> - </tr> - <tr> - <td> - <select name="service" multiple="multiple" size="20"> - <xsl:for-each select="SERVICE[@type='ImageServer']"> - <xsl:sort select="@name"/> - <option value="{@name}"> - <xsl:value-of select="@name"/> - </option> - </xsl:for-each> - </select> - </td> - </tr> - </xsl:template> - - <!-- WMS service informations --> - <xsl:template match="//WMT_MS_Capabilities/Service"> - <h2> - <xsl:value-of select="Title"/> - </h2> - <!-- Abstract --> - <xsl:if test="Abstract"> - <p> - <b> - <xsl:value-of select="/root/gui/strings/abstract"/> - </b> - <xsl:text> </xsl:text> - <xsl:value-of select="Abstract"/> - </p> - </xsl:if> - <!-- Keywords --> - <xsl:if test="KeywordList"> - <p> - <b> - <xsl:value-of select="/root/gui/strings/keywords"/> - </b> - <xsl:text> </xsl:text> - <xsl:variable name="keywords"> - <xsl:for-each select="KeywordList/Keyword"> - <xsl:value-of select="."/> - <xsl:text>, </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($keywords, 1, string-length($keywords) - 2)"/> - </p> - </xsl:if> - - <!-- Online resource --> - <p> - <b> - <xsl:value-of select="/root/gui/strings/homepage"/> - </b> - <xsl:text> </xsl:text> - <xsl:variable name="geonetwork" select="OnlineResource/@xlink:href"/> - <xsl:choose> - <xsl:when test="contains($geonetwork,'geonetwork')"> - <a href="javascript:openGeoNetwork('{OnlineResource/@xlink:href}');"> - <xsl:value-of select="OnlineResource/@xlink:href"/> - </a> - </xsl:when> - <xsl:otherwise> - <a href="javascript:openPage('{OnlineResource/@xlink:href}','Attribution');"> - <xsl:value-of select="OnlineResource/@xlink:href"/> - </a> - </xsl:otherwise> - </xsl:choose> - </p> - - <!-- Contact information --> - <xsl:if test="ContactInformation"> - <p> - <b> - <xsl:value-of select="/root/gui/strings/contactInfo"/> - </b> - <br/> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> - <!-- Contact person --> - <xsl:if test="ContactInformation/ContactPersonPrimary/ContactPerson"> - <b> - <xsl:value-of select="/root/gui/strings/contactPerson"/> - </b> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactPersonPrimary/ContactPerson"/> - </xsl:if> - <!-- Contact organization --> - <xsl:if test="ContactInformation/ContactPersonPrimary/ContactOrganization"> - (<xsl:value-of select="ContactInformation/ContactPersonPrimary/ContactOrganization"/>) - </xsl:if> - <!-- Contact position --> - <xsl:if test="ContactInformation/ContactPosition"> - <br/> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> - <b> - <xsl:value-of select="/root/gui/strings/position"/> - </b> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactPosition"/> - </xsl:if> - <!-- Contact address --> - <xsl:if test="ContactInformation/ContactAddress"> - <br/> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> - <b> - <xsl:value-of select="/root/gui/strings/address"/> - </b> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactAddress/Address"/> - <xsl:text>, </xsl:text> - <xsl:value-of select="ContactInformation/ContactAddress/City"/> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactAddress/StateOrProvince"/> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactAddress/PostCode"/> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactAddress/Country"/> - </xsl:if> - <!-- Contact telephone --> - <xsl:if test="ContactInformation/ContactVoiceTelephone"> - <br/> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> - <b> - <xsl:value-of select="/root/gui/strings/telephone"/> - </b> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactVoiceTelephone"/> - </xsl:if> - <!-- Contact fax --> - <xsl:if test="ContactInformation/ContactFacsimileTelephone"> - <br/> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> - <b>Fax:</b> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactFacsimileTelephone"/> - </xsl:if> - <!-- Contact email --> - <xsl:if test="ContactInformation/ContactElectronicMailAddress"> - <br/> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> - <b> - <xsl:value-of select="/root/gui/strings/email"/> - </b> - <xsl:text> </xsl:text> - <a> - <xsl:attribute name="href"><xsl:text>mailto:</xsl:text><xsl:value-of select="ContactInformation/ContactElectronicMailAddress"/></xsl:attribute> - <xsl:value-of select="ContactInformation/ContactElectronicMailAddress"/> - </a> - </xsl:if> - </p> - </xsl:if> - <hr width="90%"/> - </xsl:template> - - <!-- WMS Services --> - <xsl:template match="Layer"> - <xsl:param name="first"/> - <xsl:choose> - <xsl:when test="$first='true'"> - <!-- First level --> - <xsl:choose> - <xsl:when test="not(Layer)"> - <!-- It's a layer --> - <xsl:apply-templates select="." mode="title"/> - </xsl:when> - <xsl:otherwise> - <!-- It's a layer group --> - <b> - <xsl:value-of select="Title"/> - </b> - <ul> - <xsl:apply-templates select="Layer"> - <!-- Recursively apply this template --> - <xsl:with-param name="first" select="false"/> - </xsl:apply-templates> - </ul> - </xsl:otherwise> - </xsl:choose> - </xsl:when> - <xsl:otherwise> - <!-- Other levels --> - <xsl:choose> - <xsl:when test="not(Layer)"> - <!-- It's a layer --> - <li> - <xsl:apply-templates select="." mode="title"/> - </li> - </xsl:when> - <xsl:otherwise> - <!-- It's a layer group --> - <li class="layer_group"> - <b><xsl:value-of select="Title" /></b> - </li> - <ul> - <xsl:apply-templates select="Layer"> - <!-- Recursively apply this template --> - <xsl:with-param name="first" select="false"/> - </xsl:apply-templates> - </ul> - </xsl:otherwise> - </xsl:choose> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <!-- WMS layers title --> - <xsl:template match="Layer" mode="title"> - <input type="checkbox" name="service" value="{Name}"></input> - <xsl:value-of select="Title"/> - <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> - <xsl:choose> - <xsl:when test="MetadataURL"> - <xsl:variable name="met" select="MetadataURL/OnlineResource/@xlink:href"/> - <xsl:choose> - <xsl:when test="contains($met,'geonetwork')"> - <a> - <xsl:attribute name="href">javascript:openGeoNetwork('<xsl:value-of select="MetadataURL/OnlineResource/@xlink:href"/>');</xsl:attribute> - <xsl:value-of select="/root/gui/strings/metadata"/> - </a> - </xsl:when> - <xsl:otherwise> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;</xsl:text> - <a> - <xsl:attribute name="href">javascript:openPage('<xsl:value-of select="MetadataURL/OnlineResource/@xlink:href"/>','Metadata');</xsl:attribute> - <xsl:value-of select="/root/gui/strings/metadata"/> - </a> - </xsl:otherwise> - </xsl:choose> - </xsl:when> - <xsl:when test="Abstract"> - <a href="javascript:getWmsLayerInfo('{Name}')"> - <img id="info" src="{/root/gui/url}/images/im_info.gif" /> - </a> - </xsl:when> - </xsl:choose> - <xsl:if test="Attribution"> - <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> - <xsl:choose> - <xsl:when test="Attribution/OnlineResource | Attribution/LogoURL"> - <a> - <xsl:attribute name="href">javascript:openPage('<xsl:value-of select="Attribution/OnlineResource/@xlink:href"/>','Attribution');</xsl:attribute> - <img alt="{Attribution/Title}" src="{Attribution/LogoURL/OnlineResource/@xlink:href}" title="{Attribution/Title}" border="0" align="middle" /> - </a> - </xsl:when> - <xsl:when test="Attribution/OnlineResource"> - <a> - <xsl:attribute name="href"> - <xsl:value-of select="Attribution/OnlineResource/@xlink:href"/> - </xsl:attribute> - <xsl:value-of select="Attribution/Title"/> - </a> - </xsl:when> - </xsl:choose> - </xsl:if> - - </xsl:template> -</xsl:stylesheet> +<?xml version="1.0" encoding="UTF-8"?> +<?xmlspysamplexml D:\temp\WMS_Capabilities.xml?> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink"> + + <xsl:include href="main.xsl"/> + + <!-- Main template --> + <xsl:template match="/"> + <html> + <head> + <title> + <xsl:value-of select="/root/gui/strings/title"/> + </title> + <link rel="stylesheet" type="text/css" href="../../intermap.css"/> + <script language="JavaScript" src="../../scripts/intermap.js"/> + <script language="javascript"> + function getWmsLayerInfo(name) { + window.open(('<xsl:value-of select="/root/gui/locService" />/map.service.wmsLayerInfo?url=<xsl:value-of select="/root/response/url"/>&name=' + name).unescapeHTML(), 'dialog', 'HEIGHT=300,WIDTH=400,scrollbars=yes,toolbar=no,status=no,menubar=no,location=no,resizable=yes').focus(); + } + </script> + </head> + <body> + <xsl:call-template name="formLayout"> + <xsl:with-param name="title" select="/root/gui/strings/choosemapfromlist"/> + <xsl:with-param name="content"> + <xsl:copy-of select="/root/gui/strings/feedbackTopics"/> + <p/> + <form action="{/root/gui/locService}/map.addServices" method="post" name="form"> + <table> + <tr> + <td> + <xsl:apply-templates select="/root/response/ARCXML/RESPONSE/SERVICES"/> + <!-- ArcIMS --> + <xsl:apply-templates select="//WMT_MS_Capabilities/Service"/> + <!-- WMS --> + <xsl:apply-templates select="//Capability/Layer"> + <xsl:with-param name="first">true</xsl:with-param> + </xsl:apply-templates> + </td> + </tr> + </table> + <input type="hidden" name="url" value="{/root/response/url}"/> + <input type="hidden" name="type" value="{/root/response/type}"/> + </form> + </xsl:with-param> + <xsl:with-param name="buttons"> + <button class="content" onclick="document.form.action='{/root/gui/locService}/map.getMain';document.form.submit();"><xsl:value-of select="/root/gui/strings/cancel"/></button> +   + <button class="content" onclick="document.form.submit();"><xsl:value-of select="/root/gui/strings/ok"/></button> + </xsl:with-param> + </xsl:call-template> + </body> + </html> + </xsl:template> + + <!-- ArcIMS Services --> + <xsl:template match="/root/response/ARCXML/RESPONSE/SERVICES"> + <tr> + <td> + <b> + <xsl:value-of select="count(SERVICE[@type='ImageServer'])"/> + <xsl:text> </xsl:text> + <xsl:value-of select="/root/gui/strings/mapsfound"/> + </b> + </td> + </tr> + <tr> + <td> + <select name="service" multiple="multiple" size="20"> + <xsl:for-each select="SERVICE[@type='ImageServer']"> + <xsl:sort select="@name"/> + <option value="{@name}"> + <xsl:value-of select="@name"/> + </option> + </xsl:for-each> + </select> + </td> + </tr> + </xsl:template> + + <!-- WMS service informations --> + <xsl:template match="//WMT_MS_Capabilities/Service"> + <h2> + <xsl:value-of select="Title"/> + </h2> + <!-- Abstract --> + <xsl:if test="Abstract"> + <p> + <b> + <xsl:value-of select="/root/gui/strings/abstract"/> + </b> + <xsl:text> </xsl:text> + <xsl:value-of select="Abstract"/> + </p> + </xsl:if> + <!-- Keywords --> + <xsl:if test="KeywordList"> + <p> + <b> + <xsl:value-of select="/root/gui/strings/keywords"/> + </b> + <xsl:text> </xsl:text> + <xsl:variable name="keywords"> + <xsl:for-each select="KeywordList/Keyword"> + <xsl:value-of select="."/> + <xsl:text>, </xsl:text> + </xsl:for-each> + </xsl:variable> + <xsl:value-of select="substring($keywords, 1, string-length($keywords) - 2)"/> + </p> + </xsl:if> + + <!-- Online resource --> + <p> + <b> + <xsl:value-of select="/root/gui/strings/homepage"/> + </b> + <xsl:text> </xsl:text> + <xsl:variable name="geonetwork" select="OnlineResource/@xlink:href"/> + <xsl:choose> + <xsl:when test="contains($geonetwork,'geonetwork')"> + <a href="javascript:openGeoNetwork('{OnlineResource/@xlink:href}');"> + <xsl:value-of select="OnlineResource/@xlink:href"/> + </a> + </xsl:when> + <xsl:otherwise> + <a href="javascript:openPage('{OnlineResource/@xlink:href}','Attribution');"> + <xsl:value-of select="OnlineResource/@xlink:href"/> + </a> + </xsl:otherwise> + </xsl:choose> + </p> + + <!-- Contact information --> + <xsl:if test="ContactInformation"> + <p> + <b> + <xsl:value-of select="/root/gui/strings/contactInfo"/> + </b> + <br/> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> + <!-- Contact person --> + <xsl:if test="ContactInformation/ContactPersonPrimary/ContactPerson"> + <b> + <xsl:value-of select="/root/gui/strings/contactPerson"/> + </b> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactPersonPrimary/ContactPerson"/> + </xsl:if> + <!-- Contact organization --> + <xsl:if test="ContactInformation/ContactPersonPrimary/ContactOrganization"> + (<xsl:value-of select="ContactInformation/ContactPersonPrimary/ContactOrganization"/>) + </xsl:if> + <!-- Contact position --> + <xsl:if test="ContactInformation/ContactPosition"> + <br/> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> + <b> + <xsl:value-of select="/root/gui/strings/position"/> + </b> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactPosition"/> + </xsl:if> + <!-- Contact address --> + <xsl:if test="ContactInformation/ContactAddress"> + <br/> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> + <b> + <xsl:value-of select="/root/gui/strings/address"/> + </b> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactAddress/Address"/> + <xsl:text>, </xsl:text> + <xsl:value-of select="ContactInformation/ContactAddress/City"/> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactAddress/StateOrProvince"/> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactAddress/PostCode"/> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactAddress/Country"/> + </xsl:if> + <!-- Contact telephone --> + <xsl:if test="ContactInformation/ContactVoiceTelephone"> + <br/> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> + <b> + <xsl:value-of select="/root/gui/strings/telephone"/> + </b> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactVoiceTelephone"/> + </xsl:if> + <!-- Contact fax --> + <xsl:if test="ContactInformation/ContactFacsimileTelephone"> + <br/> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> + <b>Fax:</b> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactFacsimileTelephone"/> + </xsl:if> + <!-- Contact email --> + <xsl:if test="ContactInformation/ContactElectronicMailAddress"> + <br/> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> + <b> + <xsl:value-of select="/root/gui/strings/email"/> + </b> + <xsl:text> </xsl:text> + <a> + <xsl:attribute name="href"><xsl:text>mailto:</xsl:text><xsl:value-of select="ContactInformation/ContactElectronicMailAddress"/></xsl:attribute> + <xsl:value-of select="ContactInformation/ContactElectronicMailAddress"/> + </a> + </xsl:if> + </p> + </xsl:if> + <hr width="90%"/> + </xsl:template> + + <!-- WMS Services --> + <xsl:template match="Layer"> + <xsl:param name="first"/> + <xsl:choose> + <xsl:when test="$first='true'"> + <!-- First level --> + <xsl:choose> + <xsl:when test="not(Layer)"> + <!-- It's a layer --> + <xsl:apply-templates select="." mode="title"/> + </xsl:when> + <xsl:otherwise> + <!-- It's a layer group --> + <b> + <xsl:value-of select="Title"/> + </b> + <ul> + <xsl:apply-templates select="Layer"> + <!-- Recursively apply this template --> + <xsl:with-param name="first" select="false"/> + </xsl:apply-templates> + </ul> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <!-- Other levels --> + <xsl:choose> + <xsl:when test="not(Layer)"> + <!-- It's a layer --> + <li> + <xsl:apply-templates select="." mode="title"/> + </li> + </xsl:when> + <xsl:otherwise> + <!-- It's a layer group --> + <li class="layer_group"> + <xsl:choose> + <xsl:when test="./Name"> + <b><xsl:apply-templates select="." mode="title"/></b> + </xsl:when> + <xsl:otherwise> + <b><xsl:value-of select="Title"/></b> + </xsl:otherwise> + </xsl:choose> + </li> + <ul> + <xsl:apply-templates select="Layer"> + <!-- Recursively apply this template --> + <xsl:with-param name="first" select="false"/> + </xsl:apply-templates> + </ul> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <!-- WMS layers title --> + <xsl:template match="Layer" mode="title"> + <input type="checkbox" name="service" value="{Name}"></input> + <xsl:value-of select="Title"/> + <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> + <xsl:choose> + <xsl:when test="MetadataURL"> + <xsl:variable name="met" select="MetadataURL/OnlineResource/@xlink:href"/> + <xsl:choose> + <xsl:when test="contains($met,'geonetwork')"> + <a> + <xsl:attribute name="href">javascript:openGeoNetwork('<xsl:value-of select="MetadataURL/OnlineResource/@xlink:href"/>');</xsl:attribute> + <xsl:value-of select="/root/gui/strings/metadata"/> + </a> + </xsl:when> + <xsl:otherwise> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;</xsl:text> + <a> + <xsl:attribute name="href">javascript:openPage('<xsl:value-of select="MetadataURL/OnlineResource/@xlink:href"/>','Metadata');</xsl:attribute> + <xsl:value-of select="/root/gui/strings/metadata"/> + </a> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:when test="Abstract"> + <a href="javascript:getWmsLayerInfo('{Name}')"> + <img id="info" src="{/root/gui/url}/images/im_info.gif" /> + </a> + </xsl:when> + </xsl:choose> + <xsl:if test="Attribution"> + <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> + <xsl:choose> + <xsl:when test="Attribution/OnlineResource | Attribution/LogoURL"> + <a> + <xsl:attribute name="href">javascript:openPage('<xsl:value-of select="Attribution/OnlineResource/@xlink:href"/>','Attribution');</xsl:attribute> + <img alt="{Attribution/Title}" src="{Attribution/LogoURL/OnlineResource/@xlink:href}" title="{Attribution/Title}" border="0" align="middle" /> + </a> + </xsl:when> + <xsl:when test="Attribution/OnlineResource"> + <a> + <xsl:attribute name="href"> + <xsl:value-of select="Attribution/OnlineResource/@xlink:href"/> + </xsl:attribute> + <xsl:value-of select="Attribution/Title"/> + </a> + </xsl:when> + </xsl:choose> + </xsl:if> + + </xsl:template> +</xsl:stylesheet> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tic...@us...> - 2008-04-04 15:52:26
|
Revision: 1249 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1249&view=rev Author: ticheler Date: 2008-04-04 08:51:52 -0700 (Fri, 04 Apr 2008) Log Message: ----------- - Logging through log4j Modified Paths: -------------- branches/2.2.x/src/org/wfp/vam/intermap/kernel/map/images/ImageMerger.java branches/2.2.x/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/WmsService.java branches/2.2.x/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/schema/type/WMSFormat.java Modified: branches/2.2.x/src/org/wfp/vam/intermap/kernel/map/images/ImageMerger.java =================================================================== --- branches/2.2.x/src/org/wfp/vam/intermap/kernel/map/images/ImageMerger.java 2008-04-04 15:51:06 UTC (rev 1248) +++ branches/2.2.x/src/org/wfp/vam/intermap/kernel/map/images/ImageMerger.java 2008-04-04 15:51:52 UTC (rev 1249) @@ -49,6 +49,8 @@ import java.util.List; import java.util.Vector; import javax.swing.ImageIcon; +import org.wfp.vam.intermap.Constants; +import jeeves.utils.Log; public class ImageMerger { static public final int JPG = 0; @@ -101,9 +103,9 @@ catch (IOException e) { if (e.getMessage() == "too many colors for a GIF") - System.out.println("too many colors for a GIF, will try to generate JPG"); + Log.debug(Constants.INTERMAP,"too many colors for a GIF, will try to generate JPG"); else - System.out.println("error in encoding GIF file: " + e.getMessage() + "; will try to generate a JPG"); + Log.debug(Constants.INTERMAP,"error in encoding GIF file: " + e.getMessage() + "; will try to generate a JPG"); encodeJPG(os, bi); } @@ -117,7 +119,7 @@ } catch (IOException e) { - System.out.println("error in encoding PNG file: " + e.getMessage() + "; will try to generate a JPG"); + Log.debug(Constants.INTERMAP,"error in encoding PNG file: " + e.getMessage() + "; will try to generate a JPG"); encodeJPG(os, bi); } } @@ -294,7 +296,7 @@ // alpha = 1F; // } -// System.out.println("i: " + i + "; alpha: " + alpha); // DEBUG +// Log.debug(Constants.INTERMAP,"i: " + i + "; alpha: " + alpha); // DEBUG destG.setComposite(AlphaComposite.getInstance(rule, alpha)); destG.drawImage(image, 0, 0, null); } @@ -338,7 +340,7 @@ destG.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, alpha)); destG.drawImage(base, 0, 0, null); - System.out.println("Compositing images ("+ow+","+oh+") over ("+bw+","+bh+") @"+x+"+"+y); + Log.debug(Constants.INTERMAP,"Compositing images ("+ow+","+oh+") over ("+bw+","+bh+") @"+x+"+"+y); // negative position starts from lower right corner, with -1 being aligned to the border if(x<0) @@ -347,7 +349,7 @@ if(y<0) y = bh - oh + y+1; - System.out.println(" @"+x+"+"+y); + Log.debug(Constants.INTERMAP," @"+x+"+"+y); destG.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); destG.drawImage(over, x, y, null); @@ -389,7 +391,7 @@ public static void main(String args[]) { if (args.length < 2) { - System.out.println("Usage: ImageMerger destFile srcFile1 ...\n"); + Log.debug(Constants.INTERMAP,"Usage: ImageMerger destFile srcFile1 ...\n"); System.exit(1); } Modified: branches/2.2.x/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/WmsService.java =================================================================== --- branches/2.2.x/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/WmsService.java 2008-04-04 15:51:06 UTC (rev 1248) +++ branches/2.2.x/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/WmsService.java 2008-04-04 15:51:52 UTC (rev 1249) @@ -155,7 +155,7 @@ else request += "&STYLES="; - Log.debug(Constants.INTERMAP," - GetMap request : "+ request); + Log.debug(Constants.WMS," - GetMap request : "+ request); return request; } @@ -202,7 +202,7 @@ + "&INFO_FORMAT=" + infoFormat + "&STYLES=" + _styleName; - Log.debug(Constants.INTERMAP," - GetFeatureInfo request : "+ url); + Log.debug(Constants.WMS," - GetFeatureInfo request : "+ url); lastResponse = new Element("url").setText(url); Modified: branches/2.2.x/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/schema/type/WMSFormat.java =================================================================== --- branches/2.2.x/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/schema/type/WMSFormat.java 2008-04-04 15:51:06 UTC (rev 1248) +++ branches/2.2.x/src/org/wfp/vam/intermap/kernel/map/mapServices/wms/schema/type/WMSFormat.java 2008-04-04 15:51:52 UTC (rev 1249) @@ -26,6 +26,8 @@ import java.util.ArrayList; import java.util.List; import org.jdom.Element; +import org.wfp.vam.intermap.Constants; +import jeeves.utils.Log; /** * @author ETj @@ -51,7 +53,6 @@ ,APP_WMS("application/vnd.ogc.wms_xml") ,APP_WMSERR("application/vnd.ogc.se_xml") - ,v100_GIF("GIF") ,v100_JPEG("JPEG") ,v100_PNG("PNG") @@ -87,7 +88,7 @@ for(WMSFormat format: WMSFormat.values()) if(format.toString().equals(type)) return format; - System.out.println("WARNING: WMSFormat: type '"+type+"' is not defined internally. Please update the internal mimetype list."); + Log.debug(Constants.WMS,"WARNING: WMSFormat: type '"+type+"' is not defined internally. Please update the internal mimetype list."); return null; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tic...@us...> - 2008-04-04 15:51:32
|
Revision: 1248 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1248&view=rev Author: ticheler Date: 2008-04-04 08:51:06 -0700 (Fri, 04 Apr 2008) Log Message: ----------- - installation update Modified Paths: -------------- branches/2.2.x/docs/docbook/gn_manual/qsg_installing.xml Modified: branches/2.2.x/docs/docbook/gn_manual/qsg_installing.xml =================================================================== --- branches/2.2.x/docs/docbook/gn_manual/qsg_installing.xml 2008-04-04 12:58:04 UTC (rev 1247) +++ branches/2.2.x/docs/docbook/gn_manual/qsg_installing.xml 2008-04-04 15:51:06 UTC (rev 1248) @@ -220,7 +220,7 @@ <para>To run the installation from the commandline, issue the following command in a terminal window and hit enter to start:</para> <programlisting> -<![CDATA[c:\temp\java -jar geonetwork-install-2.2.0-0.jar install.xml +<![CDATA[java -jar geonetwork-install-2.2.0-0.jar install.xml [ Starting automated installation ] [ Starting to unpack ] [ Processing package: Core (1/3) ] @@ -232,8 +232,8 @@ ]]> </programlisting> <para>You can also run the installation with lots of debug output. To do so run the - installer with the flag <literal>-DTRACE=true</literal>: - <literal>java -DTRACE=true -jar geonetwork-install-2.2.0-0.jar</literal></para> + installer with the flag <literal>-DTRACE=true</literal>: </para> + <programlisting>java -DTRACE=true -jar geonetwork-install-2.2.0-0.jar</programlisting> </section> <para> <guilabel/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tic...@us...> - 2008-04-04 12:59:01
|
Revision: 1247 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1247&view=rev Author: ticheler Date: 2008-04-04 05:58:04 -0700 (Fri, 04 Apr 2008) Log Message: ----------- - Allow to add grouped layers if supported Modified Paths: -------------- branches/2.2.x/web/intermap/xsl/im_get-services-embedded.xsl branches/2.2.x/web/intermap/xsl/im_get-services.xsl Modified: branches/2.2.x/web/intermap/xsl/im_get-services-embedded.xsl =================================================================== --- branches/2.2.x/web/intermap/xsl/im_get-services-embedded.xsl 2008-04-02 23:19:05 UTC (rev 1246) +++ branches/2.2.x/web/intermap/xsl/im_get-services-embedded.xsl 2008-04-04 12:58:04 UTC (rev 1247) @@ -254,7 +254,15 @@ <xsl:otherwise> <!-- It's a layer group --> <li class="layer_group"> - <b><xsl:value-of select="Title" /></b> + <xsl:choose> + <xsl:when test="./Name"> + <b><xsl:apply-templates select="." mode="title"/></b> + </xsl:when> + <xsl:otherwise> + <b><xsl:value-of select="Title" /></b> + </xsl:otherwise> + </xsl:choose> + </li> <ul> <xsl:apply-templates select="Layer"> Modified: branches/2.2.x/web/intermap/xsl/im_get-services.xsl =================================================================== --- branches/2.2.x/web/intermap/xsl/im_get-services.xsl 2008-04-02 23:19:05 UTC (rev 1246) +++ branches/2.2.x/web/intermap/xsl/im_get-services.xsl 2008-04-04 12:58:04 UTC (rev 1247) @@ -1,320 +1,327 @@ -<?xml version="1.0" encoding="UTF-8"?> -<?xmlspysamplexml D:\temp\WMS_Capabilities.xml?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink"> - - <xsl:include href="main.xsl"/> - - <!-- Main template --> - <xsl:template match="/"> - <html> - <head> - <title> - <xsl:value-of select="/root/gui/strings/title"/> - </title> - <link rel="stylesheet" type="text/css" href="../../intermap.css"/> - <script language="JavaScript" src="../../scripts/intermap.js"/> - <script language="javascript"> - function getWmsLayerInfo(name) { - window.open(('<xsl:value-of select="/root/gui/locService" />/map.service.wmsLayerInfo?url=<xsl:value-of select="/root/response/url"/>&name=' + name).unescapeHTML(), 'dialog', 'HEIGHT=300,WIDTH=400,scrollbars=yes,toolbar=no,status=no,menubar=no,location=no,resizable=yes').focus(); - } - </script> - </head> - <body> - <xsl:call-template name="formLayout"> - <xsl:with-param name="title" select="/root/gui/strings/choosemapfromlist"/> - <xsl:with-param name="content"> - <xsl:copy-of select="/root/gui/strings/feedbackTopics"/> - <p/> - <form action="{/root/gui/locService}/map.addServices" method="post" name="form"> - <table> - <tr> - <td> - <xsl:apply-templates select="/root/response/ARCXML/RESPONSE/SERVICES"/> - <!-- ArcIMS --> - <xsl:apply-templates select="//WMT_MS_Capabilities/Service"/> - <!-- WMS --> - <xsl:apply-templates select="//Capability/Layer"> - <xsl:with-param name="first">true</xsl:with-param> - </xsl:apply-templates> - </td> - </tr> - </table> - <input type="hidden" name="url" value="{/root/response/url}"/> - <input type="hidden" name="type" value="{/root/response/type}"/> - </form> - </xsl:with-param> - <xsl:with-param name="buttons"> - <button class="content" onclick="document.form.action='{/root/gui/locService}/map.getMain';document.form.submit();"><xsl:value-of select="/root/gui/strings/cancel"/></button> -   - <button class="content" onclick="document.form.submit();"><xsl:value-of select="/root/gui/strings/ok"/></button> - </xsl:with-param> - </xsl:call-template> - </body> - </html> - </xsl:template> - - <!-- ArcIMS Services --> - <xsl:template match="/root/response/ARCXML/RESPONSE/SERVICES"> - <tr> - <td> - <b> - <xsl:value-of select="count(SERVICE[@type='ImageServer'])"/> - <xsl:text> </xsl:text> - <xsl:value-of select="/root/gui/strings/mapsfound"/> - </b> - </td> - </tr> - <tr> - <td> - <select name="service" multiple="multiple" size="20"> - <xsl:for-each select="SERVICE[@type='ImageServer']"> - <xsl:sort select="@name"/> - <option value="{@name}"> - <xsl:value-of select="@name"/> - </option> - </xsl:for-each> - </select> - </td> - </tr> - </xsl:template> - - <!-- WMS service informations --> - <xsl:template match="//WMT_MS_Capabilities/Service"> - <h2> - <xsl:value-of select="Title"/> - </h2> - <!-- Abstract --> - <xsl:if test="Abstract"> - <p> - <b> - <xsl:value-of select="/root/gui/strings/abstract"/> - </b> - <xsl:text> </xsl:text> - <xsl:value-of select="Abstract"/> - </p> - </xsl:if> - <!-- Keywords --> - <xsl:if test="KeywordList"> - <p> - <b> - <xsl:value-of select="/root/gui/strings/keywords"/> - </b> - <xsl:text> </xsl:text> - <xsl:variable name="keywords"> - <xsl:for-each select="KeywordList/Keyword"> - <xsl:value-of select="."/> - <xsl:text>, </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($keywords, 1, string-length($keywords) - 2)"/> - </p> - </xsl:if> - - <!-- Online resource --> - <p> - <b> - <xsl:value-of select="/root/gui/strings/homepage"/> - </b> - <xsl:text> </xsl:text> - <xsl:variable name="geonetwork" select="OnlineResource/@xlink:href"/> - <xsl:choose> - <xsl:when test="contains($geonetwork,'geonetwork')"> - <a href="javascript:openGeoNetwork('{OnlineResource/@xlink:href}');"> - <xsl:value-of select="OnlineResource/@xlink:href"/> - </a> - </xsl:when> - <xsl:otherwise> - <a href="javascript:openPage('{OnlineResource/@xlink:href}','Attribution');"> - <xsl:value-of select="OnlineResource/@xlink:href"/> - </a> - </xsl:otherwise> - </xsl:choose> - </p> - - <!-- Contact information --> - <xsl:if test="ContactInformation"> - <p> - <b> - <xsl:value-of select="/root/gui/strings/contactInfo"/> - </b> - <br/> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> - <!-- Contact person --> - <xsl:if test="ContactInformation/ContactPersonPrimary/ContactPerson"> - <b> - <xsl:value-of select="/root/gui/strings/contactPerson"/> - </b> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactPersonPrimary/ContactPerson"/> - </xsl:if> - <!-- Contact organization --> - <xsl:if test="ContactInformation/ContactPersonPrimary/ContactOrganization"> - (<xsl:value-of select="ContactInformation/ContactPersonPrimary/ContactOrganization"/>) - </xsl:if> - <!-- Contact position --> - <xsl:if test="ContactInformation/ContactPosition"> - <br/> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> - <b> - <xsl:value-of select="/root/gui/strings/position"/> - </b> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactPosition"/> - </xsl:if> - <!-- Contact address --> - <xsl:if test="ContactInformation/ContactAddress"> - <br/> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> - <b> - <xsl:value-of select="/root/gui/strings/address"/> - </b> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactAddress/Address"/> - <xsl:text>, </xsl:text> - <xsl:value-of select="ContactInformation/ContactAddress/City"/> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactAddress/StateOrProvince"/> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactAddress/PostCode"/> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactAddress/Country"/> - </xsl:if> - <!-- Contact telephone --> - <xsl:if test="ContactInformation/ContactVoiceTelephone"> - <br/> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> - <b> - <xsl:value-of select="/root/gui/strings/telephone"/> - </b> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactVoiceTelephone"/> - </xsl:if> - <!-- Contact fax --> - <xsl:if test="ContactInformation/ContactFacsimileTelephone"> - <br/> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> - <b>Fax:</b> - <xsl:text> </xsl:text> - <xsl:value-of select="ContactInformation/ContactFacsimileTelephone"/> - </xsl:if> - <!-- Contact email --> - <xsl:if test="ContactInformation/ContactElectronicMailAddress"> - <br/> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> - <b> - <xsl:value-of select="/root/gui/strings/email"/> - </b> - <xsl:text> </xsl:text> - <a> - <xsl:attribute name="href"><xsl:text>mailto:</xsl:text><xsl:value-of select="ContactInformation/ContactElectronicMailAddress"/></xsl:attribute> - <xsl:value-of select="ContactInformation/ContactElectronicMailAddress"/> - </a> - </xsl:if> - </p> - </xsl:if> - <hr width="90%"/> - </xsl:template> - - <!-- WMS Services --> - <xsl:template match="Layer"> - <xsl:param name="first"/> - <xsl:choose> - <xsl:when test="$first='true'"> - <!-- First level --> - <xsl:choose> - <xsl:when test="not(Layer)"> - <!-- It's a layer --> - <xsl:apply-templates select="." mode="title"/> - </xsl:when> - <xsl:otherwise> - <!-- It's a layer group --> - <b> - <xsl:value-of select="Title"/> - </b> - <ul> - <xsl:apply-templates select="Layer"> - <!-- Recursively apply this template --> - <xsl:with-param name="first" select="false"/> - </xsl:apply-templates> - </ul> - </xsl:otherwise> - </xsl:choose> - </xsl:when> - <xsl:otherwise> - <!-- Other levels --> - <xsl:choose> - <xsl:when test="not(Layer)"> - <!-- It's a layer --> - <li> - <xsl:apply-templates select="." mode="title"/> - </li> - </xsl:when> - <xsl:otherwise> - <!-- It's a layer group --> - <li class="layer_group"> - <b><xsl:value-of select="Title" /></b> - </li> - <ul> - <xsl:apply-templates select="Layer"> - <!-- Recursively apply this template --> - <xsl:with-param name="first" select="false"/> - </xsl:apply-templates> - </ul> - </xsl:otherwise> - </xsl:choose> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <!-- WMS layers title --> - <xsl:template match="Layer" mode="title"> - <input type="checkbox" name="service" value="{Name}"></input> - <xsl:value-of select="Title"/> - <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> - <xsl:choose> - <xsl:when test="MetadataURL"> - <xsl:variable name="met" select="MetadataURL/OnlineResource/@xlink:href"/> - <xsl:choose> - <xsl:when test="contains($met,'geonetwork')"> - <a> - <xsl:attribute name="href">javascript:openGeoNetwork('<xsl:value-of select="MetadataURL/OnlineResource/@xlink:href"/>');</xsl:attribute> - <xsl:value-of select="/root/gui/strings/metadata"/> - </a> - </xsl:when> - <xsl:otherwise> - <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;</xsl:text> - <a> - <xsl:attribute name="href">javascript:openPage('<xsl:value-of select="MetadataURL/OnlineResource/@xlink:href"/>','Metadata');</xsl:attribute> - <xsl:value-of select="/root/gui/strings/metadata"/> - </a> - </xsl:otherwise> - </xsl:choose> - </xsl:when> - <xsl:when test="Abstract"> - <a href="javascript:getWmsLayerInfo('{Name}')"> - <img id="info" src="{/root/gui/url}/images/im_info.gif" /> - </a> - </xsl:when> - </xsl:choose> - <xsl:if test="Attribution"> - <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> - <xsl:choose> - <xsl:when test="Attribution/OnlineResource | Attribution/LogoURL"> - <a> - <xsl:attribute name="href">javascript:openPage('<xsl:value-of select="Attribution/OnlineResource/@xlink:href"/>','Attribution');</xsl:attribute> - <img alt="{Attribution/Title}" src="{Attribution/LogoURL/OnlineResource/@xlink:href}" title="{Attribution/Title}" border="0" align="middle" /> - </a> - </xsl:when> - <xsl:when test="Attribution/OnlineResource"> - <a> - <xsl:attribute name="href"> - <xsl:value-of select="Attribution/OnlineResource/@xlink:href"/> - </xsl:attribute> - <xsl:value-of select="Attribution/Title"/> - </a> - </xsl:when> - </xsl:choose> - </xsl:if> - - </xsl:template> -</xsl:stylesheet> +<?xml version="1.0" encoding="UTF-8"?> +<?xmlspysamplexml D:\temp\WMS_Capabilities.xml?> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink"> + + <xsl:include href="main.xsl"/> + + <!-- Main template --> + <xsl:template match="/"> + <html> + <head> + <title> + <xsl:value-of select="/root/gui/strings/title"/> + </title> + <link rel="stylesheet" type="text/css" href="../../intermap.css"/> + <script language="JavaScript" src="../../scripts/intermap.js"/> + <script language="javascript"> + function getWmsLayerInfo(name) { + window.open(('<xsl:value-of select="/root/gui/locService" />/map.service.wmsLayerInfo?url=<xsl:value-of select="/root/response/url"/>&name=' + name).unescapeHTML(), 'dialog', 'HEIGHT=300,WIDTH=400,scrollbars=yes,toolbar=no,status=no,menubar=no,location=no,resizable=yes').focus(); + } + </script> + </head> + <body> + <xsl:call-template name="formLayout"> + <xsl:with-param name="title" select="/root/gui/strings/choosemapfromlist"/> + <xsl:with-param name="content"> + <xsl:copy-of select="/root/gui/strings/feedbackTopics"/> + <p/> + <form action="{/root/gui/locService}/map.addServices" method="post" name="form"> + <table> + <tr> + <td> + <xsl:apply-templates select="/root/response/ARCXML/RESPONSE/SERVICES"/> + <!-- ArcIMS --> + <xsl:apply-templates select="//WMT_MS_Capabilities/Service"/> + <!-- WMS --> + <xsl:apply-templates select="//Capability/Layer"> + <xsl:with-param name="first">true</xsl:with-param> + </xsl:apply-templates> + </td> + </tr> + </table> + <input type="hidden" name="url" value="{/root/response/url}"/> + <input type="hidden" name="type" value="{/root/response/type}"/> + </form> + </xsl:with-param> + <xsl:with-param name="buttons"> + <button class="content" onclick="document.form.action='{/root/gui/locService}/map.getMain';document.form.submit();"><xsl:value-of select="/root/gui/strings/cancel"/></button> +   + <button class="content" onclick="document.form.submit();"><xsl:value-of select="/root/gui/strings/ok"/></button> + </xsl:with-param> + </xsl:call-template> + </body> + </html> + </xsl:template> + + <!-- ArcIMS Services --> + <xsl:template match="/root/response/ARCXML/RESPONSE/SERVICES"> + <tr> + <td> + <b> + <xsl:value-of select="count(SERVICE[@type='ImageServer'])"/> + <xsl:text> </xsl:text> + <xsl:value-of select="/root/gui/strings/mapsfound"/> + </b> + </td> + </tr> + <tr> + <td> + <select name="service" multiple="multiple" size="20"> + <xsl:for-each select="SERVICE[@type='ImageServer']"> + <xsl:sort select="@name"/> + <option value="{@name}"> + <xsl:value-of select="@name"/> + </option> + </xsl:for-each> + </select> + </td> + </tr> + </xsl:template> + + <!-- WMS service informations --> + <xsl:template match="//WMT_MS_Capabilities/Service"> + <h2> + <xsl:value-of select="Title"/> + </h2> + <!-- Abstract --> + <xsl:if test="Abstract"> + <p> + <b> + <xsl:value-of select="/root/gui/strings/abstract"/> + </b> + <xsl:text> </xsl:text> + <xsl:value-of select="Abstract"/> + </p> + </xsl:if> + <!-- Keywords --> + <xsl:if test="KeywordList"> + <p> + <b> + <xsl:value-of select="/root/gui/strings/keywords"/> + </b> + <xsl:text> </xsl:text> + <xsl:variable name="keywords"> + <xsl:for-each select="KeywordList/Keyword"> + <xsl:value-of select="."/> + <xsl:text>, </xsl:text> + </xsl:for-each> + </xsl:variable> + <xsl:value-of select="substring($keywords, 1, string-length($keywords) - 2)"/> + </p> + </xsl:if> + + <!-- Online resource --> + <p> + <b> + <xsl:value-of select="/root/gui/strings/homepage"/> + </b> + <xsl:text> </xsl:text> + <xsl:variable name="geonetwork" select="OnlineResource/@xlink:href"/> + <xsl:choose> + <xsl:when test="contains($geonetwork,'geonetwork')"> + <a href="javascript:openGeoNetwork('{OnlineResource/@xlink:href}');"> + <xsl:value-of select="OnlineResource/@xlink:href"/> + </a> + </xsl:when> + <xsl:otherwise> + <a href="javascript:openPage('{OnlineResource/@xlink:href}','Attribution');"> + <xsl:value-of select="OnlineResource/@xlink:href"/> + </a> + </xsl:otherwise> + </xsl:choose> + </p> + + <!-- Contact information --> + <xsl:if test="ContactInformation"> + <p> + <b> + <xsl:value-of select="/root/gui/strings/contactInfo"/> + </b> + <br/> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> + <!-- Contact person --> + <xsl:if test="ContactInformation/ContactPersonPrimary/ContactPerson"> + <b> + <xsl:value-of select="/root/gui/strings/contactPerson"/> + </b> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactPersonPrimary/ContactPerson"/> + </xsl:if> + <!-- Contact organization --> + <xsl:if test="ContactInformation/ContactPersonPrimary/ContactOrganization"> + (<xsl:value-of select="ContactInformation/ContactPersonPrimary/ContactOrganization"/>) + </xsl:if> + <!-- Contact position --> + <xsl:if test="ContactInformation/ContactPosition"> + <br/> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> + <b> + <xsl:value-of select="/root/gui/strings/position"/> + </b> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactPosition"/> + </xsl:if> + <!-- Contact address --> + <xsl:if test="ContactInformation/ContactAddress"> + <br/> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> + <b> + <xsl:value-of select="/root/gui/strings/address"/> + </b> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactAddress/Address"/> + <xsl:text>, </xsl:text> + <xsl:value-of select="ContactInformation/ContactAddress/City"/> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactAddress/StateOrProvince"/> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactAddress/PostCode"/> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactAddress/Country"/> + </xsl:if> + <!-- Contact telephone --> + <xsl:if test="ContactInformation/ContactVoiceTelephone"> + <br/> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> + <b> + <xsl:value-of select="/root/gui/strings/telephone"/> + </b> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactVoiceTelephone"/> + </xsl:if> + <!-- Contact fax --> + <xsl:if test="ContactInformation/ContactFacsimileTelephone"> + <br/> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> + <b>Fax:</b> + <xsl:text> </xsl:text> + <xsl:value-of select="ContactInformation/ContactFacsimileTelephone"/> + </xsl:if> + <!-- Contact email --> + <xsl:if test="ContactInformation/ContactElectronicMailAddress"> + <br/> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text> + <b> + <xsl:value-of select="/root/gui/strings/email"/> + </b> + <xsl:text> </xsl:text> + <a> + <xsl:attribute name="href"><xsl:text>mailto:</xsl:text><xsl:value-of select="ContactInformation/ContactElectronicMailAddress"/></xsl:attribute> + <xsl:value-of select="ContactInformation/ContactElectronicMailAddress"/> + </a> + </xsl:if> + </p> + </xsl:if> + <hr width="90%"/> + </xsl:template> + + <!-- WMS Services --> + <xsl:template match="Layer"> + <xsl:param name="first"/> + <xsl:choose> + <xsl:when test="$first='true'"> + <!-- First level --> + <xsl:choose> + <xsl:when test="not(Layer)"> + <!-- It's a layer --> + <xsl:apply-templates select="." mode="title"/> + </xsl:when> + <xsl:otherwise> + <!-- It's a layer group --> + <b> + <xsl:value-of select="Title"/> + </b> + <ul> + <xsl:apply-templates select="Layer"> + <!-- Recursively apply this template --> + <xsl:with-param name="first" select="false"/> + </xsl:apply-templates> + </ul> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <!-- Other levels --> + <xsl:choose> + <xsl:when test="not(Layer)"> + <!-- It's a layer --> + <li> + <xsl:apply-templates select="." mode="title"/> + </li> + </xsl:when> + <xsl:otherwise> + <!-- It's a layer group --> + <li class="layer_group"> + <xsl:choose> + <xsl:when test="./Name"> + <b><xsl:apply-templates select="." mode="title"/></b> + </xsl:when> + <xsl:otherwise> + <b><xsl:value-of select="Title"/></b> + </xsl:otherwise> + </xsl:choose> + </li> + <ul> + <xsl:apply-templates select="Layer"> + <!-- Recursively apply this template --> + <xsl:with-param name="first" select="false"/> + </xsl:apply-templates> + </ul> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <!-- WMS layers title --> + <xsl:template match="Layer" mode="title"> + <input type="checkbox" name="service" value="{Name}"></input> + <xsl:value-of select="Title"/> + <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> + <xsl:choose> + <xsl:when test="MetadataURL"> + <xsl:variable name="met" select="MetadataURL/OnlineResource/@xlink:href"/> + <xsl:choose> + <xsl:when test="contains($met,'geonetwork')"> + <a> + <xsl:attribute name="href">javascript:openGeoNetwork('<xsl:value-of select="MetadataURL/OnlineResource/@xlink:href"/>');</xsl:attribute> + <xsl:value-of select="/root/gui/strings/metadata"/> + </a> + </xsl:when> + <xsl:otherwise> + <xsl:text disable-output-escaping="yes">&nbsp;&nbsp;</xsl:text> + <a> + <xsl:attribute name="href">javascript:openPage('<xsl:value-of select="MetadataURL/OnlineResource/@xlink:href"/>','Metadata');</xsl:attribute> + <xsl:value-of select="/root/gui/strings/metadata"/> + </a> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:when test="Abstract"> + <a href="javascript:getWmsLayerInfo('{Name}')"> + <img id="info" src="{/root/gui/url}/images/im_info.gif" /> + </a> + </xsl:when> + </xsl:choose> + <xsl:if test="Attribution"> + <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> + <xsl:choose> + <xsl:when test="Attribution/OnlineResource | Attribution/LogoURL"> + <a> + <xsl:attribute name="href">javascript:openPage('<xsl:value-of select="Attribution/OnlineResource/@xlink:href"/>','Attribution');</xsl:attribute> + <img alt="{Attribution/Title}" src="{Attribution/LogoURL/OnlineResource/@xlink:href}" title="{Attribution/Title}" border="0" align="middle" /> + </a> + </xsl:when> + <xsl:when test="Attribution/OnlineResource"> + <a> + <xsl:attribute name="href"> + <xsl:value-of select="Attribution/OnlineResource/@xlink:href"/> + </xsl:attribute> + <xsl:value-of select="Attribution/Title"/> + </a> + </xsl:when> + </xsl:choose> + </xsl:if> + + </xsl:template> +</xsl:stylesheet> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tic...@us...> - 2008-04-02 23:19:10
|
Revision: 1246 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1246&view=rev Author: ticheler Date: 2008-04-02 16:19:05 -0700 (Wed, 02 Apr 2008) Log Message: ----------- Added Paths: ----------- tags/2.2.0/ Removed Paths: ------------- tags/2.2.0.0/ Copied: tags/2.2.0 (from rev 1245, tags/2.2.0.0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tic...@us...> - 2008-04-02 23:18:18
|
Revision: 1245 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1245&view=rev Author: ticheler Date: 2008-04-02 16:18:18 -0700 (Wed, 02 Apr 2008) Log Message: ----------- Removed Paths: ------------- tags/2.2.0/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tic...@us...> - 2008-04-02 23:17:36
|
Revision: 1244 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1244&view=rev Author: ticheler Date: 2008-04-02 16:17:34 -0700 (Wed, 02 Apr 2008) Log Message: ----------- Version 2.2.0 Added Paths: ----------- tags/2.2.0.0/ Removed Paths: ------------- tags/2.2.0/2.2.x/ Copied: tags/2.2.0.0 (from rev 1243, tags/2.2.0/2.2.x) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tic...@us...> - 2008-04-02 23:15:16
|
Revision: 1243 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1243&view=rev Author: ticheler Date: 2008-04-02 16:15:18 -0700 (Wed, 02 Apr 2008) Log Message: ----------- Version 2.2.0 Added Paths: ----------- tags/2.2.0/2.2.x/ Copied: tags/2.2.0/2.2.x (from rev 1241, branches/2.2.x) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tic...@us...> - 2008-04-02 23:14:31
|
Revision: 1242 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1242&view=rev Author: ticheler Date: 2008-04-02 16:14:02 -0700 (Wed, 02 Apr 2008) Log Message: ----------- Version 2.2.0 Added Paths: ----------- tags/2.2.0/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |