# HG changeset patch # User Ingo Weinzierl # Date 1317727717 0 # Node ID 6566c7868456cdfa7d8b9cea9c6963de5221b2ef # Parent f1af0c07a6eeeb47ec42bf8cf6958e8d459fb512 Added facet and index information to theme which are stored at CollectionItems. flys-artifacts/trunk@2880 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r f1af0c07a6ee -r 6566c7868456 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Tue Oct 04 07:37:05 2011 +0000 +++ b/flys-artifacts/ChangeLog Tue Oct 04 11:28:37 2011 +0000 @@ -1,3 +1,13 @@ +2011-10-04 Ingo Weinzierl + + * src/main/java/de/intevation/flys/themes/Theme.java, + src/main/java/de/intevation/flys/themes/DefaultTheme.java: Added + getter/setter methods to provide a facet (string) and index (int). Both + values are written as attribute to the Theme's XML representation. + + * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: + Set the "facet" and "index" values of themes. + 2011-10-04 Ingo Weinzierl flys/issue346 (W-INFO / Anzeige der Höheninformation) diff -r f1af0c07a6ee -r 6566c7868456 flys-artifacts/src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java --- a/flys-artifacts/src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java Tue Oct 04 07:37:05 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java Tue Oct 04 11:28:37 2011 +0000 @@ -291,6 +291,7 @@ art, outName, facetName, + theme.getIndex(), context)); } } @@ -457,6 +458,7 @@ String uuid, String outName, String facet, + int index, CallContext context) throws ArtifactDatabaseException { @@ -477,7 +479,7 @@ Document attr = db.getCollectionItemAttribute(identifier(), uuid, meta); if (attr == null) { - attr = initItemAttribute(uuid, facet, context); + attr = initItemAttribute(uuid, facet, index, context); if (attr == null) { return null; @@ -501,14 +503,15 @@ Node theme = (Node) XMLUtils.xpath( tmp, - "art:themes/theme[@name='" + themeName + "']", + "art:themes/theme[@facet='" + facet + + "' and @index='" + String.valueOf(index) + "']", XPathConstants.NODE, ArtifactNamespaceContext.INSTANCE); if (theme == null) { log.warn("Could not find the theme in attribute of: " + uuid); - Theme t = getThemeForFacet(uuid, facet, context); + Theme t = getThemeForFacet(uuid, facet, index, context); if (t == null) { log.warn("No theme found for facet: " + facet); @@ -601,11 +604,12 @@ protected Document initItemAttribute( String uuid, String facet, + int index, CallContext context) { log.info("FLYSArtifactCollection.initItemAttribute"); - Theme t = getThemeForFacet(uuid, facet, context); + Theme t = getThemeForFacet(uuid, facet, index, context); if (t == null) { log.info("Could not find theme for facet. Cancel initialization."); @@ -662,6 +666,7 @@ protected Theme getThemeForFacet( String uuid, String facet, + int index, CallContext context) { log.info("FLYSArtifactCollection.getThemeForFacet: " + facet); @@ -670,7 +675,14 @@ ? (FLYSContext) context : (FLYSContext) context.globalContext(); - return ThemeFactory.getTheme(flysContext, facet); + Theme t = ThemeFactory.getTheme(flysContext, facet); + + if (t != null) { + t.setFacet(facet); + t.setIndex(index); + } + + return t; } diff -r f1af0c07a6ee -r 6566c7868456 flys-artifacts/src/main/java/de/intevation/flys/themes/DefaultTheme.java --- a/flys-artifacts/src/main/java/de/intevation/flys/themes/DefaultTheme.java Tue Oct 04 07:37:05 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/themes/DefaultTheme.java Tue Oct 04 11:28:37 2011 +0000 @@ -23,6 +23,10 @@ /** The description of the theme.*/ protected String description; + protected String facet; + + protected int index; + /** The map storing the fields of this theme.*/ protected Map fields; @@ -56,6 +60,26 @@ } + public String getFacet() { + return facet; + } + + + public void setFacet(String facet) { + this.facet = facet; + } + + + public int getIndex() { + return index; + } + + + public void setIndex(int index) { + this.index = index; + } + + public void addAttribute(String name, String value) { if (name != null && value != null) { attr.put(name, value); @@ -111,6 +135,8 @@ ElementCreator cr = new ElementCreator(doc, null, null); Element theme = cr.create("theme"); + theme.setAttribute("facet", facet); + theme.setAttribute("index", String.valueOf(index)); appendAttributes(cr, theme); appendFields(cr, theme); diff -r f1af0c07a6ee -r 6566c7868456 flys-artifacts/src/main/java/de/intevation/flys/themes/Theme.java --- a/flys-artifacts/src/main/java/de/intevation/flys/themes/Theme.java Tue Oct 04 07:37:05 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/themes/Theme.java Tue Oct 04 11:28:37 2011 +0000 @@ -33,6 +33,15 @@ String getDescription(); + String getFacet(); + + void setFacet(String facet); + + int getIndex(); + + void setIndex(int index); + + /** * Adds a new attribute. *