public void Merge(CssRuleSetGroup another) { //merge //------------ if (another._assignments != null) { if (this._assignments == null) { this._assignments = new CssPropertyAssignmentCollection(this); } //merge decl this._assignments.MergeProperties(another._assignments); } //find subgroup if (another._subGroups != null) { if (this._subGroups == null) { this._subGroups = new List <CssRuleSetGroup>(); } foreach (CssRuleSetGroup ruleSetGroup in another._subGroups) { //merge to this group CssRuleSetGroup exiting = GetOrCreateSubgroup(ruleSetGroup._originalSelector); exiting.Merge(ruleSetGroup); } } }
private CssRuleSetGroup(CssRuleSetGroup parent, string name, WebDom.CssSimpleElementSelector simpleSelector) { //if (dbugId == 170) //{ //} this.Name = name; this._parent = parent; this._originalSelector = simpleSelector; }
static CssRuleSetGroup GetGroupOrCreateIfNotExists(Dictionary<string, CssRuleSetGroup> dic, WebDom.CssSimpleElementSelector simpleSelector) { CssRuleSetGroup ruleSetGroup; if (!dic.TryGetValue(simpleSelector.Name, out ruleSetGroup)) { ruleSetGroup = new CssRuleSetGroup(simpleSelector.Name); dic.Add(simpleSelector.Name, ruleSetGroup); } //------------- if (simpleSelector.Parent != null) { //get or create subgroup return ruleSetGroup.GetOrCreateSubgroup(simpleSelector); } //------------- return ruleSetGroup; }
static CssRuleSetGroup GetGroupOrCreateIfNotExists(Dictionary <string, CssRuleSetGroup> dic, WebDom.CssSimpleElementSelector simpleSelector) { CssRuleSetGroup ruleSetGroup; if (!dic.TryGetValue(simpleSelector.Name, out ruleSetGroup)) { ruleSetGroup = new CssRuleSetGroup(simpleSelector.Name); dic.Add(simpleSelector.Name, ruleSetGroup); } //------------- if (simpleSelector.Parent != null) { //get or create subgroup return(ruleSetGroup.GetOrCreateSubgroup(simpleSelector)); } //------------- return(ruleSetGroup); }
public CssRuleSetGroup Clone() { CssRuleSetGroup newGroup = new CssRuleSetGroup(this.Name); newGroup._originalSelector = this._originalSelector; if (this._assignments != null) { newGroup._assignments = this._assignments.Clone(newGroup); } if (this._subGroups != null) { foreach (var subgroup in this._subGroups) { var subclone = subgroup.Clone(); subclone._parent = newGroup; } } return(newGroup); }
public CssRuleSetGroup GetOrCreateSubgroup(WebDom.CssSimpleElementSelector simpleSelector) { if (_subGroups == null) { _subGroups = new List <CssRuleSetGroup>(); } int j = _subGroups.Count; for (int i = 0; i < j; ++i) { //find sub group for specific selector WebDom.CssSimpleElementSelector selector = _subGroups[i]._originalSelector; if (WebDom.CssSimpleElementSelector.IsCompatible(selector, simpleSelector)) { //found return(_subGroups[i]); } } //if not found then create new one CssRuleSetGroup newSubgroup = new CssRuleSetGroup(this, this.Name, simpleSelector); this._subGroups.Add(newSubgroup); return(newSubgroup); }
VgVisualElement CreateTextElem(VgVisualElement parentNode, SvgElement elem, SvgTextSpec textspec) { //text render element VgVisualElement vgVisElem = new VgVisualElement(WellknownSvgElementName.Text, textspec, _vgVisualDoc); vgVisElem.DomElem = elem; //some att if (textspec.Class != null && _activeSheet1 != null) { //resolve style definition LayoutFarm.WebDom.CssRuleSetGroup ruleSetGroup = _activeSheet1.GetRuleSetForClassName(textspec.Class); if (ruleSetGroup != null) { //assign foreach (LayoutFarm.WebDom.CssPropertyDeclaration propDecl in ruleSetGroup.GetPropertyDeclIter()) { switch (propDecl.WellknownPropertyName) { case LayoutFarm.WebDom.WellknownCssPropertyName.Font: //set font detail break; case LayoutFarm.WebDom.WellknownCssPropertyName.FontStyle: //convert font style break; case LayoutFarm.WebDom.WellknownCssPropertyName.FontSize: textspec.FontSize = propDecl.GetPropertyValue(0).AsLength(); break; case LayoutFarm.WebDom.WellknownCssPropertyName.FontFamily: textspec.FontFace = propDecl.GetPropertyValue(0).ToString(); break; case LayoutFarm.WebDom.WellknownCssPropertyName.Fill: textspec.FillColor = LayoutFarm.WebDom.Parser.CssValueParser.ParseCssColor(propDecl.GetPropertyValue(0).ToString()); break; case LayoutFarm.WebDom.WellknownCssPropertyName.Unknown: { switch (propDecl.UnknownRawName) { case "fill": //svg break; } } break; } } } } ReEvaluateArgs a = new ReEvaluateArgs(_containerWidth, _containerHeight, _emHeight); //temp fix textspec.ActualX = ConvertToPx(textspec.X, ref a); textspec.ActualY = ConvertToPx(textspec.Y, ref a); AssignAttributes(textspec); //text x,y parentNode.AddChildElement(vgVisElem); return(vgVisElem); }
public void Merge(CssRuleSetGroup another) { //merge //------------ if (another._assignments != null) { if (this._assignments == null) { this._assignments = new CssPropertyAssignmentCollection(this); } //merge decl this._assignments.MergeProperties(another._assignments); } //find subgroup if (another._subGroups != null) { if (this._subGroups == null) { this._subGroups = new List<CssRuleSetGroup>(); } foreach (CssRuleSetGroup ruleSetGroup in another._subGroups) { //merge to this group CssRuleSetGroup exiting = GetOrCreateSubgroup(ruleSetGroup._originalSelector); exiting.Merge(ruleSetGroup); } } }
public CssRuleSetGroup Clone() { CssRuleSetGroup newGroup = new CssRuleSetGroup(this.Name); newGroup._originalSelector = this._originalSelector; if (this._assignments != null) { newGroup._assignments = this._assignments.Clone(newGroup); } if (this._subGroups != null) { foreach (var subgroup in this._subGroups) { var subclone = subgroup.Clone(); subclone._parent = newGroup; } } return newGroup; }
public CssRuleSetGroup GetOrCreateSubgroup(WebDom.CssSimpleElementSelector simpleSelector) { if (_subGroups == null) { _subGroups = new List<CssRuleSetGroup>(); } int j = _subGroups.Count; for (int i = 0; i < j; ++i) { //find sub group for specific selector WebDom.CssSimpleElementSelector selector = _subGroups[i]._originalSelector; if (WebDom.CssSimpleElementSelector.IsCompatible(selector, simpleSelector)) { //found return _subGroups[i]; } } //if not found then create new one CssRuleSetGroup newSubgroup = new CssRuleSetGroup(this, this.Name, simpleSelector); this._subGroups.Add(newSubgroup); return newSubgroup; }
private CssRuleSetGroup(CssRuleSetGroup parent, string name, WebDom.CssSimpleElementSelector simpleSelector) { this.Name = name; this._parent = parent; this._originalSelector = simpleSelector; }