IP Library Granted Patent US 7,962,895
Granted Patent B2
US 7,962,895 · App. 11/490,651 · Granted Jun 14, 2011

Language for binding scalable vector graphics elements to java classes

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,962,895
App. No.
11/490,651
Granted
Jun 14, 2011
Kind
B2
Abstract

According to a technique described herein, a binding document comprises one or more “<bind>” element instances. Each “<bind>” element instance indicates an association between (a) an SVG element instance and (b) a class. When a binding's name is passed to a “createFromTemplate( )” method, the method processes all of the “<bind>” element instances that are associated within that name. For each such “<bind>” element instance, the method (a) creates, in an SVG DOM tree, a clone of a node that corresponds to an SVG element instance indicated in that “<bind>” element instance, (b) instantiates an object that is an instance of a class that is indicated in that “<bind>” element instance, and (c) stores data that establishes a binding between the clone node and the object. Methods of the object can be invoked to affect and/or alter attributes of the clone node to which the object is bound.

Claims (81)

1. A machine-implemented method for binding program-defined objects to Document Object Model (DOM) nodes, the method comprising:

receiving a request to create a scalable vector graphics (SVG) element instance from an SVG element template, wherein the request comprises a binding name, and wherein the SVG element instance comprises an extensible markup language (XML) code for describing two-dimensional graphics;

selecting, from a binding document, the SVG element template using the binding name, wherein the binding document comprises an association between the SVG element template, a node in a SVG DOM tree, and a software object class, wherein the association is written in XML;

obtaining, from the binding document, a software object class identifier, wherein the software object class identifier indicates the software object class associated with the SVG element template;

obtaining, from the binding document, a node reference indicating the node in the SVG DOM tree associated with the SVG element template;

selecting, in the SVG DOM tree, the node that corresponds to the SVG element template using the node reference;

creating, in the SVG DOM tree, a clone of the selected node for the SVG element instance;

instantiating, in response to the creating, a software object instance of the software object class; and

storing data that indicates a binding between the software object instance and the clone.

2. The method of claim 1 , wherein the binding document comprises one or more binding expressions that are expressed as XML elements.

3. The method of claim 1 , wherein said creating of the clone causes a display to show a shape that corresponds to the clone.

4. The method of claim 1 , further comprising:

invoking, in response to said instantiating, a particular method of the software object class that alters one or more attributes of the clone,

wherein, when the one or more attributes are altered, a display that shows a shape that corresponds to the clone is automatically updated to reflect alterations in the one or more attributes.

5. The method of claim 1 ,

wherein the request to create the SVG element instance is an invocation of a creation method, and

wherein the binding name is passed as a parameter of the creation method.

6. The method of claim 5 , wherein selecting the SVG element template from the binding document comprises:

locating, in the binding document, a “template” element instance whose “id” attribute value matches the binding name; and

locating, in the binding document, a “bind” element instance that is enclosed within the “template” element instance.

7. The method of claim 6 ,

wherein obtaining the node reference comprises:

reading an attribute value of an “svg-ref” attribute of the “bind” element instance; and

locating, in an SVG document, an SVG element instance whose “id” attribute value matches the attribute value of the “svg-ref” attribute.

8. The method of claim 6 ,

wherein obtaining the software object class identifier comprises:

reading an attribute value of a “class” attribute of the “bind” element instance;

wherein instantiating the software object instance comprises instantiating the software object instance from a JAVA class whose class name matches the attribute value of the “class” attribute.

9. The method of claim 6 ,

wherein selecting obtaining the node reference comprises:

reading an attribute value of an “svg-ref” attribute of the “bind” element instance; and

locating, in an SVG document, an SVG element instance whose “id” attribute value matches the attribute value of said “svg-ref” attribute;

wherein obtaining the software object class identifier comprises:

reading an attribute value of a “class” attribute of the “bind” element instance; and

wherein instantiating the software object instance comprises instantiating the software object instance from a JAVA class whose class name matches the attribute value of the “class” attribute.

10. The method of claim 1 , wherein the binding document indicates at least one binding between (a) another binding defined in the binding document and (b) an invocable method of a JAVA class.

11. The method of claim 1 , further comprising:

reading an updated version of the binding document in which one or more attributes have been added to a “<bind>” element in the binding document; and

invoking a “setBindingAttributes( )” method of the object, wherein invoking the “setBindingAttributes( )” method includes passing, as a parameter to the “setBindingAttributes( )” method, a “Binding” instance that can be queried to return attributes in the “<bind>” element.

12. The method of claim 11 , further comprising:

overriding the “setBindingAttributes( )” method to process customized attribute extensions.

13. A non-transitory machine-readable medium carrying one or more sequences of instructions, which instructions, when executed by one or more processors, cause the one or more processors to carry out steps comprising:

receiving a request to create a scalable vector graphics (SVG) element instance from an SVG element template, wherein the request comprises a binding name, and wherein the SVG element instance comprises an extensible markup language (XML) code for describing two-dimensional graphics;

selecting, from a binding document, the SVG element template using the binding name, wherein the binding document comprises an association between the SVG element template, a node in a SVG DOM tree, and a software object class, wherein the association is written in XML;

obtaining, from the binding document, a software object class identifier associated with the SVG element template, wherein the software object class identifier indicates a software object class;

obtaining, from the binding document, a node reference indicating the node in the SVG DOM tree associated with the SVG element template;

selecting, in the SVG DOM tree, the node that corresponds to the SVG element template using the node reference;

creating, in the SVG DOM tree, a clone of the selected node for the SVG element;

instantiating, in response to the creating, a software object instance of the software object class; and

storing data that indicates a binding between the software object instance and the clone.

14. The non-transitory machine-readable medium of claim 13 , wherein the binding document comprises one or more binding expressions that are expressed as XML elements.

15. The non-transitory machine-readable medium of claim 13 , wherein said creating of the clone causes a display to show a shape that corresponds to the clone.

16. The non-transitory machine-readable medium of claim 13 , wherein said steps further comprise:

invoking, in response to said instantiating, a particular method of the software object class that alters one or more attributes of the clone,

wherein, when the one or more attributes are altered, a display that shows a shape that corresponds to the clone is automatically updated to reflect alterations in the one or more attributes.

17. The non-transitory machine-readable medium of claim 13 ,

wherein the request to create the SVG element instance is an invocation of a creation method, and

wherein the binding name is passed as a parameter of the creation method.

18. The non-transitory machine-readable medium of claim 17 , wherein selecting the SVG element template from the binding document comprises:

locating, in the binding document, a “template” element instance whose “id” attribute value matches the binding name; and

locating, in the binding document, a “bind” element instance that is enclosed within the “template” element instance.

19. The non-transitory machine-readable medium of claim 18 ,

wherein obtaining the node reference comprises:

reading an attribute value of an “svg-ref” attribute of the “bind” element instance; and

locating, in an SVG document, an SVG element instance whose “id” attribute value matches the attribute value of the “svg-ref” attribute.

20. The non-transitory machine-readable medium of claim 18 ,

wherein obtaining the software object class identifier comprises:

reading an attribute value of a “class” attribute of the “bind” element instance;

wherein instantiating the software object instance comprises instantiating the software object instance from a JAVA class whose class name matches the attribute value of the “class” attribute.

21. The non-transitory machine-readable medium of claim 18 ,

wherein obtaining the node reference comprises:

reading an attribute value of an “svg-ref” attribute of the “bind” element instance; and

locating, in an SVG document, an SVG element instance whose “id” attribute value matches the attribute value of said “svg-ref” attribute;

wherein obtaining the software object class identifier comprises:

reading an attribute value of a “class” attribute of the “bind” element instance; and

wherein instantiating the software object instance comprises instantiating the software object instance from a JAVA class whose class name matches the attribute value of the “class” attribute.

22. The non-transitory machine-readable medium of claim 13 , wherein the binding document indicates at least one binding between (a) another binding defined in the binding document and (b) an invocable method of a JAVA class.

23. The non-transitory machine-readable medium of claim 13 , wherein said steps further comprise:

reading an updated version of the binding document in which one or more attributes have been added to a “<bind>” element in the binding document; and

invoking a “setBindingAttributes( )” method of the object, wherein invoking the “setBindingAttributes( )” method includes passing, as a parameter to the “setBindingAttributes( )” method, a “Binding” instance that can be queried to return attributes in the “<bind>” element.

24. the machine-readable medium of claim 23 , wherein said steps further comrpise: overriding the “setBinding attributes( )” method to process customized attribute extension.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0101 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2006
From: LIU, PETER T.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018092/0500 →