/* ==================================================================== Licensed to the Apache Software Foundation (ASF) Under one or more contributor license agreements. See the NOTICE file distributed with this work for Additional information regarding copyright ownership. The ASF licenses this file to You Under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed Under the License is distributed on an "AS Is" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations Under the License. ==================================================================== */ namespace HH.WMS.Utils.NPOI.HSSF.UserModel { using System; using System.Collections; using HH.WMS.Utils.NPOI.Util; using HH.WMS.Utils.NPOI.DDF; using HH.WMS.Utils.NPOI.HSSF.Record; using HH.WMS.Utils.NPOI.SS.UserModel; /// /// Represents a cell comment - a sticky note associated with a cell. /// @author Yegor Kozlov /// [Serializable] public class HSSFComment : HSSFTextbox,IComment { private bool visible; private int col, row; private String author; [NonSerialized] private NoteRecord note = null; [NonSerialized] private TextObjectRecord txo = null; /// /// Construct a new comment with the given parent and anchor. /// /// /// defines position of this anchor in the sheet public HSSFComment(HSSFShape parent, HSSFAnchor anchor):base(parent, anchor) { this.ShapeType = (OBJECT_TYPE_COMMENT); //default color for comments this.FillColor = 0x08000050; //by default comments are hidden visible = false; author = ""; } /// /// Initializes a new instance of the class. /// /// The note. /// The txo. public HSSFComment(NoteRecord note, TextObjectRecord txo):this((HSSFShape)null, (HSSFAnchor)null) { this.txo = txo; this.note = note; } /// /// Gets or sets a value indicating whether this is visible. /// /// true if visible; otherwise, false. /// Sets whether this comment Is visible. /// @return /// true /// if the comment Is visible, /// false /// otherwise public bool Visible { get { return this.visible; } set { if (note != null) note.Flags = value ? NoteRecord.NOTE_VISIBLE : NoteRecord.NOTE_HIDDEN; this.visible = value; } } /// /// Gets or sets the row of the cell that Contains the comment /// /// the 0-based row of the cell that Contains the comment public int Row { get{return row;} set{ if (note != null) note.Row=value; this.row = value;} } /// /// Gets or sets the column of the cell that Contains the comment /// /// the 0-based column of the cell that Contains the comment public int Column { get { return col; } set { if (note != null) note.Column=value; this.col = value; } } /// /// Gets or sets the name of the original comment author /// /// the name of the original author of the comment public String Author { get { return author; } set { if (note != null) note.Author = value; this.author = value; } } /// /// Gets or sets the rich text string used by this comment. /// public override IRichTextString String { get { return base.String; } set { //if font Is not Set we must Set the default one if (value.NumFormattingRuns == 0) value.ApplyFont((short)0); if (txo != null) { txo.Str=value; } base.String = value; } } /// /// Gets the note record. /// /// the underlying Note record. public NoteRecord NoteRecord { get { return note; } } /// /// Gets the text object record. /// /// the underlying Text record public TextObjectRecord TextObjectRecord { get { return txo; } } } }