/**
  * Sets the rule whose properties should be forwarded.
  *
  * @param rule the rule, can be <code>null</code>
  */
 public void setRule(CssRuleContent rule) {
   if (this.rule != null && !listeners.isEmpty()) {
     this.rule.removeRuleContentListener(forwardListener);
   }
   this.rule = rule;
   if (this.rule != null && !listeners.isEmpty()) {
     this.rule.addRuleContentListener(forwardListener);
     for (CssRuleContentListener listener : listeners()) {
       listener.propertiesChanged(this);
     }
   }
 }
 @Override
 public void propertiesChanged(CssRuleContent source) {
   for (CssRuleContentListener listener : listeners()) {
     listener.propertiesChanged(WrappedCssRuleContent.this);
   }
 }