Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/themes/ThemeMapping.java @ 4205:0dd8963cec9c
Set also the width of the GaugeTree when resizing the GaugePanel
GWT is no longer able to calculate and set the correct width of the GaugeTree since
the GaugeTree is added via a Canvas wrapper. Therefore set the width manually
when resizing the GaugeTree.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Mon, 22 Oct 2012 15:33:16 +0200 |
parents | a5f65e8983be |
children |
line wrap: on
line source
package de.intevation.flys.themes; import org.apache.log4j.Logger; import java.io.Serializable; import java.util.regex.Matcher; import java.util.regex.Pattern; import de.intevation.flys.artifacts.FLYSArtifact; /** * Represents mapping to a theme (including conditions). */ public class ThemeMapping implements Serializable { /** The logger that is used in this class */ private static Logger logger = Logger.getLogger(ThemeMapping.class); /** Name from which to map. */ protected String from; /** Name to which to map. */ protected String to; /** Given pattern (held against facet description). */ protected String patternStr; /** Given masterAttr pattern (held against masterartifacts attributes). */ protected String masterAttr; /** Given output for which mapping is valid. */ protected String output; protected Pattern pattern; public ThemeMapping(String from, String to) { this(from, to, null, null, null); } public ThemeMapping( String from, String to, String patternStr, String masterAttr, String output) { this.from = from; this.to = to; this.patternStr = patternStr; this.masterAttr = masterAttr; this.output = output; this.pattern = Pattern.compile(patternStr); } public String getFrom() { return from; } /** * Get name of theme that is mapped to. */ public String getTo() { return to; } /** * Get pattern. */ public String getPatternStr() { return patternStr; } /** * Match regular expression against text. * * @param text string to be matched against. * @return true if pattern matches text or pattern is empty. */ public boolean applyPattern(String text) { if (patternStr == null || patternStr.length() == 0) { return true; } Matcher m = pattern.matcher(text); if (m.matches()) { logger.debug("Pattern matches: " + text); return true; } else { logger.debug( "Pattern '"+ text + "' does not match: " + this.patternStr); return false; } } /** * Inspects Artifacts data given the masterAttr-condition. * * The only condition implemented so far is 'key==value', for which * the Artifacts data with name "key" has to be of value "value" in order * for true to be returned. * * @param artifact Artifact of which to inspect data. * @return true if no condition is specified or condition is met. */ public boolean masterAttrMatches(FLYSArtifact artifact) { if (masterAttr == null || masterAttr.length() == 0) { return true; } // Operator split. String[] parts = masterAttr.split("=="); if (parts.length != 2) { logger.error("ThemeMapping could not parse masterAttr.-condition:_" + masterAttr + "_"); return false; } // Test. if (artifact.getDataAsString(parts[0]).equals(parts[1])) { logger.debug("Matches master Attribute."); return true; } else { logger.debug("Does not match master Attribute."); return false; } } /** * Returns true if no output condition exists, or the condition is met * in parameter output. */ public boolean outputMatches(String output) { if (this.output == null || this.output.length() == 0) { return true; } if (this.output.equals(output)) { logger.debug("Output matches this mapping: " + output); return true; } else { logger.debug("Output '"+ output +"' does not match: "+ this.output); return false; } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :