WO2005078602A1 - Systems, methods and a computer program for use in manipulating electronic presentation information - Google Patents

Systems, methods and a computer program for use in manipulating electronic presentation information Download PDF

Info

Publication number
WO2005078602A1
WO2005078602A1 PCT/AU2005/000115 AU2005000115W WO2005078602A1 WO 2005078602 A1 WO2005078602 A1 WO 2005078602A1 AU 2005000115 W AU2005000115 W AU 2005000115W WO 2005078602 A1 WO2005078602 A1 WO 2005078602A1
Authority
WO
WIPO (PCT)
Prior art keywords
routine
node
data structure
nodes
elements
Prior art date
Application number
PCT/AU2005/000115
Other languages
French (fr)
Inventor
Christopher Nokleberg
Original Assignee
Tonic Systems Pty Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2004902075A external-priority patent/AU2004902075A0/en
Application filed by Tonic Systems Pty Limited filed Critical Tonic Systems Pty Limited
Publication of WO2005078602A1 publication Critical patent/WO2005078602A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates

Definitions

  • the present invention relates generally to the field of manipulating electronic presentation information, and has particular - but by no means exclusive - application to a Microsoft PowerPoint presentation.
  • the ability to be able to readily develop a computer program that can manipulate presentation material in a computer file is desirable.
  • the computer program could be used to automatically retrieve information from a database, format the retrieved information, and place the formatted information into the presentation material. Having a program that can do this means that the presentation material can be quickly manipulated with minimal human assistance.
  • developing a computer program to carry out this task currently is likely to be cumbersome because the software developer needs to develop the necessary code to retrieve the presentation material from the computer file, which would require the software developer to have a reasonable understanding of the techniques required to retrieve the presentation material from the computer file (for example, the format of the computer file) .
  • having to develop the necessary code to retrieve the presentation material from the computer file is likely to take time that could otherwise be used to develop the code to manipulate the information contained in the presentation material.
  • Software module - a part of a program, and comprises one or more routines.
  • Program - An organised list of instructions that, when executed by a computer, causes the computer to behave in a predetermined manner.
  • a program is converted into machine language by a compiler.
  • Routine A section of a program that performs a particular task.
  • routine is also synonymous with procedure, function, method and subroutine.
  • Application Program Interface A set of routines, protocols and tools that can be used to develop a program.
  • a system for obtaining presentation material comprising a processing means that is arranged to perform the steps of: creating a data structure containing information related to the presentation material in a computer file; and accessing the data structure to obtain the presentation material.
  • the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes .
  • the presentation material may consist of several slides, each of which contains a picture or text.
  • each slide would be represented by a node and the picture or text in the slide would be represented by another node.
  • the node representing the slide and the node representing the text or picture contained therein would be interconnect by a branch to indicate that the text or picture is contained in the slide.
  • the nodes that represent the elements are associated with the attributes of the elements.
  • the processing means is arranged to perform the step of retrieving the presentation material from the computer file.
  • the processing means is arranged such that the step of accessing the data structure comprises accessing a single node that represents a group of the nodes .
  • the processing means is arranged such that the step of accessing the data structure comprises altering the attributes.
  • the processing means is arranged such that accessing the data structure comprises altering a structure of the data structure. This effectively enables, for example, nodes or branches to be added, deleted, or rearranged.
  • the processing means is arranged to perform the step of updating the presentation material in the computer file based on the data structure.
  • the presentation material is such that it can be used with Microsoft PowerPoint.
  • a method of obtaining presentation material comprising the steps of: creating a data structure containing information related to presentation material in a computer file; and accessing the data structure to obtain the presentation material.
  • the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes .
  • the nodes that represent the elements are associated with the attributes of the elements.
  • the method comprises the step of retrieving the presentation material from the computer file.
  • the step of accessing the data structure comprises accessing a single node that represents a group of the nodes .
  • the step of accessing the data structure comprises the step of altering the attributes.
  • the step of accessing the data structure comprises the step of altering a structure of the data structure.
  • the method comprises the step of updating the presentation material in the computer file based on the data structure.
  • the presentation material is such that it can be used with Microsoft PowerPoint.
  • a system for developing a software module comprising a processing means arrangement to perform the steps of: creating a first routine that can create a data structure that represents a presentation in an electronic presentation file; and creating at least one second routine that can be used to access the data structure, wherein the software module comprises the first routine and the at least one second routine .
  • the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes .
  • the nodes that represent the elements are associated with the attributes of the elements.
  • the first routine is such that it is capable of retrieving the presentation material from the computer file.
  • the at least one second routine is such that a group of the nodes can be accessed as a single node.
  • the at least one second routine is such that it can be used to alter the attributes.
  • the at least one second routine is such that it can be used to alter a structure of the data structure.
  • the processing means is arranged to perform the step of creating a third routine that can be used to update the presentation material in the computer file based on the data structure, wherein the software module comprises the third routine.
  • the presentation material is such that it can be used with Microsoft PowerPoint.
  • a method of developing a software module comprising the steps of: creating a first routine that can create a data structure that represents a presentation in an electronic presentation file; and creating at least one second routine that can be used to access the data structure, wherein the software module comprises the first routine and the at least one second routine.
  • the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes .
  • the nodes that represent the elements are associated with the attributes of the elements.
  • the first routine is such that it is capable of retrieving the presentation material from the computer file.
  • the at least one second routine is such that a group of the nodes can be accessed as a single node.
  • the at least one second routine is such that it can be used to alter the attributes.
  • the at least one second routine is such that it can be used to alter a structure of the data structure.
  • a system for developing a computer program comprising a processing means arranged to perform the steps of: obtaining a software module that comprises: a first routine that can create a data structure containing information related to presentation material in a computer file; and at least one second routine that can be used to access the data structure; and incorporating the first routine and/or the at least one second routine into the computer program to thereby develop the computer program.
  • the nodes that represent the elements are associated with the attributes of the elements.
  • the processing means is arranged to perform the step of creating a third routine that can be used to update the presentation material in the computer file based on the data structure, wherein the software module comprises the third routine.
  • the presentation material is such that it can be used with Microsoft PowerPoint.
  • a method of developing a computer program comprising the steps of: obtaining a software module that comprises: a first routine that can create a data structure containing information related to presentation material in a computer file; and at least one second routine that can be used to access the data structure; and incorporating the first routine and/or the at least one second routine into the computer program to thereby develop the computer program.
  • the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes.
  • the first routine is such that it is capable of retrieving the presentation material from the computer file.
  • the at least one second routine is such that a group of the nodes can be accessed as a single node.
  • the at least one second routine is such that it can be used to alter the attributes .
  • the at least one second routine is such that it can be used to alter a structure of the data structure.
  • the method comprises the step of creating a third routine that can be used to update the presentation material in the computer file based on the data structure, wherein the software module comprises the third routine.
  • a computer readable medium comprising the computer program according to the seventh aspect of the present invention.
  • the embodiment of the present invention comprises a computer system 1, which is illustrated in figure 1, that is in the form of a personal computer.
  • a computer system 1 that is in the form of a personal computer.
  • the present invention is not limited to being embodied in a personal computer, and could in fact be other forms of computing devices in alternative embodiments of the present invention.
  • the computer system 1 could, in alternative embodiments of the present invention, be in the form of a laptop computer or even a mainframe (server) computer.
  • the computer system 1 comprises traditional computer hardware such as a motherboard, random access memory, a hard disk, a video card, a power supply, a keyboard, mouse and a monitor.
  • the computer system 1 is loaded with an operating system in the form of Microsoft Windows XP.
  • the computer system 1 is loaded (on the hard disk) with several pieces of software that enable a software developer to develop a particular computer program (or user application) .
  • the first of these pieces of software is the J2SE Development Kit (JDK) from Sun Microsystems.
  • JDK is essentially a software development application that enables the software developer to develop Java applications.
  • the other piece of software loaded on the hard disk is a Java based API, which essentially provides various routines for enabling the software development to develop the Java applications such that they can access and manipulate presentation material contained in a Microsoft PowerPoint file.
  • the Java based API is basically a library of particular classes that can be incorporated (using the JDK) into the Java applications to enable the applications to readily extract the PowerPoint presentation material from the computer file, and create a data structure based on the visual representation of the PowerPoint presentation material .
  • branches 7c to 7f indicate that the shapes represented by dependant nodes 5d to 5g are contained in the slides 5b and 5c to which the nodes 5d to 5g are connected via the branches 7c to 7f .
  • branches 7g to 7j indicate that the text or images represented by nodes 5h to 5k are contained in the slides represented by nodes 5d to 5g.
  • the tree structure 3 effectively corresponds to the visual representation (structure) of the presentation material in the computer file.
  • the nodes 5 that represent elements can also be associated with one or more nodes 5 that represent attributes of the particular elements, which for nodes 5b and 5c includes details on the layout of the slide; for example, the layout details could be that the slide is either single or double column layout.
  • Table 1 sets out the various elements of a PowerPoint presentation and the attributes of the elements that can be represented by nodes 5.
  • the root node 3a representing a Presentation can be linked to one or more dependent nodes 5b and 5c that represent Slides in the presentation.
  • the dependent node 5b to 5c that represent Slides can be linked to one or more dependent nodes 5d to 5g that represent Groups or Shapes.
  • a Group can be considered a container to logically group Shapes and/or other Groups.
  • a node 5d to 5g representing a Shape can be linked to at most one node 5h to 5k representing Text and at most one node 5h to 5k representing a Picture.
  • a node 5h to 5k representing Text or a Picture must be linked to a node representing a Shape. It is noted that the previous notion of the nodes 5a to 5k being linked is effectively a reference to the branches 7a to 7j in the tree structure 3.
  • the library of classes in the Java API provides numerous classes (routines) that can be incorporated into the Java applications (using the JDK) to enable them to select and access the tree structure 3 - in particular the nodes 5 and their associated attributes.
  • the API is such that nodes 5 are selected from the tree structure 3 by using XPath expressions.
  • the tree structure 3 is actually represented as a software object.
  • the software object provides "select ⁇ ) " methods (routines) which can return the nodes 5 in the tree structure 3 that correspond to the information specified in the XPath expression.
  • the software object representing the tree structure 3 also provides "cut ()", “copy ()” and "paste ()” methods that enable structural changes to be made to the tree structure 3; for instance, the creation or deletion of nodes 5.
  • the Java API could be obtained by a user of the computer system 1 using one of several techniques.
  • the user could use the computer system 1 to download the Java API from a web site to the computer system 1.
  • the computer system 1 is loaded with a web browser, which can be used to log on to the web site and instruct the download of the Java API.
  • the computer system 1 comprises networking hardware and software that enables the computer system to exchange data via the internet.
  • a second technique that could be used to obtain the Java API is to obtain a CD-ROM loaded with the Java API .
  • the computer system 1 comprises a CD-ROM drive in to which the CD-ROM can be placed.
  • Attribute extends Node This class represents the string value of a property of an element in the DOM. Attribute objects are read-only. The value of an attributes can only be changed by using the appropriate setxxx ( ) method to change the underlying property value in the element node. Since Attribute values are a string representation they may not be identical in format to the raw property value obtained by calling the equivalent getxxx ( ) method in the element node. In particular, integer constants are converted to human readable strings based on the name of the constant. See Also: Constants
  • paste public void paste (Node node) This operation is not supported for this Node Overrides: paste in class Node Parameters: node - the node to add as a child
  • Node A string representation of this node The format is not part of the API and may change from release to release. It is therefore recommended that this method only be used for informational purposes (e.g. debugging) and not relied upon in any way. Currently this method returns the same value as Node . toXml ( ) .
  • ShapeOrGroup Translate the supplied rectangle in absolute coordinates into relative coordinates.
  • the relative coordinates are the coordinates of the bounding box required to make a shape appear at the given absolute position, allowing for any transforms that may be in place.
  • cut public void cut() Remove this node from its parent. All node properties and attributes remain unmodified. The node may be subsequently used in a paste (com. tonicsystems .pp .Node) operation to associate it with a new parent. Throws: java. lang. UnsupportedOperationException - if the node cannot be cut
  • the copy is a deep copy and includes all child nodes. Returns: the new node including any children Throws: j ava . lang . UnsupportedOperationException - if the node cannot be copied
  • String toString ( ) A string representation of this node. The format is not part of the API and may change from release to release. It is therefore recommended that this method only be used for informational purposes (e.g. debugging) and not rehed upon in any way. Currently this method returns the same value as toXml ( ) .
  • setPath public void setPath(java. lang. String path) Specify the path associated with this picture. Parameters: path - the path to the file, a URL, or a comment
  • This method uses lazy loading of the image data. When the presentation is written the image data is streamed directly from the image file into the presentation. Therefore the file must not be deleted before writing the presentation.
  • a class that represents a PowerPoint 97 presentation This is the class used to initially read a PowerPoint presentation and construct the document object model (DOM), that can be subsequently used to identify and manipulate PowerPoint objects.
  • DOM document object model
  • the document opened must be in PowerPoint 97 format.
  • This format is the native format used by all version of PowerPoint since PowerPoint 97 (i.e. PowerPoint 97-2002).
  • the input document can also be in the "PowerPoint 97-2000 & 95 Presentation", format. However when written, the document will always be written in the native format.
  • Constructor Summary Presentation ( ava . io . File f ) Create a new Presentation from the supplied File.
  • Presentation j ava . io . Pile f , boolean useNio
  • Presentation ava . io . InputStream in
  • Presentation ( av . io . InputStream in, boolean close) Create a new Presentation from the supplied InputStream.
  • nio option can only be selected when running the library using JRE 1.4 or later. If you are using an earlier JRE version and select to use nio, then a NociassDef FoundError is thrown.
  • a class that represents an XPath query This class provides an alternate interface to the Node . select (j ava . lanq . String) and Node . selectl (j ava . lang . String) functionality.
  • this class allows XPath queries to be parameterized using variables and saved for repeated use. Potentially the queries will execute more efficiently as the query string may not need to be reparsed on subsequent uses.
  • Map map new Hash ap ( ) ; map .put ( "ph” , "body” ) ;
  • List shapes q. select (p, map) ;
  • Variables within an XPath expression are denoted using the notation SvarName, and may refer to primitive XPath types (Boolean, Number or String), node-sets or individual nodes
  • contextNode the node to use as the basis for the query Returns: the list of selected nodes See Also: select (Ob ect , Map)
  • selectl public java.lang.Object selectl (java. lang.Object contextNode, java.util .Map variables)
  • Shape extends ShapeOrGroup
  • Shapes may serve as placeholders for text within a slide. All shapes with a placeholder value other than constants . PLACEHOLDER NONE have a child Text node. These shapes are displayed in PowerPoint with the text "Click to add Title” or “Click to add Text” when the text value has not been specified. In addition, placeholder shapes are used to generate the presentation outline view. Returns: the placeholder type constant See Also: Constants
  • the type of the shape defines its overall appearance, such a rectangle or a circle.
  • setFillColor public void setFillColor (java . awt . Color color) Set the foreground fill color Parameters: color - the foreground fill color " " See Also: qetFillColor ()
  • setFillBackColor public void setFillBackColo Japanese. awt. Color color
  • the background fill color is used when a pattern is used as the fill type. ' * Returns: the background fill. color
  • setFillType public void setFillType (int fillType) Set the fill type. Parameters: fillType - the fill type constant See Also: qetFillType () , Constants
  • the fill type determines the method of filling the shape. Returns: the fill type constant See Also: Constants
  • setFillOpacity public void setFillOpacity (double " value) Set the fill foreground opacity. Parameters: value - the fill opacity See Also: getFillOpacity ( ) 51
  • getFillOpacity public double getFillOpacity () Get the fill foreground opacity.
  • the opacity specifies the translucence of the fill.
  • An opacity of 1.0 means the fill is opaque and none of the background shows through.
  • An opacity of 0.0 means the fill is completely translucent and the background shows completely through - as if the shape were not filled at all.
  • setFillBackOpacity public void setFillBackOpacity (double value)
  • setLine public void setLine (boolean value) Set whether the shape has a border Parameters: value - whether the shape has a border
  • setSolidFill public static void setSolidFill (Shape shape, java. awt .Color color) Convenience method to set the fill color, the fill type and fill opacity Parameters: shape - the shape to effect a solid fill color - the color of the fill
  • Class ShapeOrGroup java. lang.Object 1—com.tonicsystems .pp.Node I—com.tonics s ems .pp. ShapeOrGroup
  • Coordinates are expressed in pixels, where the resolution is defined to be 576 dpi.
  • the x-axis is zero at the left edge of a slide and increases to the right.
  • the y-axis is zero at the top edge of the slide and increases downwards.
  • setRotation public void setRotatio (double rotation) Set the rotation of this shape or group. Parameters: rotation - the amount of rotation in degrees
  • the absolute coordinates are relative to the slide coordinates.
  • the bounding box coordinates are relative to any enclosing groups, and will be different from the absolute coordinates, if transforms have . been applied to any enclosing group.
  • getRelativeCoords public void getRelativeCoords (java. awt . Rectangle r)
  • getAbsoluteRotation public double getAbsoluteRotation () Get the absolute rotation of this shape or group.
  • the absolute rotation is the rotation relative to the shde rather than the enclosing group(s) (if any).
  • getBounds public ava.awt. ectangle getBounds () Returns the bounding box rectangle of this Shape or Group.
  • the bounding box defines the size of the shape or group. Shapes are drawn and groups are scaled to fit exactly within the bounding box. The returned rectangle is live - changes to the dimensions of the rectangle are reflected in the actual Shape or Group. The bounding box is not effected by rotation. It always is represented as if the rotation is at 0 degrees. Returns: the bounding box of the Shape or Group in pixels
  • This class represents a shde within the presentation.
  • This class represents a Text node. Text nodes are always children of shape nodes. A Shape node can have at most one text node.
  • setSufostring public void setSubstring (int beginlndex, int endlnde , j ava . lang . String replace) Replace a substring of the current value with the supplied value.
  • setValue java . lang. string
  • the replaced substring defines the formats. So if the replacement value is longer than the replaced value, then the format of the character at index position endlndex is extended.
  • Node Remove this node from its parent. All node properties and attributes remain unmodified. The node may be subsequently used in a Node .paste (com.tonicsystems .pp .Node) operation to associate it with a new parent.
  • Node .paste com.tonicsystems .pp .Node

Abstract

A system for obtaining presentation material, the system comprising a processing means that is arranged to perform the steps of: creating a data structure containing information related to the presentation material in a computer file; and accessing the data structure to obtain the presentation material.

Description

SYSTEMS, METHODS AND A COMPUTER PROGRAM FOR USE IN MANIPULATING ELECTRONIC PRESENTATION INFORMATION
FIELD OF THE INVENTION
The present invention relates generally to the field of manipulating electronic presentation information, and has particular - but by no means exclusive - application to a Microsoft PowerPoint presentation.
BACKGROUND OF THE INVENTION
The ability to be able to readily develop a computer program that can manipulate presentation material in a computer file (such as a Microsoft PowerPoint presentation) is desirable. For instance, the computer program could be used to automatically retrieve information from a database, format the retrieved information, and place the formatted information into the presentation material. Having a program that can do this means that the presentation material can be quickly manipulated with minimal human assistance. Unfortunately, however, developing a computer program to carry out this task currently is likely to be cumbersome because the software developer needs to develop the necessary code to retrieve the presentation material from the computer file, which would require the software developer to have a reasonable understanding of the techniques required to retrieve the presentation material from the computer file (for example, the format of the computer file) . Furthermore, having to develop the necessary code to retrieve the presentation material from the computer file is likely to take time that could otherwise be used to develop the code to manipulate the information contained in the presentation material. DEFINITIONS
The following is a list of definitions for some of the terms used throughout this specification:
• Software module - a part of a program, and comprises one or more routines.
• Program - An organised list of instructions that, when executed by a computer, causes the computer to behave in a predetermined manner. A program is converted into machine language by a compiler.
• Routine - A section of a program that performs a particular task. The term routine is also synonymous with procedure, function, method and subroutine. • Application Program Interface - A set of routines, protocols and tools that can be used to develop a program.
SUMMARY OF THE INVENTION
According to a first aspect of the present invention there is provided a system for obtaining presentation material, the system comprising a processing means that is arranged to perform the steps of: creating a data structure containing information related to the presentation material in a computer file; and accessing the data structure to obtain the presentation material.
Creating the data structure and accessing the presentation material via the data structure is advantageous because it provides a relatively simple way to access the presentation material without a user having to have knowledge of the format of the computer file, which could in some situations be proprietary. Preferably, the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes .
As an example, the presentation material may consist of several slides, each of which contains a picture or text. In this arrangement, each slide would be represented by a node and the picture or text in the slide would be represented by another node. The node representing the slide and the node representing the text or picture contained therein would be interconnect by a branch to indicate that the text or picture is contained in the slide.
Preferably, the nodes that represent the elements are associated with the attributes of the elements.
If the node was to represent, for example, a slide in the presentation material the attributes could be the dimensions of the slide. Preferably, the processing means is arranged to perform the step of retrieving the presentation material from the computer file.
Preferably, the processing means is arranged such that the step of accessing the data structure comprises accessing a single node that represents a group of the nodes .
Being able to access a group of nodes as a single node is advantageous because it enables the size of a program to be kept to a minimum. For instance, without this feature a program would need to include a separate line of code for each node to be accessed. However, this feature of the present invention enables the program to have a single line of code which can access multiple nodes. Thus, enabling the size of the program to be kept to a minimum.
Preferably, the processing means is arranged such that the step of accessing the data structure comprises altering the attributes.
Preferably, the processing means is arranged such that accessing the data structure comprises altering a structure of the data structure. This effectively enables, for example, nodes or branches to be added, deleted, or rearranged.
Preferably, the processing means is arranged to perform the step of updating the presentation material in the computer file based on the data structure.
Preferably, the presentation material is such that it can be used with Microsoft PowerPoint. According to a second aspect of the present invention, there is provided a method of obtaining presentation material, the method comprising the steps of: creating a data structure containing information related to presentation material in a computer file; and accessing the data structure to obtain the presentation material.
Preferably, the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes .
Preferably, the nodes that represent the elements are associated with the attributes of the elements.
Preferably, the method comprises the step of retrieving the presentation material from the computer file. Preferably, the step of accessing the data structure comprises accessing a single node that represents a group of the nodes .
Preferably, the step of accessing the data structure comprises the step of altering the attributes.
Preferably, the step of accessing the data structure comprises the step of altering a structure of the data structure.
Preferably, the method comprises the step of updating the presentation material in the computer file based on the data structure. Preferably, the presentation material is such that it can be used with Microsoft PowerPoint.
According to a third aspect of the present invention there is provided a system for developing a software module, the system comprising a processing means arrangement to perform the steps of: creating a first routine that can create a data structure that represents a presentation in an electronic presentation file; and creating at least one second routine that can be used to access the data structure, wherein the software module comprises the first routine and the at least one second routine .
Preferably, the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes . Preferably, the nodes that represent the elements are associated with the attributes of the elements.
Preferably, the first routine is such that it is capable of retrieving the presentation material from the computer file.
Preferably, the at least one second routine is such that a group of the nodes can be accessed as a single node.
Preferably, the at least one second routine is such that it can be used to alter the attributes.
Preferably, the at least one second routine is such that it can be used to alter a structure of the data structure.
Preferably, the processing means is arranged to perform the step of creating a third routine that can be used to update the presentation material in the computer file based on the data structure, wherein the software module comprises the third routine.
Preferably, the presentation material is such that it can be used with Microsoft PowerPoint.
According to a fourth aspect of the present invention there is provided a method of developing a software module, the method comprising the steps of: creating a first routine that can create a data structure that represents a presentation in an electronic presentation file; and creating at least one second routine that can be used to access the data structure, wherein the software module comprises the first routine and the at least one second routine.
Preferably, the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes .
Preferably, the nodes that represent the elements are associated with the attributes of the elements.
Preferably, the first routine is such that it is capable of retrieving the presentation material from the computer file. Preferably, the at least one second routine is such that a group of the nodes can be accessed as a single node.
Preferably, the at least one second routine is such that it can be used to alter the attributes.
Preferably, the at least one second routine is such that it can be used to alter a structure of the data structure.
Preferably, the method comprises the step of creating a third routine that can be used to update the presentation material in the computer file based on the data structure, wherein the software module comprises the third routine. Preferably, the presentation material is such that it can be used with Microsoft PowerPoint.
According to a fifth aspect of the present invention, there is provided a system for developing a computer program, the system comprising a processing means arranged to perform the steps of: obtaining a software module that comprises: a first routine that can create a data structure containing information related to presentation material in a computer file; and at least one second routine that can be used to access the data structure; and incorporating the first routine and/or the at least one second routine into the computer program to thereby develop the computer program.
Preferably, the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes .
Preferably, the nodes that represent the elements are associated with the attributes of the elements.
Preferably, the first routine is such that it is capable of retrieving the presentation material from the computer file. Preferably, the at least one second routine is such that a group of the nodes can be accessed as a single node. Preferably, the at least one second routine is such that it can be used to alter the attributes. Preferably, the at least one second routine is such that it can be used to alter a structure of the data structure.
Preferably, the processing means is arranged to perform the step of creating a third routine that can be used to update the presentation material in the computer file based on the data structure, wherein the software module comprises the third routine. Preferably, the presentation material is such that it can be used with Microsoft PowerPoint.
According to a sixth aspect of the present invention, there is provided a method of developing a computer program, the method comprising the steps of: obtaining a software module that comprises: a first routine that can create a data structure containing information related to presentation material in a computer file; and at least one second routine that can be used to access the data structure; and incorporating the first routine and/or the at least one second routine into the computer program to thereby develop the computer program. Preferably, the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes.
Preferably, the nodes that represent the elements are associated with the attributes of the elements .
Preferably, the first routine is such that it is capable of retrieving the presentation material from the computer file.
Preferably, the at least one second routine is such that a group of the nodes can be accessed as a single node.
Preferably, the at least one second routine is such that it can be used to alter the attributes .
Preferably, the at least one second routine is such that it can be used to alter a structure of the data structure.
Preferably, the method comprises the step of creating a third routine that can be used to update the presentation material in the computer file based on the data structure, wherein the software module comprises the third routine.
Preferably, the presentation material is such that it can be used with Microsoft PowerPoint.
According to a seventh aspect of the present invention, there is provided a computer program comprising at least one instruction for causing a computing device to carry out the method according to the second, fourth or sixth aspect of the present invention.
According to an eighth aspect of the present invention, there is provided a computer readable medium comprising the computer program according to the seventh aspect of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS
Notwithstanding any other embodiments that may fall within the scope of the present invention, an embodiment of the present invention will now be described, by way of example only, with reference to the accompanying figures, in which: figure 1 illustrates a computer system according to an embodiment of the present invention; figure 2 illustrates a data structure created using the computer system of figure 1; figure 3 is a flow chart of steps performed by the computer system of figure 1; figure 4 is a flow chart of steps performed to create software used in conjunction with the computer system of figure 1; figure 5 is a flow chart of steps involved in creating a computer program using the computer system of figure 1.
AN EMBODIMENT OF THE INVENTION
The embodiment of the present invention comprises a computer system 1, which is illustrated in figure 1, that is in the form of a personal computer. Persons skilled in the art will appreciate that the present invention is not limited to being embodied in a personal computer, and could in fact be other forms of computing devices in alternative embodiments of the present invention. For instance, the computer system 1 could, in alternative embodiments of the present invention, be in the form of a laptop computer or even a mainframe (server) computer. The computer system 1 comprises traditional computer hardware such as a motherboard, random access memory, a hard disk, a video card, a power supply, a keyboard, mouse and a monitor. In addition to the computer hardware the computer system 1 is loaded with an operating system in the form of Microsoft Windows XP. It will be appreciated that the present invention is not limited to being used with the Microsoft Windows XP operating system. It is envisaged that alternative embodiments of the present invention could employ different operating system such as Linux or Mac OS X. The operating system is loaded on to the hard disk of the computer system 1. The operating system basically co-operates with the computer hardware to provide an environment in which software applications can be executed.
In addition to the operating systems, the computer system 1 is loaded (on the hard disk) with several pieces of software that enable a software developer to develop a particular computer program (or user application) . The first of these pieces of software is the J2SE Development Kit (JDK) from Sun Microsystems. The JDK is essentially a software development application that enables the software developer to develop Java applications. The other piece of software loaded on the hard disk is a Java based API, which essentially provides various routines for enabling the software development to develop the Java applications such that they can access and manipulate presentation material contained in a Microsoft PowerPoint file.
The Java based API is basically a library of particular classes that can be incorporated (using the JDK) into the Java applications to enable the applications to readily extract the PowerPoint presentation material from the computer file, and create a data structure based on the visual representation of the PowerPoint presentation material .
The particular class of the Java API that can be used to extract the PowerPoint presentation is such that the data structure is in the form of a tree structure 3, (see figure 2) which is represented as a software object. As can be seen in figure 2, the tree structure 3 comprises a plurality of nodes 5. The tree structure 3 has a root node 5a and a number of dependent nodes 5b to 5g. The nodes 5 are interconnected via branches 7. The root node 5a can be considered to indicate that the presentation material has been extracted from the computer file. The dependent nodes 5b to 5g represent elements within the presentation material in the computer file, and/or attributes of the elements. For instance, dependent nodes 5b and 5c each represent a particular slide (element) in the presentation material, whilst dependent nodes 5d to 5g represent "shapes" that contain content (e.g. text or images) . The nodes 5h to 5k represent the text or images contained in the shapes, which are represented by nodes 5d to 5g. The branches 7 effectively represent the relationship between the nodes 5 in the tree structure 3. More particularly, branches 7a and 7b indicate that the slides, which are represented by nodes 5b and 5c, are contained in the presentation material represented by the root node 5a. Branches 7c to 7f, on the other hand, indicate that the shapes represented by dependant nodes 5d to 5g are contained in the slides 5b and 5c to which the nodes 5d to 5g are connected via the branches 7c to 7f . Finally, branches 7g to 7j indicate that the text or images represented by nodes 5h to 5k are contained in the slides represented by nodes 5d to 5g. Thus, the tree structure 3 effectively corresponds to the visual representation (structure) of the presentation material in the computer file. The nodes 5 that represent elements can also be associated with one or more nodes 5 that represent attributes of the particular elements, which for nodes 5b and 5c includes details on the layout of the slide; for example, the layout details could be that the slide is either single or double column layout.
Table 1 below sets out the various elements of a PowerPoint presentation and the attributes of the elements that can be represented by nodes 5.
Figure imgf000015_0001
Table 1
With regard to the elements identified in table 1, the root node 3a representing a Presentation can be linked to one or more dependent nodes 5b and 5c that represent Slides in the presentation. The dependent node 5b to 5c that represent Slides can be linked to one or more dependent nodes 5d to 5g that represent Groups or Shapes. A Group can be considered a container to logically group Shapes and/or other Groups. A node 5d to 5g representing a Shape can be linked to at most one node 5h to 5k representing Text and at most one node 5h to 5k representing a Picture. A node 5h to 5k representing Text or a Picture must be linked to a node representing a Shape. It is noted that the previous notion of the nodes 5a to 5k being linked is effectively a reference to the branches 7a to 7j in the tree structure 3.
The following is an example of how the tree structure 3 would be represented in XML:
Presentation w="5760" h="4320"> <Slide layout="2-columns-title"> <Group x=»3552» y="1344» w="960" h="2112"> <Shape x="2112" y="1248" w="720" h="528" placeholder="none" type="rectangle <Shape x="1968" y="2832" w="960" h="528" placeholders"none" type="ellipse"/ </Group> <Shape x="432" y="384" w="4896" h="720" placeholder="none" type="rectangle"> <Text value="Canonical Slide"/> </Shape> <Shape x="432" y="1248" w="2400" h="2592" placeholders"none" type="rectangle" <Text value="Sample Text"/> </Shape> <Shape x="144" y="3592" w="624" h="632" placeholders"none" type "rectangle"> <Picture
Figure imgf000016_0001
and Settings\Administrator\Desktop\images\logo. </Shape> </Slide> </Presentation> In addition to being able to create the tree structure 3, the library of classes in the Java API provides numerous classes (routines) that can be incorporated into the Java applications (using the JDK) to enable them to select and access the tree structure 3 - in particular the nodes 5 and their associated attributes. The API is such that nodes 5 are selected from the tree structure 3 by using XPath expressions. As mentioned previously, the tree structure 3 is actually represented as a software object. The software object provides "select { ) " methods (routines) which can return the nodes 5 in the tree structure 3 that correspond to the information specified in the XPath expression. With regard to manipulating the nodes 5, the software object representing the tree structure 3 also provides "cut ()", "copy ()" and "paste ()" methods that enable structural changes to be made to the tree structure 3; for instance, the creation or deletion of nodes 5.
A complete description of the various classes provided in the Java API is included in the appendix of this specification.
It is envisaged that the Java API could be obtained by a user of the computer system 1 using one of several techniques. First, the user could use the computer system 1 to download the Java API from a web site to the computer system 1. To facilitate the technique, the computer system 1 is loaded with a web browser, which can be used to log on to the web site and instruct the download of the Java API. Furthermore, the computer system 1 comprises networking hardware and software that enables the computer system to exchange data via the internet. A second technique that could be used to obtain the Java API is to obtain a CD-ROM loaded with the Java API . In order to facilitate this technique the computer system 1 comprises a CD-ROM drive in to which the CD-ROM can be placed.
As persons skilled in the art will readily appreciate, the Java API loaded on to the computer system 1 is essentially created using the same tools as the ones used to create the Java applications. These tools include the JDK loaded on a computer system. The JDK is used by a software developer to create routines (classes) that can create the data structure (which as mentioned previously is a tree structure) , and which can be used to access the data structure. The JDK is such that once the necessary routines have been created they can be placed in to an API format . It will be appreciated by those skilled in the art that whilst the description of the embodiment of the present invention is in the context of the JAVA programming language, the present invention has application to a range of programming languages. For instance, the present application could be used with the C++ language. It will also be appreciated that whilst the description of the embodiment refers to manipulating Microsoft PowerPoint presentation material, the present invention has application to presentation material created by other presentation applications. For example, the presentation invention could be used with presentation material created using StarOffice Impress.
Those skilled in the art will appreciate that the invention described herein is susceptible to variations and modifications other than those specifically described. It should be understood that the invention includes all such variations and modifications which fall within the spirit and scope of the invention.
Łppendix
Overview Package Class Use Tree Deprecated Index Help PREV PACKAGE NEXT PACKAGE FRAMES NO FRAMES All Classes
Package com.tonicsystems.pp
Interface Summary Constants Constants used by the PowerPoint Java API that have special meanings.
Figure imgf000020_0001
Exception Summary This exception indicates that the document is not recognized as
MalformedDoeumentException a valid PowerPoint document. A general exception indicating that there has been a problem
PPException performing the requested operation.
Overview Package Class Use Tree Deprecated Index Heiβ
PREV PACKAGE NEXT PACKAGE FRAMES NO FRAMES All Classes Overview Package Class Use Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes SUMMARY: NESTED | FIELD | CONSTR I METHOD DETAIL: FIELD I CONSTR I METHOD com.toπicsystems.pp Class Attribute java . lang . Object I—com. tonicsystems .pp .Node I—com. tonicsysterns,pp.Attribute
All Implemented Interfaces: java.lang.Cloneable
public class Attribute extends Node This class represents the string value of a property of an element in the DOM. Attribute objects are read-only. The value of an attributes can only be changed by using the appropriate setxxx ( ) method to change the underlying property value in the element node. Since Attribute values are a string representation they may not be identical in format to the raw property value obtained by calling the equivalent getxxx ( ) method in the element node. In particular, integer constants are converted to human readable strings based on the name of the constant. See Also: Constants
Figure imgf000021_0001
Methods inherited from class com.tonicsystems.pp.Node qetParent, proxy, select, selectl, toXml
Methods inherited from class javaiang.Object equals , getclass , hashCode , notify, notifyAll , wait , wait , wait
Method Detail getName public j ava . lang . String getName ( )
Description copied from class: Node Get the name of the node Specified by: getName in class Mode Returns: the name of the node
cut public void cut () This operation is not supported for this Node Overrides: cut in class Mode
copy public Node copy ()
This operation is not supported for this Node Overrides: copy in class Mode Returns: the new node including any children
paste public void paste (Node node) This operation is not supported for this Node Overrides: paste in class Node Parameters: node - the node to add as a child
getValue public j ava . lang . O j ect getValue () Get the value of the attribute. Returns: the value of the attribute
getStringValue public j ava. lang . String getStringValue ( ) Get the value of the attribute as a string value. Equivalent to getValue () . tostring ()
Returns: the value of the attribute
toString public Java. lang. String toString ()
Description copied from class: Node A string representation of this node. The format is not part of the API and may change from release to release. It is therefore recommended that this method only be used for informational purposes (e.g. debugging) and not relied upon in any way. Currently this method returns the same value as Node . toXml ( ) .
Overrides: toString in class Node
Overview Package Class Use Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED I FIELD I CONSTR I METHOD DETAIL: FIELD I CONSTR I METHOD Overview Package Class Use Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes SUMMARY: NESTED I FIELD I CONSTR I METHOD DETAIL: FIELD I CONSTR I METHOD com.tonicsystems.pp Class Group j av . lang . O j ect 1— com , tonicsystems .pp .Mode I— com . t oni c sy s t ems . pp . ShapeOrGr oup 1— com. tonicsystems .pp . Group
All Implemented Interfaces: j ava. lang. Cloneable
public class Group extends ShapeOrGroup
A node that represents a group of shapes and/or other groups. A group is formed as a result of the group command in PowerPoint. A group both logically collects a set of shapes and groups, as well as defniing the coordinate system for the enclosed shapes.
For example, if groups and shapes are expressed in terms of their bounding rectangles, (x-offset, y- offset, width, height), and if a shape defined by (sx, sy, sw, sh) is enclosed inside a group defined by (gx, gy, gw, gh) with a coordinate system of (ex, cy, cw, ch), then the shape's absolute coordinates (i.e. position on the slide) are given by: x gx + (sx - • ex) * gw/cw y gy + (sy - cy) * gh/ch sw ** (gw/cw) h sh * (gh/ch)
Method Summary j ava . a t . Rectangle getCoordSystem ( ) The coordinate system for the enclosed objects relative to this group's coordinate system. j ava . lang .S ring getName ( ) The element name for this node, that is "Group". void getRelativeCoords (j ava . awt . Rectangle r) Translate the supplied rectangle in absolute coordinates into relative coordinates. void paste (Node node) Add a shape or Group to this group. void ungrou ( ) Moves all of the children of this group (shape or Group objects) to this group's parent.
Methods inherited from class com.tonicsystems.pp.ShapeOrGroup copy, cut , getAbsoluteCoords , qetAbsoluteRotation, getBounds , getRotation, order, setRotation
Methods inherited from class com.tonicsystems.pp.Node [qetParent, proxy, select, selectl, toString, toXml
Methods inherited from class java.lang.Object equals , getclass , hashCode, notify, notifyAll, wait, wait , wait
Method Detail paste public void paste (Node node)
Add a shape or Group to this group. The coordinates of the pasted node are updated such that the node has as near as possible the same absolute coordinates before and after the paste operation. This coordinate update preserves the visual location of the node. It may not be possible to exactly preserve the absolute coordinates because of the requirement to use integer coordinates within an arbitrary new coordinate system. The bounding box of the Group is not automatically updated. The added Node is added in front of existing nodes. Use the shapeOrGroup . order (int) method to change the ordering of the nodes within the Group. Overrides: paste in class ShapeOrGroup Parameters: node - the shape or group to add See Also: ShapeOrGrou . qetAbsoluteCoords ( ) , getRelativeCoords ( ava. awt .Rectangle)
ungroup public void ungroup ()
Moves all of the children of this group (shape or Group objects) to this group's parent. Empty groups are automatically removed before a presentation is written.
getName public java.lang. String getName ()
The element name for this node, that is "Group". Specified by: getName in class Node Returns: the name of the node See Also: Mode . getName ( )
getCoordSystem public Java. wt.Rectangle getCoordSystemO
The coordinate system for the enclosed objects relative to this group's coordinate system. The returned Rectangle is live. Changes made are reflected in the Group. Returns: the coordinate system in dpi
getRelativeCoords public void getRelativeCoords (Java . awt . Rectangle r)
Description copied from class: ShapeOrGroup Translate the supplied rectangle in absolute coordinates into relative coordinates. The relative coordinates are the coordinates of the bounding box required to make a shape appear at the given absolute position, allowing for any transforms that may be in place. Overrides: getRelativeCoords in class ShapeOrGroup Parameters: r - the absolute coordinates
Overview Package Class Use Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED | FIELD ] CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD Overview Package Class Use Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR ] METHOD com.toπicsystems.pp Class Node j ava . lang . Ob ect 1— c om . toxii c sy s erns . pp . Node
All Implemented Interfaces: j avaiang. Cloneable Direct Known Subclasses: Attribute. Picture. Presentation. ShapeOrGroup. Slide, Text
public abstract class Node extends java.lang.Object implements j ava. lang. Cloneable This class is the super class for all nodes in the document object model (DOM). Structural operations (cut ( ) , copy ( ) . and paste (com. tonicsystems .pp .Node) ) must be consistent with the DOM. For example you can paste a slide into a Presentation, but you cannot paste a Presentation into a Slide. Uses inconsistent with the DOM will throw an UnsupportedOperationException.
Figure imgf000027_0001
j ava . lang . String toString () A string representation of this node. j av .1 ang « S tring toXml ( ) A string representation of this node in XML format.
Methods inherited from class javaJang.Object equals , getclass , hashCode, notify, notifyAll , wait, wait, wait
Method Detail
getName public abstract va. lang . String getName ( ) Get the name of the node Returns: the name of the node
proxy public static Node proxy (J ava . util . Collection nodes)
Creates a virtual node of the type of the common superclass of the supplied nodes. The virtual node can be used to perform operations on all the nodes in a single step. For example, the following code snippet Presentation p = new Presentation ( . . . ) ; Shape proxyShape = (Shape) Node , proxy (p . select ( "/Slide [1] //Shape" ) ) ; proxyShape . setFillColor ( Color. green) ;
Sets the fill color of every shape on the first slide to green. Only methods that return void are proxied. Specifically setters are proxied but getters are not (since there is potentially a collection of return values). An exception is thrown on access to non-proxied methods. Semantically, a call to a proxied method, such as
List objects = ... Node proxy = Node. roxy (objects) ; proxy.methodX ()
Is equivalent to the code
List objects = . for (Iterator ι = objects. iterator () ,- i.hsNextO;) ( (Node) i.next () ) .methodX() ;
Parameters: nodes - the collection of node to be proxied Returns: the proxy node of the type of the common superclass Throws: j va. lang. UnsupportedOperationException - on non proxied methods
select public java. til. ist selec (Java. lang. String xpath) Selects the set of nodes that match the supplied XPath expression. Parameters: xpath - an XPath expression Returns: ϋxe list of matching nodes
selectl public java. lang. Object selectl (java. lang. String xpath)
Selects the first node that matches the supplied XPath expression. Parameters: xpath - an XPath expression Returns: the first matching node
getParent public Node getParen () Returns the parent node of this node. It is shorthand for node . selectl (".."), but avoids the overhead of parsing the XPath query. Returns: the parent node
cut public void cut() Remove this node from its parent. All node properties and attributes remain unmodified. The node may be subsequently used in a paste (com. tonicsystems .pp .Node) operation to associate it with a new parent. Throws: java. lang. UnsupportedOperationException - if the node cannot be cut
copy public Node copy()
Create a copy of this node. The copy is a deep copy and includes all child nodes. Returns: the new node including any children Throws: j ava . lang . UnsupportedOperationException - if the node cannot be copied
paste public void paste (Node node)
Add the given node as a child of this node. The new node is visually pasted on top of existing children nodes. Parameters: node - the node to add as a child Throws: j ava. lang. illegalArgumentException - if the supplied node cannot be a child of this node j ava . lang. UnsupportedOperationException - if the node does not allow pasting
toXml public java. lang. String toXmlO
A string representation of this node in XML format. The string consists of the element name and its attributes. If the node has no children and therefore the XML element is empty, then the empty-element tag is used for the element, e.g. <Text value= "test" /> Note the trailing 7>" Attribute values are escaped and whitespace is normalized where appropriate. toString public java. lang. String toString ( ) A string representation of this node. The format is not part of the API and may change from release to release. It is therefore recommended that this method only be used for informational purposes (e.g. debugging) and not rehed upon in any way. Currently this method returns the same value as toXml ( ) .
Overview Package Class Use Tree Deprecated index Help
PREV CUSS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD
Overview Package Cfass Use Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES AH Classes SUMMARY: NESTED I FIELD I CONSTR I METHOD DETAIL: FIELD I CONSTR I METHOD com.tonicsystems.pp Class Picture j ava . lang . Ob j ect 1— com. tonicsystems .pp .Node 1— com. tonicsystems .pp .Picture
All Implemented Interfaces: javalang.Cloneable
public class Picture extends Node This class represents pictures (or images) within the presentation.
Constructor Summary Picture ( )
Figure imgf000032_0001
Figure imgf000033_0001
Methods inherited from class com.tonicsystems.pp.Node qetParent, proxy, select, selectl, toString, toXml
Methods inherited from class java.lang.Obj ect equals, getclass, hashCode, notify, notifyAll, wait, wait, wait
Constructor Detail
Picture public Picture ()
Method Detail paste public void paste (Node node)
This operation is not supported for this Node Overrides: paste in class Node Parameters: node - the node to add as a child
getPath public ava. lang . String getPath O
Return the optional path associated with this picture. This can be a path to a file, a URL, or a comment. Returns: the path, or an empty string if none was specified
setPath public void setPath(java. lang. String path) Specify the path associated with this picture. Parameters: path - the path to the file, a URL, or a comment
cut public void cut ()
Description copied from class: Node Remove this node from its parent. All node properties and attributes remain unmodified. The node may be subsequently used in a Node .paste (co , tonicsystems ,pp .Mode) operation to associate it with a new parent.
Overrides: cut in class Node
copy public Node cop O
Description copied from class: Node Create a copy of this node. The copy is a deep copy and includes all child nodes. Overrides: copy in class Node Returns: the new node including any children
setData public void setData (j ava. io. File file, int type) j throws j ava. io . lOException
Specify -the image associated with this node. This method uses lazy loading of the image data. When the presentation is written the image data is streamed directly from the image file into the presentation. Therefore the file must not be deleted before writing the presentation.
Parameters: file - the file from which to read the image data type - the type of the image as defined in constants, for-example Constants . PICTURE TYPE PNG Throws: java. io. ioException - on error reading the image setData 34 public void setData (j ava. io . Inputstream in, int type) throws java. io. lOException
Specify the image associated with this node. This method reads fhe entire contents of the input stream into an array of bytes in memory. So especially for large images the use of the alternative setData (j ava . io. Pile, int) method is recommended.
Parameters: in - the input stream from which to read the image data type - the type of the image as defined in Constants, for example Constants . ICTURE TYPE PNG Throws: j ava . io . lOException - on error reading the image
getName public java. lang. String getName {)
Description copied from class: Node Get the name of the node Specified by: getName in class Node Returns: the name of the node
write public void write (java. io. OutputStream out) throws •java. io . lOException
Output the image to the specified output stream. Equivalent to write (out , false) ,
Parameters: out - the stream to which to write the image Throws: j ava . io . lOException
write public void write (j ava . io . OutputStream out , boolean close) throws j ava . io . lOException
Output the image to the specified output stream. Parameters: out - the stream to which to write the image close - whether the stream should be closed after writing Throws: j ava . io . lOException
getType public int getType ( ) Return the type of the image as an integer constant Returns: the type of the image as defined in constants, for example Constants. ICTURE TYPE PNG
Overview Package Class Use Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD
Overview Package Class Use Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR 1 METHOD com.tonicsystems.pp Class Presentation j ava . lang . Ob j ect 1— com . tonicsystems . pp . Node 1— com. tonicsys terns .pp . Presentation
All Implemented Interfaces: java.lang.Cloneable
public final class Presentation extends Node
A class that represents a PowerPoint 97 presentation. This is the class used to initially read a PowerPoint presentation and construct the document object model (DOM), that can be subsequently used to identify and manipulate PowerPoint objects.
The standard usage is to load the document of interest, e.g. Presentation p <= new Presentation (new Pile ( "myPresentation.ppt" ) ) ;
Select the node(s) of interest, e.g. Text textNode = (Text) p . select ( "Slide [1] /Shape [1] /Text" ) ;
Perform the operations desired, e.g. System.out.println( "Text = " + textNode. getValue () ,- textNode. setValue ("Hello World! ") ;
And write out the updated document, e.g. p . rite (new FileOutputStream C'myNewPresentation.ppt" ) , true) ;
The document opened must be in PowerPoint 97 format. This format is the native format used by all version of PowerPoint since PowerPoint 97 (i.e. PowerPoint 97-2002). The input document can also be in the "PowerPoint 97-2000 & 95 Presentation", format. However when written, the document will always be written in the native format.
Constructor Summary Presentation ( ava . io . File f ) Create a new Presentation from the supplied File. Presentation ( j ava . io . Pile f , boolean useNio) Create a new Presentation from the supplied File. Presentation ( ava . io . InputStream in) Create a new Presentation from the supplied InputStream. Presentation ( av . io . InputStream in, boolean close) Create a new Presentation from the supplied InputStream.
Figure imgf000038_0001
Methods inherited from class com.tonicsystems.pp.Node getParent, proxy, select , selectl , toString , toXml
Methods inherited from class javadang.Object equals , getclass , hashCode , notify, notifyAll , wait , wait , wait
Figure imgf000039_0001
Presentation public Presentation ( j av . io . InputStream in) throws j ava . io . lOException
Create a new Presentation from the supplied InputStream. Equivalent to Presentation (in, false) .
Parameters: in - the PowerPoint document Throws: j ava . io . lOException - on error reading the InputStream MaiformedDocumentException - if the InputStream is not a vahd PowerPoint 97 document
Presentation public Presentation (java. io. InputStream in, boolean close) throws java. io. lOException
Create a new Presentation from the supphed InputStream.
Parameters: in - the PowerPoint document close - whether to close the InputStream after reading Throws: j ava . io . lOException - on error reading the InputStream MaiformedDocumentException - if the InputStream is not a valid PowerPoint 97 document
Presentation public Presen ation (j ava. io . File f) throws j ava. io . lOException
Create a new Presentation from the supphed File. Equivalent to Presentation (in, false) ,
Parameters: f - the PowerPoint document Throws: j ava . io . lOException - on error reading the InputStream MaiformedDocumentException - if the file is not a valid PowerPoint 97 document
Presentation public Presentatio (j ava. io. File f, boolean useNio) throws java. io. IOExcep ion
Create a new Presentation from the supphed File. The nio option can only be selected when running the library using JRE 1.4 or later. If you are using an earlier JRE version and select to use nio, then a NociassDef FoundError is thrown.
Parameters: f - the PowerPoint document useNio - whether to use j ava . nio . *. for reading Throws: j ava . io . lOException - on error reading the InputStream java. lang. NoClassDefFoundΞrror - if the the JRE does not support nio and nio is selected MaiformedDocumentException - if the file is not a valid PowerPoint 97 document
Method Detail
getVersion public static ava. lang . String getVersion O Get the version of the library Returns: the library version
getSlides public j ava . til . List getSlides ( )
Obtain the list of Slides the comprise this Presentation. The returned list is hve and representative of the actual slides. Changes to the list are reflected in the presentation. Shdes may be added, deleted and reordered by manipulating the list. Note that the list returned by the equivalent XPath expressions, presentation, select ( " s l i de " ) ,- is not live, although it would contain the same set of slides .
Returns: an in order list of Slide nodes
getSIide public Slide getSlide (int index)
Retrieve a single slide at the given index. The index is zero-based. The equivalent XPath expression would use an index 1 greater, since XPath begins its indices at 1. Thus presentation. getSlide (l) is equivalent to presentation, select ( "Slide [2] " ) . Parameters: index - the index (zero-based) of the desired slide Returns: the slide at the specified index
write public void wri e (j ava. io . OutputStream out) throws j ava . io . lOException
Write the PowerPoint document to the supplied OutputStream. Equivalent to write (out, false) .
Parameters: out - the stream to which to write Throws: j ava . io . lOException - on error writing the document
write public void write (java . io . OutputStream out, boolean close) throws j ava . io . lOException
Write the PowerPoint document in PowerPoint 97 format to the supplied OutputStream. Parameters: out - the stream to which to write close - whether to close the output stream after writing Throws: j ava . io . lOException - on error writing the document
close public void close t) throws j ava. io . lOException
Close the input document.
Throws: j ava . io . lOException - on error closing the document
getName public j ava . lang. String getName () Description copied from class: Node Get the name of the node Specified by: getName in class Node Returns: the name of the node
cut public void cut ()
Unsupported operation. A Presentation cannot be cut. Overrides: cut in class Node
copy public Node cop O
Unsupported operation. A Presentation cannot be copied. The slides within a Presentation may be copied, but not the presentation itself. Overrides: copy in class Node Returns: the new node including any children
paste public void paste (Node node)
Paste a Slide into this presentation. Only slide nodes may be pasted.
Overrides: paste in class Node Parameters: node - the node to add as a child See Also: Node .paste (com, tonicsystems .pp .Node)
getSIideSize public java. awt -Dimension getSIideSize () Get the dimensions that defines the height and width of the slides in this presentation. The object is live. Changes to the object are reflected in the presentation. Returns: the dimensions in pixels of the slides
getPageFormat public static java. awt.Dimension getPageFormat (int, pageFormat) Convenience method to convert standard page sizes into actual dimensions. Parameters: pageFormat - the constant defining the page size of interest, for example Constants . AGE FORMAT A4 Returns: the pixel dimensions corresponding to the page size or null for custom formats See Also: Constants
getPageFormat public static int getPageFormat (int w, int h)
Convenience method to convert dimensions into a standard page size constant Parameters: w - the width in pixels of the slides h - the height in pixels of the slides Returns: the corresponding page size constant, for example Constants . PAGE FORMAT A See Also: Constants
Overview Package Class Use Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD Overview Package Class Use Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD com.tonicsystems.pp Class Query j ava . lang . Ob j ect L_ co . tonicsystems .pp .Query
public class Query extends java.lang. Object
A class that represents an XPath query. This class provides an alternate interface to the Node . select (j ava . lanq . String) and Node . selectl (j ava . lang . String) functionality. In particular, this class allows XPath queries to be parameterized using variables and saved for repeated use. Potentially the queries will execute more efficiently as the query string may not need to be reparsed on subsequent uses.
For example, the code snippet: Presentation p = new Presentation ( ... ) ; List shapes = p. select (" ..//Shape [@placeholder= 'body' 3 ") ;
Canbe expressed as: Query q = new Query (" .//Shape [@placeholder=$ph] ") ; Presentation,p = new Presentation (...) ; Map map = new Hash ap ( ) ; map .put ( "ph" , "body" ) ; List shapes = q. select (p, map) ;
Variables within an XPath expression are denoted using the notation SvarName, and may refer to primitive XPath types (Boolean, Number or String), node-sets or individual nodes
Constructor Summary guer _ (j ava. lang. String query) Construct a new XPath query.
Figure imgf000044_0001
Execute a query without parameters and return only the first matching Node. ava. lang. Obj ect selectl (java.lang.Ob ect contextNode, java.util.Map variables) Execute a query with parameters and return only the first matching Node.
Methods inherited from class java.lang.Object equals, getclass, hashCode, notify, notifyAll, toString, wait, wait, wait
Constructor Detail
Query public Query (j ava. lang . String query)
Construct a new XPath query. The query may be parameterized where parameters are indicated by prefixing a parameter name with a '$' sign.
Parameters: query - the parameterized query sting
Method Detail
select public j ava. util . List select (J ava. lang. Object contextNode)
Execute a query without parameters. Equivalent to select (contextNode , null ) .
Parameters: contextNode - the node to use as the basis for the query Returns: the list of selected nodes See Also: select (Ob ect , Map)
selectl public j ava. lang. Obj ect selectl (j ava . lang . Obj ect contextNode)
Execute a query without parameters and return only the first matching Node. Equivalent to selectl (contextNode , null) .
Parameters: contextNode - the node to use as the basis for the query Returns: the selected node See Also: selectl (Obj.ect, Map)
select public java . util . ist select (j ava . lang . Object contextNode, java . util . Map variables)
Execute a query with parameters. Parameters: contextNode - the node to use as the basis for the query variables - a map of name-value pairs to be used as arguments to the parameterized query Returns: the list of selected nodes
selectl public java.lang.Object selectl (java. lang.Object contextNode, java.util .Map variables)
Execute a query with parameters and return only the first matching Node. Parameters: contextNode - the node to use as the basis for the query variables - a map of name-value pairs to be used as arguments to the parameterized query Returns: the selected node
Overview Package Class Use Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD
Overview Package Class Use Tree Deprecated index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes SUMMARY: NESTED I FIELD I CONSTR I METHOD DETAIL: FIELD | CONSTR | METHOD com.tonicsystems.pp Class Shape java. lang. Ob ect 1— com, tonicsystems .pp.Node L com, tonicsystems .p . ShapeOrGroup 1— com. tonicsystems. p. Shape
All Implemented Interfaces: java.lang. Cloneable
public class Shape extends ShapeOrGroup
This class represents a Shape within the presentation. Shapes are quite general within PowerPoint and include both the visible shapes, such as squares and rectangles, and invisible shapes that are containers for other items such as Text and Picture objects.
Figure imgf000047_0001
Figure imgf000048_0001
Methods inherited from class com.tonicsystems.pp.ShapeOrGroup cut , qetAbsoluteCoords , qetAbsoluteRotation, getBounds , getRelativeCoords , etRotation, order, setRotation
Methods inherited from class com.tonicsystems.pp.Node getParent , proxy, select , selectl , toString , toXml Methods inherited from class java.lang. Object equals, getclass, hashCode, notify, notifyAll, wait, wait, wait
Method Detail
copy public Node cop O
Description copied from class: Node Create a copy of this node. The copy is a deep copy and includes all child nodes.
Overrides: copy in class ShapeOrGroup
getPlaceholderType public int getPlaceholderType ()
Get the type of text placeholder of this shape. Shapes may serve as placeholders for text within a slide. All shapes with a placeholder value other than constants . PLACEHOLDER NONE have a child Text node. These shapes are displayed in PowerPoint with the text "Click to add Title" or "Click to add Text" when the text value has not been specified. In addition, placeholder shapes are used to generate the presentation outline view. Returns: the placeholder type constant See Also: Constants
getType public int getType ()
Get the type of the shape. The type of the shape defines its overall appearance, such a rectangle or a circle.
Returns: the shape type constant See Also: Constants
paste public void paste (Node node) Add a Text or Picture node to this Shape. A Shape can have at most one text and one picture node. If a shape has an existing node of the type pasted, the paste operation will replace the existing node. If a shape has both a text node and a picture node the text is displayed over the picture. Overrides: paste in class ShapeOrGroup
getName public j ava . lang . String getNam ()
Description copied from class: Node Get the name of the node Specified by: getName in class Node Returns: the name of the node
setFillColor public void setFillColor (java . awt . Color color) Set the foreground fill color Parameters: color - the foreground fill color "" See Also: qetFillColor ()
getFiUCoIor public ' j ava . wt . Color getFillColor ( ) Get the foreground fill color
Returns: the foreground fill color
setFillBackColor public void setFillBackColo (Java. awt. Color color)
Set the background fill color. Parameters: color - the background fill color See Also: getFillBackColor ()
getFillBackColor public, j ava . awt . Color getFillBackColor ( )
Get the background fill color. The background fill color is used when a pattern is used as the fill type. ' * Returns: the background fill. color
setFillType public void setFillType (int fillType) Set the fill type. Parameters: fillType - the fill type constant See Also: qetFillType () , Constants
getFillType public int getFillType ( )
Get the fill type. The fill type determines the method of filling the shape. Returns: the fill type constant See Also: Constants
setFillOpacity public void setFillOpacity (double" value) Set the fill foreground opacity. Parameters: value - the fill opacity See Also: getFillOpacity ( ) 51
getFillOpacity public double getFillOpacity () Get the fill foreground opacity. The opacity specifies the translucence of the fill. An opacity of 1.0 means the fill is opaque and none of the background shows through. An opacity of 0.0 means the fill is completely translucent and the background shows completely through - as if the shape were not filled at all. Returns: the fill opacity
setFillBackOpacity public void setFillBackOpacity (double value) Set the fill background opacity Parameters: value - the fill background opacity See Also: getFillOpacity ( )
getFilϊBackOpacity public double getFillBackOpacity {) Get the fill background opacity Returns: the fill background opacity See Also: getFillOpacity ( )
getLineColor public j ava. awt . Color getLineColor () Get the line foreground color Returns: the line foreground color setLineColor 52
public void setLineColor (J ava . wt . Color lineColor) Set the line foreground color Parameters: lineColor - the line foreground color See Also: ' getLineColor ( )
getlineBackColor public java. awt .'Color getLineBackColor ( ) Set the line background color Returns: the line background color
set ineBackC oϊor public void setLineBackColor ( j ava. awt . Color lineBackColor) Set the line background color Parameters: lineBackColor - the line background color See Also: qetLineBackColor ( )
getLineType public int getLineType () Get the line type. The line type determines whether the line is solid, patterned, etc. Returns: the line type constant See Also: Constants
setLineType public void setLineType (int lineType) Set the line type 53 Parameters: lineType - the line type constant See Also: getLineType () . Constants
getLineStyle public int getLineStyle () Get the line style. The line style determines whether the line is single, double, etc. Returns: the line style constant See Also: Constants
setLineStyle public void setLineStyle (int lineStyle) Set the line style Parameters: lineStyle - the line style constant See Also: getLineStyle () , Constants
getLineWidth public int getLineWidth () Get the line width Returns: the line width in EMUs See Also: Units
set ineWidth public void setLineWidth (int lineWidth) Set the line width Parameters: line idth - the line width in EMUs See Also: Units
get ine public boolean getLine ( )
Get whether the shape has a border Returns: whether the shape has a border
setLine public void setLine (boolean value) Set whether the shape has a border Parameters: value - whether the shape has a border
setSolidFill public static void setSolidFill (Shape shape, java. awt .Color color) Convenience method to set the fill color, the fill type and fill opacity Parameters: shape - the shape to effect a solid fill color - the color of the fill
Overview Package Class Use Tree Deprecated index Heip PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL FIELD | CONSTR | METHOD Overview Package Class Use Tree Deprecated index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED I FIELD I CONSTR I METHOD DETAIL: FIELD | CONSTR | METHOD
com.tonicsystems.pp
Class ShapeOrGroup java. lang.Object 1—com.tonicsystems .pp.Node I—com.tonics s ems .pp. ShapeOrGroup
All Implemented Interfaces: java.lang.Cloneable
Direct Known Subclasses: Group. Shape'
public abstract class ShapeOrGroup extends Node
The superclass for Shapes and Groups.
Coordinates are expressed in pixels, where the resolution is defined to be 576 dpi. The x-axis is zero at the left edge of a slide and increases to the right. The y-axis is zero at the top edge of the slide and increases downwards.
Figure imgf000056_0001
Change the z-ordering of the Shape or Group. voxd paste (Node node) Add the given node as a child of this node. void setRotation (double rotation) Set the rotation of this shape or group.
Methods inherited from class com.tonicsystems.pp.Node getName, getParent , proxy, select, selectl , toString, toXml
Methods inherited from class java.lang. Object equals , getclass , hashCode, notify, notifyAll , wait, wait, wait
Method Detail
cut public void cut ()
Description copied from class: Node Remove this node from its parent. All node properties and attributes remain unmodified. The node may be subsequently used in a Node. paste (com. tonicsystems .pp .Node) operation to associate it with a new parent. Overrides: cut in class Node
copy public Node cop O
Description copied from class: Node Create a copy of this node. The copy is a deep copy and includes all child nodes.
Overrides: copy in class Node Returns: the new node including any children
paste public void paste (Node node)
Description copied from class: Node Add the given node as a child of this node. The new node is visually pasted on top of existing children nodes. Overrides: paste in class Node Parameters: node - the node to add as a child
setRotation public void setRotatio (double rotation) Set the rotation of this shape or group. Parameters: rotation - the amount of rotation in degrees
getRotation public double getRotation ( )
Get the rotation of this shape or group Returns: the amount of rotation in degrees
getAbsoluteCoords public java. awt.Rectangle getAbsoluteCoords ( )
Get the absolute coordinates of the bounding box of this shape or group. The absolute coordinates are relative to the slide coordinates. The bounding box coordinates are relative to any enclosing groups, and will be different from the absolute coordinates, if transforms have . been applied to any enclosing group.
Returns: the absolute coordinates in pixels
getRelativeCoords public void getRelativeCoords (java. awt . Rectangle r)
Translate the supplied rectangle in absolute coordinates into relative coordinates. The relative coordinates are the coordmates of the bounding box required to make a shape appear at the given absolute position, allowing for any transforms that may be in place. Parameters: r - the absolute coordinates
getAbsoluteRotation public double getAbsoluteRotation () Get the absolute rotation of this shape or group. The absolute rotation is the rotation relative to the shde rather than the enclosing group(s) (if any). The returned value is normalized so that it lies within the range 0 <= rotation < 360. Returns: the normalized absolute rotation in degrees
getBounds public ava.awt. ectangle getBounds () Returns the bounding box rectangle of this Shape or Group. In PowerPoint, the bounding box defines the size of the shape or group. Shapes are drawn and groups are scaled to fit exactly within the bounding box. The returned rectangle is live - changes to the dimensions of the rectangle are reflected in the actual Shape or Group. The bounding box is not effected by rotation. It always is represented as if the rotation is at 0 degrees. Returns: the bounding box of the Shape or Group in pixels
order public void order (int direction)
Change the z-ordering of the Shape or Group. The z-order determines which shapes are on top and which are underneath. Use the constants constants , ORDER BACKWARD.. Constants . ORDER FORWARD. Constants . ORDER TO BACK and Constants . ORDER TO FRONT to specify how the z-order is to be changed for this shape or group. Parameters: direction - the direςtion in which to move the Shape or Group
Overview Package Class Use Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD Overview Package Class Use Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD > DETAIL: FIELD | CONSTR | METHOD
com.tonicsystems.pp
Class Slide j ava . lang . Ob j ect L— co . tonicsystems .pp . ode L co . tonicsys erns -pp . Slide
All Implemented Interfaces: java.lang.Cloneable
public class Slide extends Node
This class represents a shde within the presentation.
Figure imgf000060_0001
Methods inherited from class com.tonicsystems.pp.Node copy, cut, getParent, proxy, select, selectl, toString, toXml
Methods inherited from class javadang. Object equals, getclass, hashCode, notify, notifyAll, wait, wait, wait
Method Detail
getName public java. lang. String getName () Description copied from class: Node Get the name of the node Specified by: getName in class Node Returns: the name of the node
paste public void paste (Node node)
Add a node to this slide. Only shape and Group objects may be added to a Slide.
Overrides: paste in class Node Parameters: node - the node to add as a child
getTitle public Text getTitle ()
Return the Text node that is used as the title for this slide. Not all slides have a title text node.
Returns: the node containing the title text
getLayout public int getLayout ()
Return the default layout of the slide. Returns: the layout of the slide as defined in constants, for example Constants. SLIDE LAYOUT TITLE SLIDE
Overview Package Class Use Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SL)MMARY:,NESTED | FIELD | CONSTR ] METHOD DETAIL FIELD | CONSTR | METHOD Overview Package Class Use Tree Deprecated index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes SUMMARY: NESTED | FIELD ] CONSTR | METHOD DETAIL: FIELD I CONSTR I METHOD
com.tomcsystems.pp
Class Text j ava . lang . Ob j ect I—co .tonicsystems .p .Node 1— co . onics sterns . p .Text
All Implemented Interfaces: j ava ang. Cloneable
public class Text extends Node
This class represents a Text node. Text nodes are always children of shape nodes. A Shape node can have at most one text node.
Method Summary void CUt O Remove this node from its parent. j ava. lang . String getName ( ) Get the name of the node j ava . lang .S ring getValue. ( ) Get the contents of the node. void paste (Node node) This operation is not supported for this Node void setSub string (int beginlndex, int endlndex, j ava . lang . String replace) Replace a substring of the current value with the supplied value. void setValue (java . lang . String value) Set the contents of the node.
Methods inherited from class com.tonicsystems.pp.Node copy, getParent , proxy, select, selectl, toString, toXml
Methods inherited from class java.lang. Object equals, getclass, hashCode, notify, notifyAll, wait, wait, wait Method Detail
getName public j av . lang . String getName ( )
Description copied from class: Node Get the name of the node Specified by: getName in class Node Returns: the name of the node
getValue public, j ava . lang . String getValue ( )
Get the contents of the node. This is the unformatted textual representation of the characters within the node. Whitespace characters such as line feeds, carriage returns and tabs are preserved. This is unlike the value of this node as an attribute in the DOM, where each whitespace character is converted into the single space character. Returns: String the hteral value of the Text node
setValue public void setValue (Java. lang. String value)
Set the contents of the node. Replace the contents of the node with the supphed value. The format of the existing value is applied to the new value to the extent possible, with the following rules: • If the new value is shorter than the existing value, then the format(s) applied to the additional characters in the existing value are discarded. • If the new value is longer than the existing value, then the format of the last character is extended to the additional new characters. Parameters: value - the new contents of the node
setSufostring public void setSubstring (int beginlndex, int endlnde , j ava . lang . String replace) Replace a substring of the current value with the supplied value. The same formatting rules as described for setValue (java . lang. string) are applied, except that the replaced substring defines the formats. So if the replacement value is longer than the replaced value, then the format of the character at index position endlndex is extended.
Parameters: beginlndex - the index of the first character to be replaced endlndex - the index of the first character to not be replaced replace - the replacement string
cut public void cut ( )
Description copied from class: Node Remove this node from its parent. All node properties and attributes remain unmodified. The node may be subsequently used in a Node .paste (com.tonicsystems .pp .Node) operation to associate it with a new parent.
Overrides: cut in class Node
paste public void paste (Node node)
This operation is not supported for this Node
Overrides: paste in class Node Parameters: node - the node to add as a child
Overview Package Class Use Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED I FIELD I CONSTR I METHOD DETAIL: FIELD I CONSTR I METHOD

Claims

CLAIMS :
1. A system for obtaining presentation material, the system comprising a processing means that is arranged to perform the steps of: creating a data structure containing information related to the presentation material in a computer file; and accessing the data structure to obtain the presentation material.
2. The system as claimed in claim 1, wherein the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes.
3. The system as claimed in claim 2, wherein the nodes that represent the elements are associated with the attributes of the elements.
4. The system as claimed in any one of the preceding claims, wherein the processing means is arranged to perform the step of retrieving the presentation material from the computer file.
5. The system as claimed in claim 2 or 3, wherein the processing means is arranged such that the step of accessing the data structure comprises accessing a single node that represents a group of the nodes.
6. The system as claimed in any one of claims 2, 3 or 5 wherein, the processing means is arranged such that the step of accessing the data structure comprises altering the attributes .
7. The system as claimed in any one of the preceding claims, wherein the processing means is arranged such that accessing the data structure comprises altering a structure of the data structure.
8. The system as claimed in any one of the preceding claims, wherein the processing means is arranged to perform the step of updating the presentation material in the computer file based on the data structure.
9. The system as claimed in any one of the preceding claims, wherein the presentation material is such that it can be used with Microsoft PowerPoint.
10. A method of obtaining presentation material, the method comprising the steps of: creating a data structure containing information related to presentation material in a computer file; and accessing the data structure to obtain the presentation material.
11. The method as claimed in claim 10, wherein the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes.
12. The method as claimed in claim 11, wherein the nodes that represent the elements are associated with the attributes of the elements .
13. The method as claimed in any one of claims 10 to 12, comprising the step of retrieving the presentation material from the computer file.
14. The method as claimed in claims 11 or 12 , wherein the step of accessing the data structure comprises accessing a single node that represents a group of the nodes .
15. The method as claimed in any one of claims 11, 12 or 14, wherein the step of accessing the data structure comprises the step of altering the attributes.
16. The method as claimed in any one of claims 10 to 15, wherein the step of accessing the data structure comprises the step of altering a structure of the data structure.
17. The method as claimed in any one of claims 10 to 16, wherein comprising the step of updating the presentation material in the computer file based on the data structure.
18. The method as claimed in any one of claims 10 to 17, wherein the presentation material is such that it can be used with Microsoft PowerPoint.
19. A system for developing a software module, the system comprising a processing means arrangement to perform the steps of: creating a first routine that can create a data structure that represents a presentation in an electronic presentation file; and creating at least one second routine that can be used to access the data structure, wherein the software module comprises the first routine and the at least one second routine.
20. The system as claimed in claim 19, wherein the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes .
21. The system as claimed in claim 20, wherein the nodes that represent the elements are associated with the attributes of the elements.
22. The system as claimed in any one of claims
19 to 21, wherein the first routine is such that it is capable of retrieving the presentation material from the computer file.
23. The system as claimed in any one of claims
20 or 21, wherein the at least one second routine is such that a group of the nodes can be accessed as a single node,
24. The system as claimed in any one of claims
20, 21 or 23, wherein the at least one second routine is such that it can be used to alter the attributes.
25. The system as claimed in any one of claims 19 to 24, wherein the at least one second routine is such that it can be used to alter a structure of the data structure.
26. The system as claimed in any one of claims 19 to 25, wherein the processing means is arranged to perform the step of creating a third routine that can be used to update the presentation material in the computer file based on the data structure, wherein the software module comprises the third routine.
27. The system as claimed in any one of claims 19 to 26, wherein the presentation material is such that it can be used with Microsoft PowerPoint.
28. A method of developing a software module, the method comprising the steps of: creating a first routine that can create a data structure that represents a presentation in an electronic presentation file; and creating at least one second routine that can be used to access the data structure, wherein the software module comprises the first routine and the at least one second routine.
29. The method as claimed in claim 28, wherein the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes.
30. The method as claimed in claim 29, wherein the nodes that represent the elements are associated with the attributes of the elements .
31. The method as claimed in any one of claims
28 to 30, wherein the first routine is such that it is capable of retrieving the presentation material from the computer file.
32. The method as claimed in claims 29 or 30, wherein the at least one second routine is such that a group of the nodes can be accessed as a single node.
33. The method as claimed in any one of claims 29, 30 or 32, wherein the at least one second routine is such that it can be used to alter the attributes.
34. The method as claimed in any one of claims 28 to 33, wherein the at least one second routine is such that it can be used to alter a structure of the data structure.
35. The method as claimed in any one of claims 28 to 34, comprising the step of creating a third routine that can be used to update the presentation material in the computer file based on the data structure, wherein the software module comprises the third routine.
36. The method as claimed in any one of claims 28 to 35, wherein the presentation material is such that it can be used with Microsoft PowerPoint.
37. A system for developing a computer program, the system comprising a processing means arranged to perform the steps of: obtaining a software module that comprises: a first routine that can create a data structure containing information related to presentation material in a computer file; and at least one second routine that can be used to access the data structure; and incorporating the first routine and/or the at least one second routine into the computer program to thereby develop the computer program.
38. The system as claimed in claim 37, wherein the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes .
39. The system as claimed in claim 38, wherein the nodes that represent the elements are associated with the attributes of the elements.
40. The system as claimed in any one of claims 37 to 39, wherein the first routine is such that it is capable of retrieving the presentation material from the computer file.
41. The system as claimed in claims 38 or 39, wherein the at least one second routine is such that a group of the nodes can be accessed as a single node.
42. The system as claimed in any one of claims 38, 39 or 41, wherein the at least one second routine is such that it can be used to alter the attributes .
43. The system as claimed in any one of claims 37 to 42, wherein the at least one second routine is such that it can be used to alter a structure of the data structure.
44. The system as claimed in any one of claims 37 to 43, wherein the processing means is arranged to perform the step of creating a third routine that can be used to update the presentation material in the computer file based on the data structure, wherein the software module comprises the third routine.
45. The system as claimed in any one of claims 37 to 44, wherein the presentation material is such that it can be used with Microsoft PowerPoint.
46. A method of developing a computer program, the method comprising the steps of : obtaining a software module that comprises: a first routine that can create a data structure containing information related to presentation material in a computer file; and at least one second routine that can be used to access the data structure; and incorporating the first routine and/or the at least one second routine into the computer program to thereby develop the computer program.
47. The method as claimed in claim 46, wherein the data structure is arranged as a tree structure comprising a plurality of nodes interconnected by branches, wherein the nodes represent elements of the presentation material and/or attributes of the elements, and the branches represent an association between the elements and/or attributes.
48. The method as claimed in claim 47, wherein the nodes that represent the elements are associated with the attributes of the elements.
49. The method as claimed in any one of claims 46 to 48, wherein the first routine is such that it is capable of retrieving the presentation material from the computer file.
50. The method as claimed in claim 47 or 48, wherein the at least one second routine is such that a group of the nodes can be accessed as a single node.
51. The method as claimed in any one of claims 47, 48 or 50, wherein the at least one second routine is such that it can be used to alter the attributes.
52. The method as claimed in any one of claim 46 to 51, wherein the at least one second routine is such that it can be used to alter a structure of the data structure.
53. The method as claimed in any one of claims
46 to 52, comprising the step of creating a third routine that can be used to update the presentation material in the computer file based on the data structure, wherein the software module comprises the third routine.
54. The method as claimed in any one of claims 46 to 53, wherein the presentation material is such that it can be used with Microsoft PowerPoint.
55. A computer program comprising at least one instruction for causing a computing device to carry out the method as claimed in any one of claims 10 to 18, 28 to 36, or 46 to 54.
56. A computer readable medium comprising the computer program as claimed in claim 55.
PCT/AU2005/000115 2004-02-12 2005-01-31 Systems, methods and a computer program for use in manipulating electronic presentation information WO2005078602A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US54481204P 2004-02-12 2004-02-12
US60/544,812 2004-02-12
AU2004902075 2004-04-19
AU2004902075A AU2004902075A0 (en) 2004-04-19 A software module, a method of developing a software module, and a method of developing a computer program

Publications (1)

Publication Number Publication Date
WO2005078602A1 true WO2005078602A1 (en) 2005-08-25

Family

ID=34862389

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AU2005/000115 WO2005078602A1 (en) 2004-02-12 2005-01-31 Systems, methods and a computer program for use in manipulating electronic presentation information

Country Status (1)

Country Link
WO (1) WO2005078602A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781190A (en) * 1996-06-05 1998-07-14 Microsoft Corporation Method and system for transferring a slide presentation between computers
US5859623A (en) * 1996-05-14 1999-01-12 Proxima Corporation Intelligent display system presentation projection arrangement and method of using same
US5917480A (en) * 1996-06-04 1999-06-29 Microsoft Corporation Method and system for interacting with the content of a slide presentation
US6128629A (en) * 1997-11-14 2000-10-03 Microsoft Corporation Method and apparatus for automatically updating data files in a slide presentation program
US20020191013A1 (en) * 2001-06-15 2002-12-19 Abrams Stephen Alfred Method and system for incorporating a dynamic situation display in a powerpoint slide show presentation
US6564263B1 (en) * 1998-12-04 2003-05-13 International Business Machines Corporation Multimedia content description framework

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5859623A (en) * 1996-05-14 1999-01-12 Proxima Corporation Intelligent display system presentation projection arrangement and method of using same
US5917480A (en) * 1996-06-04 1999-06-29 Microsoft Corporation Method and system for interacting with the content of a slide presentation
US5781190A (en) * 1996-06-05 1998-07-14 Microsoft Corporation Method and system for transferring a slide presentation between computers
US6128629A (en) * 1997-11-14 2000-10-03 Microsoft Corporation Method and apparatus for automatically updating data files in a slide presentation program
US6564263B1 (en) * 1998-12-04 2003-05-13 International Business Machines Corporation Multimedia content description framework
US20020191013A1 (en) * 2001-06-15 2002-12-19 Abrams Stephen Alfred Method and system for incorporating a dynamic situation display in a powerpoint slide show presentation

Similar Documents

Publication Publication Date Title
EP2539810B1 (en) Image file as container for widgets in gui authoring tool
KR101031700B1 (en) Programming interface for a computer flatform
US5630131A (en) Method and apparatus for importing and exporting archive files for a graphical user interface
USRE37722E1 (en) Object-oriented system for the transparent translation among locales of locale-dependent application programs
US7137066B2 (en) Binary cache file format for themeing the visual appearance of a computer system
US7694229B2 (en) System and theme file format for creating visual styles
US7426734B2 (en) Facilitating presentation functionality through a programming interface media namespace
KR20050039551A (en) Programming interface for a computer platform
KR20040086042A (en) Markup language and object model for vector graphics
WO1996015494A1 (en) Object-oriented operating system
MacDonald Pro WPF in C# 2008: Windows presentation foundation with. NET 3.5
WO2005078602A1 (en) Systems, methods and a computer program for use in manipulating electronic presentation information
Solis Illustrated WPF
WO1996015493A1 (en) Object-oriented operating system
McDonald Pro WPF: Windows Presentation Foundation in. NET 3.0
Anguish et al. Cocoa programming
Anderson et al. Essential JavaFX
Sunderaraman Practical Ext JS 4
Braunstein Introduction to Flex 2
Casario Designing and Programming the Look and Feel of Flex Applications
WO1996015492A1 (en) Object-oriented operating system
WO1996015491A1 (en) Object-oriented operating system
Zammetti The Pillars of Ajax
Graphics Learn Pixi. js
Patterns Design Pattern Catalog

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase