/* ====================================================================
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; }
}
}
}