Ejemplo n.º 1
0
        private HyperlinkType getType(HyperlinkRecord record)
        {
            HyperlinkType link_type;

            // Figure out the type
            if (record.IsFileLink)
            {
                link_type = HyperlinkType.File;
            }
            else if (record.IsDocumentLink)
            {
                link_type = HyperlinkType.Document;
            }
            else
            {
                if (record.Address != null &&
                    record.Address.StartsWith("mailto:"))
                {
                    link_type = HyperlinkType.Email;
                }
                else
                {
                    link_type = HyperlinkType.Url;
                }
            }
            return(link_type);
        }
Ejemplo n.º 2
0
        public void TestReserializeTargetFrame()
        {
            RecordInputStream in1 = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, dataTargetFrame);
            HyperlinkRecord   hr  = new HyperlinkRecord(in1);

            byte[] ser = hr.Serialize();
            TestcaseRecordInputStream.ConfirmRecordEncoding(HyperlinkRecord.sid, dataTargetFrame, ser);
        }
Ejemplo n.º 3
0
 public void TestClone()
 {
     byte[][] data = { data1, data2, data3, data4 };
     for (int i = 0; i < data.Length; i++)
     {
         RecordInputStream is1   = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, data[i]);
         HyperlinkRecord   link  = new HyperlinkRecord(is1);
         HyperlinkRecord   clone = (HyperlinkRecord)link.Clone();
         Assert.IsTrue(Arrays.Equals(link.Serialize(), clone.Serialize()));
     }
 }
Ejemplo n.º 4
0
        private void Serialize(byte[] data)
        {
            RecordInputStream is1  = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, data);
            HyperlinkRecord   link = new HyperlinkRecord(is1);

            byte[] bytes1 = link.Serialize();
            is1  = TestcaseRecordInputStream.Create(bytes1);
            link = new HyperlinkRecord(is1);
            byte[] bytes2 = link.Serialize();
            Assert.AreEqual(bytes1.Length, bytes2.Length);
            Assert.IsTrue(Arrays.Equals(bytes1, bytes2));
        }
Ejemplo n.º 5
0
        public void TestReserializeLinkToWorkbook()
        {
            RecordInputStream in1 = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, dataLinkToWorkbook);
            HyperlinkRecord   hr  = new HyperlinkRecord(in1);

            byte[] ser = hr.Serialize();
            TestcaseRecordInputStream.ConfirmRecordEncoding(HyperlinkRecord.sid, dataLinkToWorkbook, ser);
            if ("YEARFR~1.XLS".Equals(hr.Address))
            {
                throw new AssertionException("Identified bug in reading workbook link");
            }
            Assert.AreEqual("yearfracExamples.xls", hr.Address);
        }
Ejemplo n.º 6
0
        public void TestReserializeUNC()
        {
            RecordInputStream in1 = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, dataUNC);
            HyperlinkRecord   hr  = new HyperlinkRecord(in1);

            byte[] ser = hr.Serialize();
            TestcaseRecordInputStream.ConfirmRecordEncoding(HyperlinkRecord.sid, dataUNC, ser);
            try
            {
                hr.ToString();
            }
            catch (NullReferenceException)
            {
                throw new AssertionException("Identified bug with option URL and UNC set at same time");
            }
        }
Ejemplo n.º 7
0
        public void TestCreateURLRecord()
        {
            HyperlinkRecord link = new HyperlinkRecord();

            link.CreateUrlLink();
            link.FirstRow = 2;
            link.LastRow  = 2;
            link.Label    = "My Link";
            link.Address  = "http://www.lakings.com/";

            byte[] tmp = link.Serialize();
            byte[] ser = new byte[tmp.Length - 4];
            Array.Copy(tmp, 4, ser, 0, ser.Length);
            Assert.AreEqual(data1.Length, ser.Length);
            Assert.IsTrue(Arrays.Equals(data1, ser));
        }
Ejemplo n.º 8
0
        public void TestCreateEmailtRecord()
        {
            HyperlinkRecord link = new HyperlinkRecord();

            link.CreateUrlLink();
            link.FirstRow = 1;
            link.LastRow  = 1;
            link.Label    = "email";
            link.Address  = "mailto:[email protected]?subject=Hello,%20Ebgans!";

            byte[] tmp = link.Serialize();
            byte[] ser = new byte[tmp.Length - 4];
            Array.Copy(tmp, 4, ser, 0, ser.Length);
            Assert.AreEqual(data3.Length, ser.Length);
            Assert.IsTrue(Arrays.Equals(data3, ser));
        }
Ejemplo n.º 9
0
        public void TestCreateFileRecord()
        {
            HyperlinkRecord link = new HyperlinkRecord();

            link.CreateFileLink();
            link.FirstRow      = 0;
            link.LastRow       = 0;
            link.Label         = "file";
            link.ShortFilename = "link1.xls";

            byte[] tmp = link.Serialize();
            byte[] ser = new byte[tmp.Length - 4];
            Array.Copy(tmp, 4, ser, 0, ser.Length);
            Assert.AreEqual(data2.Length, ser.Length);
            Assert.IsTrue(Arrays.Equals(data2, ser));
        }
Ejemplo n.º 10
0
        public void TestCreateDocumentRecord()
        {
            HyperlinkRecord link = new HyperlinkRecord();

            link.CreateDocumentLink();
            link.FirstRow = 3;
            link.LastRow  = 3;
            link.Label    = "place";
            link.TextMark = "Sheet1!A1";

            byte[] tmp = link.Serialize();
            byte[] ser = new byte[tmp.Length - 4];
            Array.Copy(tmp, 4, ser, 0, ser.Length);
            //Assert.AreEqual(data4.Length, ser.Length);
            Assert.IsTrue(Arrays.Equals(data4, ser));
        }
Ejemplo n.º 11
0
 public HSSFHyperlink(IHyperlink other)
 {
     if (other is HSSFHyperlink)
     {
         HSSFHyperlink hlink = (HSSFHyperlink)other;
         record    = hlink.record.Clone() as HyperlinkRecord;
         link_type = getType(record);
     }
     else
     {
         link_type   = other.Type;
         record      = new HyperlinkRecord();
         FirstRow    = (other.FirstRow);
         FirstColumn = (other.FirstColumn);
         LastRow     = (other.LastRow);
         LastColumn  = (other.LastColumn);
     }
 }
Ejemplo n.º 12
0
        public void TestReadDocumentLink()
        {
            RecordInputStream is1  = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, data4);
            HyperlinkRecord   link = new HyperlinkRecord(is1);

            Assert.AreEqual(3, link.FirstRow);
            Assert.AreEqual(3, link.LastRow);
            Assert.AreEqual(0, link.FirstColumn);
            Assert.AreEqual(0, link.LastColumn);
            ConfirmGUID(HyperlinkRecord.STD_MONIKER, link.Guid);
            Assert.AreEqual(2, link.LabelOptions);
            int opts = HyperlinkRecord.HLINK_LABEL | HyperlinkRecord.HLINK_PLACE;

            Assert.AreEqual(0x1C, opts);
            Assert.AreEqual(opts, link.LinkOptions);

            Assert.AreEqual("place", link.Label);
            Assert.AreEqual("Sheet1!A1", link.TextMark);
            Assert.AreEqual("Sheet1!A1", link.Address);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Initializes a new instance of the <see cref="HSSFHyperlink"/> class.
        /// </summary>
        /// <param name="type">The type of hyperlink to Create.</param>
        public HSSFHyperlink(HyperlinkType type)
        {
            this.link_type = (int)type;
            record         = new HyperlinkRecord();
            switch (type)
            {
            case HyperlinkType.URL:
            case HyperlinkType.EMAIL:
                record.CreateUrlLink();
                break;

            case HyperlinkType.FILE:
                record.CreateFileLink();
                break;

            case HyperlinkType.DOCUMENT:
                record.CreateDocumentLink();
                break;
            }
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Initializes a new instance of the <see cref="HSSFHyperlink"/> class.
        /// </summary>
        /// <param name="type">The type of hyperlink to Create.</param>
        public HSSFHyperlink(HyperlinkType type)
        {
            link_type = (int)type;
            record    = new HyperlinkRecord();
            switch (type)
            {
            case HyperlinkType.Url:
            case HyperlinkType.Email:
                record.CreateUrlLink();
                break;

            case HyperlinkType.File:
                record.CreateFileLink();
                break;

            case HyperlinkType.Document:
                record.CreateDocumentLink();
                break;
            }
        }
Ejemplo n.º 15
0
        public void TestReadEmailLink()
        {
            RecordInputStream is1  = TestcaseRecordInputStream.Create((short)HyperlinkRecord.sid, data3);
            HyperlinkRecord   link = new HyperlinkRecord(is1);

            Assert.AreEqual(1, link.FirstRow);
            Assert.AreEqual(1, link.LastRow);
            Assert.AreEqual(0, link.FirstColumn);
            Assert.AreEqual(0, link.LastColumn);
            ConfirmGUID(HyperlinkRecord.STD_MONIKER, link.Guid);
            ConfirmGUID(HyperlinkRecord.URL_MONIKER, link.Moniker);
            Assert.AreEqual(2, link.LabelOptions);
            int opts = HyperlinkRecord.HLINK_URL | HyperlinkRecord.HLINK_ABS | HyperlinkRecord.HLINK_LABEL;

            Assert.AreEqual(0x17, opts);
            Assert.AreEqual(opts, link.LinkOptions);

            Assert.AreEqual("email", link.Label);
            Assert.AreEqual("mailto:[email protected]?subject=Hello,%20Ebgans!", link.Address);
        }
Ejemplo n.º 16
0
        public void TestReadFileLink()
        {
            RecordInputStream is1  = TestcaseRecordInputStream.Create((short)HyperlinkRecord.sid, data2);
            HyperlinkRecord   link = new HyperlinkRecord(is1);

            Assert.AreEqual(0, link.FirstRow);
            Assert.AreEqual(0, link.LastRow);
            Assert.AreEqual(0, link.FirstColumn);
            Assert.AreEqual(0, link.LastColumn);
            ConfirmGUID(HyperlinkRecord.STD_MONIKER, link.Guid);
            ConfirmGUID(HyperlinkRecord.FILE_MONIKER, link.Moniker);
            Assert.AreEqual(2, link.LabelOptions);
            int opts = HyperlinkRecord.HLINK_URL | HyperlinkRecord.HLINK_LABEL;

            Assert.AreEqual(0x15, opts);
            Assert.AreEqual(opts, link.LinkOptions);

            Assert.AreEqual("file", link.Label);
            Assert.AreEqual("link1.xls", link.ShortFilename);
        }
Ejemplo n.º 17
0
        public void TestReadURLLink()
        {
            RecordInputStream is1  = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, data1);
            HyperlinkRecord   link = new HyperlinkRecord(is1);

            Assert.AreEqual(2, link.FirstRow);
            Assert.AreEqual(2, link.LastRow);
            Assert.AreEqual(0, link.FirstColumn);
            Assert.AreEqual(0, link.LastColumn);
            ConfirmGUID(HyperlinkRecord.STD_MONIKER, link.Guid);
            ConfirmGUID(HyperlinkRecord.URL_MONIKER, link.Moniker);
            Assert.AreEqual(2, link.LabelOptions);
            int opts = HyperlinkRecord.HLINK_URL | HyperlinkRecord.HLINK_ABS | HyperlinkRecord.HLINK_LABEL;

            Assert.AreEqual(0x17, opts);
            Assert.AreEqual(opts, link.LinkOptions);
            Assert.AreEqual(0, link.FileOptions);

            Assert.AreEqual("My Link", link.Label);
            Assert.AreEqual("http://www.lakings.com/", link.Address);
        }
Ejemplo n.º 18
0
        /// <summary>
        /// Initializes a new instance of the <see cref="HSSFHyperlink"/> class.
        /// </summary>
        /// <param name="type">The type of hyperlink to Create.</param>
        public HSSFHyperlink(HyperlinkType type)
        {
            this.link_type = type;
            record         = new HyperlinkRecord();
            switch (type)
            {
            case HyperlinkType.Url:
            case HyperlinkType.Email:
                record.CreateUrlLink();
                break;

            case HyperlinkType.File:
                record.CreateFileLink();
                break;

            case HyperlinkType.Document:
                record.CreateDocumentLink();
                break;

            default:
                throw new ArgumentException("Invalid type: " + type);
            }
        }
Ejemplo n.º 19
0
        public void Test47498()
        {
            RecordInputStream is1  = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, data_47498);
            HyperlinkRecord   link = new HyperlinkRecord(is1);

            Assert.AreEqual(2, link.FirstRow);
            Assert.AreEqual(2, link.LastRow);
            Assert.AreEqual(0, link.FirstColumn);
            Assert.AreEqual(0, link.LastColumn);
            ConfirmGUID(HyperlinkRecord.STD_MONIKER, link.Guid);
            ConfirmGUID(HyperlinkRecord.URL_MONIKER, link.Moniker);
            Assert.AreEqual(2, link.LabelOptions);
            int opts = HyperlinkRecord.HLINK_URL | HyperlinkRecord.HLINK_LABEL;

            Assert.AreEqual(opts, link.LinkOptions);
            Assert.AreEqual(0, link.FileOptions);

            Assert.AreEqual("PDF", link.Label);
            Assert.AreEqual("testfolder/test.PDF", link.Address);

            byte[] ser = link.Serialize();
            TestcaseRecordInputStream.ConfirmRecordEncoding(HyperlinkRecord.sid, data_47498, ser);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Removes the hyperlink for this cell, if there is one.
        /// </summary>
        public void RemoveHyperlink()
        {
            RecordBase toRemove = null;

            for (IEnumerator <RecordBase> it = _sheet.Sheet.Records.GetEnumerator(); it.MoveNext();)
            {
                RecordBase rec = it.Current;
                if (rec is HyperlinkRecord)
                {
                    HyperlinkRecord link = (HyperlinkRecord)rec;
                    if (link.FirstColumn == _record.Column && link.FirstRow == _record.Row)
                    {
                        toRemove = rec;
                        break;
                        //it.Remove();
                        //return;
                    }
                }
            }
            if (toRemove != null)
            {
                _sheet.Sheet.Records.Remove(toRemove);
            }
        }
Ejemplo n.º 21
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HSSFHyperlink"/> class.
 /// </summary>
 /// <param name="record">The record.</param>
 public HSSFHyperlink(HyperlinkRecord record)
 {
     this.record = record;
 }
Ejemplo n.º 22
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HSSFHyperlink"/> class.
 /// </summary>
 /// <param name="record">The record.</param>
 public HSSFHyperlink(HyperlinkRecord record)
 {
     this.record = record;
     link_type   = getType(record);
 }