IP Library Granted Patent US 8,881,120
Granted Patent B2
US 8,881,120 · App. 12/193,833 · Granted Nov 4, 2014

Systems and methods for creating multi-state content

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 8,881,120
App. No.
12/193,833
Granted
Nov 4, 2014
Kind
B2
Abstract

Methods and systems for creating multi-state content using state information are disclosed. The state information may specify, for example, that a subcomponent is included in one state and excluded from another state. As another example, the state information may specify that an attribute of the object will have a first value in one state and a different value in another state. Certain embodiments allow a developer to use declarative statements to specify different states for an object. These declarative statements may directly specify the appearance attributes or subcomponents of the object. Certain embodiments allow a developer to specify state-specific appearance attributes and sub-components within the general specification of the object and without having to specify appearance attributes or subcomponents in terms of changes to a base state or any other state.

Claims (57)

1. A computer implemented method comprising:

receiving a portion of code for a multi-state object, the portion of code comprising a plurality of statements specifying any subcomponents and attributes of the multi-state object, a statement of the plurality of statements specifying that a first subcomponent is included in the multi-state object when the multi-state object is in a first state;

determining that the multi-state object includes the first subcomponent when in the first state based on the statement specifying that the first subcomponent is included in the multi-state object when the multi-state object is in a first state;

determining that the multi-state object excludes the first subcomponent when in a second state; and

providing a piece of content comprising the multi-state object, wherein in the first state, the multi-state object comprises the first subcomponent and, in the second state, the multi-state object does not comprise the first subcomponent.

2. The method of claim 1 , wherein the statement of the plurality of statements comprises a declarative statement.

3. The method of claim 2 , wherein the statement of the plurality of statements is an include-in statement comprising an identification of the first state, an identification of the first subcomponent, and specifying that the first subcomponent is to be included in the multi-state object when the multi-state object is in the first state.

4. The method of claim 3 , wherein the identification of the first state comprises an identification of a state group, the state group comprising the first state and a third state.

5. The method of claim 4 , further comprising receiving one or more declarative statements specifying that the state group comprises the first state and the third state.

6. The method of claim 1 , wherein the plurality of statements further comprise an exclude-from statement comprising an identification of the second state, an identification of the first subcomponent, and specifying that the first subcomponent is to be excluded from the multi-state object when the multi-state object is in the second state.

7. The method of claim 6 , wherein the identification of the second state comprises an identification of a state group, the state group comprising the second state and a third state.

8. The method of claim 7 , further comprising receiving one or more declarative statements specifying that the state group comprises the second state and the third state.

9. The method of claim 1 , wherein the multi-state object is an entire piece of content.

10. The method of claim 1 , wherein the multi-state object is a component of a piece of content.

11. The method of claim 1 , wherein the portion of code for the multi-state object is received from a graphical development engine interpreting the use of the first subcomponent in one or more graphical representations of the multi-state object.

12. The method of claim 11 , wherein interpreting the use of the first subcomponent in one or more graphical representations of the multi-state object comprises:

recognizing whether the first subcomponent is used in the first state of the multi-state object; and

creating a declarative statement identifying the first subcomponent, the first state, and that the first subcomponent is used in the first state; and

wherein the declarative statement provides the state information.

13. The method of claim 1 , wherein providing the piece of content comprises compiling the portion of the code as compiled output and storing the compiled output.

14. A computer implemented method comprising:

receiving a portion of code for a multi-state object, the portion of code comprising a plurality of statements specifying any subcomponents and attributes of the multi-state object, a statement of the plurality of statements specifying that a first value is used for a first attribute of the multi-state object when the multi-state object is in a first state;

determining that the first attribute of the multi-state object has the first value when the multi-state object is in the first state based on the statement specifying that the first value is used for the first attribute of the multi-state object when the multi-state object is in the first state;

determining that the first attribute of the multi-state object has a second value when the multi-state object is in a second state, the second value different from the first value; and

providing a piece of content comprising the multi-state object, wherein in the first state, the multi-state object comprises the first attribute having the first value and, in the second state, the multi-state object comprises the first attribute having the second value.

15. The method of claim 14 , wherein the statement of the plurality of statements comprises a declarative statement.

16. The method of claim 14 , wherein the declarative statement comprises a dot notation comprising an identification of the first state and an identification of the first attribute.

17. The method of claim 16 , wherein the identification of the first state comprises an identification of a state group, the state group comprising the first state and a third state.

18. The method of claim 17 , further comprising receiving one or more declarative statements specifying that the state group comprises the first state and the third state.

19. The method of claim 14 , wherein the multi-state object is an entire piece of content.

20. The method of claim 14 , wherein the multi-state object is a component of a piece of content.

21. The method of claim 14 , wherein the portion of code for the multi-state object is received from a graphical development engine interpreting the use of the first attribute in one or more graphical representations of the multi-state object.

22. The method of claim 21 , wherein interpreting the use of the first attribute in one or more graphical representations of the multi-state object comprises:

recognizing the first value of the first attribute of the multi-state object as used in a state of the graphical representation of the state of the multi-state object; and

creating a declarative statement identifying the first attribute, the first state, and the first value; and

wherein the declarative statement provides the state information.

23. The method of claim 14 , wherein the second value is a default value.

24. A system comprising:

a processor executing instructions stored on a non-transitory computer readable storage medium to provide an interpretation engine to provide steps comprising:

receiving a portion of code for a multi-state object, the portion of code comprising a plurality of statements specifying any subcomponents and attributes of the multi-state object, a statement of the plurality of statements specifying that a first subcomponent is included in the multi-state object when the multi-state object is in a first state;

determining that the multi-state object includes the first subcomponent when in the first state based on the statement specifying that the first subcomponent is included in the multi-state object when the multi-state object is in a first state; and

determining that the multi-state object excludes the first subcomponent when in a second state; and

a content generating engine for providing a piece of content comprising the multi-state object, wherein in the first state, the multi-state object comprises the first subcomponent and, in the second state, the multi-state object does not comprise the first subcomponent.

25. A non-transitory computer-readable storage medium on which is encoded program code, the program code comprising:

program code for receiving a portion of code for a multi-state object, the portion of code comprising a plurality of statements specifying any subcomponents and attributes of the multi-state object, a statement of the plurality of statements specifying that a first subcomponent is included in the multi-state object when the multi-state object is in a first state;

program code for determining that the multi-state object includes the first subcomponent when in the first state based on the statement specifying that the first subcomponent is included in the multi-state object when the multi-state object is in a first state;

program code for determining that the multi-state object excludes the first subcomponent when in a second state; and

program code for providing a piece of content comprising the multi-state object, wherein in the first state, the multi-state object comprises the first subcomponent and, in the second state, the multi-state object does not comprise the first subcomponent.

26. A non-transitory computer-readable storage medium on which is encoded program code, the program code comprising:

program code for receiving a portion of code for a multi-state object, the portion of code comprising a plurality of statements specifying any subcomponents and attributes of the multi-state object, a statement of the plurality of statements specifying that a first value is used for a first attribute of the multi-state object when the multi-state object is in a first state;

program code for determining that the first attribute of the multi-state object has the first value when the multi-state object is in the first state based on the statement specifying that the first value is used for the first attribute of the multi-state object when the multi-state object is in the first state;

program code for determining that the first attribute of the multi-state object has a second value when the multi-state object is in a second state, the second value different from the first value; and

program code for providing a piece of content comprising the multi-state object, wherein in the first state, the multi-state object comprises the first attribute having the first value and, in the second state, the multi-state object comprises the first attribute having the second value.

27. The computer implemented method of claim 1 , wherein the statement specifying that the first subcomponent is included in the multi-state object when the multi-state object is in the first state is inline with respect to another statement specifying that the multi-state object excludes the second component when the multi-state object is in the second state.

28. The method of claim 2 , wherein the declarative statement identifies a state group and a subcomponent that is associated with the state group, wherein the state group includes one or more states.

29. The method of claim 28 , wherein a particular subcomponent included in the first state is enabled to be included in one or more other states.

30. The method of claim 1 , wherein state differences are not specified in terms of changes to any other state of the object.

Assignments (2)
CHANGE OF NAME Recorded Mar 6, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048525/0042 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2008
From: LUCIER, COREY; GREENFIELD, ELIOT SETH
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 021406/0339 →