You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ye...@apache.org on 2008/09/30 17:11:26 UTC
svn commit: r700493 - in /poi/trunk/src/scratchpad:
examples/src/org/apache/poi/hslf/examples/CreateHyperlink.java
src/org/apache/poi/hslf/model/TextShape.java
src/org/apache/poi/hslf/record/TxInteractiveInfoAtom.java
Author: yegor
Date: Tue Sep 30 08:11:26 2008
New Revision: 700493
URL: http://svn.apache.org/viewvc?rev=700493&view=rev
Log:
initial support for creating hyperlinks in HSLF, units test are still to do
Added:
poi/trunk/src/scratchpad/examples/src/org/apache/poi/hslf/examples/CreateHyperlink.java (with props)
Modified:
poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/TextShape.java
poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TxInteractiveInfoAtom.java
Added: poi/trunk/src/scratchpad/examples/src/org/apache/poi/hslf/examples/CreateHyperlink.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/examples/src/org/apache/poi/hslf/examples/CreateHyperlink.java?rev=700493&view=auto
==============================================================================
--- poi/trunk/src/scratchpad/examples/src/org/apache/poi/hslf/examples/CreateHyperlink.java (added)
+++ poi/trunk/src/scratchpad/examples/src/org/apache/poi/hslf/examples/CreateHyperlink.java Tue Sep 30 08:11:26 2008
@@ -0,0 +1,59 @@
+/* ====================================================================
+ 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.
+==================================================================== */
+package org.apache.poi.hslf.examples;
+
+import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.RichTextRun;
+import org.apache.poi.hslf.model.*;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.awt.*;
+
+/**
+ * Demonstrates how to create hyperlinks in PowerPoint presentations
+ *
+ * @author Yegor Kozlov
+ */
+public class CreateHyperlink {
+
+ public static void main(String[] args) throws Exception {
+ SlideShow ppt = new SlideShow();
+
+ Slide slide = ppt.createSlide();
+
+ TextBox shape = new TextBox();
+ shape.setText("Apache POI");
+ Rectangle anchor = new Rectangle(100, 100, 200, 50);
+ shape.setAnchor(anchor);
+
+ String text = shape.getText();
+ Hyperlink link = new Hyperlink();
+ link.setAddress("http://www.apache.org");
+ link.setTitle(shape.getText());
+ int linkId = ppt.addHyperlink(link);
+
+ shape.setHyperlink(linkId, 0, text.length());
+
+ slide.addShape(shape);
+
+ FileOutputStream out = new FileOutputStream("hyperlink.ppt");
+ ppt.write(out);
+ out.close();
+
+ }
+}
Propchange: poi/trunk/src/scratchpad/examples/src/org/apache/poi/hslf/examples/CreateHyperlink.java
------------------------------------------------------------------------------
svn:executable = *
Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/TextShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/TextShape.java?rev=700493&r1=700492&r2=700493&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/TextShape.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/TextShape.java Tue Sep 30 08:11:26 2008
@@ -547,4 +547,31 @@
return (OEPlaceholderAtom)getClientDataRecord(RecordTypes.OEPlaceholderAtom.typeID);
}
+ /**
+ *
+ * Assigns a hyperlink to this text shape
+ *
+ * @param linkId id of the hyperlink, @see org.apache.poi.hslf.usermodel.SlideShow#addHyperlink(Hyperlink)
+ * @param beginIndex the beginning index, inclusive.
+ * @param endIndex the ending index, exclusive.
+ * @see org.apache.poi.hslf.usermodel.SlideShow#addHyperlink(Hyperlink)
+ */
+ public void setHyperlink(int linkId, int beginIndex, int endIndex){
+ //TODO validate beginIndex and endIndex and throw IllegalArgumentException
+
+ InteractiveInfo info = new InteractiveInfo();
+ InteractiveInfoAtom infoAtom = info.getInteractiveInfoAtom();
+ infoAtom.setAction(InteractiveInfoAtom.ACTION_HYPERLINK);
+ infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_Url);
+ infoAtom.setHyperlinkID(linkId);
+
+ _txtbox.appendChildRecord(info);
+
+ TxInteractiveInfoAtom txiatom = new TxInteractiveInfoAtom();
+ txiatom.setStartIndex(beginIndex);
+ txiatom.setEndIndex(endIndex);
+ _txtbox.appendChildRecord(txiatom);
+
+ }
+
}
Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TxInteractiveInfoAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TxInteractiveInfoAtom.java?rev=700493&r1=700492&r2=700493&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TxInteractiveInfoAtom.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TxInteractiveInfoAtom.java Tue Sep 30 08:11:26 2008
@@ -40,7 +40,7 @@
/**
* Constructs a brand new link related atom record.
*/
- protected TxInteractiveInfoAtom() {
+ public TxInteractiveInfoAtom() {
_header = new byte[8];
_data = new byte[8];
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org