- Forward


A Flexible Static Visual Content System


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu

Print

The Current System
Back SMYC Forward
  • An Observation:
    • A Content object can only contain one ``piece'' of visual content.
  • Examples:
    • We can not create one sampled.Content object that used one BufferedImage as a character's head and another BufferedImage as its body
    • We cannot create a described.Content object that encapsulates, for example, a house with a door and roof that are different colors
An Additional Requirement
Back SMYC Forward
The system must support visual content that has multiple components parts
Design Alternatives Ignoring Content Types
Back SMYC Forward

One Obvious Design

TransformableContent_aggregate
Design Alternatives Ignoring Content Types (cont.)
Back SMYC Forward

Using the Composite Pattern

TransformableContent_composite
Design Alternatives Incorporating Content Types
Back SMYC Forward

Three "Copies" of the Composite

CompositeContent_duplication
Design Alternatives Incorporating Content Types (cont.)
Back SMYC Forward

One Composite

CompositeContent_no-duplication
Design Alternatives Incorporating Content Types (cont.)
Back SMYC Forward

Using an Abstract Parent

CompositeContent_no-generics
Design Alternatives Incorporating Content Types (cont.)
Back SMYC Forward

Using a Parameterized Parent

CompositeContent
visual.statik Package
Back SMYC Forward

AbstractAggregateContent

javaexamples/visual/statik/AbstractAggregateContent.java (Fragment: skeleton)
 
javaexamples/visual/statik/AbstractAggregateContent.java (Fragment: content)
 
javaexamples/visual/statik/AbstractAggregateContent.java (Fragment: render)
 
javaexamples/visual/statik/AbstractAggregateContent.java (Fragment: bounds)
 
visual.statik Package (cont.)
Back SMYC Forward

CompositeContent

javaexamples/visual/statik/CompositeContent.java
 
visual.statik.sampled Package
Back SMYC Forward

CompositeContent

javaexamples/visual/statik/sampled/CompositeContent.java
 
visual.statik.described Package
Back SMYC Forward

CompositeContent

javaexamples/visual/statik/described/CompositeContent.java
 
Examples
Back SMYC Forward

described.CompositeContent

javaexamples/visual/statik/described/BoringBuzzy.java
 
Examples (cont.)
Back SMYC Forward

Mixed Content

javaexamples/visual/statik/FancyBuzzy.java
 
Examples (cont.)
Back SMYC Forward

A Visualization

javaexamples/visual/statik/VisualizationApp.java
 
Examples (cont.)
Back SMYC Forward

Picture-in-a-Picture

javaexamples/visual/statik/PIPApp.java
 
There's Always More to Learn
Back -