package topher; import f3.ui.*; import java.lang.System; import java.net.URL; import java.io.BufferedReader; import java.io.InputStreamReader; import java.lang.StringBuffer; public class ExhibitView extends CompositeWidget { public attribute model: DB; private attribute updating: Boolean; } function ExhibitView.composeWidget() = BorderPanel { var extent = bind (CerealCharacter*)model.extent var selection = bind (CerealCharacter*)model.selection top: Label { text: " " } center: BorderPanel { left: TabbedPane { background: white preferredSize: {height: 300, width: 200} tabs: foreach (name in ["brand", "decade", "country", "form"]) Tab { var at = CerealCharacter.class.Attributes[a|a.Name == name] var allValuesOfThisAttribute = extent[at] var values = bind (select unique s from s in allValuesOfThisAttribute) order by . var filter = bind model.filter[f|f.attr == at] title: bind "{name} {if sizeof filter.values > 0 then "({sizeof filter.values}/{sizeof values})" else "(all)"}" content: BorderPanel { top: SimpleLabel {text: "{name}"} center: ScrollPane { view: GroupPanel { var rows = bind foreach (i in [1..sizeof values]) Row {} var col1 = Column {alignment: LEADING} var col2 = Column {alignment: LEADING, resizable: true} rows: bind rows columns: [col1, col2] content: bind foreach (value in values) [SimpleLabel { row: rows[indexof value] column: col1 text: bind "{sizeof allValuesOfThisAttribute[. == value]}" }, CheckBox { row: rows[indexof value] column: col2 selected: bind value in filter.values text: value onChange: operation(newValue:Boolean) { updating = true; if (newValue) { if (filter <> null) { insert value into filter.values; } else { insert AttributeValueAssertion { attr: at values: value } into model.filter; } } else { delete filter.values[. == value]; } updating = false; } }] } } } } } center: BorderPanel { operation reset() { updating = true; delete model.filter.values; updating = false; } top: Label { text: bind "{sizeof selection} Characters {if sizeof selection == sizeof extent then "total" else "filtered from {sizeof extent} (reset)"}"} center: ScrollPane { view: Label { var columnCount = 2 var rowCount = bind (sizeof selection / columnCount).intValue() + 1 text: bind if updating then "" else " { foreach (i in [1..rowCount]) " { foreach (j in [1..columnCount]) "" } " }
{ select "" from c in selection[(i-1)*columnCount + j-1] }
{c.label}
Brand:{c.brand}
Year:{c.decade}
Country:{c.country}
" } } } bottom: GroupPanel { var clazz = CerealCharacter.class var sortBy = select clazz.Attributes[Name == n] from n in ["brand", "country", "decade", "form", "label"] var r1 = Row {} var c1 = Column {alignment: TRAILING} var otherCols = foreach (i in [1..sizeof sortBy]) Column { } rows: r1 columns: [c1, otherCols] content: [SimpleLabel { text: "Order by:" row: r1 column: c1 }, foreach (i in [0..sizeof sortBy-1]) ComboBox { var: box horizontal: {pref: 100} row: r1 column: otherCols[i] cells: bind foreach (j in sortBy) ComboBoxCell { text: j.Name } selection: bind select indexof x from x in sortBy where x == model.sortCriteria[i] trigger on (k = box.selection) { updating = true; model.sortCriteria[i] = sortBy[k]; updating = false; } }] } } } ; var main = DB { var clazz = CerealCharacter.class var indexAttrs = select clazz.Attributes[Name == n] from n in ["brand", "country", "decade", "form", "label"] sortCriteria: indexAttrs filter: select AttributeValueAssertion {attr: a} from a in indexAttrs extent: [ CerealCharacter { type: 'Character', label: 'Trix Rabbit', cereal: 'Trix', brand: 'General Mills', decade: '1960', country: 'USA', form: 'rabbit', thumbnail: 'images/trix-rabbit.png', image: 'images/trix-rabbit_large.png', url: 'http://www.lavasurfer.com/cereal-generalmills.html', text: 'First appearing on cereal boxes in 1960, this large white rabbit originally raced around trying to get some raspberry red, lemon yellow, and orange orange Trix corn-puffed cereal to eat. "Trix. The corn cereal with the natural taste of fruit". Trix Rabbit was originally voiced by Delo States.' }, CerealCharacter { type: 'Character', label: 'Count Dracula', cereal: 'Monster Cereals', brand: 'General Mills', decade: '1970', country: 'USA', form: 'vampire', thumbnail: 'images/count-dracula.png', image: 'images/count-dracula_large.png', url: 'http://www.lavasurfer.com/cereal-generalmills.html', text: 'It was rumored that Count Chocula once wore a six-pointed medalion (the Maltese Cross, from the Order of the Thelemic Knights or the Order of St. John). This is not true. In 1987, a box of Count Chocula was produced which included an image of Bela Lagosi as Dracula on the box. As you can see, it was Dracula that was wearing the six-pointed medalion on his chest.' }, CerealCharacter { type: 'Character', label: 'BuzzBee', cereal: 'Honey Nut Cheerios', brand: 'General Mills', decade: '1980', country: 'USA', form: 'bee', thumbnail: 'images/buzzbee.png', image: 'images/buzzbee_large.png', url: 'http://www.lavasurfer.com/cereal-generalmills2.html', text: 'BuzzBee, the Honey Nut Bee (late 1970\'s/early 1980\'s), is a cheery bee with small wings, and white shoes on his hind legs. His job is to encourage you to eat Honey Nut Cheerios. “It’s a honey of an O, it’s Honey Nut Cheerios.” An earlier bee design is shown at left, with a more current design at right. He was officially named BuzzBee on April 6, 2000.' }, CerealCharacter { type: 'Character', label: 'Snap!', cereal: 'Rice Krispies', brand: 'Kellogg\'s', decade: '1930', country: 'USA', form: 'boy', thumbnail: 'images/snap.png', image: 'images/snap_large.png', url: 'http://www.lavasurfer.com/cereal-kelloggs.html', text: 'Snap! was born in 1933. Snap! is the oldest and is a good-natured leader. He wears a baker\'s hat.' }, CerealCharacter { type: 'Character', label: 'Tony the Tiger', cereal: 'Frosted Flakes', brand: 'Kellogg\'s', decade: '1950', country: 'USA', form: 'tiger', thumbnail: 'images/tony-tiger.png', image: 'images/tony-tiger_large.png', url: 'http://www.lavasurfer.com/cereal-kelloggs.html', text: 'Born in 1951 or 1952, Tony the Tiger, Katy the Kangaroo, Elmo the Elephant, and Newt the Gnu all represented Kellogg\'s Sugar Frosted Flakes when the cereal was first introduced. Only Tony and Katy ever made it to a cereal box. However, Tony proved the most popular, and the other three were dropped after only a year. Dallas McKennon provided the original voice of Tony. Thurl Ravenscroft, who passed away on May 22, 2005, had provided the voice for so long it was his voice with which everyone is most familiar.' }, CerealCharacter { type: 'Character', label: 'Cornelius', cereal: 'Corn Flakes', brand: 'Kellogg\'s', decade: '1950', country: 'USA', form: 'rooster', thumbnail: 'images/cornelius.png', image: 'images/cornelius_large.png', url: 'http://www.lavasurfer.com/cereal-kelloggs2.html', text: 'Born in 1957 or 1958, Cornelius is a green rooster with the red comb and yellow beak. He is a happy-go-lucky, confident bird who does his job right. Although he used to talk, his crowing over Kellogg\'s Corn Flakes now gets him out of any predicament. In Columbia he is known as "Cornelio". To our friends in Great Britain, "Choc-o-doddle-do"!' }, CerealCharacter { type: 'Character', label: 'Baby Toucan', cereal: 'Fruit Loops', brand: 'Kellogg\'s', decade: 'unknown', country: 'USA', form: 'toucan', thumbnail: 'images/baby-toucan.png', image: 'images/baby-toucan_large.png', url: 'http://www.lavasurfer.com/cereal-kelloggs4.html', text: 'There were a pair of baby toucans which appeared in an early advertisement for Fruit Loops.' }, CerealCharacter { type: 'Character', label: 'Mr. Mini-Wheats', cereal: 'Mini Wheats', brand: 'Kellogg\'s', decade: '1990', country: 'USA', form: 'n/a', thumbnail: 'images/mini-wheats.png', image: 'images/mini-wheats_large.png', url: 'http://www.lavasurfer.com/cereal-kelloggs4.html', text: 'Mr. Mini-Wheats was born in Twin Falls in 1998/1999. His father was wheat. His mother was sweet. He tried to make them both happy. He has two fronts and no back. He\'s a gemini with dual personalities.' }, CerealCharacter { type: 'Character', label: 'C-Rex', cereal: 'Cruncheroos', brand: 'Kellogg\'s', decade: 'unknown', country: 'Canada', form: 'dinosaur', thumbnail: 'images/cruncheroos.png', image: 'images/cruncheroos_large.png', url: 'http://www.lavasurfer.com/cereal-kelloggs5.html', text: 'C-Rex (a close cousin of Japan\'s K-Rex) loves his oat bran Cruncheroos, made "with natural honey". Also available was an Apples and Cinnamon variety.' }, CerealCharacter { type: 'Character', label: 'Smacks', cereal: 'Smacks', brand: 'Kellogg\'s', decade: 'unknown', country: 'France', form: 'frog', thumbnail: 'images/smacks.png', image: 'images/smacks_large.png', url: 'http://www.lavasurfer.com/cereal-kelloggs5.html', text: 'Smacks is a frog who has a stringly resemblance to Dig\'em. But then, all frogs look alike. Smacks are a sugar-toasted wheat puff. Smacks Choco are coco-flavored Smacks. Trésors and Choco Trésors are chocolate-filled puffs.' }, CerealCharacter { type: 'Character', label: 'Broncos Kid', cereal: 'Broncos', brand: 'Kellogg\'s', decade: '1980', country: 'Japan', form: 'boy', thumbnail: 'images/broncos-kid.png', image: 'images/broncos-kid_large.png', url: 'http://www.lavasurfer.com/cereal-kelloggs5.html', text: 'The Broncos Kid rode for Kellogg\'s in Japan in 1980.' }, CerealCharacter { type: 'Character', label: 'Bart Simpson', cereal: 'Eat My Shorts', brand: 'Kellogg\'s', decade: '2000', country: 'Great Britain', form: 'boy', thumbnail: 'images/bart.png', image: 'images/bart_large.png', url: 'http://www.lavasurfer.com/cereal-kelloggs5.html', text: 'Bart Simpson appeared on Eat My Shorts in 2003. Eat My Shorts is a frosted golden-syrup-flavored multi-grain cereal shaped like Bart\'s shorts.' }, CerealCharacter { type: 'Character', label: 'Ghostbuster Ghost', cereal: 'Ghostbusters Cereal', brand: 'Ralston', decade: '1980', country: 'USA', form: 'ghost', thumbnail: 'images/ghostbuster.png', image: 'images/ghostbuster_large.png', url: 'http://www.lavasurfer.com/cereal-ralston.html', text: '"Who you gonna call?" Ghostbusters (1985), and the 1989 sequel Ghostbusters 2, are based upon the hit movies by the same name. The Real Ghostbusters (1988) is based on the cartoon which premiered in 1986. The Ghostbusters campaign was developed from concept to advertising by Alan Snedeker. It was one of the few commerecials to ever win an EFFIE (an advertising award for sales created by the advertising).' }, CerealCharacter { type: 'Character', label: 'Donkey Kong Junior', cereal: 'Donkey Kong Junior Cereal', brand: 'Ralston', decade: '1980', country: 'USA', form: 'monkey', thumbnail: 'images/donkey-kong.png', image: 'images/donkey-kong_large.png', url: 'http://www.lavasurfer.com/cereal-ralston.html', text: 'Donkey Kong Junior is the cute offspring of Donkey Kong. He too got his own cereal following a successful Nintendo game. We understand this was a mixture of strawberry and banana flavors.' }, CerealCharacter { type: 'Character', label: 'The Jetsons', cereal: 'The Jetsons Cereal', brand: 'Ralston', decade: '1990', country: 'USA', form: 'people', thumbnail: 'images/jetsons.png', image: 'images/jetsons_large.png', url: 'http://www.lavasurfer.com/cereal-ralston.html', text: 'The Jetsons (1990) are a space-age cartoon family. George works for Spacely Sprockets, Jane is his shopping-happy wife, Elroy is his son, and Judy is his daughter. Astro is their dog, and Rosey is the household servant.' }, CerealCharacter { type: 'Character', label: 'Batman', cereal: 'Batman Cereal', brand: 'Ralston', decade: '1980', country: 'USA', form: 'person', thumbnail: 'images/batman.png', image: 'images/batman_large.png', url: 'http://www.lavasurfer.com/cereal-ralston2.html', text: 'Batman Cereal was introduced around the 1989 movie featuring Michael Keaton.' }, CerealCharacter { type: 'Character', label: 'Cookie Jarvis', cereal: 'Chocolate Chip Cookie Crisp', brand: 'Ralston', decade: '1970', country: 'USA', form: 'wizard', thumbnail: 'images/cookie-jarvis.png', image: 'images/cookie-jarvis_large.png', url: 'http://www.lavasurfer.com/cereal-ralston2.html', text: 'Cookie Jarvis (1970\'s) was the Cookie Crisp cereal magician. He was the first spokes-character for Cookie Crisp. Oatmeal Cookie Crisp was a short-lived cereal, circa 1979-1980.' }, CerealCharacter { type: 'Character', label: 'Panel of Experts', cereal: 'Dinky Donuts', brand: 'Ralston', decade: '1980', country: 'USA', form: 'people', thumbnail: 'images/dinky-donuts.png', image: 'images/dinky-donuts_large.png', url: 'http://www.lavasurfer.com/cereal-ralston2.html', text: 'The Dinky Donuts Panel of Experts (1981) were the distinquished group that approved this "Glazed Style" donut cereal.' }, CerealCharacter { type: 'Character', label: 'Dumb Dora', cereal: 'Shredded Ralston', brand: 'Ralston', decade: '1940', country: 'USA', form: 'person', thumbnail: 'images/dumb-dora.png', image: 'images/dumb-dora_large.png', url: 'http://www.lavasurfer.com/cereal-ralston2.html', text: 'Dumb Dora (1940) appeared as a comic strip character.' }, CerealCharacter { type: 'Character', label: 'Trolls', cereal: 'Cookie Crisp', brand: 'Ralston', decade: 'unknown', country: 'USA', form: 'trolls', thumbnail: 'images/cookie-crisp.png', image: 'images/cookie-crisp_large.png', url: 'http://www.lavasurfer.com/cereal-ralston3.html', text: 'Trolls made a cute appearance on boxes of cookie crisp along with the 3 main characters (cop, crook and dog). It was mainly a "prize inside" type giveaway.' }, CerealCharacter { type: 'Character', label: 'Black Knight', cereal: 'Wheat Chex', brand: 'Ralston', decade: '1950', country: 'USA', form: 'person', thumbnail: 'images/black-knight.png', image: 'images/black-knight_large.png', url: 'http://www.lavasurfer.com/cereal-ralston3.html', text: 'Not much is known about the Wheat Chex Black Knight who appeared in the 1950\'s or 1960\'s.' }, CerealCharacter { type: 'Character', label: 'Steve Urkel', cereal: 'Urkel-O\'s', brand: 'Ralston', decade: '1990', country: 'USA', form: 'person', thumbnail: 'images/steve-urkel.png', image: 'images/steve-urkel_large.png', url: 'http://www.lavasurfer.com/cereal-ralston3.html', text: 'Urkel-O\'s (1991) were based on the Steve Urkel character (played by Jaleel White) on the TV sitcom "Family Matters". One box (not shown) featured Urkel dressed up in red-and-white-striped pants and a blue overcoat wearing a large drum with his face and the words "Urkel for President". The cereal itself was comprised of 11 ounces of banana and strawberry flavored rings (O\'s) and featured a free campaign button inside which read "Urkel for Prez!". The cereal\'s slogan? "Get Urkel-ized with Urkel-O\'s!".' }, CerealCharacter { type: 'Character', label: 'CiniMini Baker', cereal: 'CiniMini', brand: 'Nestle', decade: '1990', country: 'France', form: 'person', thumbnail: 'images/cinimini-baker.png', image: 'images/cinimini-baker_large.png', url: 'http://www.lavasurfer.com/cereal-nestle-nabisco.html', text: 'CiniMini Baker (1997) overlooking his handiwork. He is known as Le Petit Pâtissier in France.' }, CerealCharacter { type: 'Character', label: 'Quik Rabbit', cereal: 'NesQuik', brand: 'Nestle', decade: '1990', country: 'USA', form: 'rabbit', thumbnail: 'images/quik.png', image: 'images/quik_large.png', url: 'http://www.lavasurfer.com/cereal-nestle-nabisco.html', text: 'Nestle NesQuik featuring Quicki, the Nestle Quik Rabbit was introduced in Spain in 1998 and became available in the USA in 1999. It\'s a chocolatey rice and corn puff cereal that turns your milk Nesquik Chocolatey.' }, CerealCharacter { type: 'Character', label: 'Le Requin Kix', cereal: 'Kix', brand: 'Nestle', decade: 'unknown', country: 'France', form: 'shark', thumbnail: 'images/kix-shark.png', image: 'images/kix-shark_large.png', url: 'http://www.lavasurfer.com/cereal-nestle-nabisco.html', text: 'Le Requin Kix (The Kix Shark) also known as "Sharky" wears glasses, a white dress shirt with red vest, striped pants, and red sneakers.' }, CerealCharacter { type: 'Character', label: 'Pico', cereal: 'Chocapic', brand: 'Nestle', decade: 'unknown', country: 'Spain', form: 'dog', thumbnail: 'images/pico.png', image: 'images/pico_large.png', url: 'http://www.lavasurfer.com/cereal-nestle-nabisco.html', text: 'Pico, the Chocopic dog wears a yellow shirt and loves this round chocolate wafer-like cereal.' }, CerealCharacter { type: 'Character', label: 'Winnie the Pooh', cereal: 'Winnie-the-Pooh Great Honey Crunchers', brand: 'Nabisco', decade: '1970', country: 'USA', form: 'bear', thumbnail: 'images/pooh.png', image: 'images/pooh_large.png', url: 'http://www.lavasurfer.com/cereal-nestle-nabisco.html', text: 'Winnie-the-Pooh (1972/1973) is bear of very little brain and is fond of honey. "We have the hunch...You\'ll love to munch... Great Honey Crunchers...Cereal from Nabisco." (This cereal was actually Wheat and Rice Honey\'s under a new name).' }, CerealCharacter { type: 'Character', label: 'Rastus', cereal: 'Cream of Wheat', brand: 'Nabisco', decade: 'unknown', country: 'USA', form: 'person', thumbnail: 'images/rastus.png', image: 'images/rastus_large.png', url: 'http://www.lavasurfer.com/cereal-nestle-nabisco.html', text: 'Rastus, the Cream of Wheat Chef, wears a white chef\'s uniform and hat. "Eat while the iron is hot".' }, CerealCharacter { type: 'Character', label: 'Sugar Bear', cereal: 'Sugar Crisp', brand: 'Post', decade: '1960', country: 'USA', form: 'bear', thumbnail: 'images/sugar-bear.png', image: 'images/sugar-bear_large.png', url: 'http://www.lavasurfer.com/cereal-post.html', text: 'Sugar Crisp was described as a "honey flavored puffed wheat" cereal.' }, CerealCharacter { type: 'Character', label: 'Fred Flintstone', cereal: 'Fruity Pebbles', brand: 'Post', decade: '1960', country: 'USA', form: 'cartoon', thumbnail: 'images/fred-flintstone.png', image: 'images/fred-flintstone_large.png', url: 'http://www.lavasurfer.com/cereal-post.html', text: 'Fred Flintstone enjoys his Pebbles cereals. Barney Rubble puts on different disguises and always succeeds in getting the cereal away from Fred. "B-A-R-N-E-Y!"' }, CerealCharacter { type: 'Character', label: 'So-Hi', cereal: 'Sugar Coated Rice Krinkles', brand: 'Post', decade: '1960', country: 'USA', form: 'boy', thumbnail: 'images/sohi.png', image: 'images/sohi_large.png', url: 'http://www.lavasurfer.com/cereal-post.html', text: 'So-Hi (1960 to 1968) is a young Chinese boy. The little fellow got his name as a result of being only "so high". Voiced by Bob McFadden.' }, CerealCharacter { type: 'Character', label: 'Honeycomb Kid', cereal: 'Honeycomb', brand: 'Post', decade: '1960', country: 'USA', form: 'person', thumbnail: 'images/honeycomb-kid.png', image: 'images/honeycomb-kid_large.png', url: 'http://www.lavasurfer.com/cereal-post.html', text: 'The Honeycomb Kid (1965) rode for the great taste of Honeycomb, a corn and oat based cereal.' }, CerealCharacter { type: 'Character', label: 'Mickey Mouse', cereal: 'Mickey Mouse Magic Crunch', brand: 'Post', decade: '1980', country: 'USA', form: 'cartoon', thumbnail: 'images/mickey-mouse.png', image: 'images/mickey-mouse_large.png', url: 'http://www.lavasurfer.com/cereal-post2.html', text: 'Post produced this beautiful, but short-lived, box in 1988/1989. It featured Mickey Mouse as the Sorcerer\'s Apprentice. The cereal was described as a "nutritious corn and oat cereal" with honey. It looked a lot like Alpha-Bits.' }, CerealCharacter { type: 'Character', label: 'Captain Jolly', cereal: 'Corn-Fetti', brand: 'Post', decade: '1950', country: 'USA', form: 'person', thumbnail: 'images/captain-jolly.png', image: 'images/captain-jolly_large.png', url: 'http://www.lavasurfer.com/cereal-post2.html', text: 'Corn-Fetti was first released in 1951. Captain Jolly, a peg-legged pirate, sailed on boxes from 1953 through 1957 to promote Corn-Fetti.' }, CerealCharacter { type: 'Character', label: 'Bugs Bunny', cereal: 'Top 3 Cereal', brand: 'Post', decade: '1960', country: 'USA', form: 'rabbit', thumbnail: 'images/bugs-bunny.png', image: 'images/bugs-bunny_large.png', url: 'http://www.lavasurfer.com/cereal-post2.html', text: '"What\'s Up Doc?" Bugs Bunny promoted Top 3 for Post in 1961.' }, CerealCharacter { type: 'Character', label: 'Alpha-bits Sailor Boy', cereal: 'Alpha Bits', brand: 'Post', decade: '1960', country: 'USA', form: 'boy', thumbnail: 'images/alpha-bits-sailor-boy.png', image: 'images/alpha-bits-sailor-boy_large.png', url: 'http://www.lavasurfer.com/cereal-post3.html', text: 'Alpha Bits Sailor Boy (1963) appeared on boxes of this brown-sugar frosted oat cereal.' }, CerealCharacter { type: 'Character', label: 'Jimminy Cricket', cereal: 'Jimminy Cricket Wishing Stars', brand: 'Post', decade: '1980', country: 'USA', form: 'cartoon', thumbnail: 'images/jimini-cricket.png', image: 'images/jimini-cricket_large.png', url: 'http://www.lavasurfer.com/cereal-post5.html', text: 'Walt Disney\'s Jiminy Cricket, from the movie Pinocchio, with his signature "Traveler\'s" umbrella chirped the virtues of his circa 1982 cereal. The cereal was basically "fruity sweetened corn, oats, and wheat" large (red, orange, and yellow) puffed stars -- so large in fact that you were lucky to get three on a spoon with milk at a time.' }, CerealCharacter { type: 'Character', label: 'Cap\'n Crunch', cereal: 'Cap\'n Crunch and Varieties', brand: 'Quaker Oats', decade: '1960', country: 'USA', form: 'person', thumbnail: 'images/captain-crunch.png', image: 'images/captain-crunch_large.png', url: 'http://www.lavasurfer.com/cereal-quakeroats.html', text: 'Created in 1963, Cap\'n Horatio Crunch is a fun-loving sea captain. He was born and raised on Crunch Island, which is located in the Milk Sea. He wears a blue captain\'s uniform, and a large blue captain\'s hat. His ship is the S.S. Guppy, which he sails with his first mate, Seadog (1963), and his crew of four kids. Their mission is to keep the cargo hold of cereal from falling into the hands of Jean LaFoote the Barefoot Pirate (1968).' }, CerealCharacter { type: 'Character', label: 'Jean LaFoote', cereal: 'Cap\'n Crunch\'s Cinnamon Crunch Cereal', brand: 'Quaker Oats', decade: 'unknown', country: 'USA', form: 'person', thumbnail: 'images/jean-lafoote.png', image: 'images/jean-lafoote_large.png', url: 'http://www.lavasurfer.com/cereal-quakeroats.html', text: 'Jean LaFoote, the Barefoot Pirate, was notorious for his attempts to steal Cap\'n Crunch\'s cargo of cereal. "You can\'t get away with the Crunch, because the crunch always gives you away." Bill Scott (Bullwinkle, Mr. Peabody and Dudley Do-Right) was the voice of Jean LaFoote.' }, CerealCharacter { type: 'Character', label: 'Harry S. Hippo', cereal: 'Punch Crunch Cereal', brand: 'Quaker Oats', decade: 'unknown', country: 'USA', form: 'hippo', thumbnail: 'images/hippo.png', image: 'images/hippo_large.png', url: 'http://www.lavasurfer.com/cereal-quakeroats.html', text: 'Harry S. Hippo was a sea-going hippo in a mates uniform. He was one of the Cap\'n Crunch cereal characters. Punch Crunch was advertised as "little pink rings with the big pink flavor --- just like fruit punch".' }, CerealCharacter { type: 'Character', label: 'Crunchberry Beast', cereal: 'Cap\'n Crunch\'s Crunch Berries Cereal', brand: 'Quaker Oats', decade: '1960', country: 'USA', form: 'beast', thumbnail: 'images/crunchberry-beast.png', image: 'images/crunchberry-beast_large.png', url: 'http://www.lavasurfer.com/cereal-quakeroats.html', text: 'Crunchberry Beast (1967), or "C.B." for short, was found on Crunchberry Island which had an abundance of crunchy berries that tasted like strawberries.' }, CerealCharacter { type: 'Character', label: 'Crunchling', cereal: 'Cap\'n Crunch Cereal', brand: 'Quaker Oats', decade: '2000', country: 'USA', form: 'beast', thumbnail: 'images/crunchling.png', image: 'images/crunchling_large.png', url: 'http://www.lavasurfer.com/cereal-quakeroats.html', text: 'When Cap\'n Crunch reappeared in 2000 (after a late 1999 disappearance from cereal boxes), he explained that he had just returned from Volcanica, which is located at the center of the Earth. It was his most dangerous mission ever... "to save Earth\'s supply of Crunchium, the secret ingredient that gives Cap\'n Crunch cereal its unique, sweet taste!"' }, CerealCharacter { type: 'Character', label: 'Dragon and maiden', cereal: 'Quisp Cereal', brand: 'Quaker Oats', decade: 'unknown', country: 'USA', form: 'beast', thumbnail: 'images/dragon.png', image: 'images/dragon_large.png', url: 'http://www.lavasurfer.com/cereal-quakeroats2.html', text: 'The Dragon was one of the menaces which required a hero, like Quisp or Quake, to make the world safe once again. Here a maiden requires a hero\'s assistance. We believe this image shows the apparent pain the dragon endured upon being punched in the stomach by Quake.' }, CerealCharacter { type: 'Character', label: 'King Vitaman', cereal: 'King Vitaman', brand: 'Quaker Oats', decade: '1970', country: 'USA', form: 'person', thumbnail: 'images/king-vitaman.png', image: 'images/king-vitaman_large.png', url: 'http://www.lavasurfer.com/cereal-quakeroats2.html', text: 'Originally, King Vitaman was a straight man to his supporting characters. When he mentioned his name, the others didn\'t know whether he meant himself or the cereal. For example, he would command someone to pour milk on King Vitaman and they\'d spill it on him to which he\'d yell "Not me! The cereal!" (Not pictured is the second version in which King Vitaman was a sillier character who thwtated his villians by himself).' }, CerealCharacter { type: 'Character', label: 'Jeremy Bear', cereal: 'Sugar Puffs', brand: 'Quaker Oats', decade: '1960', country: 'Great Britain', form: 'bear', thumbnail: 'images/jeremy-bear.png', image: 'images/jeremy-bear_large.png', url: 'http://www.lavasurfer.com/cereal-quakeroats2.html', text: 'Jeremy Bear appeared on boxes of Sugar Puffs "The Honeyest Wheat Cereal" in the the UK in the 1960\'s and 1970\'s. Jeremy Bear was originally a live bear cub who appeared in ITV Sugar Puff advertisements in the UK in the early sixties. Cartoon characters were used when the use of live animals in advertisements became unacceptable.' }, CerealCharacter { type: 'Character', label: 'Inspector Gadget', cereal: 'Life Cereal', brand: 'Quaker Oats', decade: '1990', country: 'USA', form: 'cartoon', thumbnail: 'images/inspector-gadget.png', image: 'images/inspector-gadget_large.png', url: 'http://www.lavasurfer.com/cereal-quakeroats3.html', text: 'Another famous crime fighter, Inspector Gadget, promoted Life Cereal in 1991.' }, CerealCharacter { type: 'Character', label: 'Jack Stone', cereal: 'Life Cereal', brand: 'Quaker Oats', decade: '2000', country: 'USA', form: 'lego', thumbnail: 'images/jack-stone.png', image: 'images/jack-stone_large.png', url: 'http://www.lavasurfer.com/cereal-quakeroats3.html', text: 'Lego\'s action hero, Jack Stone, adventured on boxes of Life cereal in 2002.' }, CerealCharacter { type: 'Character', label: 'Kamicowzi', cereal: 'Cocoa Blasts', brand: 'Quaker Oats', decade: '1990', country: 'USA', form: 'cow', thumbnail: 'images/kamicowzi.png', image: 'images/kamicowzi_large.png', url: 'http://www.lavasurfer.com/cereal-quakeroats3.html', text: 'Komicowzi (1996) is a brown and white flying cow with horns and wings. She wears an old-style brown aviators cap and sunglasses.' }, CerealCharacter { type: 'Character', label: 'Popeye', cereal: 'Popeye Puffed Wheat Cereal', brand: 'Quaker Oats', decade: '1990', country: 'USA', form: 'cartoon', thumbnail: 'images/popeye.png', image: 'images/popeye_large.png', url: 'http://www.lavasurfer.com/cereal-quakeroats3.html', text: '"Popeye wants a Quaker". Popeye the sailor man is now a spokescharacter for Quaker. He appeared on the bagged Puffed Wheat Cereal in 1996 as well as boxes of Instant Oatmeal years ago (see image). "Can the Spinach! I want me Instant Quaker Oatmeal."' } ] }; operation getResourceAsString(urlStr:String) { try { var is = new URL(urlStr).openStream(); var reader = new BufferedReader(new InputStreamReader(is)); var line; var buf = new StringBuffer(); while (true) { line = reader.readLine(); if (line == null) { break; } buf.append(line); buf.append("\n"); } reader.close(); return buf.toString(); } catch (e) { // ignore } return ""; } Frame { onClose: operation() {System.exit(0);} title: "Cereal Characters" height: 500 width: 800 visible: true var font = new Font("Courier", "PLAIN", 12) content: TabbedPane { tabs: [Tab { title: "Exhibit" content: ExhibitView { border: EmptyBorder {top: 10, bottom: 10, left: 10, right: 10} background: white model: main } }, foreach (i in ["ExhibitView.f3", "DB.f3", "AttributeValueAssertion.f3", "CerealCharacter.f3"]) Tab { title: i content: ScrollPane { view: Label { font: font text: getResourceAsString("{__DIR__}/{i}") } } }] } }