diff --git a/model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/metadata/ElementDefn.java b/model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/metadata/ElementDefn.java index 387d2327523..aad5702419b 100644 --- a/model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/metadata/ElementDefn.java +++ b/model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/metadata/ElementDefn.java @@ -1287,10 +1287,27 @@ private void buildCachedPropertyDefns( ) if ( sourcePropertyDefn instanceof IElementPropertyDefn && !( (IElementPropertyDefn) sourcePropertyDefn ).isStyleProperty( ) ) { - ElementDefn style = (ElementDefn) MetaDataDictionary.getInstance( ) - .getStyle( ); + ElementDefn style = (ElementDefn) MetaDataDictionary + .getInstance( ).getStyle( ); if ( style.getProperty( IStyleModel.HEIGHT_PROP ) != null ) { + + // Copy semantic triggers from SourceTriggers to + // StyleTriggers while replacing the style property + // BIRT-674 + IPropertyDefn propertyDefn = style + .getProperty( IStyleModel.HEIGHT_PROP ); + List sourceTriggers = ( (PropertyDefn) sourcePropertyDefn ) + .getTriggerDefnSet( ).getTriggerList( ); + + // Adding source defined semantic triggers to style + // properties and adding them to chachedProperties + for ( SemanticTriggerDefn semanticTrigger : sourceTriggers ) + { + ( (PropertyDefn) propertyDefn ).getTriggerDefnSet( ) + .add( semanticTrigger ); + } + cachedProperties.put( IStyleModel.HEIGHT_PROP, style.getProperty( IStyleModel.HEIGHT_PROP ) ); } @@ -1302,10 +1319,25 @@ private void buildCachedPropertyDefns( ) if ( sourcePropertyDefn instanceof IElementPropertyDefn && !( (IElementPropertyDefn) sourcePropertyDefn ).isStyleProperty( ) ) { - ElementDefn style = (ElementDefn) MetaDataDictionary.getInstance( ) - .getStyle( ); + ElementDefn style = (ElementDefn) MetaDataDictionary + .getInstance( ).getStyle( ); if ( style.getProperty( IStyleModel.WIDTH_PROP ) != null ) { + // Copy semantic triggers from SourceTriggers to + // StyleTriggers while replacing the style property + // BIRT-674 + IElementPropertyDefn propertyDefn = style + .getProperty( IStyleModel.WIDTH_PROP ); + List sourceTriggers = ( (PropertyDefn) sourcePropertyDefn ) + .getTriggerDefnSet( ).getTriggerList( ); + + // Adding source defined semantic triggers to style + // properties and adding them to chachedProperties + for ( SemanticTriggerDefn semanticTrigger : sourceTriggers ) + { + ( (PropertyDefn) propertyDefn ).getTriggerDefnSet( ) + .add( semanticTrigger ); + } cachedProperties.put( IStyleModel.WIDTH_PROP, style.getProperty( IStyleModel.WIDTH_PROP ) ); }