void WriteClusterRectBoundary(RectangularClusterBoundary recClBnd) { if (recClBnd == null) return; WriteStartElement(GeometryToken.RectangularClusterBoundary); WriteAttribute(GeometryToken.LeftMargin, recClBnd.LeftMargin); WriteAttribute(GeometryToken.RightMargin, recClBnd.RightMargin); WriteAttribute(GeometryToken.TopMargin, recClBnd.TopMargin); WriteAttribute(GeometryToken.BottomMargin, recClBnd.BottomMargin); if (recClBnd.DefaultMarginIsSet) { WriteAttribute(GeometryToken.DefaultLeftMargin, recClBnd.DefaultLeftMargin); WriteAttribute(GeometryToken.DefaultRightMargin, recClBnd.DefaultRightMargin); WriteAttribute(GeometryToken.DefaultTopMargin, recClBnd.DefaultTopMargin); WriteAttribute(GeometryToken.DefaultBottomMargin, recClBnd.DefaultBottomMargin); } WriteAttribute(GeometryToken.GenerateFixedConstraints, recClBnd.GenerateFixedConstraints); WriteAttribute(GeometryToken.GenerateFixedConstraintsDefault, recClBnd.GenerateFixedConstraintsDefault); WriteAttribute(GeometryToken.MinNodeHeight, recClBnd.MinHeight); WriteAttribute(GeometryToken.MinNodeWidth, recClBnd.MinWidth); WriteRect(recClBnd.Rect.Left, recClBnd.Rect.Bottom, recClBnd.Rect.Width, recClBnd.Rect.Height, recClBnd.RadiusX, recClBnd.RadiusY); WriteBorderInfo(GeometryToken.RightBorderInfo, recClBnd.RightBorderInfo); WriteBorderInfo(GeometryToken.LeftBorderInfo, recClBnd.LeftBorderInfo); WriteBorderInfo(GeometryToken.TopBorderInfo, recClBnd.TopBorderInfo); WriteBorderInfo(GeometryToken.BottomBorderInfo, recClBnd.BottomBorderInfo); WriteEndElement(); }
RectangularClusterBoundary ReadClusterRectBoundary() { RectangularClusterBoundary recClBnd = new RectangularClusterBoundary { LeftMargin = GetDoubleAttribute(GeometryToken.LeftMargin), RightMargin = GetDoubleAttribute(GeometryToken.RightMargin), TopMargin = GetDoubleAttribute(GeometryToken.TopMargin), BottomMargin = GetDoubleAttribute(GeometryToken.BottomMargin) }; if (GetAttribute(GeometryToken.DefaultLeftMargin) != null) { var defaultLeftMargin = GetDoubleAttribute(GeometryToken.DefaultLeftMargin); var defaultRightMargin = GetDoubleAttribute(GeometryToken.DefaultRightMargin); var defaultTopMargin = GetDoubleAttribute(GeometryToken.DefaultBottomMargin); var defaultBottomMargin = GetDoubleAttribute(GeometryToken.DefaultBottomMargin); recClBnd.StoreDefaultMargin(defaultLeftMargin, defaultRightMargin, defaultBottomMargin, defaultTopMargin); } recClBnd.GenerateFixedConstraints = GetBoolAttributeOrDefault(GeometryToken.GenerateFixedConstraints, false); recClBnd.GenerateFixedConstraintsDefault = GetBoolAttributeOrDefault(GeometryToken.GenerateFixedConstraintsDefault, false); recClBnd.MinHeight = GetDoubleAttribute(GeometryToken.MinNodeHeight); recClBnd.MinWidth = GetDoubleAttribute(GeometryToken.MinNodeWidth); double ry; double left; double bottom; double w; double h; double rx; XmlRead(); ReadRectParams(out left, out bottom, out w, out h, out rx, out ry); recClBnd.Rect = new Rectangle(left, bottom, new Point(w, h)); recClBnd.RadiusX = rx; recClBnd.RadiusY = ry; recClBnd.RightBorderInfo = ReadBorderInfo(GeometryToken.RightBorderInfo); recClBnd.LeftBorderInfo = ReadBorderInfo(GeometryToken.LeftBorderInfo); recClBnd.TopBorderInfo = ReadBorderInfo(GeometryToken.TopBorderInfo); recClBnd.BottomBorderInfo = ReadBorderInfo(GeometryToken.BottomBorderInfo); XmlRead(); ReadEndElement(); return recClBnd; }