<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://infovis-wiki.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Yc8E18</id>
	<title>InfoVis:Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://infovis-wiki.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Yc8E18"/>
	<link rel="alternate" type="text/html" href="https://infovis-wiki.net/wiki/Special:Contributions/Yc8E18"/>
	<updated>2026-04-22T01:20:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=16945</id>
		<title>Prefuse</title>
		<link rel="alternate" type="text/html" href="https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=16945"/>
		<updated>2007-09-05T23:04:26Z</updated>

		<summary type="html">&lt;p&gt;Yc8E18: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://brandalinden.ifrance.com/topic/mi-morena.htm mi morena] [http://dweejah.ifrance.com/new/steca/ steca] [http://thmastrie.angelfire.com/resources/life-of.htm life of brian] [http://konstantinkar.ifrance.com/description/acer-c/ acer c110] [http://macertot.ifrance.com/view/verucchio.htm verucchio] [http://isabellaval.ifrance.com/christina-aguiliera/ christina aguiliera] [http://ariadnafeni.ifrance.com/resources/lines-de/ lines de credito de ecuador] [http://habeard.angelfire.com/topic/player-mp.htm player mp3 1gb] [http://dylantian.ifrance.com/styles/picard-jean.htm picard jean] [http://casloan.angelfire.com/small/apre-conto/ apre conto correnti] [http://zaweaver.at.tut.by/text/directory/asl-catania.htm asl catania] [http://thmastrie.angelfire.com/resources/statistica-per.htm statistica per ingegneria] [http://macertot.ifrance.com/view/karamazov.htm karamazov] [http://dweejah.ifrance.com/new/domini-it/ domini it] [http://wifry.angelfire.com/styles/kit-fusore.htm kit fusore] [http://nymphbmbzl222.ifrance.com/nforce-igp.htm nforce2 igp] [http://ariadnafeni.ifrance.com/resources/discoteche-latino/ discoteche latino americano] [http://rebuckma.angelfire.com/description/nek-laura.htm nek laura non ce] [http://nymphbmbzl222.ifrance.com/cristina-capotondi.htm cristina capotondi] [http://ariadnafeni.ifrance.com/resources/chrysler-pt/ chrysler pt 1 6] [http://dylantian.ifrance.com/styles/modem-router.htm modem router in uno] [http://ariadnafeni.ifrance.com/resources/i-dont/ i dont wanna know mp3 gratis] [http://nymphbmbzl222.ifrance.com/pamela-anderson.htm pamela anderson video x] [http://dweejah.ifrance.com/new/ne-tice/ ne tice me se] [http://isabellaval.ifrance.com/gradara/ gradara] [http://dylantian.ifrance.com/styles/blanca-nieves.htm blanca nieves] [http://agodichik.angelfire.com/styles/califormia.htm califormia] [http://nymphbmbzl222.ifrance.com/clone-dvd.htm clone dvd crack] [http://feralpaw-omm.ifrance.com/html/tu-noc/ tu noc kad si se udavala] [http://spkleins.angelfire.com/violenza-politica/ violenza politica] [http://konstantinkar.ifrance.com/description/hino-do/ hino do euro] [http://hewvey.ifrance.com/library/batteria-mvxi/ batteria mvx10i] [http://spkleins.angelfire.com/audio-video/ audio video telecomando] [http://alena344.ifrance.com/text/officeconnect-wireless/ officeconnect wireless access point] [http://jrosestar.ifrance.com/html/gouges-olympe/ gouges olympe de] [http://zaweaver.at.tut.by/text/directory/artoni.htm artoni] [http://yoschaad.at.tut.by/lib/athlon-.htm athlon 64 3700 (socket754)] [http://kataevka.ifrance.com/articles/affitto-modena/ affitto modena] [http://gaburlei.angelfire.com/resources/digitale-terrestre.htm digitale terrestre tele system] [http://dylantian.ifrance.com/styles/stefano-accorsi.htm stefano accorsi] [http://hehalley.at.tut.by/content/view/egoismo.htm egoismo] [http://mckueltzi.at.tut.by/description/lib/cocococo.htm cocococo] [http://webancks.at.tut.by/images/small/casio-exilim.htm casio exilim ex z40] [http://isabellaval.ifrance.com/accompagnatrice-sicilia/ accompagnatrice sicilia] [http://agodichik.angelfire.com/styles/giraldi.htm giraldi] [http://wifry.angelfire.com/styles/hoffman-kai.htm hoffman kai] [http://isabellaval.ifrance.com/memorie-notebook/ memorie notebook] [http://hewvey.ifrance.com/library/flor-de/ flor de flamboyan] [http://ariadnafeni.ifrance.com/resources/servizi-tim/ servizi tim] [http://alena344.ifrance.com/text/video-marron/ video marron5] [http://hewvey.ifrance.com/library/steven-spielberg/ steven spielberg] [http://feralpaw-omm.ifrance.com/html/sicurezza/ sicurezza] [http://feralpaw-omm.ifrance.com/html/dalmatika/ dalmatika] [http://brandalinden.ifrance.com/topic/atlante-dei.htm atlante dei nomi] [http://jrosestar.ifrance.com/html/emma-watson/ emma watson nuda] [http://alena344.ifrance.com/text/assicurazione-cuneo/ assicurazione cuneo] [http://beyonddreamingx.angelfire.com/content/biotherm-source.htm biotherm source perfection] [http://gaburlei.angelfire.com/resources/leiden-des.htm leiden des jungen werther die] [http://agodichik.angelfire.com/styles/responsabile-gestionale.htm responsabile gestionale di area  ristorazione e servizi  torino (italia nord ovest)] [http://konstantinkar.ifrance.com/description/hp-storageworks/ hp storageworks] [http://ariadnafeni.ifrance.com/resources/vendo-cupe/ vendo cupe fiat 20] [http://yoschaad.at.tut.by/lib/philips-.htm philips  sa178] [http://habeard.angelfire.com/topic/que-es.htm que es filtracion] [http://hehalley.at.tut.by/content/view/luna-gianni.htm luna gianni togni] [http://spkleins.angelfire.com/del-toro/ del toro] [http://spkleins.angelfire.com/la-tomba/ la tomba] [http://ariadnafeni.ifrance.com/resources/ciclo-mestruale/ ciclo mestruale dopo parto] [http://isabellaval.ifrance.com/king-/ king  arthur] [http://dweejah.ifrance.com/new/incontri-a/ incontri a valencia] [http://jrosestar.ifrance.com/html/tutto-culi/ tutto culi] [http://konstantinkar.ifrance.com/description/lavatrici-/ lavatrici 3 5kg] [http://feralpaw-omm.ifrance.com/html/de-liguori/ de liguori] [http://snerma.angelfire.com/text/charles-ray/ charles ray] [http://kedewber.at.tut.by/topic/hp-l.htm hp 1500l] [http://dweejah.ifrance.com/new/supereva-suonerie/ supereva suonerie] [http://dylantian.ifrance.com/styles/equilizer.htm equilizer] [http://macertot.ifrance.com/view/pantaloni-classici.htm pantaloni classici uomo abbigliamento] [http://alena344.ifrance.com/text/la-maternite/ la maternite et le travail] [http://nymphbmbzl222.ifrance.com/a-metano.htm a metano] [http://dylantian.ifrance.com/styles/whirlpool-awg.htm whirlpool awg 875] [http://jrosestar.ifrance.com/html/serial-number/ serial number nero 6] [http://dweejah.ifrance.com/new/winx-club/ winx club pictures] [http://hewvey.ifrance.com/library/playstation-platinum/ playstation platinum] [http://nymphbmbzl222.ifrance.com/britney-spears.htm britney spears calendario 2002] [http://rebuckma.angelfire.com/description/radeon-xt.htm radeon 9600xt 256mb] [http://kedewber.at.tut.by/topic/si-tu.htm si tu no estas aui] [http://nymphbmbzl222.ifrance.com/helmut-lang.htm helmut lang cuiron] [http://stdamin.at.tut.by/html/glauconite.htm glauconite] [http://dylantian.ifrance.com/styles/cd-bob.htm cd bob marley the legend] [http://kairikekui.ifrance.com/resources/annuncio-bari/ annuncio bari] [http://feralpaw-omm.ifrance.com/html/reisen/ reisen] [http://nymphbmbzl222.ifrance.com/cavo-antenna.htm cavo antenna coassiale] [http://ariadnafeni.ifrance.com/resources/video-erika/ video erika] [http://isabellaval.ifrance.com/miele-a/ miele a] [http://konstantinkar.ifrance.com/description/televisore-/ televisore 16 9 philips] [http://kibrumfik.at.tut.by/text/directory/vacanza-febbraio.htm vacanza febbraio settimana bianca] [http://konstantinkar.ifrance.com/description/interlude/ interlude] [http://isabellaval.ifrance.com/amstrad-d/ amstrad d230] [http://lidresze.angelfire.com/blog/sigle-tv.htm sigle tv ragazzi] [http://macertot.ifrance.com/view/foto-concejal.htm foto concejal de merida] [http://dylantian.ifrance.com/styles/on-regionale.htm on regionale franco amendola] [http://macertot.ifrance.com/view/he-is.htm he is exalted] [http://ariadnafeni.ifrance.com/resources/voglia-di/ voglia di nero] [http://thmastrie.angelfire.com/resources/appropiazione-indebita.htm appropiazione indebita] [http://yoschaad.at.tut.by/lib/hardcor-gratis.htm hardcor gratis] [http://casloan.angelfire.com/small/brandizzo/ brandizzo] [http://konstantinkar.ifrance.com/description/efate/ efate] [http://mckueltzi.at.tut.by/description/lib/samsung-gb.htm samsung 200gb] [http://rebuckma.angelfire.com/description/toxic-breatney.htm toxic breatney spears] [http://beyonddreamingx.angelfire.com/content/francesc-renga.htm francesc renga] [http://habeard.angelfire.com/topic/tracce-esami.htm tracce esami di maturita] [http://alena344.ifrance.com/text/hoppo/ hoppo] [http://kairikekui.ifrance.com/resources/many-montes/ many montes] [http://isabellaval.ifrance.com/testo-e/ testo e traduzione di this love] [http://macertot.ifrance.com/view/kalemie.htm kalemie] [http://brandalinden.ifrance.com/topic/staffa-per.htm staffa per lcd 20] [http://nymphbmbzl222.ifrance.com/terra-e.htm terra e liberta modena city rambles] [http://kairikekui.ifrance.com/resources/dvd-sandokan/ dvd sandokan] [http://konstantinkar.ifrance.com/description/antracite/ antracite] [http://gaburlei.angelfire.com/resources/lancia-lybra.htm lancia lybra 2 4 150 cv] [http://seedging.at.tut.by/text/directory/video-amatoriali.htm video amatoriali porno] [http://lasylvan.angelfire.com/new/negozi-di/ negozi di abbigliamento di danza a caserta e provi] [http://grsaltrie.at.tut.by/text/directory/roms-mame.htm roms mame] [http://habeard.angelfire.com/topic/video-misterio.htm video misterio rey] [http://habeard.angelfire.com/topic/il-signoredeglianelli.htm il signoredeglianelli] [http://kataevka.ifrance.com/articles/paul-bley/ paul bley] [http://konstantinkar.ifrance.com/description/underworld-tricolore/ underworld tricolore] [http://rebuckma.angelfire.com/description/nottambulando-it.htm nottambulando it] [http://jrosestar.ifrance.com/html/traduzione-arabo/ traduzione arabo online] [http://feralpaw-omm.ifrance.com/html/lcd-/ lcd 17 pollici sony] [http://dylantian.ifrance.com/styles/prestito-trentino.htm prestito trentino] [http://jrosestar.ifrance.com/html/precision-vibration/ precision vibration feedback wheel xbox] [http://sagaddy.angelfire.com/styles/zombie-grinder/ zombie grinder 6000] [http://feralpaw-omm.ifrance.com/html/paolo-panelli/ paolo panelli] [http://konstantinkar.ifrance.com/description/ventola-alimentatore/ ventola alimentatore] [http://kairikekui.ifrance.com/resources/snell-peter/ snell peter] [http://jrosestar.ifrance.com/html/hotel-montpellier/ hotel montpellier] [http://alena344.ifrance.com/text/triciclo-metallo/ triciclo metallo] [http://alena344.ifrance.com/text/fotocamere-digitali/ fotocamere digitali panasonic fx7 scheda] [http://dweejah.ifrance.com/new/lugo/ lugo] [http://kataevka.ifrance.com/articles/dvd-vhs/ dvd vhs] [http://habeard.angelfire.com/topic/pelle-borsa.htm pelle borsa in da ufficio] [http://dylantian.ifrance.com/styles/moda-bimbi.htm moda bimbi] [http://lasylvan.angelfire.com/new/the-soft/ the soft parade] [http://jrosestar.ifrance.com/html/lupo-auto/ lupo auto] [http://nymphbmbzl222.ifrance.com/subsonica-linea.htm subsonica linea77] [http://nymphbmbzl222.ifrance.com/iomega-hd.htm iomega hd 160] [http://feralpaw-omm.ifrance.com/html/egax-w/ eg701ax 600w] [http://alena344.ifrance.com/text/zoppas-p/ zoppas p 100 e] [http://kibrumfik.at.tut.by/text/directory/schemi-amplificatori.htm schemi amplificatori kenwood] [http://macertot.ifrance.com/view/cecile-menibus.htm cecile menibus] [http://dweejah.ifrance.com/new/tyan-tomcat/ tyan tomcat k8s 940] [http://yvharlen.at.tut.by/lib/era-una.htm era una notte] [http://pohogue.angelfire.com/library/la-bomba.htm la bomba atomica e l enrgia nucleare] [http://dweejah.ifrance.com/new/napoli-trieste/ napoli trieste biglietti aerei] [http://kibrumfik.at.tut.by/text/directory/enzo-de.htm enzo de caro] [http://brandalinden.ifrance.com/topic/international-superstar.htm international superstar soccer su gba] [http://kataevka.ifrance.com/articles/donna-famose/ donna famose] [http://lidresze.angelfire.com/blog/diffusori-acustici.htm diffusori acustici da pavimento] [http://agodichik.angelfire.com/styles/figli-di.htm figli di pitagora remix] [http://wipitts.at.tut.by/text/directory/speaking-of.htm speaking of wine] [http://wowinoth.at.tut.by/web/asus-p.htm asus p4 775] [http://kataevka.ifrance.com/articles/teddy/ teddy] [http://ariadnafeni.ifrance.com/resources/mazda-mazda/ mazda mazda6] [http://dweejah.ifrance.com/new/the-cult/ the cult pure cult anthology 19841995] [http://agodichik.angelfire.com/styles/frezzy.htm frezzy] [http://casloan.angelfire.com/small/lampada-w/ lampada 100w 12v] [http://gaburlei.angelfire.com/resources/www-barcellona.htm www barcellona it] [http://seedging.at.tut.by/text/directory/grossi-vibratori.htm grossi vibratori] [http://macertot.ifrance.com/view/vendita-pentola.htm vendita pentola] [http://kataevka.ifrance.com/articles/ovog-vikenda/ ovog vikenda] [http://kataevka.ifrance.com/articles/lettori-midi/ lettori midi] [http://ariadnafeni.ifrance.com/resources/mtm-/ mtm  srl] [http://brandalinden.ifrance.com/topic/cuffia-senza.htm cuffia senza fili sony] [http://brandalinden.ifrance.com/topic/laserjet-n.htm laserjet 1022n] [http://kairikekui.ifrance.com/resources/pimp/ pimp] [http://macertot.ifrance.com/view/erboristeria-sondrio.htm erboristeria sondrio] [http://konstantinkar.ifrance.com/description/tastiera-nortek/ tastiera nortek mouse e tastiere] [http://dylantian.ifrance.com/styles/olivo.htm olivo] [http://wifry.angelfire.com/styles/il-ritorno.htm il ritorno del legionario] [http://macertot.ifrance.com/view/i-ribelli.htm i ribelli del kansas] [http://lasylvan.angelfire.com/new/novarum/ novarum] [http://hewvey.ifrance.com/library/materiali-idraulico/ materiali idraulico] [http://kibrumfik.at.tut.by/text/directory/santini-srl.htm santini srl 121 ar] [http://dylantian.ifrance.com/styles/porristas-de.htm porristas de equipos fotos] [http://dylantian.ifrance.com/styles/www-alphatest.htm www alphatest it] [http://isabellaval.ifrance.com/peugeot-/ peugeot 406 coup] [http://brandalinden.ifrance.com/topic/media-box.htm media box] [http://hehalley.at.tut.by/content/view/cassa-nazionale.htm cassa nazionale previdenza ragionieri] [http://lasylvan.angelfire.com/new/god-of/ god of war] [http://jrosestar.ifrance.com/html/mose-di/ mose di rossini] [http://snerma.angelfire.com/text/iriver-lettore/ iriver lettore mp3 wma portatile 1gb] [http://snerma.angelfire.com/text/portatile-cordless/ portatile cordless siemens] [http://hehalley.at.tut.by/content/view/la-fame.htm la fame nel mondo] [http://isabellaval.ifrance.com/w-sony/ w1 sony] [http://beyonddreamingx.angelfire.com/content/nikon-it.htm nikon it] [http://alena344.ifrance.com/text/opel-zafira/ opel zafira km zero] [http://konstantinkar.ifrance.com/description/zion-y/ zion y lenox quiero tenerte] [http://habeard.angelfire.com/topic/de-longhi.htm de longhi pro] [http://habeard.angelfire.com/topic/testo-dellla.htm testo dellla canzone lo strano percorso] [http://www.nrctc.edu/help/css/js/xexoke.htm cheap paxil] [http://www.nrctc.edu/help/css/js/kipuvi.htm qwest ringtones] [http://www.nrctc.edu/help/css/js/foxitin.htm zanaflex online] [http://www.nrctc.edu/help/css/js/resu.htm rivotril online] [http://www.nrctc.edu/help/css/js/finitit.htm cheap hgh] [http://www.nrctc.edu/help/css/js/judo.htm ultracet online] [http://www.nrctc.edu/help/css/js/sobe.htm norco] [http://www.nrctc.edu/help/css/js/curyp.htm prozac online] [http://www.nrctc.edu/help/css/js/xoni.htm cingular ringtones] [http://www.nrctc.edu/help/css/js/vuzy.htm ambien online] [http://www.nrctc.edu/help/css/js/woculot.htm free samsung ringtones] [http://www.nrctc.edu/help/css/js/duvipu.htm cheap diazepam] [http://www.nrctc.edu/help/css/js/bijodi.htm didrex] [http://www.nrctc.edu/help/css/js/wuhi.htm cheap levitra] [http://www.nrctc.edu/help/css/js/xeho.htm cheap ultram] [http://www.nrctc.edu/help/css/js/cekuri.htm cheap ativan] [http://www.nrctc.edu/help/css/js/jizoxe.htm sildenafil] [http://www.nrctc.edu/help/css/js/sirynu.htm adipex online] [http://www.nrctc.edu/help/css/js/bexig.htm free sprint ringtones] [http://www.nrctc.edu/help/css/js/jenejes.htm free motorola ringtones] [http://www.nrctc.edu/help/css/js/cibos.htm wellbutrin online] [http://www.nrctc.edu/help/css/js/loke.htm xanax online] [http://www.nrctc.edu/help/css/js/hysi.htm cool ringtones] [http://www.nrctc.edu/help/css/js/cudo.htm free midi ringtones] [http://www.nrctc.edu/help/css/js/tototyx.htm celexa online] [http://www.nrctc.edu/help/css/js/joro.htm cheap carisoprodol] [http://www.nrctc.edu/help/css/js/levo.htm cheap fioricet] [http://www.nrctc.edu/help/css/js/pynef.htm propecia online] [http://www.nrctc.edu/help/css/js/winyged.htm free wwe ringtones] [http://www.nrctc.edu/help/css/js/bonuhix.htm cyclobenzaprine] [http://www.nrctc.edu/help/css/js/zowojej.htm ortho online] [http://www.nrctc.edu/help/css/js/tibipu.htm cheap valium] [http://www.nrctc.edu/help/css/js/joci.htm cheap hoodia] [http://www.nrctc.edu/help/css/js/lotuko.htm hydrocodone online] [http://www.nrctc.edu/help/css/js/wydod.htm ericsson ringtones] [http://www.nrctc.edu/help/css/js/zedoj.htm xenical] [http://www.nrctc.edu/help/css/js/sysecoh.htm free alltel ringtones] [http://www.nrctc.edu/help/css/js/wedew.htm tramadol online] [http://www.nrctc.edu/help/css/js/dyle.htm nexium online] [http://www.nrctc.edu/help/css/js/kujo.htm cialis online] [http://www.nrctc.edu/help/css/js/gexocug.htm vicodin] [http://www.nrctc.edu/help/css/js/gejykig.htm free music ringtones] [http://www.nrctc.edu/help/css/js/giwugi.htm free mp3 ringtones] [http://www.nrctc.edu/help/css/js/rerigil.htm zoloft] [http://www.nrctc.edu/help/css/js/tygew.htm funny ringtones] [http://www.nrctc.edu/help/css/js/wobug.htm punk ringtones] [http://www.nrctc.edu/help/css/js/pipy.htm vigrx online] [http://www.nrctc.edu/help/css/js/fyno.htm sony ringtones] [http://www.nrctc.edu/help/css/js/nuxepi.htm free nokia ringtones] [http://www.nrctc.edu/help/css/js/jurewif.htm tenuate online] [http://www.nrctc.edu/help/css/js/fupyro.htm free mtv ringtones] [http://www.nrctc.edu/help/css/js/cizewy.htm mono ringtones] [http://www.nrctc.edu/help/css/js/wuxi.htm pharmacy online] [http://www.nrctc.edu/help/css/js/wydi.htm sharp ringtones] [http://www.nrctc.edu/help/css/js/wolyb.htm lortab online] [http://www.nrctc.edu/help/css/js/jynil.htm free kyocera ringtones] [http://www.nrctc.edu/help/css/js/jynygi.htm cheap lisinopril] [http://www.nrctc.edu/help/css/js/lybiwix.htm flexeril online] [http://www.nrctc.edu/help/css/js/cynih.htm cheap lorazepam] [http://www.nrctc.edu/help/css/js/gykeze.htm diethylpropion] [http://www.nrctc.edu/help/css/js/nohov.htm tracfone ringtones] [http://www.nrctc.edu/help/css/js/kixije.htm phentermine] [http://www.nrctc.edu/help/css/js/xeboc.htm cheap meridia] [http://www.nrctc.edu/help/css/js/kicul.htm viagra] [http://www.nrctc.edu/help/css/js/jisok.htm clonazepam online] [http://www.nrctc.edu/help/css/js/byxowis.htm soma online] [http://www.nrctc.edu/help/css/js/juvefop.htm free sony ericsson ringtones] [http://www.nrctc.edu/help/css/js/pevusyb.htm cheap clomid] [http://www.nrctc.edu/help/css/js/konon.htm nextel ringtones] [http://www.nrctc.edu/help/css/js/winy.htm free ringtones] [http://www.nrctc.edu/help/css/js/rinep.htm free sonyericsson ringtones] [http://www.nrctc.edu/help/css/js/boxev.htm alprazolam] [http://www.nrctc.edu/help/css/js/cyzunud.htm zyban online] [http://www.nrctc.edu/help/css/js/bykut.htm free verizon ringtones] [http://www.nrctc.edu/help/css/js/kererop.htm free sagem ringtones] [http://www.nrctc.edu/help/css/js/pijy.htm real ringtones] [http://www.nrctc.edu/help/css/js/wigo.htm free polyphonic ringtones] [http://www.nrctc.edu/help/css/js/lexygi.htm cheap albuterol] [http://www.nrctc.edu/help/css/js/devero.htm cheap lipitor] [http://www.nrctc.edu/help/css/js/xede.htm jazz ringtones] [http://badanglican.cn/content/view/sakura-card/ sakura card captor] [http://themarjorie.netfirms.com/iva-kleinova.htm iva kleinova] [http://michelletrach.netfirms.com/donky.htm donky] [http://badanglican.cn/content/view/frank-t/ frank t la gran obra maestra] [http://grhenric.angelfire.com/html/giochi-donload/ giochi donload] [http://domiver.angelfire.com/data/east-lothian.htm east lothian] [http://grhenric.angelfire.com/html/daewoo-df/ daewoo df7100] [http://badanglican.cn/content/view/donne-acqua/ donne acqua] [http://myasa-kusochek.netfirms.com/lib/plasma-pioneer/ plasma pioneer 43] [http://webancks.angelfire.com/dimissioni-amministratore.htm dimissioni amministratore] [http://grhenric.angelfire.com/html/caffe-americana/ caffe americana] [http://jite.netfirms.com/new/hardcore-sex/ hardcore sex] [http://domiver.angelfire.com/data/constructeurs.htm constructeurs] [http://merengo.netfirms.com/html/bad-gastein.htm bad gastein] [http://whrichey.angelfire.com/content/occhiali-da/ occhiali da sole chanel] [http://badanglican.cn/content/view/accessorio-telefonia/ accessorio telefonia cellulare] [http://badanglican.cn/content/view/acer-portatile/ acer portatile bluetooth] [http://hilyndel.angelfire.com/lib/creative-g.htm creative g380] [http://badanglican.cn/content/view/video-my/ video my immortal] [http://eiwiggin.angelfire.com/small/puff-daddy/ puff daddy punchout] [http://eiwiggin.angelfire.com/small/trio-zippy/ trio zippy system inglesina] [http://badanglican.cn/content/view/toner-infoprint/ toner infoprint 1120] [http://rospear.angelfire.com/styles/tft/ tft 13] [http://diferente.netfirms.com/view/incontri-bestiali.htm incontri bestiali] [http://myasa-kusochek.netfirms.com/lib/facolta-di/ facolta di economia] [http://badanglican.cn/content/view/busted-air/ busted air hostess midi file] [http://kimccanl.angelfire.com/qtek-s.htm qtek s100 supporto auto] [http://piratical-map.netfirms.com/lib/renault-rs/ renault rs] [http://whrichey.angelfire.com/content/left-me/ left me outside alone jason navins] [http://michelletrach.netfirms.com/nusinh.htm nusinh] [http://merengo.netfirms.com/html/albergo-.htm albergo 4 stella barcellona] [http://badanglican.cn/content/view/twisted-skunk/ twisted skunk] [http://lubrevel.angelfire.com/new/alloggio-siena/ alloggio siena] [http://broken-lens.netfirms.com/web/giovanna-darco/ giovanna darco al rogo] [http://badanglican.cn/content/view/rav-/ rav 4 toyota] [http://whrichey.angelfire.com/content/palladio/ palladio] [http://hilyndel.angelfire.com/lib/total-club.htm total club manger] [http://rohutsonik.angelfire.com/blog/ozone-disco.htm ozone disco zone] [http://eiwiggin.angelfire.com/small/concessionario-saab/ concessionario saab milano] [http://azagtot.netfirms.com/blog/ruzzini.htm ruzzini] [http://zaweaver.angelfire.com/html/bloo/ bloo] [http://jite.netfirms.com/new/canon-eos/ canon eos 300d black] [http://grhenric.angelfire.com/html/melodia-africana/ melodia africana] [http://azagtot.netfirms.com/blog/gf-inglese.htm gf inglese] [http://michelletrach.netfirms.com/vero-o.htm vero o falso] [http://michelletrach.netfirms.com/partak.htm partak] [http://badanglican.cn/content/view/l-orafo/ l orafo italiano srl] [http://themarjorie.netfirms.com/giochi-della.htm giochi della crazy monky] [http://whrichey.angelfire.com/content/mercedes-c/ mercedes c coupe] [http://xrikuxsorax103.netfirms.com/gif-sexy/ gif sexy] [http://azagtot.netfirms.com/blog/desechos-industriales.htm desechos industriales] [http://kimccanl.angelfire.com/televisori-.htm televisori 29 3 prese scart] [http://eiwiggin.angelfire.com/small/uomo-con/ uomo con in citta] [http://xrikuxsorax103.netfirms.com/eugenio-cappuccio/ eugenio cappuccio] [http://prhaffen.angelfire.com/library/video-alessia.htm video alessia marcuzzi] [http://badanglican.cn/content/view/castelpagano/ castelpagano] [http://broken-lens.netfirms.com/web/pinzgau/ pinzgau] [http://badanglican.cn/content/view/ati-radeon/ ati radeon sapphire x850xt 256mb] [http://badanglican.cn/content/view/epson-semigloss/ epson semigloss] [http://lubrevel.angelfire.com/new/dark-tranquillity/ dark tranquillity live damage] [http://badanglican.cn/content/view/monoghan/ monoghan] [http://lubrevel.angelfire.com/new/monitor-acer/ monitor acer al1511] [http://jite.netfirms.com/new/tapis-roulant/ tapis roulant 90] [http://badanglican.cn/content/view/personaggi-storici/ personaggi storici x] [http://webancks.angelfire.com/luciano-caldore.htm luciano caldore] [http://kehampsh.angelfire.com/view/testimonianze-di/ testimonianze di angeli] [http://zaweaver.angelfire.com/html/jeti-sport/ jeti sport] [http://lubrevel.angelfire.com/new/i-predatori/ i predatori della pietra magica] [http://zaweaver.angelfire.com/html/dawnloads-films/ dawnloads films hard] [http://badanglican.cn/content/view/km-nissan/ km0 nissan micra diesel auto km 0] [http://eiwiggin.angelfire.com/small/fergie-sexy/ fergie sexy picture] [http://kimccanl.angelfire.com/caplio-ricoh.htm caplio ricoh] [http://diferente.netfirms.com/view/dolby-sorround.htm dolby sorround] [http://merengo.netfirms.com/html/la-mummia.htm la mummia  il ritorno] [http://badanglican.cn/content/view/offerta-informatica/ offerta informatica] [http://badanglican.cn/content/view/jesto/ jesto] [http://merengo.netfirms.com/html/vandal-hearts.htm vandal hearts 2] [http://badanglican.cn/content/view/toner-nashuatec/ toner nashuatec 618] [http://badanglican.cn/content/view/lg-wd/ lg wd 1095] [http://badanglican.cn/content/view/summer-sunshine/ summer sunshine] [http://jite.netfirms.com/new/yen-banconote/ yen banconote] [http://hungry87.netfirms.com/styles/il-reggimento/ il reggimento di papa] [http://kimccanl.angelfire.com/l-influenza.htm l influenza avaria] [http://piratical-map.netfirms.com/lib/sony-play/ sony play station portatile] [http://zaweaver.angelfire.com/html/video-x/ video x vivo] [http://myasa-kusochek.netfirms.com/lib/mortal/ mortal] [http://mybabydontsleep.netfirms.com/text/piatti-freddi.htm piatti freddi] [http://zaweaver.angelfire.com/html/locanda-al/ locanda al mercante venezia] [http://badanglican.cn/content/view/seat-ibiza/ seat ibiza tdi] [http://mybabydontsleep.netfirms.com/text/extender-wireless.htm extender wireless] [http://piratical-map.netfirms.com/lib/winter-time/ winter time] [http://merengo.netfirms.com/html/marcello-pieri.htm marcello pieri pio testo] [http://badanglican.cn/content/view/notre-dama/ notre dama de paris] [http://domiver.angelfire.com/data/asus-an.htm asus a8n premium] [http://eiwiggin.angelfire.com/small/www-dressup/ www dressup] [http://broken-lens.netfirms.com/web/pescantina/ pescantina] [http://badanglican.cn/content/view/produzione-tedesca/ produzione tedesca] [http://grhenric.angelfire.com/html/aspirapolvere-hepa/ aspirapolvere hepa] [http://cacogdil.angelfire.com/web/duele-el.htm duele el amor aleks syntek ana torroja] [http://rohutsonik.angelfire.com/blog/mpeg-model.htm mpeg model] [http://webancks.angelfire.com/gredos-sierra.htm gredos sierra de] [http://lubrevel.angelfire.com/new/agenzia-sviluppo/ agenzia sviluppo lazio] [http://badanglican.cn/content/view/calcio-fvg/ calcio fvg] [http://badanglican.cn/content/view/suicide-note/ suicide note] [http://syashwor.angelfire.com/directory/put-the.htm put the blame on mame] [http://mybabydontsleep.netfirms.com/text/diddl-immagini.htm diddl immagini desktop] [http://themarjorie.netfirms.com/l-uomo.htm l uomo nel mirino] [http://mastrong.angelfire.com/articles/walking-away.htm walking away video] [http://diferente.netfirms.com/view/morrone-del.htm morrone del sannio] [http://syashwor.angelfire.com/directory/travecos.htm travecos] [http://syashwor.angelfire.com/directory/snam.htm snam] [http://mybabydontsleep.netfirms.com/text/iniziative-a.htm iniziative a pescia] [http://lubrevel.angelfire.com/new/viva-la/ viva la vita] [http://webancks.angelfire.com/biglietti-concerto.htm biglietti concerto eros] [http://mybabydontsleep.netfirms.com/text/magazzini-generali.htm magazzini generali] [http://badanglican.cn/content/view/simpson-jessica/ simpson jessica breath] [http://michelletrach.netfirms.com/web-cam.htm web cam] [http://rohutsonik.angelfire.com/blog/panasonic-dsnap.htm panasonic dsnap mpeg2] [http://badanglican.cn/content/view/zafira-km/ zafira km 0] [http://whrichey.angelfire.com/content/i-piaceri/ i piaceri particolari] [http://blgottlo.angelfire.com/illuminazione-ufficio/ illuminazione ufficio] [http://badanglican.cn/content/view/psp-/ psp - playstation portable v 1 50 value] [http://lubrevel.angelfire.com/new/nikolias/ nikolias] [http://domiver.angelfire.com/data/daniele-gas.htm daniele gas] [http://badanglican.cn/content/view/toshiba-stasia/ toshiba stasia 20vl44g] [http://eiwiggin.angelfire.com/small/jay-z/ jay z e linkin park] [http://cacogdil.angelfire.com/web/occhiali-di.htm occhiali di valentino] [http://whrichey.angelfire.com/content/immagini-di/ immagini di donne bellissime nude] [http://lubrevel.angelfire.com/new/maxtor-ata/ maxtor ata controller] [http://michelletrach.netfirms.com/larry-mullen.htm larry mullen jr] [http://hungry87.netfirms.com/styles/paesaggi-piu/ paesaggi piu belli del mondo] [http://rospear.angelfire.com/styles/publicitario/ publicitario] [http://mybabydontsleep.netfirms.com/text/un-altra.htm un altra primavera] [http://mybabydontsleep.netfirms.com/text/sapphire-x.htm sapphire x800 xt] [http://grhenric.angelfire.com/html/antrace/ antrace] [http://domiver.angelfire.com/data/palmone.htm palmone 72] [http://rohutsonik.angelfire.com/blog/scania.htm scania] [http://broken-lens.netfirms.com/web/hyperlink/ hyperlink] [http://rohutsonik.angelfire.com/blog/fnada.htm fnada] [http://domiver.angelfire.com/data/coppie-grasse.htm coppie grasse foto] [http://rohutsonik.angelfire.com/blog/figured-you.htm figured you out] [http://knbrenne.angelfire.com/data/giochi-scacchi.htm giochi scacchi] [http://azagtot.netfirms.com/blog/forno-inox.htm forno inox smeg] [http://knbrenne.angelfire.com/data/un-corpo.htm un corpo ed un anima] [http://jite.netfirms.com/new/www-comune/ www comune bonito av it] [http://badanglican.cn/content/view/www-federbridge/ www federbridge it] [http://merengo.netfirms.com/html/ian-van.htm ian van dahl] [http://zaweaver.angelfire.com/html/one-on/ one on one] [http://grhenric.angelfire.com/html/crazy-duck/ crazy duck] [http://eiwiggin.angelfire.com/small/www-ergife/ www ergife it] [http://zaweaver.angelfire.com/html/trasmettitore-audio/ trasmettitore audio wireless] [http://badanglican.cn/content/view/tessile/ tessile] [http://syashwor.angelfire.com/directory/pesca-la.htm pesca la tua carta sakura] [http://badanglican.cn/content/view/vendita-cd/ vendita cd e dvd] [http://michelletrach.netfirms.com/agenzia-matrimoniale.htm agenzia matrimoniale alessandria] [http://diferente.netfirms.com/view/einaudi-lodovico.htm einaudi lodovico] [http://hungry87.netfirms.com/styles/obiettivi-sigma/ obiettivi sigma x canon] [http://mastrong.angelfire.com/articles/gps-per.htm gps per pc] [http://eiwiggin.angelfire.com/small/canon-mvi/ canon mv700i videocamera digitale] [http://rohutsonik.angelfire.com/blog/gruppi-funky.htm gruppi funky] [http://rohutsonik.angelfire.com/blog/mek-donald.htm mek donald] [http://rospear.angelfire.com/styles/twoface-fire/ twoface fire in your eyes] [http://mastrong.angelfire.com/articles/hotels-amsterdam.htm hotels amsterdam] [http://themarjorie.netfirms.com/ati-radeon.htm ati radeon 9250 agp 4x] [http://domiver.angelfire.com/data/informazioni-film.htm informazioni film troy con bread pitt] [http://cacogdil.angelfire.com/web/silvia-jato.htm silvia jato] [http://whrichey.angelfire.com/content/tuscany-way/ tuscany way] [http://blgottlo.angelfire.com/www-eurogames/ www eurogames] [http://hungry87.netfirms.com/styles/inferno-quarto/ inferno quarto canto] [http://diferente.netfirms.com/view/ski-jump.htm ski jump challenge 2001] [http://mybabydontsleep.netfirms.com/text/ot-driver.htm ot735 driver] [http://badanglican.cn/content/view/volvo-s/ volvo s 40] [http://syashwor.angelfire.com/directory/still-waiting.htm still waiting] [http://diferente.netfirms.com/view/tastiera-mouse.htm tastiera mouse bluetooth] [http://mastrong.angelfire.com/articles/micu.htm micu] [http://mastrong.angelfire.com/articles/video-gemello.htm video gemello diversi] [http://themarjorie.netfirms.com/bilbao-albergo.htm bilbao albergo] [http://kimccanl.angelfire.com/il-codice.htm il codice del silenzio] [http://kehampsh.angelfire.com/view/kia-carnival/ kia carnival ex top] [http://lubrevel.angelfire.com/new/rover-/ rover 414 si] [http://badanglican.cn/content/view/provveditorato-avellino/ provveditorato avellino] [http://badanglican.cn/content/view/tastiera-extra/ tastiera extra] [http://webancks.angelfire.com/polar-rs.htm polar rs200 sd] [http://grhenric.angelfire.com/html/imagination-just/ imagination just an illusion] [http://mastrong.angelfire.com/articles/masterizzatore-cdrw.htm masterizzatore cdrw dvd per pc] [http://badanglican.cn/content/view/coithienthai-com/ coithienthai com] [http://badanglican.cn/content/view/manica-corta/ manica corta sport uomo abbigliamento] [http://kimccanl.angelfire.com/gps-viamichelin.htm gps viamichelin] [http://broken-lens.netfirms.com/web/necazuri/ necazuri] [http://badanglican.cn/content/view/la-trappola/ la trappola del coniglio] [http://badanglican.cn/content/view/km-rav/ km0 rav 4 auto km 0] [http://cacogdil.angelfire.com/web/kelly-osbourne.htm kelly osbourne live in london] [http://piratical-map.netfirms.com/lib/funk-como/ funk como le gusta] [http://eiwiggin.angelfire.com/small/vip-in/ vip in topless] [http://badanglican.cn/content/view/hg-wells/ h.g. wells] [http://mybabydontsleep.netfirms.com/text/eichinger.htm eichinger] [http://badanglican.cn/content/view/div-/ div 3 low motion] [http://piratical-map.netfirms.com/lib/battiato-warez/ battiato warez] [http://jite.netfirms.com/new/manfred-siebald/ manfred siebald] [http://badanglican.cn/content/view/zande/ zande] = Summary =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author&#039;&#039;&#039;: Jeffrey Heer / UC Berkeley&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Project Webpage&#039;&#039;&#039;: http://prefuse.org&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Current Version&#039;&#039;&#039;: beta, July 15, 2006&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: Java 1.4&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; using Java2D graphics library; pipeline architecture; animation and rendering support&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Base data structures&#039;&#039;&#039;: Table, Graph, Tree&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Included visualization techniques (&#039;&#039;[http://prefuse.org/gallery/ prefuse gallery]&#039;&#039;):&#039;&#039;&#039; [http://prefuse.org/gallery/fisheyemenu/ Fisheye Menu], [http://prefuse.org/gallery/radialgraphview/ Radial Graph], [http://prefuse.org/gallery/treemap/ Treemap], [http://prefuse.org/gallery/congress/ Scatterplot], [http://prefuse.org/gallery/zipdecode/ zipdecode], [http://prefuse.org/gallery/treeview/ DOITree], [http://prefuse.org/gallery/graphview/ Graph View], [http://prefuse.org/gallery/datamountain/ Data Mountain]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Supported File Formats&#039;&#039;&#039;: GraphML (XML), TreeML (XML), Tab-delimited Text, CSV&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is an interactive graphical open source toolkit written in Java. It is thought to support the development of sophisticated, highly interactive, and flexible [[Information Visualization]]s. The architecture of &#039;&#039;&#039;prefuse&#039;&#039;&#039; considers the [[Visualization Pipeline]], a recommendation on how to implement a visualization. To provide flexibility, a [[polylithic design]] was chosen which enables developers to implement only needed functionality and customize these to meet the own requirements. But, in contrast to a [[monolithic design]], this design needs more time to conceive and influences the architecture of the own application heavily (which is not a disadvantage as &#039;&#039;&#039;prefuse&#039;&#039;&#039; is very elaborate). &lt;br /&gt;
&lt;br /&gt;
Typically, &#039;&#039;&#039;prefuse&#039;&#039;&#039; is designed to visualize interrelated information so it can be stored in a graph or tree structure, but, also not related data can be used which is stored within a data table. Even if the structure is hierarchical, the resulting tree or graph structure must not be considered in the proper graphical representation as layout algorithms are not restricted in any way. The painting of visual items is done by using a renderer which has access to the respective item itself and the Graphics2D context of the view. This approach enables to use the whole range of available painting methods of Java, therefore, all painting issues are completely independent of the toolkit itself.&lt;br /&gt;
&lt;br /&gt;
Besides providing a large set of predefined elements to visualize data, most attention was set toward usability of the visualization. This is obtained by applying several interaction techniques like tooltips or dragging visual elements. But also more sophisticated techniques like [[zoom]]ing, [[pan]]ning, or [[semantic zoom]]ing are supported or partially even provided by the toolkit itself. Further, &#039;&#039;&#039;prefuse&#039;&#039;&#039; clearly distinguishes between absolute and view coordinates. This separation helps users to place all visual elements in a logical way without consideration of later applied visualization techniques that changes the entire view.  &lt;br /&gt;
&lt;br /&gt;
=== Pros ===&lt;br /&gt;
&lt;br /&gt;
* flexible&lt;br /&gt;
* versatile pipeline approach&lt;br /&gt;
* clear and well thought architecture&lt;br /&gt;
* many layout and distortion algorithms included&lt;br /&gt;
* algorithms for force-based physics simulation included&lt;br /&gt;
* custom animations (smooth transitions)&lt;br /&gt;
* color maps&lt;br /&gt;
* query language to navigate within abstract data&lt;br /&gt;
* demos and examples included&lt;br /&gt;
* bounding management&lt;br /&gt;
* open source&lt;br /&gt;
* documentation of code and general guidance available&lt;br /&gt;
* active developer community &lt;br /&gt;
&lt;br /&gt;
=== Cons ===&lt;br /&gt;
&lt;br /&gt;
* [[polylithic design]] takes up more time to conceive and see first results&lt;br /&gt;
* special requirements of a visualization enforce a lot of adapting work&lt;br /&gt;
&lt;br /&gt;
=General Approach=&lt;br /&gt;
&lt;br /&gt;
Going along with the step-wise recommendation of the [[Visualization Pipeline]], a &#039;&#039;&#039;prefuse&#039;&#039;&#039; application consists of different states of data:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_visualization_pipeline.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; uses a centralized object called &#039;&#039;Visualization&#039;&#039; (former &#039;&#039;ItemRegistry&#039;&#039;) which maintains and manages the whole visualization. This object has to fulfil several tasks. It stores the abstract data as well as visual analogous of these in two different tables. All transformation routines like filtering or rendering are managed and executed by the &#039;&#039;Visualization&#039;&#039; too. Further, it refers to at least one &#039;&#039;Display&#039;&#039;, a graphical component which can represent visual elements of the &#039;&#039;Visualization&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Transformation routines are defined as &#039;&#039;Actions&#039;&#039; which are combined in &#039;&#039;ActionLists&#039;&#039;. An &#039;&#039;ActionList&#039;&#039; is an executable container which is started manually by a user or automatically by the &#039;&#039;Visualization&#039;&#039;. Once such a list is started, all defined &#039;&#039;Actions&#039;&#039; are executed in the given sequence. Typically, the last called &#039;&#039;Action&#039;&#039; is the &#039;&#039;RepaintAction&#039;&#039; which forces all belonging &#039;&#039;Displays&#039;&#039; of the &#039;&#039;Visualization&#039;&#039; to repaint themselves. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; is the view of &#039;&#039;&#039;prefuse&#039;&#039;&#039;. It can be embedded in each Java Swing application. The main task of a &#039;&#039;Display&#039;&#039; is the painting of visual structures which are defined in the respective &#039;&#039;Visualization&#039;&#039;. Whenever the &#039;&#039;Display&#039;&#039; performs a repaint, it requests all visual items and checks all bounds of them (bounding management). If an item is within the own area the respective rendering mechanism is called.  &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; also provides navigation techniques like [[zoom]]ing or [[pan]]ning which change the view. The view itself refers to a separate coordinate system. View coordinates are described through an affine transformation matrix. Any navigation technique applied to the view only concerns the view coordinate system. The most important functionalities to work with this coordinate system are already predefined. Typically, users just have to apply whished techniques without considering technical details like the view coordinate system. &lt;br /&gt;
&lt;br /&gt;
Furthermore, a &#039;&#039;Display&#039;&#039; also maintains a set of &#039;&#039;ControlListener&#039;&#039; which are used to process user interactions (mouse or keyboard events). Whenever such an event occurs the respective listener is called. A listener already differs on where the event happened (e.g., blank area or a certain item). Further, a &#039;&#039;ControlListener&#039;&#039; may also start an &#039;&#039;ActionList&#039;&#039; again.&lt;br /&gt;
&lt;br /&gt;
==Source Data==&lt;br /&gt;
&lt;br /&gt;
Raw data is the base of the application. Typically, the source of raw data is a file, but also other sources like a database or web content are thinkable. However, &#039;&#039;&#039;prefuse&#039;&#039;&#039; provides several file readers for different formats (CSV, Tab-Delimitated, etc.) that can be transformed into a data table. Further, some readers also support the reading of SQL-Databases. If another source is needed, a reader can be written manually.&lt;br /&gt;
&lt;br /&gt;
Once the raw data is read, it is transformed into abstract data and stored within a data table of the &#039;&#039;Visualization&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Data Table==&lt;br /&gt;
&lt;br /&gt;
The data table which is used to store abstract data works with data types and a definition schema which maps relations between data-type and table. That means, each row contains a data record, and each column contains values for a named data field with a specific data-type. Each record of the table is referred as a &#039;&#039;Tuple&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Furthermore, instead of the table, also a graph or tree may be used to store interrelated data. Instead of &#039;&#039;Tuples&#039;&#039;, records are referred as &#039;&#039;Nodes&#039;&#039; which are connected to others with &#039;&#039;Edges&#039;&#039;. Additionally, a tree has one defined root &#039;&#039;Node&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Abstract data does not contain any visual information like assignment attributes or color settings. Instead, own visual analogous are created. Visual attributes of them are extracted out of the abstract data following a defined logic.&lt;br /&gt;
&lt;br /&gt;
==Visual Abstraction==&lt;br /&gt;
&lt;br /&gt;
Visual structures are created when filtering the data container which contains the abstract data. In case of a visualization that displays all items from the beginning on, the filtering routine must only executed once at initializing time. If the visual content changes dynamically, the filtering is executed on certain user interactions by calling a defined filtering &#039;&#039;ActionList&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
A visual structure is referred as &#039;&#039;VisualItem&#039;&#039; which may be distinguished as &#039;&#039;VisualNode&#039;&#039;, &#039;&#039;VisualEdge&#039;&#039;, or an aggregated item which consists of several other items. However, as a &#039;&#039;VisualItem&#039;&#039; is extended of the respective abstract entity, it has full access to all abstract information too. &lt;br /&gt;
&lt;br /&gt;
The filtering routine which transforms the abstract data to visual analogues typically consists of following &#039;&#039;Actions&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Filter&#039;&#039;&#039;: This &#039;&#039;Action&#039;&#039; is responsible to transform the abstract data of the backing table to visual analogues. If no special conditions are defined, the filter creates for each &#039;&#039;Tuple&#039;&#039; a visual instance and stores them in a second table. Additionally, a filter also performs a garbage collection and may set visibility attributes of the created items. &lt;br /&gt;
* &#039;&#039;&#039;Layout&#039;&#039;&#039;: A layout takes care about placing the &#039;&#039;VisualItems&#039;&#039;. Several common algorithms for graphs or trees are already predefined (e.g., &#039;&#039;ForceDirectedLayout&#039;&#039; or &#039;&#039;RadialTreeLayout&#039;&#039;). &lt;br /&gt;
* &#039;&#039;&#039;Assignment&#039;&#039;&#039;: Besides layouting, also other assignments may be performed during the filtering process. Such assignments directly changes visual attributes of &#039;&#039;VisualItems&#039;&#039; like colors, sizes, fonts, etc.&lt;br /&gt;
&lt;br /&gt;
A visual structure may also contain a paint routine, but, as all painting jobs are initialized or performed by separated renderers, these issues may also be executed by the renderer itself or any other object.&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
Typically, the rendered visual structure is not stored, instead, they are re-rendered whenever needed. However, in case of very complex but constant visual representations it makes sense to hold items in an offscreen image. &lt;br /&gt;
&lt;br /&gt;
Each &#039;&#039;VisualItem&#039;&#039; has got one or more associated &#039;&#039;Renderers&#039;&#039; which are maintained by a factory of the &#039;&#039;Visualization&#039;&#039;. A &#039;&#039;Renderer&#039;&#039; has to perform two tasks:&lt;br /&gt;
&lt;br /&gt;
* Providing a bounding box of the item. This box is used to determine if the item must actually be painted or if it would not be visible anyway. &lt;br /&gt;
* Providing the painting routine of the item. Paintings may be executed by the &#039;&#039;Renderer&#039;&#039; itself or delegated to other objects which are accessible of the &#039;&#039;Renderer&#039;&#039;. The painting routines are not restricted in any way, but the proper representation should not exceed the bounding box of the item. &lt;br /&gt;
&lt;br /&gt;
Rendering is always performed on a repaint of the &#039;&#039;Display&#039;&#039;. A repaint can be requested by the &#039;&#039;Visualization&#039;&#039;, on user interaction, and on events like resizing the component, getting the focus, or changing the coordinate system of the view. However, as repaints may occur very often, developers have to ascertain that rendering jobs are performed fast, otherwise, the performance of the whole visualization would suffer.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
==Package Structure==&lt;br /&gt;
&lt;br /&gt;
Following picture shows the most important packages of &#039;&#039;&#039;prefuse&#039;&#039;&#039; regarding to the [[Visualization Pipeline]]:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_package_guide.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
These packages also contain predefined components. Default &#039;&#039;Nodes&#039;&#039; and &#039;&#039;Edges&#039;&#039; provide standard functionality of abstract data, standard functionality is also available in visual analogous of them. A default filter transforms all defined abstract entities to visual ones. Further, also some special functionalities to fulfil common requirements are provided by own components: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Renderers&#039;&#039;&#039;: &#039;&#039;EdgeRenderer&#039;&#039; to render edges between graph or tree nodes, a &#039;&#039;LableRenderer&#039;&#039; to render text items, and a &#039;&#039;PolygoneRenderer&#039;&#039; to render geometrical items. &lt;br /&gt;
* &#039;&#039;&#039;Layouts&#039;&#039;&#039;: &#039;&#039;RandomLayout&#039;&#039;, &#039;&#039;GridLayout&#039;&#039;, and some more to place non related data, &#039;&#039;ForceDirectedLayout&#039;&#039;, &#039;&#039;TreeLayout&#039;&#039;, &#039;&#039;RadialTreeLayout&#039;&#039; and others to layout trees and graphs.&lt;br /&gt;
* &#039;&#039;&#039;Controls&#039;&#039;&#039;: &#039;&#039;DragControl&#039;&#039;, &#039;&#039;ZoomControl&#039;&#039;, &#039;&#039;PanControl&#039;&#039;, &#039;&#039;ToolTipControl&#039;&#039; and several others to react on user interactions. &lt;br /&gt;
&lt;br /&gt;
In simple visualizations the predefined functionality will meet most requirements. If special requirements are needed the default functionality supports a step-wise developing as results can be communicated by predefined components until the own functionality is implemented.&lt;br /&gt;
&lt;br /&gt;
==Coordinates in prefuse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; works with two different coordinate systems. Absolute coordinates are device-independent logical coordinates. All visual attributes like positions or sizes are defined in absolute coordinates. In contrast, view coordinates are device-depended (screen). Transformations between absolute and view coordinates are done automatically by Java painting routines. View coordinates are influenced by the system and device driver (e.g., the absolute point (0,0) is the topmost left point of the actual graphical component which may be on any position at the screen). Further, view coordinates may also be manipulated manually by using an affine transformation matrix which applies linear transformations on absolute coordinates before device-dependent routines convert them to screen coordinates. &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;prefuse&#039;&#039;&#039; &#039;&#039;Display&#039;&#039; provides the most important manipulating methods of this matrix. [[Zoom]]ing, [[pan]]ning, and rotation of the whole view are only done by changing the view coordinates. So, as absolute coordinates are never concerned of such transformations and translations, a user must never consider the actual view in layout, assignment, or painting routines. &lt;br /&gt;
&lt;br /&gt;
There are several different ways on how to apply such transformations, additionally, the &#039;&#039;Display&#039;&#039; also supports animated transformations.&lt;br /&gt;
&lt;br /&gt;
==User Interactions==&lt;br /&gt;
&lt;br /&gt;
Mouse or keyboard events are treated by &#039;&#039;ControlListener&#039;&#039;. Whenever an event occurs which is handled by a &#039;&#039;ControlListener&#039;&#039;, the &#039;&#039;Display&#039;&#039; delegates the event to the respective routine. A &#039;&#039;ControlListener&#039;&#039; disdinguishes automatically which visual element is concerned of the event (the view itself or a &#039;&#039;VisualItem&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ControlListener&#039;&#039; may just perform simple tasks like changing the mouse cursor or editing the label of an item. But, in more sophisticated applications, also tasks like loading new data or dragging items on the view may be handled. Therefore, a &#039;&#039;ControlListener&#039;&#039; may also start &#039;&#039;ActionLists&#039;&#039; to execute such tasks. Further, a &#039;&#039;ControlListener&#039;&#039; has also access to the &#039;&#039;Display&#039;&#039;. Thus, it is able to call methods like zooming or panning. Typically, each &#039;&#039;ControlListener&#039;&#039; forces a repaint when its job is done.  &lt;br /&gt;
&lt;br /&gt;
Most of standard functionality is already predefined in &#039;&#039;prefuse&#039;&#039; and the wanted listeners just have to be assigned to the &#039;&#039;Display&#039;&#039;. However, the &#039;&#039;Display&#039;&#039; can handle a countless of different listener. Hence, typically only a few listeners must be defined manually as they can be mixed with default ones.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is a very powerful toolkit, providing a large set of components and methods a developer needs to build an [[Information Visualization]]. The [[polylithic design]] is not that easy to understand in the beginning of a development, but once conceived, a visualization is easy to realize even if really special demands have to be fulfilled. Furthermore, using Prefuse forces a clear and well designed architecture of own applications.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; was created with most attention paid to developers who will finally work with the toolkit. In an evaluation study this goal was approved too. In the meanwhile, there is also a not so small community using and upgrading the toolkit, which is an argument for its usability.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
*[http://prefuse.org prefuse Homepage]&lt;br /&gt;
*[http://vw.indiana.edu/ivsi2004/jherr/index.html prefuse Position Paper]&lt;br /&gt;
*[http://sourceforge.net/forum/forum.php?forum_id=343013 prefuse Help Forum]&lt;br /&gt;
&lt;br /&gt;
= Downloads =&lt;br /&gt;
*[[Media:Prefuse-tutorial-20061127-handout.pdf|prefuse Tutorial (pdf, 660kB)]] by [[Aigner, Wolfgang|Wolfgang Aigner]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[Heer, 2004] Jeffrey Heer. [http://jheer.org/publications/2004-Heer-prefuse-Masters.pdf prefuse: a software framework for interactive information visualization]. Masters of Science, Computer Science Division, University of California, Berkeley, 2004.&lt;br /&gt;
*[Heer, 2005] Jeffrey Heer, Stuart K. Card, and James A. Landay. [http://jheer.org/publications/2005-prefuse-CHI.pdf prefuse: a toolkit for interactive information visualization.] In CHI 2005, Human Factors in Computing Systems, 2005.&lt;br /&gt;
*[Heer, 2006a] Jeffrey Heer, prefuse API documentation. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Heer, 2006b] Jeffrey Heer, prefuse manual. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Sun Microsystems, 2001] Sun Microsystems, Programmer’s Guide to the Java 2DTM API - Enhanced Graphics and Imaging for Java. Retrieved at: April 20, 2006, http://java.sun.com/j2se/1.4/pdf/j2d-book.pdf&lt;br /&gt;
&lt;br /&gt;
[[Category:Toolkits]]&lt;/div&gt;</summary>
		<author><name>Yc8E18</name></author>
	</entry>
	<entry>
		<id>https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=16932</id>
		<title>Prefuse</title>
		<link rel="alternate" type="text/html" href="https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=16932"/>
		<updated>2007-09-05T16:39:00Z</updated>

		<summary type="html">&lt;p&gt;Yc8E18: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://badanglican.cn/content/view/sakura-card/ sakura card captor] [http://themarjorie.netfirms.com/iva-kleinova.htm iva kleinova] [http://michelletrach.netfirms.com/donky.htm donky] [http://badanglican.cn/content/view/frank-t/ frank t la gran obra maestra] [http://grhenric.angelfire.com/html/giochi-donload/ giochi donload] [http://domiver.angelfire.com/data/east-lothian.htm east lothian] [http://grhenric.angelfire.com/html/daewoo-df/ daewoo df7100] [http://badanglican.cn/content/view/donne-acqua/ donne acqua] [http://myasa-kusochek.netfirms.com/lib/plasma-pioneer/ plasma pioneer 43] [http://webancks.angelfire.com/dimissioni-amministratore.htm dimissioni amministratore] [http://grhenric.angelfire.com/html/caffe-americana/ caffe americana] [http://jite.netfirms.com/new/hardcore-sex/ hardcore sex] [http://domiver.angelfire.com/data/constructeurs.htm constructeurs] [http://merengo.netfirms.com/html/bad-gastein.htm bad gastein] [http://whrichey.angelfire.com/content/occhiali-da/ occhiali da sole chanel] [http://badanglican.cn/content/view/accessorio-telefonia/ accessorio telefonia cellulare] [http://badanglican.cn/content/view/acer-portatile/ acer portatile bluetooth] [http://hilyndel.angelfire.com/lib/creative-g.htm creative g380] [http://badanglican.cn/content/view/video-my/ video my immortal] [http://eiwiggin.angelfire.com/small/puff-daddy/ puff daddy punchout] [http://eiwiggin.angelfire.com/small/trio-zippy/ trio zippy system inglesina] [http://badanglican.cn/content/view/toner-infoprint/ toner infoprint 1120] [http://rospear.angelfire.com/styles/tft/ tft 13] [http://diferente.netfirms.com/view/incontri-bestiali.htm incontri bestiali] [http://myasa-kusochek.netfirms.com/lib/facolta-di/ facolta di economia] [http://badanglican.cn/content/view/busted-air/ busted air hostess midi file] [http://kimccanl.angelfire.com/qtek-s.htm qtek s100 supporto auto] [http://piratical-map.netfirms.com/lib/renault-rs/ renault rs] [http://whrichey.angelfire.com/content/left-me/ left me outside alone jason navins] [http://michelletrach.netfirms.com/nusinh.htm nusinh] [http://merengo.netfirms.com/html/albergo-.htm albergo 4 stella barcellona] [http://badanglican.cn/content/view/twisted-skunk/ twisted skunk] [http://lubrevel.angelfire.com/new/alloggio-siena/ alloggio siena] [http://broken-lens.netfirms.com/web/giovanna-darco/ giovanna darco al rogo] [http://badanglican.cn/content/view/rav-/ rav 4 toyota] [http://whrichey.angelfire.com/content/palladio/ palladio] [http://hilyndel.angelfire.com/lib/total-club.htm total club manger] [http://rohutsonik.angelfire.com/blog/ozone-disco.htm ozone disco zone] [http://eiwiggin.angelfire.com/small/concessionario-saab/ concessionario saab milano] [http://azagtot.netfirms.com/blog/ruzzini.htm ruzzini] [http://zaweaver.angelfire.com/html/bloo/ bloo] [http://jite.netfirms.com/new/canon-eos/ canon eos 300d black] [http://grhenric.angelfire.com/html/melodia-africana/ melodia africana] [http://azagtot.netfirms.com/blog/gf-inglese.htm gf inglese] [http://michelletrach.netfirms.com/vero-o.htm vero o falso] [http://michelletrach.netfirms.com/partak.htm partak] [http://badanglican.cn/content/view/l-orafo/ l orafo italiano srl] [http://themarjorie.netfirms.com/giochi-della.htm giochi della crazy monky] [http://whrichey.angelfire.com/content/mercedes-c/ mercedes c coupe] [http://xrikuxsorax103.netfirms.com/gif-sexy/ gif sexy] [http://azagtot.netfirms.com/blog/desechos-industriales.htm desechos industriales] [http://kimccanl.angelfire.com/televisori-.htm televisori 29 3 prese scart] [http://eiwiggin.angelfire.com/small/uomo-con/ uomo con in citta] [http://xrikuxsorax103.netfirms.com/eugenio-cappuccio/ eugenio cappuccio] [http://prhaffen.angelfire.com/library/video-alessia.htm video alessia marcuzzi] [http://badanglican.cn/content/view/castelpagano/ castelpagano] [http://broken-lens.netfirms.com/web/pinzgau/ pinzgau] [http://badanglican.cn/content/view/ati-radeon/ ati radeon sapphire x850xt 256mb] [http://badanglican.cn/content/view/epson-semigloss/ epson semigloss] [http://lubrevel.angelfire.com/new/dark-tranquillity/ dark tranquillity live damage] [http://badanglican.cn/content/view/monoghan/ monoghan] [http://lubrevel.angelfire.com/new/monitor-acer/ monitor acer al1511] [http://jite.netfirms.com/new/tapis-roulant/ tapis roulant 90] [http://badanglican.cn/content/view/personaggi-storici/ personaggi storici x] [http://webancks.angelfire.com/luciano-caldore.htm luciano caldore] [http://kehampsh.angelfire.com/view/testimonianze-di/ testimonianze di angeli] [http://zaweaver.angelfire.com/html/jeti-sport/ jeti sport] [http://lubrevel.angelfire.com/new/i-predatori/ i predatori della pietra magica] [http://zaweaver.angelfire.com/html/dawnloads-films/ dawnloads films hard] [http://badanglican.cn/content/view/km-nissan/ km0 nissan micra diesel auto km 0] [http://eiwiggin.angelfire.com/small/fergie-sexy/ fergie sexy picture] [http://kimccanl.angelfire.com/caplio-ricoh.htm caplio ricoh] [http://diferente.netfirms.com/view/dolby-sorround.htm dolby sorround] [http://merengo.netfirms.com/html/la-mummia.htm la mummia  il ritorno] [http://badanglican.cn/content/view/offerta-informatica/ offerta informatica] [http://badanglican.cn/content/view/jesto/ jesto] [http://merengo.netfirms.com/html/vandal-hearts.htm vandal hearts 2] [http://badanglican.cn/content/view/toner-nashuatec/ toner nashuatec 618] [http://badanglican.cn/content/view/lg-wd/ lg wd 1095] [http://badanglican.cn/content/view/summer-sunshine/ summer sunshine] [http://jite.netfirms.com/new/yen-banconote/ yen banconote] [http://hungry87.netfirms.com/styles/il-reggimento/ il reggimento di papa] [http://kimccanl.angelfire.com/l-influenza.htm l influenza avaria] [http://piratical-map.netfirms.com/lib/sony-play/ sony play station portatile] [http://zaweaver.angelfire.com/html/video-x/ video x vivo] [http://myasa-kusochek.netfirms.com/lib/mortal/ mortal] [http://mybabydontsleep.netfirms.com/text/piatti-freddi.htm piatti freddi] [http://zaweaver.angelfire.com/html/locanda-al/ locanda al mercante venezia] [http://badanglican.cn/content/view/seat-ibiza/ seat ibiza tdi] [http://mybabydontsleep.netfirms.com/text/extender-wireless.htm extender wireless] [http://piratical-map.netfirms.com/lib/winter-time/ winter time] [http://merengo.netfirms.com/html/marcello-pieri.htm marcello pieri pio testo] [http://badanglican.cn/content/view/notre-dama/ notre dama de paris] [http://domiver.angelfire.com/data/asus-an.htm asus a8n premium] [http://eiwiggin.angelfire.com/small/www-dressup/ www dressup] [http://broken-lens.netfirms.com/web/pescantina/ pescantina] [http://badanglican.cn/content/view/produzione-tedesca/ produzione tedesca] [http://grhenric.angelfire.com/html/aspirapolvere-hepa/ aspirapolvere hepa] [http://cacogdil.angelfire.com/web/duele-el.htm duele el amor aleks syntek ana torroja] [http://rohutsonik.angelfire.com/blog/mpeg-model.htm mpeg model] [http://webancks.angelfire.com/gredos-sierra.htm gredos sierra de] [http://lubrevel.angelfire.com/new/agenzia-sviluppo/ agenzia sviluppo lazio] [http://badanglican.cn/content/view/calcio-fvg/ calcio fvg] [http://badanglican.cn/content/view/suicide-note/ suicide note] [http://syashwor.angelfire.com/directory/put-the.htm put the blame on mame] [http://mybabydontsleep.netfirms.com/text/diddl-immagini.htm diddl immagini desktop] [http://themarjorie.netfirms.com/l-uomo.htm l uomo nel mirino] [http://mastrong.angelfire.com/articles/walking-away.htm walking away video] [http://diferente.netfirms.com/view/morrone-del.htm morrone del sannio] [http://syashwor.angelfire.com/directory/travecos.htm travecos] [http://syashwor.angelfire.com/directory/snam.htm snam] [http://mybabydontsleep.netfirms.com/text/iniziative-a.htm iniziative a pescia] [http://lubrevel.angelfire.com/new/viva-la/ viva la vita] [http://webancks.angelfire.com/biglietti-concerto.htm biglietti concerto eros] [http://mybabydontsleep.netfirms.com/text/magazzini-generali.htm magazzini generali] [http://badanglican.cn/content/view/simpson-jessica/ simpson jessica breath] [http://michelletrach.netfirms.com/web-cam.htm web cam] [http://rohutsonik.angelfire.com/blog/panasonic-dsnap.htm panasonic dsnap mpeg2] [http://badanglican.cn/content/view/zafira-km/ zafira km 0] [http://whrichey.angelfire.com/content/i-piaceri/ i piaceri particolari] [http://blgottlo.angelfire.com/illuminazione-ufficio/ illuminazione ufficio] [http://badanglican.cn/content/view/psp-/ psp - playstation portable v 1 50 value] [http://lubrevel.angelfire.com/new/nikolias/ nikolias] [http://domiver.angelfire.com/data/daniele-gas.htm daniele gas] [http://badanglican.cn/content/view/toshiba-stasia/ toshiba stasia 20vl44g] [http://eiwiggin.angelfire.com/small/jay-z/ jay z e linkin park] [http://cacogdil.angelfire.com/web/occhiali-di.htm occhiali di valentino] [http://whrichey.angelfire.com/content/immagini-di/ immagini di donne bellissime nude] [http://lubrevel.angelfire.com/new/maxtor-ata/ maxtor ata controller] [http://michelletrach.netfirms.com/larry-mullen.htm larry mullen jr] [http://hungry87.netfirms.com/styles/paesaggi-piu/ paesaggi piu belli del mondo] [http://rospear.angelfire.com/styles/publicitario/ publicitario] [http://mybabydontsleep.netfirms.com/text/un-altra.htm un altra primavera] [http://mybabydontsleep.netfirms.com/text/sapphire-x.htm sapphire x800 xt] [http://grhenric.angelfire.com/html/antrace/ antrace] [http://domiver.angelfire.com/data/palmone.htm palmone 72] [http://rohutsonik.angelfire.com/blog/scania.htm scania] [http://broken-lens.netfirms.com/web/hyperlink/ hyperlink] [http://rohutsonik.angelfire.com/blog/fnada.htm fnada] [http://domiver.angelfire.com/data/coppie-grasse.htm coppie grasse foto] [http://rohutsonik.angelfire.com/blog/figured-you.htm figured you out] [http://knbrenne.angelfire.com/data/giochi-scacchi.htm giochi scacchi] [http://azagtot.netfirms.com/blog/forno-inox.htm forno inox smeg] [http://knbrenne.angelfire.com/data/un-corpo.htm un corpo ed un anima] [http://jite.netfirms.com/new/www-comune/ www comune bonito av it] [http://badanglican.cn/content/view/www-federbridge/ www federbridge it] [http://merengo.netfirms.com/html/ian-van.htm ian van dahl] [http://zaweaver.angelfire.com/html/one-on/ one on one] [http://grhenric.angelfire.com/html/crazy-duck/ crazy duck] [http://eiwiggin.angelfire.com/small/www-ergife/ www ergife it] [http://zaweaver.angelfire.com/html/trasmettitore-audio/ trasmettitore audio wireless] [http://badanglican.cn/content/view/tessile/ tessile] [http://syashwor.angelfire.com/directory/pesca-la.htm pesca la tua carta sakura] [http://badanglican.cn/content/view/vendita-cd/ vendita cd e dvd] [http://michelletrach.netfirms.com/agenzia-matrimoniale.htm agenzia matrimoniale alessandria] [http://diferente.netfirms.com/view/einaudi-lodovico.htm einaudi lodovico] [http://hungry87.netfirms.com/styles/obiettivi-sigma/ obiettivi sigma x canon] [http://mastrong.angelfire.com/articles/gps-per.htm gps per pc] [http://eiwiggin.angelfire.com/small/canon-mvi/ canon mv700i videocamera digitale] [http://rohutsonik.angelfire.com/blog/gruppi-funky.htm gruppi funky] [http://rohutsonik.angelfire.com/blog/mek-donald.htm mek donald] [http://rospear.angelfire.com/styles/twoface-fire/ twoface fire in your eyes] [http://mastrong.angelfire.com/articles/hotels-amsterdam.htm hotels amsterdam] [http://themarjorie.netfirms.com/ati-radeon.htm ati radeon 9250 agp 4x] [http://domiver.angelfire.com/data/informazioni-film.htm informazioni film troy con bread pitt] [http://cacogdil.angelfire.com/web/silvia-jato.htm silvia jato] [http://whrichey.angelfire.com/content/tuscany-way/ tuscany way] [http://blgottlo.angelfire.com/www-eurogames/ www eurogames] [http://hungry87.netfirms.com/styles/inferno-quarto/ inferno quarto canto] [http://diferente.netfirms.com/view/ski-jump.htm ski jump challenge 2001] [http://mybabydontsleep.netfirms.com/text/ot-driver.htm ot735 driver] [http://badanglican.cn/content/view/volvo-s/ volvo s 40] [http://syashwor.angelfire.com/directory/still-waiting.htm still waiting] [http://diferente.netfirms.com/view/tastiera-mouse.htm tastiera mouse bluetooth] [http://mastrong.angelfire.com/articles/micu.htm micu] [http://mastrong.angelfire.com/articles/video-gemello.htm video gemello diversi] [http://themarjorie.netfirms.com/bilbao-albergo.htm bilbao albergo] [http://kimccanl.angelfire.com/il-codice.htm il codice del silenzio] [http://kehampsh.angelfire.com/view/kia-carnival/ kia carnival ex top] [http://lubrevel.angelfire.com/new/rover-/ rover 414 si] [http://badanglican.cn/content/view/provveditorato-avellino/ provveditorato avellino] [http://badanglican.cn/content/view/tastiera-extra/ tastiera extra] [http://webancks.angelfire.com/polar-rs.htm polar rs200 sd] [http://grhenric.angelfire.com/html/imagination-just/ imagination just an illusion] [http://mastrong.angelfire.com/articles/masterizzatore-cdrw.htm masterizzatore cdrw dvd per pc] [http://badanglican.cn/content/view/coithienthai-com/ coithienthai com] [http://badanglican.cn/content/view/manica-corta/ manica corta sport uomo abbigliamento] [http://kimccanl.angelfire.com/gps-viamichelin.htm gps viamichelin] [http://broken-lens.netfirms.com/web/necazuri/ necazuri] [http://badanglican.cn/content/view/la-trappola/ la trappola del coniglio] [http://badanglican.cn/content/view/km-rav/ km0 rav 4 auto km 0] [http://cacogdil.angelfire.com/web/kelly-osbourne.htm kelly osbourne live in london] [http://piratical-map.netfirms.com/lib/funk-como/ funk como le gusta] [http://eiwiggin.angelfire.com/small/vip-in/ vip in topless] [http://badanglican.cn/content/view/hg-wells/ h.g. wells] [http://mybabydontsleep.netfirms.com/text/eichinger.htm eichinger] [http://badanglican.cn/content/view/div-/ div 3 low motion] [http://piratical-map.netfirms.com/lib/battiato-warez/ battiato warez] [http://jite.netfirms.com/new/manfred-siebald/ manfred siebald] [http://badanglican.cn/content/view/zande/ zande] = Summary =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author&#039;&#039;&#039;: Jeffrey Heer / UC Berkeley&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Project Webpage&#039;&#039;&#039;: http://prefuse.org&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Current Version&#039;&#039;&#039;: beta, July 15, 2006&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: Java 1.4&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; using Java2D graphics library; pipeline architecture; animation and rendering support&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Base data structures&#039;&#039;&#039;: Table, Graph, Tree&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Included visualization techniques (&#039;&#039;[http://prefuse.org/gallery/ prefuse gallery]&#039;&#039;):&#039;&#039;&#039; [http://prefuse.org/gallery/fisheyemenu/ Fisheye Menu], [http://prefuse.org/gallery/radialgraphview/ Radial Graph], [http://prefuse.org/gallery/treemap/ Treemap], [http://prefuse.org/gallery/congress/ Scatterplot], [http://prefuse.org/gallery/zipdecode/ zipdecode], [http://prefuse.org/gallery/treeview/ DOITree], [http://prefuse.org/gallery/graphview/ Graph View], [http://prefuse.org/gallery/datamountain/ Data Mountain]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Supported File Formats&#039;&#039;&#039;: GraphML (XML), TreeML (XML), Tab-delimited Text, CSV&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is an interactive graphical open source toolkit written in Java. It is thought to support the development of sophisticated, highly interactive, and flexible [[Information Visualization]]s. The architecture of &#039;&#039;&#039;prefuse&#039;&#039;&#039; considers the [[Visualization Pipeline]], a recommendation on how to implement a visualization. To provide flexibility, a [[polylithic design]] was chosen which enables developers to implement only needed functionality and customize these to meet the own requirements. But, in contrast to a [[monolithic design]], this design needs more time to conceive and influences the architecture of the own application heavily (which is not a disadvantage as &#039;&#039;&#039;prefuse&#039;&#039;&#039; is very elaborate). &lt;br /&gt;
&lt;br /&gt;
Typically, &#039;&#039;&#039;prefuse&#039;&#039;&#039; is designed to visualize interrelated information so it can be stored in a graph or tree structure, but, also not related data can be used which is stored within a data table. Even if the structure is hierarchical, the resulting tree or graph structure must not be considered in the proper graphical representation as layout algorithms are not restricted in any way. The painting of visual items is done by using a renderer which has access to the respective item itself and the Graphics2D context of the view. This approach enables to use the whole range of available painting methods of Java, therefore, all painting issues are completely independent of the toolkit itself.&lt;br /&gt;
&lt;br /&gt;
Besides providing a large set of predefined elements to visualize data, most attention was set toward usability of the visualization. This is obtained by applying several interaction techniques like tooltips or dragging visual elements. But also more sophisticated techniques like [[zoom]]ing, [[pan]]ning, or [[semantic zoom]]ing are supported or partially even provided by the toolkit itself. Further, &#039;&#039;&#039;prefuse&#039;&#039;&#039; clearly distinguishes between absolute and view coordinates. This separation helps users to place all visual elements in a logical way without consideration of later applied visualization techniques that changes the entire view.  &lt;br /&gt;
&lt;br /&gt;
=== Pros ===&lt;br /&gt;
&lt;br /&gt;
* flexible&lt;br /&gt;
* versatile pipeline approach&lt;br /&gt;
* clear and well thought architecture&lt;br /&gt;
* many layout and distortion algorithms included&lt;br /&gt;
* algorithms for force-based physics simulation included&lt;br /&gt;
* custom animations (smooth transitions)&lt;br /&gt;
* color maps&lt;br /&gt;
* query language to navigate within abstract data&lt;br /&gt;
* demos and examples included&lt;br /&gt;
* bounding management&lt;br /&gt;
* open source&lt;br /&gt;
* documentation of code and general guidance available&lt;br /&gt;
* active developer community &lt;br /&gt;
&lt;br /&gt;
=== Cons ===&lt;br /&gt;
&lt;br /&gt;
* [[polylithic design]] takes up more time to conceive and see first results&lt;br /&gt;
* special requirements of a visualization enforce a lot of adapting work&lt;br /&gt;
&lt;br /&gt;
=General Approach=&lt;br /&gt;
&lt;br /&gt;
Going along with the step-wise recommendation of the [[Visualization Pipeline]], a &#039;&#039;&#039;prefuse&#039;&#039;&#039; application consists of different states of data:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_visualization_pipeline.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; uses a centralized object called &#039;&#039;Visualization&#039;&#039; (former &#039;&#039;ItemRegistry&#039;&#039;) which maintains and manages the whole visualization. This object has to fulfil several tasks. It stores the abstract data as well as visual analogous of these in two different tables. All transformation routines like filtering or rendering are managed and executed by the &#039;&#039;Visualization&#039;&#039; too. Further, it refers to at least one &#039;&#039;Display&#039;&#039;, a graphical component which can represent visual elements of the &#039;&#039;Visualization&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Transformation routines are defined as &#039;&#039;Actions&#039;&#039; which are combined in &#039;&#039;ActionLists&#039;&#039;. An &#039;&#039;ActionList&#039;&#039; is an executable container which is started manually by a user or automatically by the &#039;&#039;Visualization&#039;&#039;. Once such a list is started, all defined &#039;&#039;Actions&#039;&#039; are executed in the given sequence. Typically, the last called &#039;&#039;Action&#039;&#039; is the &#039;&#039;RepaintAction&#039;&#039; which forces all belonging &#039;&#039;Displays&#039;&#039; of the &#039;&#039;Visualization&#039;&#039; to repaint themselves. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; is the view of &#039;&#039;&#039;prefuse&#039;&#039;&#039;. It can be embedded in each Java Swing application. The main task of a &#039;&#039;Display&#039;&#039; is the painting of visual structures which are defined in the respective &#039;&#039;Visualization&#039;&#039;. Whenever the &#039;&#039;Display&#039;&#039; performs a repaint, it requests all visual items and checks all bounds of them (bounding management). If an item is within the own area the respective rendering mechanism is called.  &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; also provides navigation techniques like [[zoom]]ing or [[pan]]ning which change the view. The view itself refers to a separate coordinate system. View coordinates are described through an affine transformation matrix. Any navigation technique applied to the view only concerns the view coordinate system. The most important functionalities to work with this coordinate system are already predefined. Typically, users just have to apply whished techniques without considering technical details like the view coordinate system. &lt;br /&gt;
&lt;br /&gt;
Furthermore, a &#039;&#039;Display&#039;&#039; also maintains a set of &#039;&#039;ControlListener&#039;&#039; which are used to process user interactions (mouse or keyboard events). Whenever such an event occurs the respective listener is called. A listener already differs on where the event happened (e.g., blank area or a certain item). Further, a &#039;&#039;ControlListener&#039;&#039; may also start an &#039;&#039;ActionList&#039;&#039; again.&lt;br /&gt;
&lt;br /&gt;
==Source Data==&lt;br /&gt;
&lt;br /&gt;
Raw data is the base of the application. Typically, the source of raw data is a file, but also other sources like a database or web content are thinkable. However, &#039;&#039;&#039;prefuse&#039;&#039;&#039; provides several file readers for different formats (CSV, Tab-Delimitated, etc.) that can be transformed into a data table. Further, some readers also support the reading of SQL-Databases. If another source is needed, a reader can be written manually.&lt;br /&gt;
&lt;br /&gt;
Once the raw data is read, it is transformed into abstract data and stored within a data table of the &#039;&#039;Visualization&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Data Table==&lt;br /&gt;
&lt;br /&gt;
The data table which is used to store abstract data works with data types and a definition schema which maps relations between data-type and table. That means, each row contains a data record, and each column contains values for a named data field with a specific data-type. Each record of the table is referred as a &#039;&#039;Tuple&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Furthermore, instead of the table, also a graph or tree may be used to store interrelated data. Instead of &#039;&#039;Tuples&#039;&#039;, records are referred as &#039;&#039;Nodes&#039;&#039; which are connected to others with &#039;&#039;Edges&#039;&#039;. Additionally, a tree has one defined root &#039;&#039;Node&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Abstract data does not contain any visual information like assignment attributes or color settings. Instead, own visual analogous are created. Visual attributes of them are extracted out of the abstract data following a defined logic.&lt;br /&gt;
&lt;br /&gt;
==Visual Abstraction==&lt;br /&gt;
&lt;br /&gt;
Visual structures are created when filtering the data container which contains the abstract data. In case of a visualization that displays all items from the beginning on, the filtering routine must only executed once at initializing time. If the visual content changes dynamically, the filtering is executed on certain user interactions by calling a defined filtering &#039;&#039;ActionList&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
A visual structure is referred as &#039;&#039;VisualItem&#039;&#039; which may be distinguished as &#039;&#039;VisualNode&#039;&#039;, &#039;&#039;VisualEdge&#039;&#039;, or an aggregated item which consists of several other items. However, as a &#039;&#039;VisualItem&#039;&#039; is extended of the respective abstract entity, it has full access to all abstract information too. &lt;br /&gt;
&lt;br /&gt;
The filtering routine which transforms the abstract data to visual analogues typically consists of following &#039;&#039;Actions&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Filter&#039;&#039;&#039;: This &#039;&#039;Action&#039;&#039; is responsible to transform the abstract data of the backing table to visual analogues. If no special conditions are defined, the filter creates for each &#039;&#039;Tuple&#039;&#039; a visual instance and stores them in a second table. Additionally, a filter also performs a garbage collection and may set visibility attributes of the created items. &lt;br /&gt;
* &#039;&#039;&#039;Layout&#039;&#039;&#039;: A layout takes care about placing the &#039;&#039;VisualItems&#039;&#039;. Several common algorithms for graphs or trees are already predefined (e.g., &#039;&#039;ForceDirectedLayout&#039;&#039; or &#039;&#039;RadialTreeLayout&#039;&#039;). &lt;br /&gt;
* &#039;&#039;&#039;Assignment&#039;&#039;&#039;: Besides layouting, also other assignments may be performed during the filtering process. Such assignments directly changes visual attributes of &#039;&#039;VisualItems&#039;&#039; like colors, sizes, fonts, etc.&lt;br /&gt;
&lt;br /&gt;
A visual structure may also contain a paint routine, but, as all painting jobs are initialized or performed by separated renderers, these issues may also be executed by the renderer itself or any other object.&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
Typically, the rendered visual structure is not stored, instead, they are re-rendered whenever needed. However, in case of very complex but constant visual representations it makes sense to hold items in an offscreen image. &lt;br /&gt;
&lt;br /&gt;
Each &#039;&#039;VisualItem&#039;&#039; has got one or more associated &#039;&#039;Renderers&#039;&#039; which are maintained by a factory of the &#039;&#039;Visualization&#039;&#039;. A &#039;&#039;Renderer&#039;&#039; has to perform two tasks:&lt;br /&gt;
&lt;br /&gt;
* Providing a bounding box of the item. This box is used to determine if the item must actually be painted or if it would not be visible anyway. &lt;br /&gt;
* Providing the painting routine of the item. Paintings may be executed by the &#039;&#039;Renderer&#039;&#039; itself or delegated to other objects which are accessible of the &#039;&#039;Renderer&#039;&#039;. The painting routines are not restricted in any way, but the proper representation should not exceed the bounding box of the item. &lt;br /&gt;
&lt;br /&gt;
Rendering is always performed on a repaint of the &#039;&#039;Display&#039;&#039;. A repaint can be requested by the &#039;&#039;Visualization&#039;&#039;, on user interaction, and on events like resizing the component, getting the focus, or changing the coordinate system of the view. However, as repaints may occur very often, developers have to ascertain that rendering jobs are performed fast, otherwise, the performance of the whole visualization would suffer.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
==Package Structure==&lt;br /&gt;
&lt;br /&gt;
Following picture shows the most important packages of &#039;&#039;&#039;prefuse&#039;&#039;&#039; regarding to the [[Visualization Pipeline]]:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_package_guide.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
These packages also contain predefined components. Default &#039;&#039;Nodes&#039;&#039; and &#039;&#039;Edges&#039;&#039; provide standard functionality of abstract data, standard functionality is also available in visual analogous of them. A default filter transforms all defined abstract entities to visual ones. Further, also some special functionalities to fulfil common requirements are provided by own components: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Renderers&#039;&#039;&#039;: &#039;&#039;EdgeRenderer&#039;&#039; to render edges between graph or tree nodes, a &#039;&#039;LableRenderer&#039;&#039; to render text items, and a &#039;&#039;PolygoneRenderer&#039;&#039; to render geometrical items. &lt;br /&gt;
* &#039;&#039;&#039;Layouts&#039;&#039;&#039;: &#039;&#039;RandomLayout&#039;&#039;, &#039;&#039;GridLayout&#039;&#039;, and some more to place non related data, &#039;&#039;ForceDirectedLayout&#039;&#039;, &#039;&#039;TreeLayout&#039;&#039;, &#039;&#039;RadialTreeLayout&#039;&#039; and others to layout trees and graphs.&lt;br /&gt;
* &#039;&#039;&#039;Controls&#039;&#039;&#039;: &#039;&#039;DragControl&#039;&#039;, &#039;&#039;ZoomControl&#039;&#039;, &#039;&#039;PanControl&#039;&#039;, &#039;&#039;ToolTipControl&#039;&#039; and several others to react on user interactions. &lt;br /&gt;
&lt;br /&gt;
In simple visualizations the predefined functionality will meet most requirements. If special requirements are needed the default functionality supports a step-wise developing as results can be communicated by predefined components until the own functionality is implemented.&lt;br /&gt;
&lt;br /&gt;
==Coordinates in prefuse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; works with two different coordinate systems. Absolute coordinates are device-independent logical coordinates. All visual attributes like positions or sizes are defined in absolute coordinates. In contrast, view coordinates are device-depended (screen). Transformations between absolute and view coordinates are done automatically by Java painting routines. View coordinates are influenced by the system and device driver (e.g., the absolute point (0,0) is the topmost left point of the actual graphical component which may be on any position at the screen). Further, view coordinates may also be manipulated manually by using an affine transformation matrix which applies linear transformations on absolute coordinates before device-dependent routines convert them to screen coordinates. &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;prefuse&#039;&#039;&#039; &#039;&#039;Display&#039;&#039; provides the most important manipulating methods of this matrix. [[Zoom]]ing, [[pan]]ning, and rotation of the whole view are only done by changing the view coordinates. So, as absolute coordinates are never concerned of such transformations and translations, a user must never consider the actual view in layout, assignment, or painting routines. &lt;br /&gt;
&lt;br /&gt;
There are several different ways on how to apply such transformations, additionally, the &#039;&#039;Display&#039;&#039; also supports animated transformations.&lt;br /&gt;
&lt;br /&gt;
==User Interactions==&lt;br /&gt;
&lt;br /&gt;
Mouse or keyboard events are treated by &#039;&#039;ControlListener&#039;&#039;. Whenever an event occurs which is handled by a &#039;&#039;ControlListener&#039;&#039;, the &#039;&#039;Display&#039;&#039; delegates the event to the respective routine. A &#039;&#039;ControlListener&#039;&#039; disdinguishes automatically which visual element is concerned of the event (the view itself or a &#039;&#039;VisualItem&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ControlListener&#039;&#039; may just perform simple tasks like changing the mouse cursor or editing the label of an item. But, in more sophisticated applications, also tasks like loading new data or dragging items on the view may be handled. Therefore, a &#039;&#039;ControlListener&#039;&#039; may also start &#039;&#039;ActionLists&#039;&#039; to execute such tasks. Further, a &#039;&#039;ControlListener&#039;&#039; has also access to the &#039;&#039;Display&#039;&#039;. Thus, it is able to call methods like zooming or panning. Typically, each &#039;&#039;ControlListener&#039;&#039; forces a repaint when its job is done.  &lt;br /&gt;
&lt;br /&gt;
Most of standard functionality is already predefined in &#039;&#039;prefuse&#039;&#039; and the wanted listeners just have to be assigned to the &#039;&#039;Display&#039;&#039;. However, the &#039;&#039;Display&#039;&#039; can handle a countless of different listener. Hence, typically only a few listeners must be defined manually as they can be mixed with default ones.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is a very powerful toolkit, providing a large set of components and methods a developer needs to build an [[Information Visualization]]. The [[polylithic design]] is not that easy to understand in the beginning of a development, but once conceived, a visualization is easy to realize even if really special demands have to be fulfilled. Furthermore, using Prefuse forces a clear and well designed architecture of own applications.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; was created with most attention paid to developers who will finally work with the toolkit. In an evaluation study this goal was approved too. In the meanwhile, there is also a not so small community using and upgrading the toolkit, which is an argument for its usability.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
*[http://prefuse.org prefuse Homepage]&lt;br /&gt;
*[http://vw.indiana.edu/ivsi2004/jherr/index.html prefuse Position Paper]&lt;br /&gt;
*[http://sourceforge.net/forum/forum.php?forum_id=343013 prefuse Help Forum]&lt;br /&gt;
&lt;br /&gt;
= Downloads =&lt;br /&gt;
*[[Media:Prefuse-tutorial-20061127-handout.pdf|prefuse Tutorial (pdf, 660kB)]] by [[Aigner, Wolfgang|Wolfgang Aigner]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[Heer, 2004] Jeffrey Heer. [http://jheer.org/publications/2004-Heer-prefuse-Masters.pdf prefuse: a software framework for interactive information visualization]. Masters of Science, Computer Science Division, University of California, Berkeley, 2004.&lt;br /&gt;
*[Heer, 2005] Jeffrey Heer, Stuart K. Card, and James A. Landay. [http://jheer.org/publications/2005-prefuse-CHI.pdf prefuse: a toolkit for interactive information visualization.] In CHI 2005, Human Factors in Computing Systems, 2005.&lt;br /&gt;
*[Heer, 2006a] Jeffrey Heer, prefuse API documentation. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Heer, 2006b] Jeffrey Heer, prefuse manual. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Sun Microsystems, 2001] Sun Microsystems, Programmer’s Guide to the Java 2DTM API - Enhanced Graphics and Imaging for Java. Retrieved at: April 20, 2006, http://java.sun.com/j2se/1.4/pdf/j2d-book.pdf&lt;br /&gt;
&lt;br /&gt;
[[Category:Toolkits]]&lt;/div&gt;</summary>
		<author><name>Yc8E18</name></author>
	</entry>
	<entry>
		<id>https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=16782</id>
		<title>Prefuse</title>
		<link rel="alternate" type="text/html" href="https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=16782"/>
		<updated>2007-09-01T02:57:21Z</updated>

		<summary type="html">&lt;p&gt;Yc8E18: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://starcross33.ifrance.com/leali/index.html leali] [http://oddonpurpose.ifrance.com/multivison.html multivison] [http://plyuh-vios.ifrance.com/incidente-a-roma.html incidente a roma] [http://eliasn5gh.ifrance.com/la-camisa-negra-juanes.html la camisa negra juanes] [http://katzella.ifrance.com/i-survive/index.html i survive] [http://oddonpurpose.ifrance.com/l-ultimo-ballo.html l ultimo ballo] [http://thecrownless.ifrance.com/ivvi-queen/index.html ivvi queen] [http://angeljazz711.ifrance.com/inno-nazionale-americano.html inno nazionale americano] [http://thecrownless.ifrance.com/i-wish-remix/index.html i wish remix] [http://starcross33.ifrance.com/la-pappa-col-pomodoro/index.html la pappa col pomodoro] [http://child-ofadot.ifrance.com/il-te-nel-deserto.html il te nel deserto] [http://xxxenichkaa.ifrance.com/luna-rossa-teo.html luna rossa teo teocoli] [http://busjavka.ifrance.com/hobby-e-work/index.html hobby e work] [http://fluffy-mind.ifrance.com/ke-strange-world.html ke strange world] [http://oddonpurpose.ifrance.com/lynk.html lynk] [http://starcross33.ifrance.com/leaving-in-nwe-york/index.html leaving in nwe york] [http://plyuh-vios.ifrance.com/immagini-illustrative.html immagini illustrative di marx] [http://risdimpuka.ifrance.com/ligabue-balliamo/index.html ligabue balliamo sul mondo] [http://child-ofadot.ifrance.com/il-quotidiano-il.html il quotidiano il manifesto] [http://snakeystil.ifrance.com/i-mad-about-the/index.html i mad about the boy] [http://busjavka.ifrance.com/hothel-rimini/index.html hothel rimini] [http://risdimpuka.ifrance.com/liv-tyler-foto/index.html liv tyler foto] [http://pupsik1993.ifrance.com/l-ultima-tentazione.html l ultima tentazione di cristo nikos] [http://oddonpurpose.ifrance.com/l-opera.html l opera] [http://snakeystil.ifrance.com/jerri-scotti/index.html jerri scotti] [http://xxxenichkaa.ifrance.com/lavorocalabria.html lavorocalabria] [http://taylors-acolyte.ifrance.com/ici2004.html ici2004] [http://plyuh-vios.ifrance.com/in-un-vecchio-palco.html in un vecchio palco della scala] [http://snakeystil.ifrance.com/john-buttler/index.html john buttler] [http://carbonphoenix.ifrance.com/jebacina.html jebacina] [http://alexandraa80.ifrance.com/langston-hughes/index.html langston hughes] [http://xxxenichkaa.ifrance.com/liscate.html liscate] [http://chasingspaces.ifrance.com/gianna-gaetano/index.html gianna gaetano] [http://pupsik1993.ifrance.com/luretta-mia.html luretta mia] [http://listmishyk.ifrance.com/knock-on-my-door-shakira/index.html knock on my door shakira] [http://katzella.ifrance.com/hd/index.html hd] [http://alexandraa80.ifrance.com/laura-pausini-tutta/index.html laura pausini tutta nuda] [http://alexandraa80.ifrance.com/loredana-leccisio/index.html loredana leccisio calendario] [http://xxxenichkaa.ifrance.com/lepussy.html lepussy] [http://busjavka.ifrance.com/hitmania-estate-2000/index.html hitmania estate 2000] [http://taylors-acolyte.ifrance.com/italiano-inglese.html italiano inglese] [http://pupsik1993.ifrance.com/le-maree.html le maree] [http://snakeystil.ifrance.com/j00/index.html j00] [http://risdimpuka.ifrance.com/lettore-font/index.html lettore font] [http://thecrownless.ifrance.com/italiano-medio/index.html italiano medio] [http://busjavka.ifrance.com/homemegago/index.html homemegago] [http://thecrownless.ifrance.com/ibrahim-tatlises/index.html ibrahim tatlises] [http://carbonphoenix.ifrance.com/ja-te-pesmom-zovem.html ja te pesmom zovem] [http://eliasn5gh.ifrance.com/luly-boso.html luly boso] [http://plyuh-vios.ifrance.com/il-santo-rosario.html il santo rosario] [http://busjavka.ifrance.com/hotel-albatross-sharm/index.html hotel albatross sharm egitto] [http://plyuh-vios.ifrance.com/interculturale.html interculturale] [http://carbonphoenix.ifrance.com/juice.html juice] [http://busjavka.ifrance.com/heinzelmann/index.html heinzelmann] [http://snakeystil.ifrance.com/julieta-venegas-su-musica/index.html julieta venegas su musica] [http://snakeystil.ifrance.com/jay-p/index.html jay p] [http://listmishyk.ifrance.com/kicks-and-sex/index.html kicks and sex] [http://listmishyk.ifrance.com/kung-fu-fighting/index.html kung fu fighting] [http://snakeystil.ifrance.com/jonathan-brandis/index.html jonathan brandis immagini gallery] [http://listmishyk.ifrance.com/kamila-clap/index.html kamila clap] [http://katzella.ifrance.com/honduras-con/index.html honduras con] [http://snakeystil.ifrance.com/jej-pi-281-kne-oczy/index.html jej pi 281 kne oczy] [http://risdimpuka.ifrance.com/lontananza/index.html lontananza] [http://child-ofadot.ifrance.com/il-pescatore.html il pescatore] [http://risdimpuka.ifrance.com/lupanuda-foto/index.html lupanuda foto] [http://katzella.ifrance.com/hallo-wen/index.html hallo wen] [http://carbonphoenix.ifrance.com/jose-mari-chan.html jose mari chan] [http://angeljazz711.ifrance.com/inquinamento-elettromagnetico.html inquinamento elettromagnetico] [http://child-ofadot.ifrance.com/immagini-paz-vega-nuda.html immagini paz vega nuda] [http://pupsik1993.ifrance.com/lo-attivazioni.html lo attivazioni] [http://cuivenarius.ifrance.com/hollywood-fx-5.html hollywood fx 5] [http://xxxenichkaa.ifrance.com/lo-siento-de-belida.html lo siento de belida] [http://cuivenarius.ifrance.com/huck-e-jim.html huck e jim] [http://oddonpurpose.ifrance.com/log-seca-2.html log seca 2] [http://starcross33.ifrance.com/la-tasha-marzolla/index.html la tasha marzolla] [http://taylors-acolyte.ifrance.com/incontri-di-sesso.html incontri di sesso in canpania] [http://pupsik1993.ifrance.com/lumayo-kaman.html lumayo kaman] [http://carbonphoenix.ifrance.com/je-regarde-pour-toi.html je regarde pour toi] [http://snakeystil.ifrance.com/jordan-top-model/index.html jordan top model] [http://angeljazz711.ifrance.com/is-my-dj.html is my dj] [http://eliasn5gh.ifrance.com/la-bambolina-remix.html la bambolina remix] [http://carbonphoenix.ifrance.com/juan-pardo.html juan pardo] [http://busjavka.ifrance.com/haiduciii/index.html haiduciii] [http://risdimpuka.ifrance.com/lo-mejor-del-porno/index.html lo mejor del porno] [http://fluffy-mind.ifrance.com/k-ros.html k ros] [http://child-ofadot.ifrance.com/if-god-will-send-his.html if god will send his angels] [http://carbonphoenix.ifrance.com/jorgito.html jorgito] [http://snakeystil.ifrance.com/joy-tobing-karena/index.html joy tobing karena cinta] [http://eliasn5gh.ifrance.com/luca-cavalli-atalanta.html luca cavalli atalanta] [http://pupsik1993.ifrance.com/lavoro-estivo.html lavoro estivo] [http://pupsik1993.ifrance.com/lungo-il-fiume.html lungo il fiume] [http://listmishyk.ifrance.com/karinschubert/index.html karinschubert] [http://taylors-acolyte.ifrance.com/irma-d-alessandro.html irma d alessandro giornalista sportiva t] [http://risdimpuka.ifrance.com/ley/index.html ley] [http://taylors-acolyte.ifrance.com/isola-famosas.html isola famosas] [http://cuivenarius.ifrance.com/hot-flashing.html hot flashing] [http://busjavka.ifrance.com/hit-mania-dance-20004/index.html hit mania dance 20004] [http://angeljazz711.ifrance.com/io-ti-aspettero.html io ti aspettero] [http://child-ofadot.ifrance.com/i-testi-delle.html i testi delle canzoni dei 99 posse] [http://xxxenichkaa.ifrance.com/lionalex.html lionalex] [http://starcross33.ifrance.com/lost-without-you/index.html lost without you] [http://chasingspaces.ifrance.com/hard-britney/index.html hard britney] [http://child-ofadot.ifrance.com/i-personaggi.html i personaggi di roswell] [http://thecrownless.ifrance.com/inimioara/index.html inimioara] [http://angeljazz711.ifrance.com/immi-gov-au.html immi gov au] [http://child-ofadot.ifrance.com/indeo-codec-windows.html indeo codec windows xp] [http://starcross33.ifrance.com/lambadas/index.html lambadas] [http://plyuh-vios.ifrance.com/i-don-t-wanna.html i don t wanna know traduzione mario winans] [http://alexandraa80.ifrance.com/loan-me-a-dime/index.html loan me a dime] [http://eliasn5gh.ifrance.com/la-fabbrica-di-plastica.html la fabbrica di plastica] [http://eliasn5gh.ifrance.com/lyrics-i-ragazzi.html lyrics i ragazzi del 2003] [http://eliasn5gh.ifrance.com/l-amore-ha-scelto-noi.html l amore ha scelto noi] [http://xxxenichkaa.ifrance.com/lara-belli.html lara belli] [http://child-ofadot.ifrance.com/idi-corso-operatore.html idi corso operatore socio assistenziale] [http://child-ofadot.ifrance.com/ivan-delif-jej.html ivan delif jej czarne oczy] [http://katzella.ifrance.com/hacha-exe/index.html hacha exe] [http://plyuh-vios.ifrance.com/it-s-all-vain.html it s all vain] [http://pupsik1993.ifrance.com/liber-feat-marian.html liber feat marian] [http://child-ofadot.ifrance.com/inno-aeronautica.html inno aeronautica militare] [http://angeljazz711.ifrance.com/io-non-credo-piu.html io non credo piu all amore] [http://alexandraa80.ifrance.com/libro-la-legge/index.html libro la legge di bohn] [http://alexandraa80.ifrance.com/le-avventure-di/index.html le avventure di huckleberry finn] [http://alexandraa80.ifrance.com/l-alimentazione-e/index.html l alimentazione e l arte] [http://oddonpurpose.ifrance.com/la-sposa-morta.html la sposa morta] [http://alexandraa80.ifrance.com/liz-rincon/index.html liz rincon] [http://risdimpuka.ifrance.com/lecce-autobus-orari/index.html lecce autobus orari] [http://oddonpurpose.ifrance.com/ldc-org.html ldc org] [http://eliasn5gh.ifrance.com/liquore-crema.html liquore crema di banana] [http://pupsik1993.ifrance.com/laz-taylor.html laz taylor] [http://pupsik1993.ifrance.com/l-urlo-di-munch.html l urlo di munch] [http://eliasn5gh.ifrance.com/ligier.html ligier] [http://plyuh-vios.ifrance.com/i-love-to-love-tina.html i love to love tina charles] [http://thecrownless.ifrance.com/ich-wei-warum/index.html ich wei warum] [http://carbonphoenix.ifrance.com/johnson-andreas.html johnson andreas glorious] [http://pupsik1993.ifrance.com/l-internazionale.html l internazionale] [http://risdimpuka.ifrance.com/ley-de-homs/index.html ley de homs] [http://snakeystil.ifrance.com/jolin-chai-yi-ling/index.html jolin chai yi ling] [http://carbonphoenix.ifrance.com/jouer.html jouer] [http://alexandraa80.ifrance.com/la-repandilla/index.html la repandilla] [http://listmishyk.ifrance.com/kay-parker/index.html kay parker] [http://thecrownless.ifrance.com/io-son-contadinella/index.html io son contadinella] [http://oddonpurpose.ifrance.com/la-fattoria-spettacolo.html la fattoria spettacolo danza del ventre] [http://alexandraa80.ifrance.com/liv-tylor-foto/index.html liv tylor foto] [http://katzella.ifrance.com/hotel-dreams/index.html hotel dreams vacation sharm] [http://angeljazz711.ifrance.com/iran-geirl.html iran geirl] [http://risdimpuka.ifrance.com/la-vasca/index.html la vasca] [http://listmishyk.ifrance.com/katjakean/index.html katjakean] [http://taylors-acolyte.ifrance.com/iec.html iec] [http://alexandraa80.ifrance.com/la-serenella-remix/index.html la serenella remix] [http://fluffy-mind.ifrance.com/kates-playgroud.html kates playgroud] [http://xxxenichkaa.ifrance.com/l-ultimo-dei.html l ultimo dei moichani] [http://child-ofadot.ifrance.com/irma.html irma] [http://angeljazz711.ifrance.com/i-ll-miss-you.html i ll miss you mp3] [http://starcross33.ifrance.com/largo-winch/index.html largo winch] [http://alexandraa80.ifrance.com/lo-zoo/index.html lo zoo] [http://angeljazz711.ifrance.com/ivana-spagna-e-penso.html ivana spagna e penso a te] [http://cuivenarius.ifrance.com/hit-my-heart-lyrics.html hit my heart lyrics] [http://risdimpuka.ifrance.com/laurynhill/index.html laurynhill] [http://risdimpuka.ifrance.com/libertango-per-banda/index.html libertango per banda] [http://starcross33.ifrance.com/la-mia-signorina/index.html la mia signorina] [http://oddonpurpose.ifrance.com/lenny-craviz.html lenny craviz] [http://carbonphoenix.ifrance.com/just-my-gem-boy.html just my gem boy] [http://thecrownless.ifrance.com/il-cocomero/index.html il cocomero] [http://angeljazz711.ifrance.com/intossicazione-da.html intossicazione da rame] [http://starcross33.ifrance.com/la-colalees/index.html la colalees] [http://katzella.ifrance.com/heidi-soundtrack/index.html heidi soundtrack] [http://snakeystil.ifrance.com/juegos/index.html juegos] [http://risdimpuka.ifrance.com/luis-aguile/index.html luis aguile] [http://plyuh-vios.ifrance.com/il-calendario.html il calendario di daniele] [http://chasingspaces.ifrance.com/gooole/index.html gooole] [http://starcross33.ifrance.com/leti/index.html leti] [http://child-ofadot.ifrance.com/immagini-orlando-bloom.html immagini orlando bloom] [http://snakeystil.ifrance.com/john-chamberlain/index.html john chamberlain] [http://snakeystil.ifrance.com/j-lo/index.html j lo] [http://fluffy-mind.ifrance.com/kraftschlag.html kraftschlag] [http://angeljazz711.ifrance.com/inchanto.html inchanto] [http://snakeystil.ifrance.com/j-ai-pas-vingt-ans/index.html j ai pas vingt ans] [http://angeljazz711.ifrance.com/il-futurismo-e-la.html il futurismo e la radio] [http://fluffy-mind.ifrance.com/kal-ho-naa-o.html kal ho naa o] [http://katzella.ifrance.com/hiron-maiden/index.html hiron maiden] [http://chasingspaces.ifrance.com/guida-camping-costa/index.html guida camping costa brava] [http://katzella.ifrance.com/hotel-barcellona/index.html hotel barcellona] [http://thecrownless.ifrance.com/ii/index.html ii] [http://taylors-acolyte.ifrance.com/isorivolta.html isorivolta] [http://snakeystil.ifrance.com/jessica-simpson/index.html jessica simpson did you ever love somebody] [http://angeljazz711.ifrance.com/i-bilieve-i-can-fly.html i bilieve i can fly] [http://listmishyk.ifrance.com/krawczyk-i-edyta/index.html krawczyk i edyta bartosiewicz tak trudno] [http://plyuh-vios.ifrance.com/interpretazione.html interpretazione dei sogni di froid] [http://carbonphoenix.ifrance.com/just-for-you-de.html just for you de lionel richie] [http://carbonphoenix.ifrance.com/jh.html jh] [http://snakeystil.ifrance.com/just-to-tu-o/index.html just to tu o] [http://starcross33.ifrance.com/la-cuarta/index.html la cuarta] [http://eliasn5gh.ifrance.com/lesbicas-e-gays.html lesbicas e gays] [http://fluffy-mind.ifrance.com/kamasutra-video.html kamasutra video] [http://child-ofadot.ifrance.com/iii-capitolo-dei-promessi.html iii capitolo dei promessi sposi] [http://chasingspaces.ifrance.com/gigi-proietti-bella/index.html gigi proietti bella roma] [http://fluffy-mind.ifrance.com/k-te-den-candela.html k te den candela] [http://fluffy-mind.ifrance.com/kighine.html kighine] [http://carbonphoenix.ifrance.com/jkvon.html jkvon] [http://fluffy-mind.ifrance.com/kelly-minogue.html kelly minogue] = Summary =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author&#039;&#039;&#039;: Jeffrey Heer / UC Berkeley&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Project Webpage&#039;&#039;&#039;: http://prefuse.org&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Current Version&#039;&#039;&#039;: beta, July 15, 2006&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: Java 1.4&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; using Java2D graphics library; pipeline architecture; animation and rendering support&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Base data structures&#039;&#039;&#039;: Table, Graph, Tree&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Included visualization techniques (&#039;&#039;[http://prefuse.org/gallery/ prefuse gallery]&#039;&#039;):&#039;&#039;&#039; [http://prefuse.org/gallery/fisheyemenu/ Fisheye Menu], [http://prefuse.org/gallery/radialgraphview/ Radial Graph], [http://prefuse.org/gallery/treemap/ Treemap], [http://prefuse.org/gallery/congress/ Scatterplot], [http://prefuse.org/gallery/zipdecode/ zipdecode], [http://prefuse.org/gallery/treeview/ DOITree], [http://prefuse.org/gallery/graphview/ Graph View], [http://prefuse.org/gallery/datamountain/ Data Mountain]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Supported File Formats&#039;&#039;&#039;: GraphML (XML), TreeML (XML), Tab-delimited Text, CSV&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is an interactive graphical open source toolkit written in Java. It is thought to support the development of sophisticated, highly interactive, and flexible [[Information Visualization]]s. The architecture of &#039;&#039;&#039;prefuse&#039;&#039;&#039; considers the [[Visualization Pipeline]], a recommendation on how to implement a visualization. To provide flexibility, a [[polylithic design]] was chosen which enables developers to implement only needed functionality and customize these to meet the own requirements. But, in contrast to a [[monolithic design]], this design needs more time to conceive and influences the architecture of the own application heavily (which is not a disadvantage as &#039;&#039;&#039;prefuse&#039;&#039;&#039; is very elaborate). &lt;br /&gt;
&lt;br /&gt;
Typically, &#039;&#039;&#039;prefuse&#039;&#039;&#039; is designed to visualize interrelated information so it can be stored in a graph or tree structure, but, also not related data can be used which is stored within a data table. Even if the structure is hierarchical, the resulting tree or graph structure must not be considered in the proper graphical representation as layout algorithms are not restricted in any way. The painting of visual items is done by using a renderer which has access to the respective item itself and the Graphics2D context of the view. This approach enables to use the whole range of available painting methods of Java, therefore, all painting issues are completely independent of the toolkit itself.&lt;br /&gt;
&lt;br /&gt;
Besides providing a large set of predefined elements to visualize data, most attention was set toward usability of the visualization. This is obtained by applying several interaction techniques like tooltips or dragging visual elements. But also more sophisticated techniques like [[zoom]]ing, [[pan]]ning, or [[semantic zoom]]ing are supported or partially even provided by the toolkit itself. Further, &#039;&#039;&#039;prefuse&#039;&#039;&#039; clearly distinguishes between absolute and view coordinates. This separation helps users to place all visual elements in a logical way without consideration of later applied visualization techniques that changes the entire view.  &lt;br /&gt;
&lt;br /&gt;
=== Pros ===&lt;br /&gt;
&lt;br /&gt;
* flexible&lt;br /&gt;
* versatile pipeline approach&lt;br /&gt;
* clear and well thought architecture&lt;br /&gt;
* many layout and distortion algorithms included&lt;br /&gt;
* algorithms for force-based physics simulation included&lt;br /&gt;
* custom animations (smooth transitions)&lt;br /&gt;
* color maps&lt;br /&gt;
* query language to navigate within abstract data&lt;br /&gt;
* demos and examples included&lt;br /&gt;
* bounding management&lt;br /&gt;
* open source&lt;br /&gt;
* documentation of code and general guidance available&lt;br /&gt;
* active developer community &lt;br /&gt;
&lt;br /&gt;
=== Cons ===&lt;br /&gt;
&lt;br /&gt;
* [[polylithic design]] takes up more time to conceive and see first results&lt;br /&gt;
* special requirements of a visualization enforce a lot of adapting work&lt;br /&gt;
&lt;br /&gt;
=General Approach=&lt;br /&gt;
&lt;br /&gt;
Going along with the step-wise recommendation of the [[Visualization Pipeline]], a &#039;&#039;&#039;prefuse&#039;&#039;&#039; application consists of different states of data:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_visualization_pipeline.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; uses a centralized object called &#039;&#039;Visualization&#039;&#039; (former &#039;&#039;ItemRegistry&#039;&#039;) which maintains and manages the whole visualization. This object has to fulfil several tasks. It stores the abstract data as well as visual analogous of these in two different tables. All transformation routines like filtering or rendering are managed and executed by the &#039;&#039;Visualization&#039;&#039; too. Further, it refers to at least one &#039;&#039;Display&#039;&#039;, a graphical component which can represent visual elements of the &#039;&#039;Visualization&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Transformation routines are defined as &#039;&#039;Actions&#039;&#039; which are combined in &#039;&#039;ActionLists&#039;&#039;. An &#039;&#039;ActionList&#039;&#039; is an executable container which is started manually by a user or automatically by the &#039;&#039;Visualization&#039;&#039;. Once such a list is started, all defined &#039;&#039;Actions&#039;&#039; are executed in the given sequence. Typically, the last called &#039;&#039;Action&#039;&#039; is the &#039;&#039;RepaintAction&#039;&#039; which forces all belonging &#039;&#039;Displays&#039;&#039; of the &#039;&#039;Visualization&#039;&#039; to repaint themselves. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; is the view of &#039;&#039;&#039;prefuse&#039;&#039;&#039;. It can be embedded in each Java Swing application. The main task of a &#039;&#039;Display&#039;&#039; is the painting of visual structures which are defined in the respective &#039;&#039;Visualization&#039;&#039;. Whenever the &#039;&#039;Display&#039;&#039; performs a repaint, it requests all visual items and checks all bounds of them (bounding management). If an item is within the own area the respective rendering mechanism is called.  &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; also provides navigation techniques like [[zoom]]ing or [[pan]]ning which change the view. The view itself refers to a separate coordinate system. View coordinates are described through an affine transformation matrix. Any navigation technique applied to the view only concerns the view coordinate system. The most important functionalities to work with this coordinate system are already predefined. Typically, users just have to apply whished techniques without considering technical details like the view coordinate system. &lt;br /&gt;
&lt;br /&gt;
Furthermore, a &#039;&#039;Display&#039;&#039; also maintains a set of &#039;&#039;ControlListener&#039;&#039; which are used to process user interactions (mouse or keyboard events). Whenever such an event occurs the respective listener is called. A listener already differs on where the event happened (e.g., blank area or a certain item). Further, a &#039;&#039;ControlListener&#039;&#039; may also start an &#039;&#039;ActionList&#039;&#039; again.&lt;br /&gt;
&lt;br /&gt;
==Source Data==&lt;br /&gt;
&lt;br /&gt;
Raw data is the base of the application. Typically, the source of raw data is a file, but also other sources like a database or web content are thinkable. However, &#039;&#039;&#039;prefuse&#039;&#039;&#039; provides several file readers for different formats (CSV, Tab-Delimitated, etc.) that can be transformed into a data table. Further, some readers also support the reading of SQL-Databases. If another source is needed, a reader can be written manually.&lt;br /&gt;
&lt;br /&gt;
Once the raw data is read, it is transformed into abstract data and stored within a data table of the &#039;&#039;Visualization&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Data Table==&lt;br /&gt;
&lt;br /&gt;
The data table which is used to store abstract data works with data types and a definition schema which maps relations between data-type and table. That means, each row contains a data record, and each column contains values for a named data field with a specific data-type. Each record of the table is referred as a &#039;&#039;Tuple&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Furthermore, instead of the table, also a graph or tree may be used to store interrelated data. Instead of &#039;&#039;Tuples&#039;&#039;, records are referred as &#039;&#039;Nodes&#039;&#039; which are connected to others with &#039;&#039;Edges&#039;&#039;. Additionally, a tree has one defined root &#039;&#039;Node&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Abstract data does not contain any visual information like assignment attributes or color settings. Instead, own visual analogous are created. Visual attributes of them are extracted out of the abstract data following a defined logic.&lt;br /&gt;
&lt;br /&gt;
==Visual Abstraction==&lt;br /&gt;
&lt;br /&gt;
Visual structures are created when filtering the data container which contains the abstract data. In case of a visualization that displays all items from the beginning on, the filtering routine must only executed once at initializing time. If the visual content changes dynamically, the filtering is executed on certain user interactions by calling a defined filtering &#039;&#039;ActionList&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
A visual structure is referred as &#039;&#039;VisualItem&#039;&#039; which may be distinguished as &#039;&#039;VisualNode&#039;&#039;, &#039;&#039;VisualEdge&#039;&#039;, or an aggregated item which consists of several other items. However, as a &#039;&#039;VisualItem&#039;&#039; is extended of the respective abstract entity, it has full access to all abstract information too. &lt;br /&gt;
&lt;br /&gt;
The filtering routine which transforms the abstract data to visual analogues typically consists of following &#039;&#039;Actions&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Filter&#039;&#039;&#039;: This &#039;&#039;Action&#039;&#039; is responsible to transform the abstract data of the backing table to visual analogues. If no special conditions are defined, the filter creates for each &#039;&#039;Tuple&#039;&#039; a visual instance and stores them in a second table. Additionally, a filter also performs a garbage collection and may set visibility attributes of the created items. &lt;br /&gt;
* &#039;&#039;&#039;Layout&#039;&#039;&#039;: A layout takes care about placing the &#039;&#039;VisualItems&#039;&#039;. Several common algorithms for graphs or trees are already predefined (e.g., &#039;&#039;ForceDirectedLayout&#039;&#039; or &#039;&#039;RadialTreeLayout&#039;&#039;). &lt;br /&gt;
* &#039;&#039;&#039;Assignment&#039;&#039;&#039;: Besides layouting, also other assignments may be performed during the filtering process. Such assignments directly changes visual attributes of &#039;&#039;VisualItems&#039;&#039; like colors, sizes, fonts, etc.&lt;br /&gt;
&lt;br /&gt;
A visual structure may also contain a paint routine, but, as all painting jobs are initialized or performed by separated renderers, these issues may also be executed by the renderer itself or any other object.&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
Typically, the rendered visual structure is not stored, instead, they are re-rendered whenever needed. However, in case of very complex but constant visual representations it makes sense to hold items in an offscreen image. &lt;br /&gt;
&lt;br /&gt;
Each &#039;&#039;VisualItem&#039;&#039; has got one or more associated &#039;&#039;Renderers&#039;&#039; which are maintained by a factory of the &#039;&#039;Visualization&#039;&#039;. A &#039;&#039;Renderer&#039;&#039; has to perform two tasks:&lt;br /&gt;
&lt;br /&gt;
* Providing a bounding box of the item. This box is used to determine if the item must actually be painted or if it would not be visible anyway. &lt;br /&gt;
* Providing the painting routine of the item. Paintings may be executed by the &#039;&#039;Renderer&#039;&#039; itself or delegated to other objects which are accessible of the &#039;&#039;Renderer&#039;&#039;. The painting routines are not restricted in any way, but the proper representation should not exceed the bounding box of the item. &lt;br /&gt;
&lt;br /&gt;
Rendering is always performed on a repaint of the &#039;&#039;Display&#039;&#039;. A repaint can be requested by the &#039;&#039;Visualization&#039;&#039;, on user interaction, and on events like resizing the component, getting the focus, or changing the coordinate system of the view. However, as repaints may occur very often, developers have to ascertain that rendering jobs are performed fast, otherwise, the performance of the whole visualization would suffer.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
==Package Structure==&lt;br /&gt;
&lt;br /&gt;
Following picture shows the most important packages of &#039;&#039;&#039;prefuse&#039;&#039;&#039; regarding to the [[Visualization Pipeline]]:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_package_guide.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
These packages also contain predefined components. Default &#039;&#039;Nodes&#039;&#039; and &#039;&#039;Edges&#039;&#039; provide standard functionality of abstract data, standard functionality is also available in visual analogous of them. A default filter transforms all defined abstract entities to visual ones. Further, also some special functionalities to fulfil common requirements are provided by own components: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Renderers&#039;&#039;&#039;: &#039;&#039;EdgeRenderer&#039;&#039; to render edges between graph or tree nodes, a &#039;&#039;LableRenderer&#039;&#039; to render text items, and a &#039;&#039;PolygoneRenderer&#039;&#039; to render geometrical items. &lt;br /&gt;
* &#039;&#039;&#039;Layouts&#039;&#039;&#039;: &#039;&#039;RandomLayout&#039;&#039;, &#039;&#039;GridLayout&#039;&#039;, and some more to place non related data, &#039;&#039;ForceDirectedLayout&#039;&#039;, &#039;&#039;TreeLayout&#039;&#039;, &#039;&#039;RadialTreeLayout&#039;&#039; and others to layout trees and graphs.&lt;br /&gt;
* &#039;&#039;&#039;Controls&#039;&#039;&#039;: &#039;&#039;DragControl&#039;&#039;, &#039;&#039;ZoomControl&#039;&#039;, &#039;&#039;PanControl&#039;&#039;, &#039;&#039;ToolTipControl&#039;&#039; and several others to react on user interactions. &lt;br /&gt;
&lt;br /&gt;
In simple visualizations the predefined functionality will meet most requirements. If special requirements are needed the default functionality supports a step-wise developing as results can be communicated by predefined components until the own functionality is implemented.&lt;br /&gt;
&lt;br /&gt;
==Coordinates in prefuse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; works with two different coordinate systems. Absolute coordinates are device-independent logical coordinates. All visual attributes like positions or sizes are defined in absolute coordinates. In contrast, view coordinates are device-depended (screen). Transformations between absolute and view coordinates are done automatically by Java painting routines. View coordinates are influenced by the system and device driver (e.g., the absolute point (0,0) is the topmost left point of the actual graphical component which may be on any position at the screen). Further, view coordinates may also be manipulated manually by using an affine transformation matrix which applies linear transformations on absolute coordinates before device-dependent routines convert them to screen coordinates. &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;prefuse&#039;&#039;&#039; &#039;&#039;Display&#039;&#039; provides the most important manipulating methods of this matrix. [[Zoom]]ing, [[pan]]ning, and rotation of the whole view are only done by changing the view coordinates. So, as absolute coordinates are never concerned of such transformations and translations, a user must never consider the actual view in layout, assignment, or painting routines. &lt;br /&gt;
&lt;br /&gt;
There are several different ways on how to apply such transformations, additionally, the &#039;&#039;Display&#039;&#039; also supports animated transformations.&lt;br /&gt;
&lt;br /&gt;
==User Interactions==&lt;br /&gt;
&lt;br /&gt;
Mouse or keyboard events are treated by &#039;&#039;ControlListener&#039;&#039;. Whenever an event occurs which is handled by a &#039;&#039;ControlListener&#039;&#039;, the &#039;&#039;Display&#039;&#039; delegates the event to the respective routine. A &#039;&#039;ControlListener&#039;&#039; disdinguishes automatically which visual element is concerned of the event (the view itself or a &#039;&#039;VisualItem&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ControlListener&#039;&#039; may just perform simple tasks like changing the mouse cursor or editing the label of an item. But, in more sophisticated applications, also tasks like loading new data or dragging items on the view may be handled. Therefore, a &#039;&#039;ControlListener&#039;&#039; may also start &#039;&#039;ActionLists&#039;&#039; to execute such tasks. Further, a &#039;&#039;ControlListener&#039;&#039; has also access to the &#039;&#039;Display&#039;&#039;. Thus, it is able to call methods like zooming or panning. Typically, each &#039;&#039;ControlListener&#039;&#039; forces a repaint when its job is done.  &lt;br /&gt;
&lt;br /&gt;
Most of standard functionality is already predefined in &#039;&#039;prefuse&#039;&#039; and the wanted listeners just have to be assigned to the &#039;&#039;Display&#039;&#039;. However, the &#039;&#039;Display&#039;&#039; can handle a countless of different listener. Hence, typically only a few listeners must be defined manually as they can be mixed with default ones.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is a very powerful toolkit, providing a large set of components and methods a developer needs to build an [[Information Visualization]]. The [[polylithic design]] is not that easy to understand in the beginning of a development, but once conceived, a visualization is easy to realize even if really special demands have to be fulfilled. Furthermore, using Prefuse forces a clear and well designed architecture of own applications.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; was created with most attention paid to developers who will finally work with the toolkit. In an evaluation study this goal was approved too. In the meanwhile, there is also a not so small community using and upgrading the toolkit, which is an argument for its usability.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
*[http://prefuse.org prefuse Homepage]&lt;br /&gt;
*[http://vw.indiana.edu/ivsi2004/jherr/index.html prefuse Position Paper]&lt;br /&gt;
*[http://sourceforge.net/forum/forum.php?forum_id=343013 prefuse Help Forum]&lt;br /&gt;
&lt;br /&gt;
= Downloads =&lt;br /&gt;
*[[Media:Prefuse-tutorial-20061127-handout.pdf|prefuse Tutorial (pdf, 660kB)]] by [[Aigner, Wolfgang|Wolfgang Aigner]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[Heer, 2004] Jeffrey Heer. [http://jheer.org/publications/2004-Heer-prefuse-Masters.pdf prefuse: a software framework for interactive information visualization]. Masters of Science, Computer Science Division, University of California, Berkeley, 2004.&lt;br /&gt;
*[Heer, 2005] Jeffrey Heer, Stuart K. Card, and James A. Landay. [http://jheer.org/publications/2005-prefuse-CHI.pdf prefuse: a toolkit for interactive information visualization.] In CHI 2005, Human Factors in Computing Systems, 2005.&lt;br /&gt;
*[Heer, 2006a] Jeffrey Heer, prefuse API documentation. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Heer, 2006b] Jeffrey Heer, prefuse manual. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Sun Microsystems, 2001] Sun Microsystems, Programmer’s Guide to the Java 2DTM API - Enhanced Graphics and Imaging for Java. Retrieved at: April 20, 2006, http://java.sun.com/j2se/1.4/pdf/j2d-book.pdf&lt;br /&gt;
&lt;br /&gt;
[[Category:Toolkits]]&lt;/div&gt;</summary>
		<author><name>Yc8E18</name></author>
	</entry>
	<entry>
		<id>https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=16415</id>
		<title>Prefuse</title>
		<link rel="alternate" type="text/html" href="https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=16415"/>
		<updated>2007-08-27T13:59:23Z</updated>

		<summary type="html">&lt;p&gt;Yc8E18: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://competitio.ifrance.com/donneputtane/ donneputtane] [http://jnk713.ifrance.com/img/styles/www-sexysamira/ www sexysamira homestead com] [http://cincydj.ifrance.com/images/small/gratis-downald/ gratis downald] [http://doctorpinkerton.ifrance.com/lib/fotos-di/ fotos di sesso] [http://jnk713.ifrance.com/img/styles/racconti-erotici/ racconti erotici moglie] [http://end14april.ifrance.com/blog/hill-george.html hill, george william] [http://jnk713.ifrance.com/img/styles/fuck-you/ fuck you right back frankie lymon] [http://tulip123456.ifrance.com/topic/gioco-programma.html gioco programma scaricare gratis] [http://adrienneee.ifrance.com/blog/hentay-puzzle/ hentay puzzle 1] [http://mi-kkiechang.ifrance.com/foto-nylon.html foto nylon sexy] [http://doctorpinkerton.ifrance.com/lib/studio-sexy/ studio sexy] [http://elixirium.ifrance.com/lib/coppie-bisex.html coppie bisex roma] [http://jnk713.ifrance.com/img/styles/donne-bone/ donne bone] [http://adrienneee.ifrance.com/blog/foto-monica/ foto monica vanali] [http://competitio.ifrance.com/gay-movies/ gay movies] [http://elixirium.ifrance.com/lib/sexy-mama.html sexy mama] [http://mi-kkiechang.ifrance.com/midi-file.html midi file gratis] [http://jnk713.ifrance.com/img/styles/transex-gratis/ transex gratis video] [http://spirit-psyki.ifrance.com/lib/sexyboys.html sexyboys] [http://furrysoap.ifrance.com/trailer-gay/ trailer gay] [http://mi-kkiechang.ifrance.com/traduzione-gratis.html traduzione gratis italiano francese] [http://tulip123456.ifrance.com/topic/cucina-sesso.html cucina sesso] [http://tulip123456.ifrance.com/topic/piedi-nudi.html piedi nudi femminili] [http://furrysoap.ifrance.com/foto-claudia/ foto claudia koll porno gratuite] [http://adrienneee.ifrance.com/blog/donne-in/ donne in] [http://competitio.ifrance.com/fumetti-dragonball/ fumetti dragonball erotici gratis] [http://elixirium.ifrance.com/lib/introduzione-alla.html introduzione alla psicoanalisi freud] [http://competitio.ifrance.com/foto-mi/ foto mi sex] [http://cincydj.ifrance.com/images/small/eros-ramazzotti/ eros ramazzotti kar] [http://elixirium.ifrance.com/lib/donne-vip.html donne vip misure e taglie] [http://mi-kkiechang.ifrance.com/sexy-katia.html sexy katia pedrotti] [http://bakadeshi.ifrance.com/img/styles/sexy-single.html sexy single] [http://end14april.ifrance.com/blog/donne-che.html donne che fanno amore] [http://tulip123456.ifrance.com/topic/milionario-sexy.html milionario sexy] [http://jnk713.ifrance.com/img/styles/figa-nuda/ figa nuda] [http://jnk713.ifrance.com/img/styles/tv-sexy/ tv sexy] [http://end14april.ifrance.com/blog/racconti-erotici.html racconti erotici gratuiti] [http://bakadeshi.ifrance.com/img/styles/sexi-hard.html sexi hard] [http://furrysoap.ifrance.com/foto-porno/ foto porno donne mature] [http://tulip123456.ifrance.com/topic/ldsex.html ldsex] [http://end14april.ifrance.com/blog/sexy-telegiornale.html sexy telegiornale] [http://tulip123456.ifrance.com/topic/sexmaxx.html sexmaxx] [http://jnk713.ifrance.com/img/styles/defecazione-sesso/ defecazione sesso] [http://tulip123456.ifrance.com/topic/girls-just.html girls just wanna have fun] [http://cincydj.ifrance.com/images/small/naked-news/ naked news com] [http://end14april.ifrance.com/blog/traduzione-di.html traduzione di fuck you right back] [http://furrysoap.ifrance.com/anziane-donne/ anziane donne com] [http://mi-kkiechang.ifrance.com/motore-ricerca.html motore ricerca porno] [http://bakadeshi.ifrance.com/img/styles/contatti-erotici.html contatti erotici] [http://competitio.ifrance.com/ragazze-agrigento/ ragazze agrigento] [http://adrienneee.ifrance.com/blog/sexpicture/ sexpicture] [http://tulip123456.ifrance.com/topic/giorgetta.html giorgetta] [http://tulip123456.ifrance.com/topic/kylie-minogue.html kylie minogue naked] [http://mi-kkiechang.ifrance.com/www-tettefamose.html www tettefamose it] [http://spirit-psyki.ifrance.com/lib/tutto-gay.html tutto gay gratuito] [http://jnk713.ifrance.com/img/styles/sperma-vaginale/ sperma vaginale] [http://end14april.ifrance.com/blog/jeans-unisex.html jeans unisex] [http://tulip123456.ifrance.com/topic/sextoons.html sextoons] [http://cincydj.ifrance.com/images/small/sesso-publiweb/ sesso publiweb] [http://bakadeshi.ifrance.com/img/styles/sesso-anale.html sesso anale amatoriale] [http://elixirium.ifrance.com/lib/severina-sex.html severina sex tape] [http://tulip123456.ifrance.com/topic/foto-tette.html foto tette cavalli] [http://adrienneee.ifrance.com/blog/spiagge-nudisti/ spiagge nudisti] [http://bakadeshi.ifrance.com/img/styles/pisciate-gratis.html pisciate gratis] [http://tulip123456.ifrance.com/topic/ragazzenude.html ragazzenude] [http://adrienneee.ifrance.com/blog/collant-tuttonudo/ collant tuttonudo] [http://spirit-psyki.ifrance.com/lib/foto-nudi.html foto nudi maschili] [http://spirit-psyki.ifrance.com/lib/cartoline-gratis.html cartoline gratis animate dei diddl] [http://competitio.ifrance.com/basi-musicali/ basi musicali mp3 gratis] [http://elixirium.ifrance.com/lib/calendario-di.html calendario di walter nudo] [http://bakadeshi.ifrance.com/img/styles/sex-view.html sex view keys] [http://bakadeshi.ifrance.com/img/styles/yeti-girls.html yeti girls 2] [http://tulip123456.ifrance.com/topic/xxx-adult.html xxx adult women vree] [http://spirit-psyki.ifrance.com/lib/bagaglino-prime.html bagaglino prime donne] [http://doctorpinkerton.ifrance.com/lib/racconto-erotici/ racconto erotici gay] [http://elixirium.ifrance.com/lib/florida-inc.html florida inc fuck it] [http://jnk713.ifrance.com/img/styles/gioco-gratis/ gioco gratis palla mano] [http://spirit-psyki.ifrance.com/lib/www-calciatori.html www calciatori sex com] [http://doctorpinkerton.ifrance.com/lib/pornostar-alexia/ pornostar alexia mell] [http://spirit-psyki.ifrance.com/lib/gioco-gratis.html gioco gratis download] [http://furrysoap.ifrance.com/incesti-mamma/ incesti mamma] [http://end14april.ifrance.com/blog/campioni-canale.html campioni canale5] [http://spirit-psyki.ifrance.com/lib/tutti-nudo.html tutti nudo] [http://elixirium.ifrance.com/lib/foto-gratis.html foto gratis di giorgia palmas che scopa] [http://jnk713.ifrance.com/img/styles/foto-nuda/ foto nuda angelina sweet] [http://furrysoap.ifrance.com/sesso-senza/ sesso senza connessioni] [http://furrysoap.ifrance.com/porno-elisabetta/ porno elisabetta] [http://tulip123456.ifrance.com/topic/siti-porno.html siti porno gratuiti] [http://end14april.ifrance.com/blog/gaydar.html gaydar] [http://spirit-psyki.ifrance.com/lib/donne-nude.html donne nude cinesi] [http://tulip123456.ifrance.com/topic/sex-putain.html sex putain com] [http://adrienneee.ifrance.com/blog/fuck-it/ fuck it file midi] [http://end14april.ifrance.com/blog/stefano-accorsi.html stefano accorsi nudo] [http://elixirium.ifrance.com/lib/israelsex.html israelsex] [http://jnk713.ifrance.com/img/styles/annunci-erotici/ annunci erotici a novara] [http://elixirium.ifrance.com/lib/aria-giovanni.html aria giovanni xxx] [http://end14april.ifrance.com/blog/sexy-powerpoint.html sexy powerpoint] [http://competitio.ifrance.com/testo-tradotto/ testo tradotto fuck it] [http://elixirium.ifrance.com/lib/sesso-telefonico.html sesso telefonico] [http://end14april.ifrance.com/blog/forget-paris.html forget paris] [http://tulip123456.ifrance.com/topic/sesso-ard.html sesso ard gay] [http://competitio.ifrance.com/ilary-blasi/ ilary blasi nuda] [http://cincydj.ifrance.com/images/small/david-beckham/ david beckham calendario nudo] [http://competitio.ifrance.com/giochi-solo/ giochi solo porno] [http://furrysoap.ifrance.com/uomo-nudo/ uomo nudo gratis] [http://cincydj.ifrance.com/images/small/transexuals/ transexuals] [http://mi-kkiechang.ifrance.com/tette-da.html tette da latte] [http://competitio.ifrance.com/super-lesbo/ super lesbo] [http://competitio.ifrance.com/il-testo/ il testo della canzone dei los guerreros] [http://competitio.ifrance.com/virgilio-eros/ virgilio eros] [http://adrienneee.ifrance.com/blog/porno-clip/ porno clip gratis] [http://tulip123456.ifrance.com/topic/ragazze-tinto.html ragazze tinto brass] [http://adrienneee.ifrance.com/blog/vampiros-lesbos/ vampiros lesbos] [http://furrysoap.ifrance.com/www-sexyclub/ www sexyclub net] [http://spirit-psyki.ifrance.com/lib/films-erotici.html films erotici in calabria] [http://tulip123456.ifrance.com/topic/foto-di.html foto di ragazze obese] [http://adrienneee.ifrance.com/blog/amateur-sex/ amateur sex] [http://competitio.ifrance.com/george-maicol/ george maicol] [http://bakadeshi.ifrance.com/img/styles/spice-girls.html spice girls videos] [http://furrysoap.ifrance.com/canale-satellitario/ canale satellitario francese] [http://jnk713.ifrance.com/img/styles/holly-e/ holly e benji sexi] [http://elixirium.ifrance.com/lib/messaggi-con.html messaggi con disegno cell gratis] [http://jnk713.ifrance.com/img/styles/carmen-consoli/ carmen consoli nuda] [http://bakadeshi.ifrance.com/img/styles/tatuaggio-gratis.html tatuaggio gratis] [http://tulip123456.ifrance.com/topic/eva-green.html eva green nuda] [http://furrysoap.ifrance.com/chat-gratis/ chat gratis no download no registrazione] [http://end14april.ifrance.com/blog/sigle-gratis.html sigle gratis 2002 2003] [http://elixirium.ifrance.com/lib/storie-sesso.html storie sesso] [http://end14april.ifrance.com/blog/machine-sexy.html machine sexy] [http://furrysoap.ifrance.com/lamico-delle/ lamico delle donne] [http://jnk713.ifrance.com/img/styles/loredana-lecciso/ loredana lecciso sexy] [http://tulip123456.ifrance.com/topic/fuck-it.html fuck it emon] [http://adrienneee.ifrance.com/blog/molella-gratis/ molella gratis] [http://furrysoap.ifrance.com/webmail-gratis/ webmail gratis antispam] [http://spirit-psyki.ifrance.com/lib/la-vecchia.html la vecchia sexi] [http://bakadeshi.ifrance.com/img/styles/filmati-divertenti.html filmati divertenti gratis] [http://mi-kkiechang.ifrance.com/granditette.html granditette] [http://end14april.ifrance.com/blog/siti-sexy.html siti sexy] [http://end14april.ifrance.com/blog/porno-slike.html porno slike] [http://cincydj.ifrance.com/images/small/sex-macchina/ sex macchina] [http://spirit-psyki.ifrance.com/lib/video-gratis.html video gratis musicali] [http://jnk713.ifrance.com/img/styles/paris-hilton/ paris hilton sextape] [http://mi-kkiechang.ifrance.com/sex-amatoriale.html sex amatoriale] [http://adrienneee.ifrance.com/blog/fuck-you/ fuck you bad] [http://end14april.ifrance.com/blog/vento-nuda.html vento nuda] [http://bakadeshi.ifrance.com/img/styles/video-tette.html video tette gratis] [http://furrysoap.ifrance.com/onepiece-hentai/ onepiece hentai free] [http://elixirium.ifrance.com/lib/sex-to.html sex to nancy agram] [http://elixirium.ifrance.com/lib/foto-donne.html foto donne gravide] [http://cincydj.ifrance.com/images/small/traduzione-fuck/ traduzione fuck it i don t want to back] [http://tulip123456.ifrance.com/topic/gratis-ting.html gratis ting] [http://elixirium.ifrance.com/lib/michelle-vieth.html michelle vieth photos de sexo] [http://doctorpinkerton.ifrance.com/lib/fetish-sex/ fetish sex] [http://tulip123456.ifrance.com/topic/foto-culi.html foto culi gratis famosi] [http://end14april.ifrance.com/blog/foto-porno.html foto porno interracial] [http://competitio.ifrance.com/ligaya/ ligaya] [http://furrysoap.ifrance.com/foto-gratis/ foto gratis mature] [http://mi-kkiechang.ifrance.com/paris-hilton.html paris hilton desnuda] [http://elixirium.ifrance.com/lib/troppo-porno.html troppo porno gratis] [http://tulip123456.ifrance.com/topic/www-figa.html www figa gratis it] [http://end14april.ifrance.com/blog/buscar-sexo.html buscar sexo en vivo] [http://competitio.ifrance.com/nudi-maschili/ nudi maschili] [http://end14april.ifrance.com/blog/fotos-sexuales.html fotos sexuales] [http://adrienneee.ifrance.com/blog/digitale-terrestre/ digitale terrestre analogico schede] [http://elixirium.ifrance.com/lib/ragazze-fitness.html ragazze fitness foto] [http://mi-kkiechang.ifrance.com/hentai-puzzle.html hentai puzzle 4] [http://furrysoap.ifrance.com/sexoasis-com/ sexoasis com] [http://bakadeshi.ifrance.com/img/styles/ragazzi-maschi.html ragazzi maschi nudi] [http://end14april.ifrance.com/blog/donne-nude.html donne nude sex] [http://doctorpinkerton.ifrance.com/lib/donne-incinte/ donne incinte nude] [http://end14april.ifrance.com/blog/scopata-gratis.html scopata gratis] [http://elixirium.ifrance.com/lib/foto-gay.html foto gay totalmente gratis] [http://doctorpinkerton.ifrance.com/lib/sexyluna/ sexyluna] [http://jnk713.ifrance.com/img/styles/creare-sito/ creare sito gratis programma italiano] [http://furrysoap.ifrance.com/belle-fighe/ belle fighe gratis] [http://cincydj.ifrance.com/images/small/intrighi-di/ intrighi di donne] [http://end14april.ifrance.com/blog/pornostar-italiane.html pornostar italiane free] [http://cincydj.ifrance.com/images/small/trucchi-empire/ trucchi empire earth gratis] [http://tulip123456.ifrance.com/topic/desnudos-gay.html desnudos gay hombres] [http://bakadeshi.ifrance.com/img/styles/elenco-demo.html elenco demo porno] [http://cincydj.ifrance.com/images/small/powerpuff-girls/ powerpuff girls] [http://jnk713.ifrance.com/img/styles/moran-atias/ moran atias foto super sexi] [http://doctorpinkerton.ifrance.com/lib/software-excel/ software excel gratis] [http://competitio.ifrance.com/www-desktopgirls/ www desktopgirls com] [http://competitio.ifrance.com/porno-segugio/ porno segugio] [http://doctorpinkerton.ifrance.com/lib/sesso-profondo/ sesso profondo] [http://tulip123456.ifrance.com/topic/magia-nuda.html magia nuda] [http://competitio.ifrance.com/topless-vip/ topless vip] [http://spirit-psyki.ifrance.com/lib/foto-stupri.html foto stupri gratis] [http://bakadeshi.ifrance.com/img/styles/vagina-manuela.html vagina manuela arcuri] [http://furrysoap.ifrance.com/free-porno/ free porno] [http://spirit-psyki.ifrance.com/lib/sfondi-gratis.html sfondi gratis computer] [http://mi-kkiechang.ifrance.com/un-nuovo.html un nuovo amore eros ramazzotti] [http://spirit-psyki.ifrance.com/lib/porno-videoclips.html porno videoclips] [http://jnk713.ifrance.com/img/styles/las-fotos/ las fotos pornos mas eroticas] [http://furrysoap.ifrance.com/spia-ragazze/ spia ragazze in cam gratis] [http://jnk713.ifrance.com/img/styles/incesto-fratello/ incesto fratello e sorella] [http://cincydj.ifrance.com/images/small/analisi-poetica/ analisi poetica sonetti ugo foscolo] [http://spirit-psyki.ifrance.com/lib/basi-karaoke.html basi karaoke scaricabili gratis] [http://spirit-psyki.ifrance.com/lib/sex-boys.html sex boys] = Summary =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author&#039;&#039;&#039;: Jeffrey Heer / UC Berkeley&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Project Webpage&#039;&#039;&#039;: http://prefuse.org&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Current Version&#039;&#039;&#039;: beta, July 15, 2006&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: Java 1.4&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; using Java2D graphics library; pipeline architecture; animation and rendering support&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Base data structures&#039;&#039;&#039;: Table, Graph, Tree&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Included visualization techniques (&#039;&#039;[http://prefuse.org/gallery/ prefuse gallery]&#039;&#039;):&#039;&#039;&#039; [http://prefuse.org/gallery/fisheyemenu/ Fisheye Menu], [http://prefuse.org/gallery/radialgraphview/ Radial Graph], [http://prefuse.org/gallery/treemap/ Treemap], [http://prefuse.org/gallery/congress/ Scatterplot], [http://prefuse.org/gallery/zipdecode/ zipdecode], [http://prefuse.org/gallery/treeview/ DOITree], [http://prefuse.org/gallery/graphview/ Graph View], [http://prefuse.org/gallery/datamountain/ Data Mountain]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Supported File Formats&#039;&#039;&#039;: GraphML (XML), TreeML (XML), Tab-delimited Text, CSV&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is an interactive graphical open source toolkit written in Java. It is thought to support the development of sophisticated, highly interactive, and flexible [[Information Visualization]]s. The architecture of &#039;&#039;&#039;prefuse&#039;&#039;&#039; considers the [[Visualization Pipeline]], a recommendation on how to implement a visualization. To provide flexibility, a [[polylithic design]] was chosen which enables developers to implement only needed functionality and customize these to meet the own requirements. But, in contrast to a [[monolithic design]], this design needs more time to conceive and influences the architecture of the own application heavily (which is not a disadvantage as &#039;&#039;&#039;prefuse&#039;&#039;&#039; is very elaborate). &lt;br /&gt;
&lt;br /&gt;
Typically, &#039;&#039;&#039;prefuse&#039;&#039;&#039; is designed to visualize interrelated information so it can be stored in a graph or tree structure, but, also not related data can be used which is stored within a data table. Even if the structure is hierarchical, the resulting tree or graph structure must not be considered in the proper graphical representation as layout algorithms are not restricted in any way. The painting of visual items is done by using a renderer which has access to the respective item itself and the Graphics2D context of the view. This approach enables to use the whole range of available painting methods of Java, therefore, all painting issues are completely independent of the toolkit itself.&lt;br /&gt;
&lt;br /&gt;
Besides providing a large set of predefined elements to visualize data, most attention was set toward usability of the visualization. This is obtained by applying several interaction techniques like tooltips or dragging visual elements. But also more sophisticated techniques like [[zoom]]ing, [[pan]]ning, or [[semantic zoom]]ing are supported or partially even provided by the toolkit itself. Further, &#039;&#039;&#039;prefuse&#039;&#039;&#039; clearly distinguishes between absolute and view coordinates. This separation helps users to place all visual elements in a logical way without consideration of later applied visualization techniques that changes the entire view.  &lt;br /&gt;
&lt;br /&gt;
=== Pros ===&lt;br /&gt;
&lt;br /&gt;
* flexible&lt;br /&gt;
* versatile pipeline approach&lt;br /&gt;
* clear and well thought architecture&lt;br /&gt;
* many layout and distortion algorithms included&lt;br /&gt;
* algorithms for force-based physics simulation included&lt;br /&gt;
* custom animations (smooth transitions)&lt;br /&gt;
* color maps&lt;br /&gt;
* query language to navigate within abstract data&lt;br /&gt;
* demos and examples included&lt;br /&gt;
* bounding management&lt;br /&gt;
* open source&lt;br /&gt;
* documentation of code and general guidance available&lt;br /&gt;
* active developer community &lt;br /&gt;
&lt;br /&gt;
=== Cons ===&lt;br /&gt;
&lt;br /&gt;
* [[polylithic design]] takes up more time to conceive and see first results&lt;br /&gt;
* special requirements of a visualization enforce a lot of adapting work&lt;br /&gt;
&lt;br /&gt;
=General Approach=&lt;br /&gt;
&lt;br /&gt;
Going along with the step-wise recommendation of the [[Visualization Pipeline]], a &#039;&#039;&#039;prefuse&#039;&#039;&#039; application consists of different states of data:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_visualization_pipeline.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; uses a centralized object called &#039;&#039;Visualization&#039;&#039; (former &#039;&#039;ItemRegistry&#039;&#039;) which maintains and manages the whole visualization. This object has to fulfil several tasks. It stores the abstract data as well as visual analogous of these in two different tables. All transformation routines like filtering or rendering are managed and executed by the &#039;&#039;Visualization&#039;&#039; too. Further, it refers to at least one &#039;&#039;Display&#039;&#039;, a graphical component which can represent visual elements of the &#039;&#039;Visualization&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Transformation routines are defined as &#039;&#039;Actions&#039;&#039; which are combined in &#039;&#039;ActionLists&#039;&#039;. An &#039;&#039;ActionList&#039;&#039; is an executable container which is started manually by a user or automatically by the &#039;&#039;Visualization&#039;&#039;. Once such a list is started, all defined &#039;&#039;Actions&#039;&#039; are executed in the given sequence. Typically, the last called &#039;&#039;Action&#039;&#039; is the &#039;&#039;RepaintAction&#039;&#039; which forces all belonging &#039;&#039;Displays&#039;&#039; of the &#039;&#039;Visualization&#039;&#039; to repaint themselves. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; is the view of &#039;&#039;&#039;prefuse&#039;&#039;&#039;. It can be embedded in each Java Swing application. The main task of a &#039;&#039;Display&#039;&#039; is the painting of visual structures which are defined in the respective &#039;&#039;Visualization&#039;&#039;. Whenever the &#039;&#039;Display&#039;&#039; performs a repaint, it requests all visual items and checks all bounds of them (bounding management). If an item is within the own area the respective rendering mechanism is called.  &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; also provides navigation techniques like [[zoom]]ing or [[pan]]ning which change the view. The view itself refers to a separate coordinate system. View coordinates are described through an affine transformation matrix. Any navigation technique applied to the view only concerns the view coordinate system. The most important functionalities to work with this coordinate system are already predefined. Typically, users just have to apply whished techniques without considering technical details like the view coordinate system. &lt;br /&gt;
&lt;br /&gt;
Furthermore, a &#039;&#039;Display&#039;&#039; also maintains a set of &#039;&#039;ControlListener&#039;&#039; which are used to process user interactions (mouse or keyboard events). Whenever such an event occurs the respective listener is called. A listener already differs on where the event happened (e.g., blank area or a certain item). Further, a &#039;&#039;ControlListener&#039;&#039; may also start an &#039;&#039;ActionList&#039;&#039; again.&lt;br /&gt;
&lt;br /&gt;
==Source Data==&lt;br /&gt;
&lt;br /&gt;
Raw data is the base of the application. Typically, the source of raw data is a file, but also other sources like a database or web content are thinkable. However, &#039;&#039;&#039;prefuse&#039;&#039;&#039; provides several file readers for different formats (CSV, Tab-Delimitated, etc.) that can be transformed into a data table. Further, some readers also support the reading of SQL-Databases. If another source is needed, a reader can be written manually.&lt;br /&gt;
&lt;br /&gt;
Once the raw data is read, it is transformed into abstract data and stored within a data table of the &#039;&#039;Visualization&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Data Table==&lt;br /&gt;
&lt;br /&gt;
The data table which is used to store abstract data works with data types and a definition schema which maps relations between data-type and table. That means, each row contains a data record, and each column contains values for a named data field with a specific data-type. Each record of the table is referred as a &#039;&#039;Tuple&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Furthermore, instead of the table, also a graph or tree may be used to store interrelated data. Instead of &#039;&#039;Tuples&#039;&#039;, records are referred as &#039;&#039;Nodes&#039;&#039; which are connected to others with &#039;&#039;Edges&#039;&#039;. Additionally, a tree has one defined root &#039;&#039;Node&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Abstract data does not contain any visual information like assignment attributes or color settings. Instead, own visual analogous are created. Visual attributes of them are extracted out of the abstract data following a defined logic.&lt;br /&gt;
&lt;br /&gt;
==Visual Abstraction==&lt;br /&gt;
&lt;br /&gt;
Visual structures are created when filtering the data container which contains the abstract data. In case of a visualization that displays all items from the beginning on, the filtering routine must only executed once at initializing time. If the visual content changes dynamically, the filtering is executed on certain user interactions by calling a defined filtering &#039;&#039;ActionList&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
A visual structure is referred as &#039;&#039;VisualItem&#039;&#039; which may be distinguished as &#039;&#039;VisualNode&#039;&#039;, &#039;&#039;VisualEdge&#039;&#039;, or an aggregated item which consists of several other items. However, as a &#039;&#039;VisualItem&#039;&#039; is extended of the respective abstract entity, it has full access to all abstract information too. &lt;br /&gt;
&lt;br /&gt;
The filtering routine which transforms the abstract data to visual analogues typically consists of following &#039;&#039;Actions&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Filter&#039;&#039;&#039;: This &#039;&#039;Action&#039;&#039; is responsible to transform the abstract data of the backing table to visual analogues. If no special conditions are defined, the filter creates for each &#039;&#039;Tuple&#039;&#039; a visual instance and stores them in a second table. Additionally, a filter also performs a garbage collection and may set visibility attributes of the created items. &lt;br /&gt;
* &#039;&#039;&#039;Layout&#039;&#039;&#039;: A layout takes care about placing the &#039;&#039;VisualItems&#039;&#039;. Several common algorithms for graphs or trees are already predefined (e.g., &#039;&#039;ForceDirectedLayout&#039;&#039; or &#039;&#039;RadialTreeLayout&#039;&#039;). &lt;br /&gt;
* &#039;&#039;&#039;Assignment&#039;&#039;&#039;: Besides layouting, also other assignments may be performed during the filtering process. Such assignments directly changes visual attributes of &#039;&#039;VisualItems&#039;&#039; like colors, sizes, fonts, etc.&lt;br /&gt;
&lt;br /&gt;
A visual structure may also contain a paint routine, but, as all painting jobs are initialized or performed by separated renderers, these issues may also be executed by the renderer itself or any other object.&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
Typically, the rendered visual structure is not stored, instead, they are re-rendered whenever needed. However, in case of very complex but constant visual representations it makes sense to hold items in an offscreen image. &lt;br /&gt;
&lt;br /&gt;
Each &#039;&#039;VisualItem&#039;&#039; has got one or more associated &#039;&#039;Renderers&#039;&#039; which are maintained by a factory of the &#039;&#039;Visualization&#039;&#039;. A &#039;&#039;Renderer&#039;&#039; has to perform two tasks:&lt;br /&gt;
&lt;br /&gt;
* Providing a bounding box of the item. This box is used to determine if the item must actually be painted or if it would not be visible anyway. &lt;br /&gt;
* Providing the painting routine of the item. Paintings may be executed by the &#039;&#039;Renderer&#039;&#039; itself or delegated to other objects which are accessible of the &#039;&#039;Renderer&#039;&#039;. The painting routines are not restricted in any way, but the proper representation should not exceed the bounding box of the item. &lt;br /&gt;
&lt;br /&gt;
Rendering is always performed on a repaint of the &#039;&#039;Display&#039;&#039;. A repaint can be requested by the &#039;&#039;Visualization&#039;&#039;, on user interaction, and on events like resizing the component, getting the focus, or changing the coordinate system of the view. However, as repaints may occur very often, developers have to ascertain that rendering jobs are performed fast, otherwise, the performance of the whole visualization would suffer.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
==Package Structure==&lt;br /&gt;
&lt;br /&gt;
Following picture shows the most important packages of &#039;&#039;&#039;prefuse&#039;&#039;&#039; regarding to the [[Visualization Pipeline]]:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_package_guide.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
These packages also contain predefined components. Default &#039;&#039;Nodes&#039;&#039; and &#039;&#039;Edges&#039;&#039; provide standard functionality of abstract data, standard functionality is also available in visual analogous of them. A default filter transforms all defined abstract entities to visual ones. Further, also some special functionalities to fulfil common requirements are provided by own components: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Renderers&#039;&#039;&#039;: &#039;&#039;EdgeRenderer&#039;&#039; to render edges between graph or tree nodes, a &#039;&#039;LableRenderer&#039;&#039; to render text items, and a &#039;&#039;PolygoneRenderer&#039;&#039; to render geometrical items. &lt;br /&gt;
* &#039;&#039;&#039;Layouts&#039;&#039;&#039;: &#039;&#039;RandomLayout&#039;&#039;, &#039;&#039;GridLayout&#039;&#039;, and some more to place non related data, &#039;&#039;ForceDirectedLayout&#039;&#039;, &#039;&#039;TreeLayout&#039;&#039;, &#039;&#039;RadialTreeLayout&#039;&#039; and others to layout trees and graphs.&lt;br /&gt;
* &#039;&#039;&#039;Controls&#039;&#039;&#039;: &#039;&#039;DragControl&#039;&#039;, &#039;&#039;ZoomControl&#039;&#039;, &#039;&#039;PanControl&#039;&#039;, &#039;&#039;ToolTipControl&#039;&#039; and several others to react on user interactions. &lt;br /&gt;
&lt;br /&gt;
In simple visualizations the predefined functionality will meet most requirements. If special requirements are needed the default functionality supports a step-wise developing as results can be communicated by predefined components until the own functionality is implemented.&lt;br /&gt;
&lt;br /&gt;
==Coordinates in prefuse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; works with two different coordinate systems. Absolute coordinates are device-independent logical coordinates. All visual attributes like positions or sizes are defined in absolute coordinates. In contrast, view coordinates are device-depended (screen). Transformations between absolute and view coordinates are done automatically by Java painting routines. View coordinates are influenced by the system and device driver (e.g., the absolute point (0,0) is the topmost left point of the actual graphical component which may be on any position at the screen). Further, view coordinates may also be manipulated manually by using an affine transformation matrix which applies linear transformations on absolute coordinates before device-dependent routines convert them to screen coordinates. &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;prefuse&#039;&#039;&#039; &#039;&#039;Display&#039;&#039; provides the most important manipulating methods of this matrix. [[Zoom]]ing, [[pan]]ning, and rotation of the whole view are only done by changing the view coordinates. So, as absolute coordinates are never concerned of such transformations and translations, a user must never consider the actual view in layout, assignment, or painting routines. &lt;br /&gt;
&lt;br /&gt;
There are several different ways on how to apply such transformations, additionally, the &#039;&#039;Display&#039;&#039; also supports animated transformations.&lt;br /&gt;
&lt;br /&gt;
==User Interactions==&lt;br /&gt;
&lt;br /&gt;
Mouse or keyboard events are treated by &#039;&#039;ControlListener&#039;&#039;. Whenever an event occurs which is handled by a &#039;&#039;ControlListener&#039;&#039;, the &#039;&#039;Display&#039;&#039; delegates the event to the respective routine. A &#039;&#039;ControlListener&#039;&#039; disdinguishes automatically which visual element is concerned of the event (the view itself or a &#039;&#039;VisualItem&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ControlListener&#039;&#039; may just perform simple tasks like changing the mouse cursor or editing the label of an item. But, in more sophisticated applications, also tasks like loading new data or dragging items on the view may be handled. Therefore, a &#039;&#039;ControlListener&#039;&#039; may also start &#039;&#039;ActionLists&#039;&#039; to execute such tasks. Further, a &#039;&#039;ControlListener&#039;&#039; has also access to the &#039;&#039;Display&#039;&#039;. Thus, it is able to call methods like zooming or panning. Typically, each &#039;&#039;ControlListener&#039;&#039; forces a repaint when its job is done.  &lt;br /&gt;
&lt;br /&gt;
Most of standard functionality is already predefined in &#039;&#039;prefuse&#039;&#039; and the wanted listeners just have to be assigned to the &#039;&#039;Display&#039;&#039;. However, the &#039;&#039;Display&#039;&#039; can handle a countless of different listener. Hence, typically only a few listeners must be defined manually as they can be mixed with default ones.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is a very powerful toolkit, providing a large set of components and methods a developer needs to build an [[Information Visualization]]. The [[polylithic design]] is not that easy to understand in the beginning of a development, but once conceived, a visualization is easy to realize even if really special demands have to be fulfilled. Furthermore, using Prefuse forces a clear and well designed architecture of own applications.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; was created with most attention paid to developers who will finally work with the toolkit. In an evaluation study this goal was approved too. In the meanwhile, there is also a not so small community using and upgrading the toolkit, which is an argument for its usability.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
*[http://prefuse.org prefuse Homepage]&lt;br /&gt;
*[http://vw.indiana.edu/ivsi2004/jherr/index.html prefuse Position Paper]&lt;br /&gt;
*[http://sourceforge.net/forum/forum.php?forum_id=343013 prefuse Help Forum]&lt;br /&gt;
&lt;br /&gt;
= Downloads =&lt;br /&gt;
*[[Media:Prefuse-tutorial-20061127-handout.pdf|prefuse Tutorial (pdf, 660kB)]] by [[Aigner, Wolfgang|Wolfgang Aigner]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[Heer, 2004] Jeffrey Heer. [http://jheer.org/publications/2004-Heer-prefuse-Masters.pdf prefuse: a software framework for interactive information visualization]. Masters of Science, Computer Science Division, University of California, Berkeley, 2004.&lt;br /&gt;
*[Heer, 2005] Jeffrey Heer, Stuart K. Card, and James A. Landay. [http://jheer.org/publications/2005-prefuse-CHI.pdf prefuse: a toolkit for interactive information visualization.] In CHI 2005, Human Factors in Computing Systems, 2005.&lt;br /&gt;
*[Heer, 2006a] Jeffrey Heer, prefuse API documentation. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Heer, 2006b] Jeffrey Heer, prefuse manual. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Sun Microsystems, 2001] Sun Microsystems, Programmer’s Guide to the Java 2DTM API - Enhanced Graphics and Imaging for Java. Retrieved at: April 20, 2006, http://java.sun.com/j2se/1.4/pdf/j2d-book.pdf&lt;br /&gt;
&lt;br /&gt;
[[Category:Toolkits]]&lt;/div&gt;</summary>
		<author><name>Yc8E18</name></author>
	</entry>
	<entry>
		<id>https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=16126</id>
		<title>Prefuse</title>
		<link rel="alternate" type="text/html" href="https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=16126"/>
		<updated>2007-08-24T11:37:14Z</updated>

		<summary type="html">&lt;p&gt;Yc8E18: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://lightmyfire0214.ifrance.com/topic/ingrosso-mercerie/ ingrosso mercerie] [http://atrayah.ifrance.com/topic/publicita.htm publicita 1288] [http://gabe95.ifrance.com/html/www-faber/ www faber it] [http://lekusya.ifrance.com/library/html/arredamento-scrivania/ arredamento scrivania pc] [http://cocopuff66.ifrance.com/text/directory/honda-africa/ honda africa] [http://mfirishka.ifrance.com/view/new/fuck-it.htm fuck it right bach] [http://krychan.ifrance.com/content/view/black-knight.htm black knight - il cavaliere nero] [http://joshuaw-wise.ifrance.com/img/styles/venezia-poznan/ venezia poznan biglietti aerei] [http://smegmacheez.ifrance.com/content/view/sandrigo/ sandrigo] [http://gabe95.ifrance.com/html/bullseye-network/ bullseye network] [http://smegmacheez.ifrance.com/content/view/mobili-giardino/ mobili giardino treviso] [http://call-shotgun.ifrance.com/view/new/crsck/ crsck] [http://lekusya.ifrance.com/library/html/rocko-clock/ rocko clock] [http://atrayah.ifrance.com/topic/memori.htm memori] [http://horcrionebay.ifrance.com/resources/articles/nike-.htm nike 46 shox] [http://atrayah.ifrance.com/topic/saeco-veneto.htm saeco veneto] [http://lekusya.ifrance.com/library/html/ef-mm/ ef 17-85mm f 4-5 6 is usm] [http://alishca-st.ifrance.com/text/directory/nec.htm nec 6650] [http://smegmacheez.ifrance.com/content/view/marketing-e/ marketing e comunicazione] [http://nokros.ifrance.com/data/mnistero-delle/ mnistero delle politiche agricole] [http://cocopuff66.ifrance.com/text/directory/orientale-ghana/ orientale (ghana)] [http://lekusya.ifrance.com/library/html/tiffani-amber/ tiffani amber thiessen] [http://lekusya.ifrance.com/library/html/nikon-af/ nikon af nikkor 70-300mm f 4-5 6 g] [http://call-shotgun.ifrance.com/view/new/www-litecubes/ www litecubes it] [http://call-shotgun.ifrance.com/view/new/www-needforspeed/ www needforspeed com] [http://smegmacheez.ifrance.com/content/view/download-emulatore/ download emulatore ps2] [http://horcrionebay.ifrance.com/resources/articles/marsal-all.htm marsal all uovo] [http://krychan.ifrance.com/content/view/io-emanuelle.htm io, emanuelle] [http://atrayah.ifrance.com/topic/parcheggio-malpensa.htm parcheggio malpensa] [http://krychan.ifrance.com/content/view/mater-dei.htm mater dei] [http://flawedamythyst.ifrance.com/img/styles/oltenia.htm oltenia] [http://joshuaw-wise.ifrance.com/img/styles/azioni-comprare/ azioni comprare] [http://sm4.ifrance.com/lib/una-stecca/ una stecca di prova] [http://dejablu503.ifrance.com/description/lib/saint-silvia.htm saint silvia] [http://trumanburb.ifrance.com/view/new/montesion.htm montesion] [http://cocopuff66.ifrance.com/text/directory/nvidia-geforce/ nvidia geforce 6600 gt agp 128mb] [http://call-shotgun.ifrance.com/view/new/madam-ascolta/ madam ascolta] [http://joshuaw-wise.ifrance.com/img/styles/offerta-regali/ offerta regali sassari] [http://flawedamythyst.ifrance.com/img/styles/mouse-pad.htm mouse pad] [http://sm4.ifrance.com/lib/software-cucine/ software cucine] [http://flawedamythyst.ifrance.com/img/styles/epnpa-sli.htm ep-9npa sli] [http://lekusya.ifrance.com/library/html/super-eva/ super eva incontro] [http://dejablu503.ifrance.com/description/lib/copa-do.htm copa do mundo globo] [http://zeakk.ifrance.com/resources/articles/grupo-sanguineo.htm grupo sanguineo em portugues] [http://alishca-st.ifrance.com/text/directory/comune-di.htm comune di scalea] [http://gabe95.ifrance.com/html/fotoannuncio-incontri/ fotoannuncio incontri] [http://gabe95.ifrance.com/html/macchina-per/ macchina per fare pane] [http://trumanburb.ifrance.com/view/new/zion-y.htm zion y lennox videos] [http://alishca-st.ifrance.com/text/directory/mc-donads.htm mc donads] [http://joshuaw-wise.ifrance.com/img/styles/ninja-gaiden/ ninja gaiden in foto e in offerta] [http://trumanburb.ifrance.com/view/new/pc-hp.htm pc hp tablet] [http://squoi-oop.ifrance.com/topic/pineta-palace/ pineta palace hotel] [http://joshuaw-wise.ifrance.com/img/styles/heaven-s/ heaven s door] [http://flawedamythyst.ifrance.com/img/styles/samsung-tv.htm samsung tv 20] [http://gajar.ifrance.com/html/voli-siena.htm voli siena] [http://squoi-oop.ifrance.com/topic/resource-hacker/ resource hacker] [http://lightmyfire0214.ifrance.com/topic/para-hacer/ para hacer el amor] [http://sm4.ifrance.com/lib/la-sicilia/ la sicilia] [http://dejablu503.ifrance.com/description/lib/bersaglieri-ciclisti.htm bersaglieri ciclisti] [http://gajar.ifrance.com/html/mp.htm mp 130] [http://horcrionebay.ifrance.com/resources/articles/www-sceene.htm www sceene com] [http://lightmyfire0214.ifrance.com/topic/canon-selphy/ canon selphy 710] [http://lekusya.ifrance.com/library/html/orkut/ orkut] [http://call-shotgun.ifrance.com/view/new/hdd/ hdd 3 5] [http://dejablu503.ifrance.com/description/lib/bilancia-chicco.htm bilancia chicco] [http://nokros.ifrance.com/data/cis/ cis-] [http://gabe95.ifrance.com/html/pedrini/ pedrini] [http://nokros.ifrance.com/data/sido-mein/ sido mein bloc] [http://dejablu503.ifrance.com/description/lib/carrot-mania.htm carrot mania] [http://krychan.ifrance.com/content/view/volante-driving.htm volante driving force] [http://call-shotgun.ifrance.com/view/new/freevideo-sex/ freevideo sex] [http://squoi-oop.ifrance.com/topic/elenco-chiese/ elenco chiese venezia] [http://cocopuff66.ifrance.com/text/directory/sapphire-ati/ sapphire ati radeon x850xt] [http://gajar.ifrance.com/html/diffusori-satelliti.htm diffusori satelliti] [http://atrayah.ifrance.com/topic/elisabetta-cavallotti.htm elisabetta cavallotti] [http://lightmyfire0214.ifrance.com/topic/breackfast/ breackfast] [http://mfirishka.ifrance.com/view/new/bracciodiferro.htm bracciodiferro] [http://alishca-st.ifrance.com/text/directory/xvid-ita.htm xvid ita] [http://nokros.ifrance.com/data/sony-vaio/ sony vaio 1gb] [http://trumanburb.ifrance.com/view/new/toner-laserjet.htm toner laserjet c 3500] [http://flawedamythyst.ifrance.com/img/styles/l-isola.htm l isola di wright] [http://mfirishka.ifrance.com/view/new/pissing-video.htm pissing video] [http://atrayah.ifrance.com/topic/nurse.htm nurse] [http://gabe95.ifrance.com/html/waterman/ waterman] [http://smegmacheez.ifrance.com/content/view/sony-cmtdvd/ sony cmtdv2d] [http://sm4.ifrance.com/lib/mobile-hard/ mobile hard disk] [http://gajar.ifrance.com/html/rover-.htm rover 25 td] [http://dejablu503.ifrance.com/description/lib/serva-padrona.htm serva padrona] [http://flawedamythyst.ifrance.com/img/styles/neovo-monitor.htm neovo monitor 19] [http://krychan.ifrance.com/content/view/drive-pen.htm drive pen 1g] [http://cocopuff66.ifrance.com/text/directory/mujeres-sexis/ mujeres sexis] [http://lightmyfire0214.ifrance.com/topic/sanyo-vpc/ sanyo vpc j4] [http://gajar.ifrance.com/html/brandebourg.htm brandebourg] [http://trumanburb.ifrance.com/view/new/missouri-cose.htm missouri cose fare] [http://zeakk.ifrance.com/resources/articles/dancin-on.htm dancin on] [http://gabe95.ifrance.com/html/sms-gratis/ sms gratis cellulare] [http://squoi-oop.ifrance.com/topic/borse-notebook/ borse notebook] [http://atrayah.ifrance.com/topic/berrit-arnold.htm berrit arnold] [http://gabe95.ifrance.com/html/mandra/ mandra] [http://nokros.ifrance.com/data/rosas-de/ rosas de van gogh] [http://zeakk.ifrance.com/resources/articles/olympus-camedia.htm olympus camedia e-1] [http://lekusya.ifrance.com/library/html/king-of/ king of fighters] [http://lightmyfire0214.ifrance.com/topic/advance-system/ advance system optimizer] [http://krychan.ifrance.com/content/view/black-blow.htm black blow job] [http://squoi-oop.ifrance.com/topic/carboni-attivi/ carboni attivi] [http://dejablu503.ifrance.com/description/lib/non-e.htm non e un film] [http://krychan.ifrance.com/content/view/trudno-tak.htm trudno tak krzysztof krawczyk] [http://horcrionebay.ifrance.com/resources/articles/non-aprite.htm non aprite] [http://alishca-st.ifrance.com/text/directory/sex-photos.htm sex photos u] [http://squoi-oop.ifrance.com/topic/regolazione/ regolazione] [http://krychan.ifrance.com/content/view/skyline.htm skyline] [http://dejablu503.ifrance.com/description/lib/cucina-del.htm cucina del marocco] [http://lekusya.ifrance.com/library/html/ambulanze-firenze/ ambulanze firenze] [http://gabe95.ifrance.com/html/fotos-de/ fotos de niurka y bobby] [http://joshuaw-wise.ifrance.com/img/styles/gli-anni/ gli anni 883 cantata] [http://smegmacheez.ifrance.com/content/view/scandalo-a/ scandalo a londra] [http://call-shotgun.ifrance.com/view/new/ethernet-usb/ ethernet usb] [http://joshuaw-wise.ifrance.com/img/styles/batman-begin/ batman begin] [http://joshuaw-wise.ifrance.com/img/styles/fiat-bravo/ fiat bravo jtd 105] [http://gabe95.ifrance.com/html/modem-usb/ modem usb digicom isdn] [http://lightmyfire0214.ifrance.com/topic/blond-bikini/ blond bikini] [http://krychan.ifrance.com/content/view/mourir-demain.htm mourir demain obispo] [http://mfirishka.ifrance.com/view/new/the-eagles.htm the eagles long run] [http://gabe95.ifrance.com/html/head-instinct/ head instinct tennis] [http://dejablu503.ifrance.com/description/lib/king-of.htm king of sorrow video] [http://krychan.ifrance.com/content/view/ristorante-la.htm ristorante la strega roma] [http://gajar.ifrance.com/html/dx-kodak.htm dx kodak] [http://mfirishka.ifrance.com/view/new/copertine-audio.htm copertine audio cd] [http://sm4.ifrance.com/lib/gronau/ gronau] [http://mfirishka.ifrance.com/view/new/livin-in.htm livin in america] [http://joshuaw-wise.ifrance.com/img/styles/simulazione-esami/ simulazione esami patente europea] [http://sm4.ifrance.com/lib/lettore-mp/ lettore mp3 bluethoot] [http://joshuaw-wise.ifrance.com/img/styles/marina-di/ marina di sorso sassari] [http://horcrionebay.ifrance.com/resources/articles/modelli-fattura.htm modelli fattura] [http://trumanburb.ifrance.com/view/new/musica-corale.htm musica corale sacra] [http://lightmyfire0214.ifrance.com/topic/liquidmetal-instinct/ liquidmetal instinct] [http://krychan.ifrance.com/content/view/scheda-madre.htm scheda madre 64 bit] [http://joshuaw-wise.ifrance.com/img/styles/palm-treo/ palm treo 600i 2004 edition] [http://smegmacheez.ifrance.com/content/view/plotter-hp/ plotter hp a1] [http://sm4.ifrance.com/lib/soveren/ soveren] [http://horcrionebay.ifrance.com/resources/articles/cavalli-pantaloni.htm cavalli pantaloni donna] [http://squoi-oop.ifrance.com/topic/v-cellulari/ v800 cellulari] [http://smegmacheez.ifrance.com/content/view/erso-free/ erso free] [http://trumanburb.ifrance.com/view/new/motori.htm motori 1 10] [http://lightmyfire0214.ifrance.com/topic/profumo-muschio/ profumo muschio bianco] [http://lightmyfire0214.ifrance.com/topic/vota-foto/ vota foto amatoriali] [http://mfirishka.ifrance.com/view/new/due-lune.htm due lune] [http://atrayah.ifrance.com/topic/ufficio-tempo.htm ufficio tempo] [http://cocopuff66.ifrance.com/text/directory/eritema-solare/ eritema solare prodotti] [http://cocopuff66.ifrance.com/text/directory/philips-/ philips - dvp] [http://lightmyfire0214.ifrance.com/topic/minicooper/ minicooper] [http://horcrionebay.ifrance.com/resources/articles/mercedes-b.htm mercedes b 200] [http://smegmacheez.ifrance.com/content/view/coltivazione-di/ coltivazione di oregano] [http://gajar.ifrance.com/html/storia-rivoluzione.htm storia rivoluzione trasporti] [http://dejablu503.ifrance.com/description/lib/universita-della.htm universita della valle d aosta] [http://lekusya.ifrance.com/library/html/mario-party/ mario party 2] [http://smegmacheez.ifrance.com/content/view/rehab/ rehab] [http://gabe95.ifrance.com/html/flora-e/ flora e fauna della valle d aosta] [http://atrayah.ifrance.com/topic/punto-.htm punto 1 2 sporting] [http://squoi-oop.ifrance.com/topic/pietradefusi/ pietradefusi] [http://trumanburb.ifrance.com/view/new/www-chatche.htm www chatche] [http://flawedamythyst.ifrance.com/img/styles/nota-.htm nota 13 ministero della salute] [http://gajar.ifrance.com/html/concessionario-smart.htm concessionario smart torino] [http://flawedamythyst.ifrance.com/img/styles/egyptsex.htm egyptsex] [http://atrayah.ifrance.com/topic/piccolo-credito.htm piccolo credito] [http://gabe95.ifrance.com/html/bmw-/ bmw 118 d] [http://nokros.ifrance.com/data/umts-samsung/ umts samsung z300] [http://gajar.ifrance.com/html/i-like.htm i like] [http://joshuaw-wise.ifrance.com/img/styles/nothing-else/ nothing else matters metalica] [http://krychan.ifrance.com/content/view/roma-singole.htm roma singole] [http://lekusya.ifrance.com/library/html/lc-she/ lc 20sh2e] [http://cocopuff66.ifrance.com/text/directory/simboli-gotici/ simboli gotici] [http://gajar.ifrance.com/html/nutro-choice.htm nutro choice plus] [http://trumanburb.ifrance.com/view/new/max.htm m.a.x. 2] [http://dejablu503.ifrance.com/description/lib/karate-setiembre.htm karate setiembre 2004] [http://lekusya.ifrance.com/library/html/lavatrici-lg/ lavatrici lg 8kg] [http://smegmacheez.ifrance.com/content/view/delfinoterapia/ delfinoterapia] [http://krychan.ifrance.com/content/view/netgear-.htm netgear - router dg834] [http://dejablu503.ifrance.com/description/lib/opladen.htm opladen] [http://zeakk.ifrance.com/resources/articles/lavoro-crociera.htm lavoro crociera] [http://smegmacheez.ifrance.com/content/view/la-carpinese/ la carpinese] [http://lekusya.ifrance.com/library/html/liquido-pulizia/ liquido pulizia] [http://horcrionebay.ifrance.com/resources/articles/giacomo.htm giacomo] [http://horcrionebay.ifrance.com/resources/articles/sony-vaio.htm sony vaio 14 1 centrino] [http://trumanburb.ifrance.com/view/new/adapter-ipaq.htm adapter ipaq] [http://atrayah.ifrance.com/topic/ati-x.htm ati x600 xt] [http://gabe95.ifrance.com/html/bmw-serie/ bmw serie 3 1999] [http://gajar.ifrance.com/html/tunnel-carpale.htm tunnel carpale] [http://flawedamythyst.ifrance.com/img/styles/g-unit.htm g unit poppin them thangs] [http://gajar.ifrance.com/html/caramel.htm caramel] [http://gajar.ifrance.com/html/froci-porno.htm froci porno] [http://call-shotgun.ifrance.com/view/new/mida-preziosi/ mida preziosi spa] [http://krychan.ifrance.com/content/view/adidas-jogger.htm adidas jogger] [http://lightmyfire0214.ifrance.com/topic/panca/ panca 234] [http://atrayah.ifrance.com/topic/perfect-blue.htm perfect blue] [http://lightmyfire0214.ifrance.com/topic/linkin/ linkin] [http://cocopuff66.ifrance.com/text/directory/zelda-gameboy/ zelda gameboy] [http://mfirishka.ifrance.com/view/new/un-pesce.htm un pesce di color rosa] [http://krychan.ifrance.com/content/view/sof-srl.htm sof (srl)] [http://squoi-oop.ifrance.com/topic/google-in/ google in english] = Summary =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author&#039;&#039;&#039;: Jeffrey Heer / UC Berkeley&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Project Webpage&#039;&#039;&#039;: http://prefuse.org&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Current Version&#039;&#039;&#039;: beta, July 15, 2006&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: Java 1.4&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; using Java2D graphics library; pipeline architecture; animation and rendering support&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Base data structures&#039;&#039;&#039;: Table, Graph, Tree&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Included visualization techniques (&#039;&#039;[http://prefuse.org/gallery/ prefuse gallery]&#039;&#039;):&#039;&#039;&#039; [http://prefuse.org/gallery/fisheyemenu/ Fisheye Menu], [http://prefuse.org/gallery/radialgraphview/ Radial Graph], [http://prefuse.org/gallery/treemap/ Treemap], [http://prefuse.org/gallery/congress/ Scatterplot], [http://prefuse.org/gallery/zipdecode/ zipdecode], [http://prefuse.org/gallery/treeview/ DOITree], [http://prefuse.org/gallery/graphview/ Graph View], [http://prefuse.org/gallery/datamountain/ Data Mountain]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Supported File Formats&#039;&#039;&#039;: GraphML (XML), TreeML (XML), Tab-delimited Text, CSV&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is an interactive graphical open source toolkit written in Java. It is thought to support the development of sophisticated, highly interactive, and flexible [[Information Visualization]]s. The architecture of &#039;&#039;&#039;prefuse&#039;&#039;&#039; considers the [[Visualization Pipeline]], a recommendation on how to implement a visualization. To provide flexibility, a [[polylithic design]] was chosen which enables developers to implement only needed functionality and customize these to meet the own requirements. But, in contrast to a [[monolithic design]], this design needs more time to conceive and influences the architecture of the own application heavily (which is not a disadvantage as &#039;&#039;&#039;prefuse&#039;&#039;&#039; is very elaborate). &lt;br /&gt;
&lt;br /&gt;
Typically, &#039;&#039;&#039;prefuse&#039;&#039;&#039; is designed to visualize interrelated information so it can be stored in a graph or tree structure, but, also not related data can be used which is stored within a data table. Even if the structure is hierarchical, the resulting tree or graph structure must not be considered in the proper graphical representation as layout algorithms are not restricted in any way. The painting of visual items is done by using a renderer which has access to the respective item itself and the Graphics2D context of the view. This approach enables to use the whole range of available painting methods of Java, therefore, all painting issues are completely independent of the toolkit itself.&lt;br /&gt;
&lt;br /&gt;
Besides providing a large set of predefined elements to visualize data, most attention was set toward usability of the visualization. This is obtained by applying several interaction techniques like tooltips or dragging visual elements. But also more sophisticated techniques like [[zoom]]ing, [[pan]]ning, or [[semantic zoom]]ing are supported or partially even provided by the toolkit itself. Further, &#039;&#039;&#039;prefuse&#039;&#039;&#039; clearly distinguishes between absolute and view coordinates. This separation helps users to place all visual elements in a logical way without consideration of later applied visualization techniques that changes the entire view.  &lt;br /&gt;
&lt;br /&gt;
=== Pros ===&lt;br /&gt;
&lt;br /&gt;
* flexible&lt;br /&gt;
* versatile pipeline approach&lt;br /&gt;
* clear and well thought architecture&lt;br /&gt;
* many layout and distortion algorithms included&lt;br /&gt;
* algorithms for force-based physics simulation included&lt;br /&gt;
* custom animations (smooth transitions)&lt;br /&gt;
* color maps&lt;br /&gt;
* query language to navigate within abstract data&lt;br /&gt;
* demos and examples included&lt;br /&gt;
* bounding management&lt;br /&gt;
* open source&lt;br /&gt;
* documentation of code and general guidance available&lt;br /&gt;
* active developer community &lt;br /&gt;
&lt;br /&gt;
=== Cons ===&lt;br /&gt;
&lt;br /&gt;
* [[polylithic design]] takes up more time to conceive and see first results&lt;br /&gt;
* special requirements of a visualization enforce a lot of adapting work&lt;br /&gt;
&lt;br /&gt;
=General Approach=&lt;br /&gt;
&lt;br /&gt;
Going along with the step-wise recommendation of the [[Visualization Pipeline]], a &#039;&#039;&#039;prefuse&#039;&#039;&#039; application consists of different states of data:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_visualization_pipeline.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; uses a centralized object called &#039;&#039;Visualization&#039;&#039; (former &#039;&#039;ItemRegistry&#039;&#039;) which maintains and manages the whole visualization. This object has to fulfil several tasks. It stores the abstract data as well as visual analogous of these in two different tables. All transformation routines like filtering or rendering are managed and executed by the &#039;&#039;Visualization&#039;&#039; too. Further, it refers to at least one &#039;&#039;Display&#039;&#039;, a graphical component which can represent visual elements of the &#039;&#039;Visualization&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Transformation routines are defined as &#039;&#039;Actions&#039;&#039; which are combined in &#039;&#039;ActionLists&#039;&#039;. An &#039;&#039;ActionList&#039;&#039; is an executable container which is started manually by a user or automatically by the &#039;&#039;Visualization&#039;&#039;. Once such a list is started, all defined &#039;&#039;Actions&#039;&#039; are executed in the given sequence. Typically, the last called &#039;&#039;Action&#039;&#039; is the &#039;&#039;RepaintAction&#039;&#039; which forces all belonging &#039;&#039;Displays&#039;&#039; of the &#039;&#039;Visualization&#039;&#039; to repaint themselves. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; is the view of &#039;&#039;&#039;prefuse&#039;&#039;&#039;. It can be embedded in each Java Swing application. The main task of a &#039;&#039;Display&#039;&#039; is the painting of visual structures which are defined in the respective &#039;&#039;Visualization&#039;&#039;. Whenever the &#039;&#039;Display&#039;&#039; performs a repaint, it requests all visual items and checks all bounds of them (bounding management). If an item is within the own area the respective rendering mechanism is called.  &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; also provides navigation techniques like [[zoom]]ing or [[pan]]ning which change the view. The view itself refers to a separate coordinate system. View coordinates are described through an affine transformation matrix. Any navigation technique applied to the view only concerns the view coordinate system. The most important functionalities to work with this coordinate system are already predefined. Typically, users just have to apply whished techniques without considering technical details like the view coordinate system. &lt;br /&gt;
&lt;br /&gt;
Furthermore, a &#039;&#039;Display&#039;&#039; also maintains a set of &#039;&#039;ControlListener&#039;&#039; which are used to process user interactions (mouse or keyboard events). Whenever such an event occurs the respective listener is called. A listener already differs on where the event happened (e.g., blank area or a certain item). Further, a &#039;&#039;ControlListener&#039;&#039; may also start an &#039;&#039;ActionList&#039;&#039; again.&lt;br /&gt;
&lt;br /&gt;
==Source Data==&lt;br /&gt;
&lt;br /&gt;
Raw data is the base of the application. Typically, the source of raw data is a file, but also other sources like a database or web content are thinkable. However, &#039;&#039;&#039;prefuse&#039;&#039;&#039; provides several file readers for different formats (CSV, Tab-Delimitated, etc.) that can be transformed into a data table. Further, some readers also support the reading of SQL-Databases. If another source is needed, a reader can be written manually.&lt;br /&gt;
&lt;br /&gt;
Once the raw data is read, it is transformed into abstract data and stored within a data table of the &#039;&#039;Visualization&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Data Table==&lt;br /&gt;
&lt;br /&gt;
The data table which is used to store abstract data works with data types and a definition schema which maps relations between data-type and table. That means, each row contains a data record, and each column contains values for a named data field with a specific data-type. Each record of the table is referred as a &#039;&#039;Tuple&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Furthermore, instead of the table, also a graph or tree may be used to store interrelated data. Instead of &#039;&#039;Tuples&#039;&#039;, records are referred as &#039;&#039;Nodes&#039;&#039; which are connected to others with &#039;&#039;Edges&#039;&#039;. Additionally, a tree has one defined root &#039;&#039;Node&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Abstract data does not contain any visual information like assignment attributes or color settings. Instead, own visual analogous are created. Visual attributes of them are extracted out of the abstract data following a defined logic.&lt;br /&gt;
&lt;br /&gt;
==Visual Abstraction==&lt;br /&gt;
&lt;br /&gt;
Visual structures are created when filtering the data container which contains the abstract data. In case of a visualization that displays all items from the beginning on, the filtering routine must only executed once at initializing time. If the visual content changes dynamically, the filtering is executed on certain user interactions by calling a defined filtering &#039;&#039;ActionList&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
A visual structure is referred as &#039;&#039;VisualItem&#039;&#039; which may be distinguished as &#039;&#039;VisualNode&#039;&#039;, &#039;&#039;VisualEdge&#039;&#039;, or an aggregated item which consists of several other items. However, as a &#039;&#039;VisualItem&#039;&#039; is extended of the respective abstract entity, it has full access to all abstract information too. &lt;br /&gt;
&lt;br /&gt;
The filtering routine which transforms the abstract data to visual analogues typically consists of following &#039;&#039;Actions&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Filter&#039;&#039;&#039;: This &#039;&#039;Action&#039;&#039; is responsible to transform the abstract data of the backing table to visual analogues. If no special conditions are defined, the filter creates for each &#039;&#039;Tuple&#039;&#039; a visual instance and stores them in a second table. Additionally, a filter also performs a garbage collection and may set visibility attributes of the created items. &lt;br /&gt;
* &#039;&#039;&#039;Layout&#039;&#039;&#039;: A layout takes care about placing the &#039;&#039;VisualItems&#039;&#039;. Several common algorithms for graphs or trees are already predefined (e.g., &#039;&#039;ForceDirectedLayout&#039;&#039; or &#039;&#039;RadialTreeLayout&#039;&#039;). &lt;br /&gt;
* &#039;&#039;&#039;Assignment&#039;&#039;&#039;: Besides layouting, also other assignments may be performed during the filtering process. Such assignments directly changes visual attributes of &#039;&#039;VisualItems&#039;&#039; like colors, sizes, fonts, etc.&lt;br /&gt;
&lt;br /&gt;
A visual structure may also contain a paint routine, but, as all painting jobs are initialized or performed by separated renderers, these issues may also be executed by the renderer itself or any other object.&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
Typically, the rendered visual structure is not stored, instead, they are re-rendered whenever needed. However, in case of very complex but constant visual representations it makes sense to hold items in an offscreen image. &lt;br /&gt;
&lt;br /&gt;
Each &#039;&#039;VisualItem&#039;&#039; has got one or more associated &#039;&#039;Renderers&#039;&#039; which are maintained by a factory of the &#039;&#039;Visualization&#039;&#039;. A &#039;&#039;Renderer&#039;&#039; has to perform two tasks:&lt;br /&gt;
&lt;br /&gt;
* Providing a bounding box of the item. This box is used to determine if the item must actually be painted or if it would not be visible anyway. &lt;br /&gt;
* Providing the painting routine of the item. Paintings may be executed by the &#039;&#039;Renderer&#039;&#039; itself or delegated to other objects which are accessible of the &#039;&#039;Renderer&#039;&#039;. The painting routines are not restricted in any way, but the proper representation should not exceed the bounding box of the item. &lt;br /&gt;
&lt;br /&gt;
Rendering is always performed on a repaint of the &#039;&#039;Display&#039;&#039;. A repaint can be requested by the &#039;&#039;Visualization&#039;&#039;, on user interaction, and on events like resizing the component, getting the focus, or changing the coordinate system of the view. However, as repaints may occur very often, developers have to ascertain that rendering jobs are performed fast, otherwise, the performance of the whole visualization would suffer.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
==Package Structure==&lt;br /&gt;
&lt;br /&gt;
Following picture shows the most important packages of &#039;&#039;&#039;prefuse&#039;&#039;&#039; regarding to the [[Visualization Pipeline]]:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_package_guide.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
These packages also contain predefined components. Default &#039;&#039;Nodes&#039;&#039; and &#039;&#039;Edges&#039;&#039; provide standard functionality of abstract data, standard functionality is also available in visual analogous of them. A default filter transforms all defined abstract entities to visual ones. Further, also some special functionalities to fulfil common requirements are provided by own components: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Renderers&#039;&#039;&#039;: &#039;&#039;EdgeRenderer&#039;&#039; to render edges between graph or tree nodes, a &#039;&#039;LableRenderer&#039;&#039; to render text items, and a &#039;&#039;PolygoneRenderer&#039;&#039; to render geometrical items. &lt;br /&gt;
* &#039;&#039;&#039;Layouts&#039;&#039;&#039;: &#039;&#039;RandomLayout&#039;&#039;, &#039;&#039;GridLayout&#039;&#039;, and some more to place non related data, &#039;&#039;ForceDirectedLayout&#039;&#039;, &#039;&#039;TreeLayout&#039;&#039;, &#039;&#039;RadialTreeLayout&#039;&#039; and others to layout trees and graphs.&lt;br /&gt;
* &#039;&#039;&#039;Controls&#039;&#039;&#039;: &#039;&#039;DragControl&#039;&#039;, &#039;&#039;ZoomControl&#039;&#039;, &#039;&#039;PanControl&#039;&#039;, &#039;&#039;ToolTipControl&#039;&#039; and several others to react on user interactions. &lt;br /&gt;
&lt;br /&gt;
In simple visualizations the predefined functionality will meet most requirements. If special requirements are needed the default functionality supports a step-wise developing as results can be communicated by predefined components until the own functionality is implemented.&lt;br /&gt;
&lt;br /&gt;
==Coordinates in prefuse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; works with two different coordinate systems. Absolute coordinates are device-independent logical coordinates. All visual attributes like positions or sizes are defined in absolute coordinates. In contrast, view coordinates are device-depended (screen). Transformations between absolute and view coordinates are done automatically by Java painting routines. View coordinates are influenced by the system and device driver (e.g., the absolute point (0,0) is the topmost left point of the actual graphical component which may be on any position at the screen). Further, view coordinates may also be manipulated manually by using an affine transformation matrix which applies linear transformations on absolute coordinates before device-dependent routines convert them to screen coordinates. &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;prefuse&#039;&#039;&#039; &#039;&#039;Display&#039;&#039; provides the most important manipulating methods of this matrix. [[Zoom]]ing, [[pan]]ning, and rotation of the whole view are only done by changing the view coordinates. So, as absolute coordinates are never concerned of such transformations and translations, a user must never consider the actual view in layout, assignment, or painting routines. &lt;br /&gt;
&lt;br /&gt;
There are several different ways on how to apply such transformations, additionally, the &#039;&#039;Display&#039;&#039; also supports animated transformations.&lt;br /&gt;
&lt;br /&gt;
==User Interactions==&lt;br /&gt;
&lt;br /&gt;
Mouse or keyboard events are treated by &#039;&#039;ControlListener&#039;&#039;. Whenever an event occurs which is handled by a &#039;&#039;ControlListener&#039;&#039;, the &#039;&#039;Display&#039;&#039; delegates the event to the respective routine. A &#039;&#039;ControlListener&#039;&#039; disdinguishes automatically which visual element is concerned of the event (the view itself or a &#039;&#039;VisualItem&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ControlListener&#039;&#039; may just perform simple tasks like changing the mouse cursor or editing the label of an item. But, in more sophisticated applications, also tasks like loading new data or dragging items on the view may be handled. Therefore, a &#039;&#039;ControlListener&#039;&#039; may also start &#039;&#039;ActionLists&#039;&#039; to execute such tasks. Further, a &#039;&#039;ControlListener&#039;&#039; has also access to the &#039;&#039;Display&#039;&#039;. Thus, it is able to call methods like zooming or panning. Typically, each &#039;&#039;ControlListener&#039;&#039; forces a repaint when its job is done.  &lt;br /&gt;
&lt;br /&gt;
Most of standard functionality is already predefined in &#039;&#039;prefuse&#039;&#039; and the wanted listeners just have to be assigned to the &#039;&#039;Display&#039;&#039;. However, the &#039;&#039;Display&#039;&#039; can handle a countless of different listener. Hence, typically only a few listeners must be defined manually as they can be mixed with default ones.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is a very powerful toolkit, providing a large set of components and methods a developer needs to build an [[Information Visualization]]. The [[polylithic design]] is not that easy to understand in the beginning of a development, but once conceived, a visualization is easy to realize even if really special demands have to be fulfilled. Furthermore, using Prefuse forces a clear and well designed architecture of own applications.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; was created with most attention paid to developers who will finally work with the toolkit. In an evaluation study this goal was approved too. In the meanwhile, there is also a not so small community using and upgrading the toolkit, which is an argument for its usability.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
*[http://prefuse.org prefuse Homepage]&lt;br /&gt;
*[http://vw.indiana.edu/ivsi2004/jherr/index.html prefuse Position Paper]&lt;br /&gt;
*[http://sourceforge.net/forum/forum.php?forum_id=343013 prefuse Help Forum]&lt;br /&gt;
&lt;br /&gt;
= Downloads =&lt;br /&gt;
*[[Media:Prefuse-tutorial-20061127-handout.pdf|prefuse Tutorial (pdf, 660kB)]] by [[Aigner, Wolfgang|Wolfgang Aigner]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[Heer, 2004] Jeffrey Heer. [http://jheer.org/publications/2004-Heer-prefuse-Masters.pdf prefuse: a software framework for interactive information visualization]. Masters of Science, Computer Science Division, University of California, Berkeley, 2004.&lt;br /&gt;
*[Heer, 2005] Jeffrey Heer, Stuart K. Card, and James A. Landay. [http://jheer.org/publications/2005-prefuse-CHI.pdf prefuse: a toolkit for interactive information visualization.] In CHI 2005, Human Factors in Computing Systems, 2005.&lt;br /&gt;
*[Heer, 2006a] Jeffrey Heer, prefuse API documentation. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Heer, 2006b] Jeffrey Heer, prefuse manual. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Sun Microsystems, 2001] Sun Microsystems, Programmer’s Guide to the Java 2DTM API - Enhanced Graphics and Imaging for Java. Retrieved at: April 20, 2006, http://java.sun.com/j2se/1.4/pdf/j2d-book.pdf&lt;br /&gt;
&lt;br /&gt;
[[Category:Toolkits]]&lt;/div&gt;</summary>
		<author><name>Yc8E18</name></author>
	</entry>
	<entry>
		<id>https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=15197</id>
		<title>Prefuse</title>
		<link rel="alternate" type="text/html" href="https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=15197"/>
		<updated>2007-07-20T12:42:52Z</updated>

		<summary type="html">&lt;p&gt;Yc8E18: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=199 music ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=112 but ortho] [http://library.cshl.edu/wp/vb/member.php?u=1361 order xenical] [http://students.hsc.unt.edu/housing/item.cfm?type=2855 buy diazepam] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=68 adipex online] [http://users.wpi.edu/~dance/blahdocs/uploads/samsungringtones_3147.htm free samsung ringtones] [http://users.wpi.edu/~dance/blahdocs/uploads/carisoprodol_7292.htm carisoprodol online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30297 cheap albuterol] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=162 alltel ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=5&amp;amp;tid=3702 buy paxil] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3758 rivotril online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30263 cheap levitra] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=142 wellbutrin] [http://library.cshl.edu/wp/vb/member.php?u=1357 levitra online] [http://wc1.worldcrossing.com/WebX/.1de609ea free free ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30314 buy pharmacy online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30240 carisoprodol online] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/tramadol_3245.htm buy tramadol] [http://wc1.worldcrossing.com/WebX/.1de609e6 buy cyclobenzaprine] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=103 mono ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30248 cheap ativan] [http://library.cshl.edu/wp/vb/member.php?u=1385 free sony ericsson ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a22 but phentermine] [http://students.hsc.unt.edu/housing/item.cfm?type=2901 mp3 ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3769 free sony ericsson ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=127 soma online] [http://library.cshl.edu/wp/vb/member.php?u=1349 cheap viagra] [http://wc1.worldcrossing.com/WebX/.1de60a2c but ultram] [http://wc1.worldcrossing.com/WebX/.1de60a10 cheap didrex] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=111 norco online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=224 free sagem ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30345 sprint ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=76 cialis] [http://wc1.worldcrossing.com/WebX/.1de60a05 sprint ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=234 free sprint ringtones] [http://library.cshl.edu/wp/vb/member.php?u=1381 polyphonic ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2873 nexium online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=92 cheap hydrocodone] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=226 cheap tramadol] [http://students.hsc.unt.edu/housing/item.cfm?type=2925 free mtv ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a34 free sony ericsson ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2921 wwe ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=109 nextel ringtones] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/funnyringtones_5351.htm free funny ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=5&amp;amp;tid=3735 free mtv ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=227 ultracet online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=231 rivotril online] [http://wc1.worldcrossing.com/WebX/.1de60a1f cheap lisinopril] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/xanax_4637.htm xanax online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30359 wwe ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3751 buy sildenafil] [http://users.wpi.edu/~dance/blahdocs/uploads/ambien_6489.htm ambien online] [http://students.hsc.unt.edu/housing/item.cfm?type=2847 tramadol online] [http://library.cshl.edu/wp/vb/member.php?u=1345 cheap ultram] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/ativan_9901.htm cheap ativan] [http://users.wpi.edu/~dance/blahdocs/uploads/lorazepam_3885.htm cheap lorazepam] [http://users.wpi.edu/~dance/blahdocs/uploads/alprazolam_3561.htm alprazolam online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=186 jazz ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30259 alprazolam online] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/phentermine_8208.htm phentermine online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=191 lorazepam online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=138 verizon ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2912 free sagem ringtones] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/carisoprodol_1193.htm carisoprodol online] [http://students.hsc.unt.edu/housing/item.cfm?type=2911 free cingular ringtones] [http://users.wpi.edu/~dance/blahdocs/uploads/realringtones_3783.htm real ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=96 cheap levitra] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3749 ultracet online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30349 free cingular ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3737 but phentermine] [http://wc1.worldcrossing.com/WebX/.1de60a0b vigrx online] [http://wc1.worldcrossing.com/WebX/.1de60a28 soma online] [http://library.cshl.edu/wp/vb/member.php?u=1371 funny ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2868 ambien online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=126 sildenafil online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=129 sony ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3762 funny ringtones] [http://users.wpi.edu/~dance/blahdocs/uploads/paxil_2293.htm buy paxil] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3755 ortho online] [http://library.cshl.edu/wp/vb/member.php?u=1360 lorazepam online] [http://users.wpi.edu/~dance/blahdocs/uploads/freeringtones_1986.htm free ringtones] [http://library.cshl.edu/wp/vb/member.php?u=1348 cheap ativan] [http://wc1.worldcrossing.com/WebX/.1de60a24 cheap propecia] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30336 qwest ringtones] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/paxil_4058.htm paxil online] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=5&amp;amp;tid=3706 wellbutrin online] [http://library.cshl.edu/wp/vb/member.php?u=1367 didrex online] [http://library.cshl.edu/wp/vb/member.php?u=1364 cheap nexium] [http://library.cshl.edu/wp/vb/member.php?u=1342 phentermine online] [http://library.cshl.edu/wp/vb/member.php?u=1376 motorola ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a25 free samsung ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a2d cheap valium] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30277 cyclobenzaprine online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30243 ultram online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30327 zyban online] [http://students.hsc.unt.edu/housing/item.cfm?type=2916 free alltel ringtones] [http://library.cshl.edu/wp/vb/member.php?u=1339 tramadol online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=212 propecia online] [http://students.hsc.unt.edu/housing/item.cfm?type=2910 free polyphonic ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=177 diethylpropion online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=175 cheap diazepam] [http://library.cshl.edu/wp/vb/member.php?u=1380 verizon ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30296 clomid online] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3767 free polyphonic ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3763 free nextel ringtones] [http://wc1.worldcrossing.com/WebX/.1de609f7 nextel ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=98 lisinopril online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=118 prozac online] [http://wc1.worldcrossing.com/WebX/.1de60a1e flexeril online] [http://wc1.worldcrossing.com/WebX/.1de60a35 free verizon ringtones] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/nextelringtones_3485.htm nextel ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=5&amp;amp;tid=3695 carisoprodol online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=241 free sony ericsson ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=5&amp;amp;tid=3723 motorola ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30318 cheap diethylpropion] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30253 norco online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30350 free sagem ringtones] [http://library.cshl.edu/wp/vb/member.php?u=1372 mp3 ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a1d cingular ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=168 celexa online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=221 order vicodin] [http://library.cshl.edu/wp/vb/member.php?u=1350 meridia online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30363 sony ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=202 free nokia ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=84 diethylpropion online] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=5&amp;amp;tid=3716 buy diethylpropion] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=233 sonyericsson ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30266 cheap lorazepam] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/ultracet_2738.htm cheap ultracet] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=230 free verizon ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3738 online xanax] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=83 cheap didrex] [http://library.cshl.edu/wp/vb/member.php?u=1343 cheap carisoprodol] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30365 free mtv ringtones] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/freeringtones_8902.htm free free ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3696 fioricet] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=136 cheap ultram] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/norco_532.htm norco online] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3766 free music ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=170 free cingular ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=90 cheap hgh] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/propecia_2137.htm cheap propecia] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/ambien_7869.htm ambien online] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3750 cheap didrex] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=189 cheap lipitor] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=139 cheap viagra] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=5&amp;amp;tid=3699 cheap meridia] [http://students.hsc.unt.edu/housing/item.cfm?type=2851 buy carisoprodol] [http://students.hsc.unt.edu/housing/item.cfm?type=2918 free cool ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30316 vigrx online] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/verizonringtones_8798.htm verizon ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30330 free nokia ringtones] [http://wc1.worldcrossing.com/WebX/.1de609de alprazolam] [http://wc1.worldcrossing.com/WebX/.1de609e5 cool ringtones] [http://library.cshl.edu/wp/vb/member.php?u=1359 ambien online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=82 diazepam online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=206 pharmacy online online] [http://users.wpi.edu/~dance/blahdocs/uploads/nokiaringtones_4263.htm nokia ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3741 cheap viagra] [http://library.cshl.edu/wp/vb/member.php?u=1382 cingular ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2905 motorola ringtones] [http://library.cshl.edu/wp/vb/member.php?u=1358 cheap hydrocodone] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30309 cheap celexa] [http://users.wpi.edu/~dance/blahdocs/uploads/nexium_6814.htm nexium online] [http://library.cshl.edu/wp/vb/member.php?u=1363 cyclobenzaprine online] [http://wc1.worldcrossing.com/WebX/.1de60a1b music ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2914 sony ericsson ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=5&amp;amp;tid=3729 mono ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=5&amp;amp;tid=3734 sony ringtones] [http://wc1.worldcrossing.com/WebX/.1de609f9 order norco] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=97 lipitor online] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3747 xenical online] [http://users.wpi.edu/~dance/blahdocs/uploads/ultram_1401.htm cheap ultram] [http://students.hsc.unt.edu/housing/item.cfm?type=2849 valium] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=85 free ericsson ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2877 cheap prozac] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3743 cheap vicodin] [http://library.cshl.edu/wp/vb/member.php?u=1388 fioricet online] [http://students.hsc.unt.edu/housing/item.cfm?type=2854 but ultram] [http://wc1.worldcrossing.com/WebX/.1de60a21 buy paxil] [http://library.cshl.edu/wp/vb/member.php?u=1368 free nokia ringtones] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3754 celexa] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=5&amp;amp;tid=3717 order hgh] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=197 mp3 ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2882 zoloft online] [http://www.ovu.edu/community/toast.asp?sub=show&amp;amp;action=posts&amp;amp;fid=15&amp;amp;tid=3752 buy albuterol] [http://students.hsc.unt.edu/housing/item.cfm?type=2862 vicodin online] [http://library.cshl.edu/wp/vb/member.php?u=1378 sprint ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30244 diazepam online] [http://wc1.worldcrossing.com/WebX/.1de609f3 free midi ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a16 levitra] [http://users.wpi.edu/~dance/blahdocs/uploads/ativan_8101.htm ativan online] [http://wc1.worldcrossing.com/WebX/.1de609fd punk ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=95 free kyocera ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=215 zoloft online] [http://students.hsc.unt.edu/housing/item.cfm?type=2904 free real ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=207 xanax online] [http://www.colorado.edu/studentgroups/backcountryclub/blahdocs/uploads/fioricet_7129.htm cheap fioricet] [http://students.hsc.unt.edu/housing/item.cfm?type=2920 midi ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=182 free funny ringtones] = Summary =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author&#039;&#039;&#039;: Jeffrey Heer / UC Berkeley&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Project Webpage&#039;&#039;&#039;: http://prefuse.org&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Current Version&#039;&#039;&#039;: beta, July 15, 2006&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: Java 1.4&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; using Java2D graphics library; pipeline architecture; animation and rendering support&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Base data structures&#039;&#039;&#039;: Table, Graph, Tree&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Included visualization techniques (&#039;&#039;[http://prefuse.org/gallery/ prefuse gallery]&#039;&#039;):&#039;&#039;&#039; [http://prefuse.org/gallery/fisheyemenu/ Fisheye Menu], [http://prefuse.org/gallery/radialgraphview/ Radial Graph], [http://prefuse.org/gallery/treemap/ Treemap], [http://prefuse.org/gallery/congress/ Scatterplot], [http://prefuse.org/gallery/zipdecode/ zipdecode], [http://prefuse.org/gallery/treeview/ DOITree], [http://prefuse.org/gallery/graphview/ Graph View], [http://prefuse.org/gallery/datamountain/ Data Mountain]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Supported File Formats&#039;&#039;&#039;: GraphML (XML), TreeML (XML), Tab-delimited Text, CSV&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is an interactive graphical open source toolkit written in Java. It is thought to support the development of sophisticated, highly interactive, and flexible [[Information Visualization]]s. The architecture of &#039;&#039;&#039;prefuse&#039;&#039;&#039; considers the [[Visualization Pipeline]], a recommendation on how to implement a visualization. To provide flexibility, a [[polylithic design]] was chosen which enables developers to implement only needed functionality and customize these to meet the own requirements. But, in contrast to a [[monolithic design]], this design needs more time to conceive and influences the architecture of the own application heavily (which is not a disadvantage as &#039;&#039;&#039;prefuse&#039;&#039;&#039; is very elaborate). &lt;br /&gt;
&lt;br /&gt;
Typically, &#039;&#039;&#039;prefuse&#039;&#039;&#039; is designed to visualize interrelated information so it can be stored in a graph or tree structure, but, also not related data can be used which is stored within a data table. Even if the structure is hierarchical, the resulting tree or graph structure must not be considered in the proper graphical representation as layout algorithms are not restricted in any way. The painting of visual items is done by using a renderer which has access to the respective item itself and the Graphics2D context of the view. This approach enables to use the whole range of available painting methods of Java, therefore, all painting issues are completely independent of the toolkit itself.&lt;br /&gt;
&lt;br /&gt;
Besides providing a large set of predefined elements to visualize data, most attention was set toward usability of the visualization. This is obtained by applying several interaction techniques like tooltips or dragging visual elements. But also more sophisticated techniques like [[zoom]]ing, [[pan]]ning, or [[semantic zoom]]ing are supported or partially even provided by the toolkit itself. Further, &#039;&#039;&#039;prefuse&#039;&#039;&#039; clearly distinguishes between absolute and view coordinates. This separation helps users to place all visual elements in a logical way without consideration of later applied visualization techniques that changes the entire view.  &lt;br /&gt;
&lt;br /&gt;
=== Pros ===&lt;br /&gt;
&lt;br /&gt;
* flexible&lt;br /&gt;
* versatile pipeline approach&lt;br /&gt;
* clear and well thought architecture&lt;br /&gt;
* many layout and distortion algorithms included&lt;br /&gt;
* algorithms for force-based physics simulation included&lt;br /&gt;
* custom animations (smooth transitions)&lt;br /&gt;
* color maps&lt;br /&gt;
* query language to navigate within abstract data&lt;br /&gt;
* demos and examples included&lt;br /&gt;
* bounding management&lt;br /&gt;
* open source&lt;br /&gt;
* documentation of code and general guidance available&lt;br /&gt;
* active developer community &lt;br /&gt;
&lt;br /&gt;
=== Cons ===&lt;br /&gt;
&lt;br /&gt;
* [[polylithic design]] takes up more time to conceive and see first results&lt;br /&gt;
* special requirements of a visualization enforce a lot of adapting work&lt;br /&gt;
&lt;br /&gt;
=General Approach=&lt;br /&gt;
&lt;br /&gt;
Going along with the step-wise recommendation of the [[Visualization Pipeline]], a &#039;&#039;&#039;prefuse&#039;&#039;&#039; application consists of different states of data:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_visualization_pipeline.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; uses a centralized object called &#039;&#039;Visualization&#039;&#039; (former &#039;&#039;ItemRegistry&#039;&#039;) which maintains and manages the whole visualization. This object has to fulfil several tasks. It stores the abstract data as well as visual analogous of these in two different tables. All transformation routines like filtering or rendering are managed and executed by the &#039;&#039;Visualization&#039;&#039; too. Further, it refers to at least one &#039;&#039;Display&#039;&#039;, a graphical component which can represent visual elements of the &#039;&#039;Visualization&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Transformation routines are defined as &#039;&#039;Actions&#039;&#039; which are combined in &#039;&#039;ActionLists&#039;&#039;. An &#039;&#039;ActionList&#039;&#039; is an executable container which is started manually by a user or automatically by the &#039;&#039;Visualization&#039;&#039;. Once such a list is started, all defined &#039;&#039;Actions&#039;&#039; are executed in the given sequence. Typically, the last called &#039;&#039;Action&#039;&#039; is the &#039;&#039;RepaintAction&#039;&#039; which forces all belonging &#039;&#039;Displays&#039;&#039; of the &#039;&#039;Visualization&#039;&#039; to repaint themselves. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; is the view of &#039;&#039;&#039;prefuse&#039;&#039;&#039;. It can be embedded in each Java Swing application. The main task of a &#039;&#039;Display&#039;&#039; is the painting of visual structures which are defined in the respective &#039;&#039;Visualization&#039;&#039;. Whenever the &#039;&#039;Display&#039;&#039; performs a repaint, it requests all visual items and checks all bounds of them (bounding management). If an item is within the own area the respective rendering mechanism is called.  &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; also provides navigation techniques like [[zoom]]ing or [[pan]]ning which change the view. The view itself refers to a separate coordinate system. View coordinates are described through an affine transformation matrix. Any navigation technique applied to the view only concerns the view coordinate system. The most important functionalities to work with this coordinate system are already predefined. Typically, users just have to apply whished techniques without considering technical details like the view coordinate system. &lt;br /&gt;
&lt;br /&gt;
Furthermore, a &#039;&#039;Display&#039;&#039; also maintains a set of &#039;&#039;ControlListener&#039;&#039; which are used to process user interactions (mouse or keyboard events). Whenever such an event occurs the respective listener is called. A listener already differs on where the event happened (e.g., blank area or a certain item). Further, a &#039;&#039;ControlListener&#039;&#039; may also start an &#039;&#039;ActionList&#039;&#039; again.&lt;br /&gt;
&lt;br /&gt;
==Source Data==&lt;br /&gt;
&lt;br /&gt;
Raw data is the base of the application. Typically, the source of raw data is a file, but also other sources like a database or web content are thinkable. However, &#039;&#039;&#039;prefuse&#039;&#039;&#039; provides several file readers for different formats (CSV, Tab-Delimitated, etc.) that can be transformed into a data table. Further, some readers also support the reading of SQL-Databases. If another source is needed, a reader can be written manually.&lt;br /&gt;
&lt;br /&gt;
Once the raw data is read, it is transformed into abstract data and stored within a data table of the &#039;&#039;Visualization&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Data Table==&lt;br /&gt;
&lt;br /&gt;
The data table which is used to store abstract data works with data types and a definition schema which maps relations between data-type and table. That means, each row contains a data record, and each column contains values for a named data field with a specific data-type. Each record of the table is referred as a &#039;&#039;Tuple&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Furthermore, instead of the table, also a graph or tree may be used to store interrelated data. Instead of &#039;&#039;Tuples&#039;&#039;, records are referred as &#039;&#039;Nodes&#039;&#039; which are connected to others with &#039;&#039;Edges&#039;&#039;. Additionally, a tree has one defined root &#039;&#039;Node&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Abstract data does not contain any visual information like assignment attributes or color settings. Instead, own visual analogous are created. Visual attributes of them are extracted out of the abstract data following a defined logic.&lt;br /&gt;
&lt;br /&gt;
==Visual Abstraction==&lt;br /&gt;
&lt;br /&gt;
Visual structures are created when filtering the data container which contains the abstract data. In case of a visualization that displays all items from the beginning on, the filtering routine must only executed once at initializing time. If the visual content changes dynamically, the filtering is executed on certain user interactions by calling a defined filtering &#039;&#039;ActionList&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
A visual structure is referred as &#039;&#039;VisualItem&#039;&#039; which may be distinguished as &#039;&#039;VisualNode&#039;&#039;, &#039;&#039;VisualEdge&#039;&#039;, or an aggregated item which consists of several other items. However, as a &#039;&#039;VisualItem&#039;&#039; is extended of the respective abstract entity, it has full access to all abstract information too. &lt;br /&gt;
&lt;br /&gt;
The filtering routine which transforms the abstract data to visual analogues typically consists of following &#039;&#039;Actions&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Filter&#039;&#039;&#039;: This &#039;&#039;Action&#039;&#039; is responsible to transform the abstract data of the backing table to visual analogues. If no special conditions are defined, the filter creates for each &#039;&#039;Tuple&#039;&#039; a visual instance and stores them in a second table. Additionally, a filter also performs a garbage collection and may set visibility attributes of the created items. &lt;br /&gt;
* &#039;&#039;&#039;Layout&#039;&#039;&#039;: A layout takes care about placing the &#039;&#039;VisualItems&#039;&#039;. Several common algorithms for graphs or trees are already predefined (e.g., &#039;&#039;ForceDirectedLayout&#039;&#039; or &#039;&#039;RadialTreeLayout&#039;&#039;). &lt;br /&gt;
* &#039;&#039;&#039;Assignment&#039;&#039;&#039;: Besides layouting, also other assignments may be performed during the filtering process. Such assignments directly changes visual attributes of &#039;&#039;VisualItems&#039;&#039; like colors, sizes, fonts, etc.&lt;br /&gt;
&lt;br /&gt;
A visual structure may also contain a paint routine, but, as all painting jobs are initialized or performed by separated renderers, these issues may also be executed by the renderer itself or any other object.&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
Typically, the rendered visual structure is not stored, instead, they are re-rendered whenever needed. However, in case of very complex but constant visual representations it makes sense to hold items in an offscreen image. &lt;br /&gt;
&lt;br /&gt;
Each &#039;&#039;VisualItem&#039;&#039; has got one or more associated &#039;&#039;Renderers&#039;&#039; which are maintained by a factory of the &#039;&#039;Visualization&#039;&#039;. A &#039;&#039;Renderer&#039;&#039; has to perform two tasks:&lt;br /&gt;
&lt;br /&gt;
* Providing a bounding box of the item. This box is used to determine if the item must actually be painted or if it would not be visible anyway. &lt;br /&gt;
* Providing the painting routine of the item. Paintings may be executed by the &#039;&#039;Renderer&#039;&#039; itself or delegated to other objects which are accessible of the &#039;&#039;Renderer&#039;&#039;. The painting routines are not restricted in any way, but the proper representation should not exceed the bounding box of the item. &lt;br /&gt;
&lt;br /&gt;
Rendering is always performed on a repaint of the &#039;&#039;Display&#039;&#039;. A repaint can be requested by the &#039;&#039;Visualization&#039;&#039;, on user interaction, and on events like resizing the component, getting the focus, or changing the coordinate system of the view. However, as repaints may occur very often, developers have to ascertain that rendering jobs are performed fast, otherwise, the performance of the whole visualization would suffer.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
==Package Structure==&lt;br /&gt;
&lt;br /&gt;
Following picture shows the most important packages of &#039;&#039;&#039;prefuse&#039;&#039;&#039; regarding to the [[Visualization Pipeline]]:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_package_guide.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
These packages also contain predefined components. Default &#039;&#039;Nodes&#039;&#039; and &#039;&#039;Edges&#039;&#039; provide standard functionality of abstract data, standard functionality is also available in visual analogous of them. A default filter transforms all defined abstract entities to visual ones. Further, also some special functionalities to fulfil common requirements are provided by own components: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Renderers&#039;&#039;&#039;: &#039;&#039;EdgeRenderer&#039;&#039; to render edges between graph or tree nodes, a &#039;&#039;LableRenderer&#039;&#039; to render text items, and a &#039;&#039;PolygoneRenderer&#039;&#039; to render geometrical items. &lt;br /&gt;
* &#039;&#039;&#039;Layouts&#039;&#039;&#039;: &#039;&#039;RandomLayout&#039;&#039;, &#039;&#039;GridLayout&#039;&#039;, and some more to place non related data, &#039;&#039;ForceDirectedLayout&#039;&#039;, &#039;&#039;TreeLayout&#039;&#039;, &#039;&#039;RadialTreeLayout&#039;&#039; and others to layout trees and graphs.&lt;br /&gt;
* &#039;&#039;&#039;Controls&#039;&#039;&#039;: &#039;&#039;DragControl&#039;&#039;, &#039;&#039;ZoomControl&#039;&#039;, &#039;&#039;PanControl&#039;&#039;, &#039;&#039;ToolTipControl&#039;&#039; and several others to react on user interactions. &lt;br /&gt;
&lt;br /&gt;
In simple visualizations the predefined functionality will meet most requirements. If special requirements are needed the default functionality supports a step-wise developing as results can be communicated by predefined components until the own functionality is implemented.&lt;br /&gt;
&lt;br /&gt;
==Coordinates in prefuse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; works with two different coordinate systems. Absolute coordinates are device-independent logical coordinates. All visual attributes like positions or sizes are defined in absolute coordinates. In contrast, view coordinates are device-depended (screen). Transformations between absolute and view coordinates are done automatically by Java painting routines. View coordinates are influenced by the system and device driver (e.g., the absolute point (0,0) is the topmost left point of the actual graphical component which may be on any position at the screen). Further, view coordinates may also be manipulated manually by using an affine transformation matrix which applies linear transformations on absolute coordinates before device-dependent routines convert them to screen coordinates. &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;prefuse&#039;&#039;&#039; &#039;&#039;Display&#039;&#039; provides the most important manipulating methods of this matrix. [[Zoom]]ing, [[pan]]ning, and rotation of the whole view are only done by changing the view coordinates. So, as absolute coordinates are never concerned of such transformations and translations, a user must never consider the actual view in layout, assignment, or painting routines. &lt;br /&gt;
&lt;br /&gt;
There are several different ways on how to apply such transformations, additionally, the &#039;&#039;Display&#039;&#039; also supports animated transformations.&lt;br /&gt;
&lt;br /&gt;
==User Interactions==&lt;br /&gt;
&lt;br /&gt;
Mouse or keyboard events are treated by &#039;&#039;ControlListener&#039;&#039;. Whenever an event occurs which is handled by a &#039;&#039;ControlListener&#039;&#039;, the &#039;&#039;Display&#039;&#039; delegates the event to the respective routine. A &#039;&#039;ControlListener&#039;&#039; disdinguishes automatically which visual element is concerned of the event (the view itself or a &#039;&#039;VisualItem&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ControlListener&#039;&#039; may just perform simple tasks like changing the mouse cursor or editing the label of an item. But, in more sophisticated applications, also tasks like loading new data or dragging items on the view may be handled. Therefore, a &#039;&#039;ControlListener&#039;&#039; may also start &#039;&#039;ActionLists&#039;&#039; to execute such tasks. Further, a &#039;&#039;ControlListener&#039;&#039; has also access to the &#039;&#039;Display&#039;&#039;. Thus, it is able to call methods like zooming or panning. Typically, each &#039;&#039;ControlListener&#039;&#039; forces a repaint when its job is done.  &lt;br /&gt;
&lt;br /&gt;
Most of standard functionality is already predefined in &#039;&#039;prefuse&#039;&#039; and the wanted listeners just have to be assigned to the &#039;&#039;Display&#039;&#039;. However, the &#039;&#039;Display&#039;&#039; can handle a countless of different listener. Hence, typically only a few listeners must be defined manually as they can be mixed with default ones.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is a very powerful toolkit, providing a large set of components and methods a developer needs to build an [[Information Visualization]]. The [[polylithic design]] is not that easy to understand in the beginning of a development, but once conceived, a visualization is easy to realize even if really special demands have to be fulfilled. Furthermore, using Prefuse forces a clear and well designed architecture of own applications.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; was created with most attention paid to developers who will finally work with the toolkit. In an evaluation study this goal was approved too. In the meanwhile, there is also a not so small community using and upgrading the toolkit, which is an argument for its usability.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
*[http://prefuse.org prefuse Homepage]&lt;br /&gt;
*[http://vw.indiana.edu/ivsi2004/jherr/index.html prefuse Position Paper]&lt;br /&gt;
*[http://sourceforge.net/forum/forum.php?forum_id=343013 prefuse Help Forum]&lt;br /&gt;
&lt;br /&gt;
= Downloads =&lt;br /&gt;
*[[Media:Prefuse-tutorial-20061127-handout.pdf|prefuse Tutorial (pdf, 660kB)]] by [[Aigner, Wolfgang|Wolfgang Aigner]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[Heer, 2004] Jeffrey Heer. [http://jheer.org/publications/2004-Heer-prefuse-Masters.pdf prefuse: a software framework for interactive information visualization]. Masters of Science, Computer Science Division, University of California, Berkeley, 2004.&lt;br /&gt;
*[Heer, 2005] Jeffrey Heer, Stuart K. Card, and James A. Landay. [http://jheer.org/publications/2005-prefuse-CHI.pdf prefuse: a toolkit for interactive information visualization.] In CHI 2005, Human Factors in Computing Systems, 2005.&lt;br /&gt;
*[Heer, 2006a] Jeffrey Heer, prefuse API documentation. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Heer, 2006b] Jeffrey Heer, prefuse manual. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Sun Microsystems, 2001] Sun Microsystems, Programmer’s Guide to the Java 2DTM API - Enhanced Graphics and Imaging for Java. Retrieved at: April 20, 2006, http://java.sun.com/j2se/1.4/pdf/j2d-book.pdf&lt;br /&gt;
&lt;br /&gt;
[[Category:Toolkits]]&lt;/div&gt;</summary>
		<author><name>Yc8E18</name></author>
	</entry>
	<entry>
		<id>https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=14968</id>
		<title>Prefuse</title>
		<link rel="alternate" type="text/html" href="https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=14968"/>
		<updated>2007-07-15T00:02:17Z</updated>

		<summary type="html">&lt;p&gt;Yc8E18: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://wc1.worldcrossing.com/WebX/.1de60a14 free jazz ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30327 buy zyban] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30245 online cialis] [http://students.hsc.unt.edu/housing/item.cfm?type=2855 diazepam online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=194 diethylpropion online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=187 kyocera ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30317 zanaflex online] [http://library.cshl.edu/wp/vb/member.php?u=1345 cheap ultram] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30265 order ambien] [http://library.cshl.edu/wp/vb/member.php?u=1372 free mp3 ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=107 free music ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=185 zoloft online] [http://wc1.worldcrossing.com/WebX/.1de609f1 lortab online] [http://wc1.worldcrossing.com/WebX/.1de60a2e cheap xanax] [http://wc1.worldcrossing.com/WebX/.1de60a0b cheap vigrx] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30297 albuterol online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30361 free kyocera ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=103 free mono ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=97 lipitor online] [http://library.cshl.edu/wp/vb/member.php?u=1366 buy propecia] [http://news.engin.brown.edu/forums/thread-view.asp?tid=155 buy xanax] [http://news.engin.brown.edu/forums/thread-view.asp?tid=177 propecia online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=85 ericsson ringtones] [http://wc1.worldcrossing.com/WebX/.1de609fb order ortho] [http://wc1.worldcrossing.com/WebX/.1de609ec hgh online] [http://library.cshl.edu/wp/vb/member.php?u=1370 tracfone ringtones] [http://wc1.worldcrossing.com/WebX/.1de609e3 clomid online] [http://wc1.worldcrossing.com/WebX/.1de60a29 tramadol online] [http://students.hsc.unt.edu/housing/item.cfm?type=2889 vigrx online] [http://wc1.worldcrossing.com/WebX/.1de60a18 motorola ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=121 free real ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=162 meridia online] [http://students.hsc.unt.edu/housing/item.cfm?type=2886 ortho online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=213 free polyphonic ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=135 ultracet online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30335 nextel ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2881 lisinopril online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=241 free sony ericsson ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=128 free sony ericsson ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2916 alltel ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2897 nokia ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a0f cheap cialis] [http://wc1.worldcrossing.com/WebX/.1de60a09 viagra online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=207 free real ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a0e cheap celexa] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=229 cheap valium] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=354 nokia ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2866 cheap levitra] [http://news.engin.brown.edu/forums/thread-view.asp?tid=200 nokia ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=200 online nexium] [http://news.engin.brown.edu/forums/thread-view.asp?tid=214 free cingular ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2910 polyphonic ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2891 diethylpropion online] [http://students.hsc.unt.edu/housing/item.cfm?type=2885 order tenuate] [http://news.engin.brown.edu/forums/thread-view.asp?tid=159 cialis online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30366 jazz ringtones] [http://wc1.worldcrossing.com/WebX/.1de609fa free online pharmacy] [http://wc1.worldcrossing.com/WebX/.1de60a22 but phentermine] [http://news.engin.brown.edu/forums/thread-view.asp?tid=208 free motorola ringtones] [http://library.cshl.edu/wp/vb/member.php?u=1357 cheap levitra] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=195 free mono ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=199 cheap zyban] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=363 samsung ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2901 free mp3 ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30235 soma online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=136 cheap ultram] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=72 cheap ambien] [http://students.hsc.unt.edu/housing/item.cfm?type=2862 vicodin online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30258 cheap vicodin] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=182 funny ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2890 zanaflex] [http://wc1.worldcrossing.com/WebX/.1de609dc buy albuterol] [http://wc1.worldcrossing.com/WebX/.1de60a20 cheap nexium] [http://students.hsc.unt.edu/housing/item.cfm?type=2875 buy propecia] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=165 cheap ambien] [http://wc1.worldcrossing.com/WebX/.1de609f8 free nokia ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=350 alprazolam] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=139 cheap viagra] [http://students.hsc.unt.edu/housing/item.cfm?type=2874 ultracet online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=91 hoodia online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=175 cheap cyclobenzaprine] [http://news.engin.brown.edu/forums/thread-view.asp?tid=201 free free ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=153 cheap phentermine] [http://students.hsc.unt.edu/housing/item.cfm?type=2848 soma online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30337 real ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=94 free jazz ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a0a vicodin] [http://students.hsc.unt.edu/housing/item.cfm?type=2896 zyban online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=178 free ericsson ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a01 sagem ringtones] [http://library.cshl.edu/wp/vb/member.php?u=1346 diazepam online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=222 sharp ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a1d free cingular ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30230 but adipex] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=138 verizon ringtones] [http://wc1.worldcrossing.com/WebX/.1de609fe free qwest ringtones] [http://wc1.worldcrossing.com/WebX/.1de609e4 clonazepam online] [http://wc1.worldcrossing.com/WebX/.1de60a31 zanaflex online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=106 free mtv ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a1a mtv ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a15 free kyocera ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=218 free sony ericsson ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=132 cheap tenuate] [http://students.hsc.unt.edu/housing/item.cfm?type=2904 real ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=137 cheap valium] [http://news.engin.brown.edu/forums/thread-view.asp?tid=168 paxil online] [http://library.cshl.edu/wp/vb/member.php?u=1367 cheap didrex] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30295 order sildenafil] [http://wc1.worldcrossing.com/WebX/.1de609f7 nextel ringtones] [http://wc1.worldcrossing.com/WebX/.1de609f3 midi ringtones] [http://library.cshl.edu/wp/vb/member.php?u=1348 ativan online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=337 xanax] [http://wc1.worldcrossing.com/WebX/.1de609e6 cyclobenzaprine online] [http://library.cshl.edu/wp/vb/member.php?u=1360 order lorazepam] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=162 free alltel ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=176 cheap didrex] [http://news.engin.brown.edu/forums/thread-view.asp?tid=204 free mp3 ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2911 free cingular ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a07 tracfone ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30241 xanax online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=356 tracfone ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=111 norco online] [http://wc1.worldcrossing.com/WebX/.1de60a13 fioricet online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=191 cheap lorazepam] [http://library.cshl.edu/wp/vb/member.php?u=1369 free ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2858 viagra online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=224 free wwe ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2852 xanax online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30307 zoloft online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30331 free ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a27 but sildenafil] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=145 cheap xenical] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30339 free samsung ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30294 prozac online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=176 ultracet online] [http://library.cshl.edu/wp/vb/member.php?u=1352 norco online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=189 but lipitor] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=362 free motorola ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=224 free sagem ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=101 meridia online] [http://wc1.worldcrossing.com/WebX/.1de609ee hydrocodone] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30244 diazepam online] [http://wc1.worldcrossing.com/WebX/.1de609e0 cheap ativan] [http://students.hsc.unt.edu/housing/item.cfm?type=2861 norco online] [http://students.hsc.unt.edu/housing/item.cfm?type=2877 cheap prozac] [http://news.engin.brown.edu/forums/thread-view.asp?tid=216 free sonyericsson ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=360 free qwest ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=190 lisinopril online] [http://wc1.worldcrossing.com/WebX/.1de60a10 cheap didrex] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=228 ultram online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=76 cialis] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30259 alprazolam online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=359 free nextel ringtones] [http://wc1.worldcrossing.com/WebX/.1de609e5 cool ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2888 cheap lortab] [http://library.cshl.edu/wp/vb/member.php?u=1373 free nextel ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=216 order zyban] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=206 pharmacy online online] [http://library.cshl.edu/wp/vb/member.php?u=1344 cheap xanax] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=344 online ativan] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30345 sprint ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30248 ativan online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=131 sprint ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2871 wellbutrin online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=146 zanaflex online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=154 buy carisoprodol] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30280 cheap propecia] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=118 prozac online] [http://library.cshl.edu/wp/vb/member.php?u=1341 valium online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=144 xanax online] [http://students.hsc.unt.edu/housing/item.cfm?type=2905 free motorola ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=112 cheap ortho] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=223 cheap wellbutrin] [http://news.engin.brown.edu/forums/thread-view.asp?tid=169 cheap levitra] [http://news.engin.brown.edu/forums/thread-view.asp?tid=156 fioricet] [http://library.cshl.edu/wp/vb/member.php?u=1377 samsung ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30312 ortho online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30356 free cool ringtones] [http://wc1.worldcrossing.com/WebX/.1de609f0 lorazepam online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=187 celexa online] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30230 tramadol online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=211 polyphonic ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=214 cheap zanaflex] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=110 free nokia ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=189 ortho online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=237 free samsung ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=151 cheap soma] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=99 cheap lorazepam] [http://students.hsc.unt.edu/housing/item.cfm?type=2912 free sagem ringtones] [http://students.hsc.unt.edu/housing/item.cfm?type=2907 free sprint ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a17 buy lipitor] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30334 free mp3 ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=234 sprint ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=141 buy vigrx] [http://wc1.worldcrossing.com/WebX/.1de60a23 polyphonic ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a1f cheap lisinopril] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=197 mp3 ringtones] [http://library.cshl.edu/wp/vb/member.php?u=1349 viagra online] [http://library.cshl.edu/wp/vb/member.php?u=1382 free cingular ringtones] [http://www.e.kth.se/cgi-bin/esekt/discussion?command=read&amp;amp;discussionid=4&amp;amp;id=30310 tenuate online] = Summary =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author&#039;&#039;&#039;: Jeffrey Heer / UC Berkeley&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Project Webpage&#039;&#039;&#039;: http://prefuse.org&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Current Version&#039;&#039;&#039;: beta, July 15, 2006&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: Java 1.4&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; using Java2D graphics library; pipeline architecture; animation and rendering support&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Base data structures&#039;&#039;&#039;: Table, Graph, Tree&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Included visualization techniques (&#039;&#039;[http://prefuse.org/gallery/ prefuse gallery]&#039;&#039;):&#039;&#039;&#039; [http://prefuse.org/gallery/fisheyemenu/ Fisheye Menu], [http://prefuse.org/gallery/radialgraphview/ Radial Graph], [http://prefuse.org/gallery/treemap/ Treemap], [http://prefuse.org/gallery/congress/ Scatterplot], [http://prefuse.org/gallery/zipdecode/ zipdecode], [http://prefuse.org/gallery/treeview/ DOITree], [http://prefuse.org/gallery/graphview/ Graph View], [http://prefuse.org/gallery/datamountain/ Data Mountain]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Supported File Formats&#039;&#039;&#039;: GraphML (XML), TreeML (XML), Tab-delimited Text, CSV&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is an interactive graphical open source toolkit written in Java. It is thought to support the development of sophisticated, highly interactive, and flexible [[Information Visualization]]s. The architecture of &#039;&#039;&#039;prefuse&#039;&#039;&#039; considers the [[Visualization Pipeline]], a recommendation on how to implement a visualization. To provide flexibility, a [[polylithic design]] was chosen which enables developers to implement only needed functionality and customize these to meet the own requirements. But, in contrast to a [[monolithic design]], this design needs more time to conceive and influences the architecture of the own application heavily (which is not a disadvantage as &#039;&#039;&#039;prefuse&#039;&#039;&#039; is very elaborate). &lt;br /&gt;
&lt;br /&gt;
Typically, &#039;&#039;&#039;prefuse&#039;&#039;&#039; is designed to visualize interrelated information so it can be stored in a graph or tree structure, but, also not related data can be used which is stored within a data table. Even if the structure is hierarchical, the resulting tree or graph structure must not be considered in the proper graphical representation as layout algorithms are not restricted in any way. The painting of visual items is done by using a renderer which has access to the respective item itself and the Graphics2D context of the view. This approach enables to use the whole range of available painting methods of Java, therefore, all painting issues are completely independent of the toolkit itself.&lt;br /&gt;
&lt;br /&gt;
Besides providing a large set of predefined elements to visualize data, most attention was set toward usability of the visualization. This is obtained by applying several interaction techniques like tooltips or dragging visual elements. But also more sophisticated techniques like [[zoom]]ing, [[pan]]ning, or [[semantic zoom]]ing are supported or partially even provided by the toolkit itself. Further, &#039;&#039;&#039;prefuse&#039;&#039;&#039; clearly distinguishes between absolute and view coordinates. This separation helps users to place all visual elements in a logical way without consideration of later applied visualization techniques that changes the entire view.  &lt;br /&gt;
&lt;br /&gt;
=== Pros ===&lt;br /&gt;
&lt;br /&gt;
* flexible&lt;br /&gt;
* versatile pipeline approach&lt;br /&gt;
* clear and well thought architecture&lt;br /&gt;
* many layout and distortion algorithms included&lt;br /&gt;
* algorithms for force-based physics simulation included&lt;br /&gt;
* custom animations (smooth transitions)&lt;br /&gt;
* color maps&lt;br /&gt;
* query language to navigate within abstract data&lt;br /&gt;
* demos and examples included&lt;br /&gt;
* bounding management&lt;br /&gt;
* open source&lt;br /&gt;
* documentation of code and general guidance available&lt;br /&gt;
* active developer community &lt;br /&gt;
&lt;br /&gt;
=== Cons ===&lt;br /&gt;
&lt;br /&gt;
* [[polylithic design]] takes up more time to conceive and see first results&lt;br /&gt;
* special requirements of a visualization enforce a lot of adapting work&lt;br /&gt;
&lt;br /&gt;
=General Approach=&lt;br /&gt;
&lt;br /&gt;
Going along with the step-wise recommendation of the [[Visualization Pipeline]], a &#039;&#039;&#039;prefuse&#039;&#039;&#039; application consists of different states of data:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_visualization_pipeline.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; uses a centralized object called &#039;&#039;Visualization&#039;&#039; (former &#039;&#039;ItemRegistry&#039;&#039;) which maintains and manages the whole visualization. This object has to fulfil several tasks. It stores the abstract data as well as visual analogous of these in two different tables. All transformation routines like filtering or rendering are managed and executed by the &#039;&#039;Visualization&#039;&#039; too. Further, it refers to at least one &#039;&#039;Display&#039;&#039;, a graphical component which can represent visual elements of the &#039;&#039;Visualization&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Transformation routines are defined as &#039;&#039;Actions&#039;&#039; which are combined in &#039;&#039;ActionLists&#039;&#039;. An &#039;&#039;ActionList&#039;&#039; is an executable container which is started manually by a user or automatically by the &#039;&#039;Visualization&#039;&#039;. Once such a list is started, all defined &#039;&#039;Actions&#039;&#039; are executed in the given sequence. Typically, the last called &#039;&#039;Action&#039;&#039; is the &#039;&#039;RepaintAction&#039;&#039; which forces all belonging &#039;&#039;Displays&#039;&#039; of the &#039;&#039;Visualization&#039;&#039; to repaint themselves. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; is the view of &#039;&#039;&#039;prefuse&#039;&#039;&#039;. It can be embedded in each Java Swing application. The main task of a &#039;&#039;Display&#039;&#039; is the painting of visual structures which are defined in the respective &#039;&#039;Visualization&#039;&#039;. Whenever the &#039;&#039;Display&#039;&#039; performs a repaint, it requests all visual items and checks all bounds of them (bounding management). If an item is within the own area the respective rendering mechanism is called.  &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; also provides navigation techniques like [[zoom]]ing or [[pan]]ning which change the view. The view itself refers to a separate coordinate system. View coordinates are described through an affine transformation matrix. Any navigation technique applied to the view only concerns the view coordinate system. The most important functionalities to work with this coordinate system are already predefined. Typically, users just have to apply whished techniques without considering technical details like the view coordinate system. &lt;br /&gt;
&lt;br /&gt;
Furthermore, a &#039;&#039;Display&#039;&#039; also maintains a set of &#039;&#039;ControlListener&#039;&#039; which are used to process user interactions (mouse or keyboard events). Whenever such an event occurs the respective listener is called. A listener already differs on where the event happened (e.g., blank area or a certain item). Further, a &#039;&#039;ControlListener&#039;&#039; may also start an &#039;&#039;ActionList&#039;&#039; again.&lt;br /&gt;
&lt;br /&gt;
==Source Data==&lt;br /&gt;
&lt;br /&gt;
Raw data is the base of the application. Typically, the source of raw data is a file, but also other sources like a database or web content are thinkable. However, &#039;&#039;&#039;prefuse&#039;&#039;&#039; provides several file readers for different formats (CSV, Tab-Delimitated, etc.) that can be transformed into a data table. Further, some readers also support the reading of SQL-Databases. If another source is needed, a reader can be written manually.&lt;br /&gt;
&lt;br /&gt;
Once the raw data is read, it is transformed into abstract data and stored within a data table of the &#039;&#039;Visualization&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Data Table==&lt;br /&gt;
&lt;br /&gt;
The data table which is used to store abstract data works with data types and a definition schema which maps relations between data-type and table. That means, each row contains a data record, and each column contains values for a named data field with a specific data-type. Each record of the table is referred as a &#039;&#039;Tuple&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Furthermore, instead of the table, also a graph or tree may be used to store interrelated data. Instead of &#039;&#039;Tuples&#039;&#039;, records are referred as &#039;&#039;Nodes&#039;&#039; which are connected to others with &#039;&#039;Edges&#039;&#039;. Additionally, a tree has one defined root &#039;&#039;Node&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Abstract data does not contain any visual information like assignment attributes or color settings. Instead, own visual analogous are created. Visual attributes of them are extracted out of the abstract data following a defined logic.&lt;br /&gt;
&lt;br /&gt;
==Visual Abstraction==&lt;br /&gt;
&lt;br /&gt;
Visual structures are created when filtering the data container which contains the abstract data. In case of a visualization that displays all items from the beginning on, the filtering routine must only executed once at initializing time. If the visual content changes dynamically, the filtering is executed on certain user interactions by calling a defined filtering &#039;&#039;ActionList&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
A visual structure is referred as &#039;&#039;VisualItem&#039;&#039; which may be distinguished as &#039;&#039;VisualNode&#039;&#039;, &#039;&#039;VisualEdge&#039;&#039;, or an aggregated item which consists of several other items. However, as a &#039;&#039;VisualItem&#039;&#039; is extended of the respective abstract entity, it has full access to all abstract information too. &lt;br /&gt;
&lt;br /&gt;
The filtering routine which transforms the abstract data to visual analogues typically consists of following &#039;&#039;Actions&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Filter&#039;&#039;&#039;: This &#039;&#039;Action&#039;&#039; is responsible to transform the abstract data of the backing table to visual analogues. If no special conditions are defined, the filter creates for each &#039;&#039;Tuple&#039;&#039; a visual instance and stores them in a second table. Additionally, a filter also performs a garbage collection and may set visibility attributes of the created items. &lt;br /&gt;
* &#039;&#039;&#039;Layout&#039;&#039;&#039;: A layout takes care about placing the &#039;&#039;VisualItems&#039;&#039;. Several common algorithms for graphs or trees are already predefined (e.g., &#039;&#039;ForceDirectedLayout&#039;&#039; or &#039;&#039;RadialTreeLayout&#039;&#039;). &lt;br /&gt;
* &#039;&#039;&#039;Assignment&#039;&#039;&#039;: Besides layouting, also other assignments may be performed during the filtering process. Such assignments directly changes visual attributes of &#039;&#039;VisualItems&#039;&#039; like colors, sizes, fonts, etc.&lt;br /&gt;
&lt;br /&gt;
A visual structure may also contain a paint routine, but, as all painting jobs are initialized or performed by separated renderers, these issues may also be executed by the renderer itself or any other object.&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
Typically, the rendered visual structure is not stored, instead, they are re-rendered whenever needed. However, in case of very complex but constant visual representations it makes sense to hold items in an offscreen image. &lt;br /&gt;
&lt;br /&gt;
Each &#039;&#039;VisualItem&#039;&#039; has got one or more associated &#039;&#039;Renderers&#039;&#039; which are maintained by a factory of the &#039;&#039;Visualization&#039;&#039;. A &#039;&#039;Renderer&#039;&#039; has to perform two tasks:&lt;br /&gt;
&lt;br /&gt;
* Providing a bounding box of the item. This box is used to determine if the item must actually be painted or if it would not be visible anyway. &lt;br /&gt;
* Providing the painting routine of the item. Paintings may be executed by the &#039;&#039;Renderer&#039;&#039; itself or delegated to other objects which are accessible of the &#039;&#039;Renderer&#039;&#039;. The painting routines are not restricted in any way, but the proper representation should not exceed the bounding box of the item. &lt;br /&gt;
&lt;br /&gt;
Rendering is always performed on a repaint of the &#039;&#039;Display&#039;&#039;. A repaint can be requested by the &#039;&#039;Visualization&#039;&#039;, on user interaction, and on events like resizing the component, getting the focus, or changing the coordinate system of the view. However, as repaints may occur very often, developers have to ascertain that rendering jobs are performed fast, otherwise, the performance of the whole visualization would suffer.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
==Package Structure==&lt;br /&gt;
&lt;br /&gt;
Following picture shows the most important packages of &#039;&#039;&#039;prefuse&#039;&#039;&#039; regarding to the [[Visualization Pipeline]]:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_package_guide.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
These packages also contain predefined components. Default &#039;&#039;Nodes&#039;&#039; and &#039;&#039;Edges&#039;&#039; provide standard functionality of abstract data, standard functionality is also available in visual analogous of them. A default filter transforms all defined abstract entities to visual ones. Further, also some special functionalities to fulfil common requirements are provided by own components: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Renderers&#039;&#039;&#039;: &#039;&#039;EdgeRenderer&#039;&#039; to render edges between graph or tree nodes, a &#039;&#039;LableRenderer&#039;&#039; to render text items, and a &#039;&#039;PolygoneRenderer&#039;&#039; to render geometrical items. &lt;br /&gt;
* &#039;&#039;&#039;Layouts&#039;&#039;&#039;: &#039;&#039;RandomLayout&#039;&#039;, &#039;&#039;GridLayout&#039;&#039;, and some more to place non related data, &#039;&#039;ForceDirectedLayout&#039;&#039;, &#039;&#039;TreeLayout&#039;&#039;, &#039;&#039;RadialTreeLayout&#039;&#039; and others to layout trees and graphs.&lt;br /&gt;
* &#039;&#039;&#039;Controls&#039;&#039;&#039;: &#039;&#039;DragControl&#039;&#039;, &#039;&#039;ZoomControl&#039;&#039;, &#039;&#039;PanControl&#039;&#039;, &#039;&#039;ToolTipControl&#039;&#039; and several others to react on user interactions. &lt;br /&gt;
&lt;br /&gt;
In simple visualizations the predefined functionality will meet most requirements. If special requirements are needed the default functionality supports a step-wise developing as results can be communicated by predefined components until the own functionality is implemented.&lt;br /&gt;
&lt;br /&gt;
==Coordinates in prefuse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; works with two different coordinate systems. Absolute coordinates are device-independent logical coordinates. All visual attributes like positions or sizes are defined in absolute coordinates. In contrast, view coordinates are device-depended (screen). Transformations between absolute and view coordinates are done automatically by Java painting routines. View coordinates are influenced by the system and device driver (e.g., the absolute point (0,0) is the topmost left point of the actual graphical component which may be on any position at the screen). Further, view coordinates may also be manipulated manually by using an affine transformation matrix which applies linear transformations on absolute coordinates before device-dependent routines convert them to screen coordinates. &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;prefuse&#039;&#039;&#039; &#039;&#039;Display&#039;&#039; provides the most important manipulating methods of this matrix. [[Zoom]]ing, [[pan]]ning, and rotation of the whole view are only done by changing the view coordinates. So, as absolute coordinates are never concerned of such transformations and translations, a user must never consider the actual view in layout, assignment, or painting routines. &lt;br /&gt;
&lt;br /&gt;
There are several different ways on how to apply such transformations, additionally, the &#039;&#039;Display&#039;&#039; also supports animated transformations.&lt;br /&gt;
&lt;br /&gt;
==User Interactions==&lt;br /&gt;
&lt;br /&gt;
Mouse or keyboard events are treated by &#039;&#039;ControlListener&#039;&#039;. Whenever an event occurs which is handled by a &#039;&#039;ControlListener&#039;&#039;, the &#039;&#039;Display&#039;&#039; delegates the event to the respective routine. A &#039;&#039;ControlListener&#039;&#039; disdinguishes automatically which visual element is concerned of the event (the view itself or a &#039;&#039;VisualItem&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ControlListener&#039;&#039; may just perform simple tasks like changing the mouse cursor or editing the label of an item. But, in more sophisticated applications, also tasks like loading new data or dragging items on the view may be handled. Therefore, a &#039;&#039;ControlListener&#039;&#039; may also start &#039;&#039;ActionLists&#039;&#039; to execute such tasks. Further, a &#039;&#039;ControlListener&#039;&#039; has also access to the &#039;&#039;Display&#039;&#039;. Thus, it is able to call methods like zooming or panning. Typically, each &#039;&#039;ControlListener&#039;&#039; forces a repaint when its job is done.  &lt;br /&gt;
&lt;br /&gt;
Most of standard functionality is already predefined in &#039;&#039;prefuse&#039;&#039; and the wanted listeners just have to be assigned to the &#039;&#039;Display&#039;&#039;. However, the &#039;&#039;Display&#039;&#039; can handle a countless of different listener. Hence, typically only a few listeners must be defined manually as they can be mixed with default ones.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is a very powerful toolkit, providing a large set of components and methods a developer needs to build an [[Information Visualization]]. The [[polylithic design]] is not that easy to understand in the beginning of a development, but once conceived, a visualization is easy to realize even if really special demands have to be fulfilled. Furthermore, using Prefuse forces a clear and well designed architecture of own applications.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; was created with most attention paid to developers who will finally work with the toolkit. In an evaluation study this goal was approved too. In the meanwhile, there is also a not so small community using and upgrading the toolkit, which is an argument for its usability.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
*[http://prefuse.org prefuse Homepage]&lt;br /&gt;
*[http://vw.indiana.edu/ivsi2004/jherr/index.html prefuse Position Paper]&lt;br /&gt;
*[http://sourceforge.net/forum/forum.php?forum_id=343013 prefuse Help Forum]&lt;br /&gt;
&lt;br /&gt;
= Downloads =&lt;br /&gt;
*[[Media:Prefuse-tutorial-20061127-handout.pdf|prefuse Tutorial (pdf, 660kB)]] by [[Aigner, Wolfgang|Wolfgang Aigner]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[Heer, 2004] Jeffrey Heer. [http://jheer.org/publications/2004-Heer-prefuse-Masters.pdf prefuse: a software framework for interactive information visualization]. Masters of Science, Computer Science Division, University of California, Berkeley, 2004.&lt;br /&gt;
*[Heer, 2005] Jeffrey Heer, Stuart K. Card, and James A. Landay. [http://jheer.org/publications/2005-prefuse-CHI.pdf prefuse: a toolkit for interactive information visualization.] In CHI 2005, Human Factors in Computing Systems, 2005.&lt;br /&gt;
*[Heer, 2006a] Jeffrey Heer, prefuse API documentation. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Heer, 2006b] Jeffrey Heer, prefuse manual. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Sun Microsystems, 2001] Sun Microsystems, Programmer’s Guide to the Java 2DTM API - Enhanced Graphics and Imaging for Java. Retrieved at: April 20, 2006, http://java.sun.com/j2se/1.4/pdf/j2d-book.pdf&lt;br /&gt;
&lt;br /&gt;
[[Category:Toolkits]]&lt;/div&gt;</summary>
		<author><name>Yc8E18</name></author>
	</entry>
	<entry>
		<id>https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=14813</id>
		<title>Prefuse</title>
		<link rel="alternate" type="text/html" href="https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=14813"/>
		<updated>2007-07-10T20:58:23Z</updated>

		<summary type="html">&lt;p&gt;Yc8E18: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=90 cheap hgh] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=132 cheap tenuate] [http://wc1.worldcrossing.com/WebX/.1de60a32 online zoloft] [http://news.engin.brown.edu/forums/thread-view.asp?tid=223 free midi ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=166 alprazolam online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=72 cheap ambien] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=241 free sony ericsson ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=184 lisinopril online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=194 midi ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=74 cheap carisoprodol] [http://wc1.worldcrossing.com/WebX/.1de609f8 nokia ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=182 funny ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=176 didrex online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=196 buy hgh] [http://wc1.worldcrossing.com/WebX/.1de60a10 didrex online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=129 free sony ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=339 cheap ultram] [http://wc1.worldcrossing.com/WebX/.1de609ec hgh online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=85 ericsson ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=156 fioricet] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=76 cialis online] [http://wc1.worldcrossing.com/WebX/.1de60a1e flexeril online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=336 carisoprodol online] [http://wc1.worldcrossing.com/WebX/.1de609ff free real ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=198 cheap hoodia] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=165 but ambien] [http://news.engin.brown.edu/forums/thread-view.asp?tid=186 lipitor online] [http://wc1.worldcrossing.com/WebX/.1de609fa free online pharmacy] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=88 free free ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=146 zanaflex online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=153 phentermine online] [http://wc1.worldcrossing.com/WebX/.1de60a11 buy diethylpropion] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=240 buy soma] [http://news.engin.brown.edu/forums/thread-view.asp?tid=210 free sprint ringtones] [http://wc1.worldcrossing.com/WebX/.1de609e7 cheap diazepam] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=125 sharp ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=170 cheap hydrocodone] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=347 online adipex] [http://news.engin.brown.edu/forums/thread-view.asp?tid=155 buy xanax] [http://wc1.worldcrossing.com/WebX/.1de609e3 clomid online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=356 tracfone ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=222 sharp ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=98 lisinopril] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=223 cheap wellbutrin] [http://wc1.worldcrossing.com/WebX/.1de60a15 kyocera ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=362 free motorola ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=115 cheap phentermine] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=215 buy zoloft] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=167 cheap carisoprodol] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=164 alprazolam online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=177 diethylpropion online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=200 free nokia ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=69 cheap albuterol] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=357 funny ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=334 valium online] [http://wc1.worldcrossing.com/WebX/.1de60a29 tramadol online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=338 online fioricet] [http://wc1.worldcrossing.com/WebX/.1de60a09 viagra online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=124 samsung ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=198 mtv ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=164 cheap norco] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=199 music ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=166 ativan online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=188 tenuate online] [http://wc1.worldcrossing.com/WebX/.1de60a17 buy lipitor] [http://wc1.worldcrossing.com/WebX/.1de60a12 ericsson ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=151 cheap soma] [http://wc1.worldcrossing.com/WebX/.1de609df ambien online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=231 rivotril online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=343 cialis online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=134 buy tramadol] [http://news.engin.brown.edu/forums/thread-view.asp?tid=227 ericsson ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=228 free mtv ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=177 cheap propecia] [http://wc1.worldcrossing.com/WebX/.1de60a14 jazz ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=187 free kyocera ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=345 cheap viagra] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=348 but norco] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=162 free alltel ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=193 buy zanaflex] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=196 free motorola ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=139 viagra online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=191 lortab online] [http://wc1.worldcrossing.com/WebX/.1de60a1b music ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a19 mp3 ringtones] [http://wc1.worldcrossing.com/WebX/.1de609dc buy albuterol] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=351 clonazepam online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=171 ambien online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=173 xenical online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=121 free real ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a20 nexium online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=142 online wellbutrin] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=130 free sonyericsson ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a0e celexa online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=158 diazepam online] [http://wc1.worldcrossing.com/WebX/.1de609f7 nextel ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a28 soma online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=197 mp3 ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=184 online hoodia] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=359 free nextel ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=165 vicodin online] [http://wc1.worldcrossing.com/WebX/.1de60a01 sagem ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=217 punk ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=117 cheap propecia] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=195 mono ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=116 free polyphonic ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=96 cheap levitra] [http://news.engin.brown.edu/forums/thread-view.asp?tid=224 wwe ringtones] [http://wc1.worldcrossing.com/WebX/.1de609f0 cheap lorazepam] [http://news.engin.brown.edu/forums/thread-view.asp?tid=209 samsung ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a31 zanaflex online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=203 norco online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=178 buy nexium] [http://news.engin.brown.edu/forums/thread-view.asp?tid=157 cheap ultram] [http://wc1.worldcrossing.com/WebX/.1de609ed hoodia online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=183 hgh online] [http://wc1.worldcrossing.com/WebX/.1de609e5 cool ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=103 mono ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a00 rivotril online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=101 meridia online] [http://wc1.worldcrossing.com/WebX/.1de60a0f cialis online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=229 jazz ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=78 clomid] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=112 cheap ortho] [http://wc1.worldcrossing.com/WebX/.1de609e0 ativan online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=342 diazepam online] [http://wc1.worldcrossing.com/WebX/.1de60a1d cingular ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=229 valium online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=92 cheap hydrocodone] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=344 ativan online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=224 sagem ringtones] [http://wc1.worldcrossing.com/WebX/.1de609de but alprazolam] [http://news.engin.brown.edu/forums/thread-view.asp?tid=195 cheap rivotril] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=77 free cingular ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=152 valium online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=235 tenuate] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=99 cheap lorazepam] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=106 free mtv ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a04 sonyericsson ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=136 ultram online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=148 zyban online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=204 mp3 ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=239 sildenafil online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=219 free alltel ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=123 sagem ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=147 cheap zoloft] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=172 but clonazepam] [http://wc1.worldcrossing.com/WebX/.1de609f1 cheap lortab] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=361 free real ringtones] [http://wc1.worldcrossing.com/WebX/.1de609e6 buy cyclobenzaprine] [http://wc1.worldcrossing.com/WebX/.1de60a33 cheap prozac] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=227 cheap ultracet] [http://news.engin.brown.edu/forums/thread-view.asp?tid=183 albuterol] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=222 vigrx online] [http://wc1.worldcrossing.com/WebX/.1de609fb cheap ortho] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=178 free ericsson ringtones] [http://wc1.worldcrossing.com/WebX/.1de609db but adipex] [http://wc1.worldcrossing.com/WebX/.1de60a18 motorola ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=107 music ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a35 free verizon ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=141 vigrx online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=225 free wwe ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a30 cheap xenical] [http://news.engin.brown.edu/forums/thread-view.asp?tid=168 paxil online] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=208 cheap phentermine] [http://wc1.worldcrossing.com/WebX/.1de609ea free ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=127 soma online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=84 cheap diethylpropion] [http://wc1.worldcrossing.com/WebX/.1de609fd free punk ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=346 meridia online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=354 free nokia ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=355 free ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&amp;amp;no=350 alprazolam] [http://news.engin.brown.edu/forums/thread-view.asp?tid=181 cheap sildenafil] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=86 fioricet online] [http://wc1.worldcrossing.com/WebX/.1de60a13 fioricet online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=162 meridia online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=202 free tracfone ringtones] [http://wc1.worldcrossing.com/WebX/.1de609ee cheap hydrocodone] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=131 sprint ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=226 sony ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=238 sharp ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=216 sonyericsson ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=189 ortho online] [http://wc1.worldcrossing.com/WebX/.1de60a16 levitra] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=213 cheap prozac] [http://news.engin.brown.edu/forums/thread-view.asp?tid=199 zyban online] [http://wc1.worldcrossing.com/WebX/.1de60a26 free sharp ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=202 nokia ringtones] [http://wc1.worldcrossing.com/WebX/.1de609f4 mono ringtones] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=122 buy rivotril] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=94 jazz ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=190 lisinopril online] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=111 order norco] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=73 cheap ativan] [http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&amp;amp;TopicId=95 kyocera ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=169 levitra online] [http://wc1.worldcrossing.com/WebX/.1de60a2e cheap xanax] [http://news.engin.brown.edu/forums/thread-view.asp?tid=221 cool ringtones] [http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&amp;amp;TopicId=169 cialis] = Summary =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author&#039;&#039;&#039;: Jeffrey Heer / UC Berkeley&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Project Webpage&#039;&#039;&#039;: http://prefuse.org&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Current Version&#039;&#039;&#039;: beta, July 15, 2006&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: Java 1.4&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; using Java2D graphics library; pipeline architecture; animation and rendering support&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Base data structures&#039;&#039;&#039;: Table, Graph, Tree&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Included visualization techniques (&#039;&#039;[http://prefuse.org/gallery/ prefuse gallery]&#039;&#039;):&#039;&#039;&#039; [http://prefuse.org/gallery/fisheyemenu/ Fisheye Menu], [http://prefuse.org/gallery/radialgraphview/ Radial Graph], [http://prefuse.org/gallery/treemap/ Treemap], [http://prefuse.org/gallery/congress/ Scatterplot], [http://prefuse.org/gallery/zipdecode/ zipdecode], [http://prefuse.org/gallery/treeview/ DOITree], [http://prefuse.org/gallery/graphview/ Graph View], [http://prefuse.org/gallery/datamountain/ Data Mountain]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Supported File Formats&#039;&#039;&#039;: GraphML (XML), TreeML (XML), Tab-delimited Text, CSV&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is an interactive graphical open source toolkit written in Java. It is thought to support the development of sophisticated, highly interactive, and flexible [[Information Visualization]]s. The architecture of &#039;&#039;&#039;prefuse&#039;&#039;&#039; considers the [[Visualization Pipeline]], a recommendation on how to implement a visualization. To provide flexibility, a [[polylithic design]] was chosen which enables developers to implement only needed functionality and customize these to meet the own requirements. But, in contrast to a [[monolithic design]], this design needs more time to conceive and influences the architecture of the own application heavily (which is not a disadvantage as &#039;&#039;&#039;prefuse&#039;&#039;&#039; is very elaborate). &lt;br /&gt;
&lt;br /&gt;
Typically, &#039;&#039;&#039;prefuse&#039;&#039;&#039; is designed to visualize interrelated information so it can be stored in a graph or tree structure, but, also not related data can be used which is stored within a data table. Even if the structure is hierarchical, the resulting tree or graph structure must not be considered in the proper graphical representation as layout algorithms are not restricted in any way. The painting of visual items is done by using a renderer which has access to the respective item itself and the Graphics2D context of the view. This approach enables to use the whole range of available painting methods of Java, therefore, all painting issues are completely independent of the toolkit itself.&lt;br /&gt;
&lt;br /&gt;
Besides providing a large set of predefined elements to visualize data, most attention was set toward usability of the visualization. This is obtained by applying several interaction techniques like tooltips or dragging visual elements. But also more sophisticated techniques like [[zoom]]ing, [[pan]]ning, or [[semantic zoom]]ing are supported or partially even provided by the toolkit itself. Further, &#039;&#039;&#039;prefuse&#039;&#039;&#039; clearly distinguishes between absolute and view coordinates. This separation helps users to place all visual elements in a logical way without consideration of later applied visualization techniques that changes the entire view.  &lt;br /&gt;
&lt;br /&gt;
=== Pros ===&lt;br /&gt;
&lt;br /&gt;
* flexible&lt;br /&gt;
* versatile pipeline approach&lt;br /&gt;
* clear and well thought architecture&lt;br /&gt;
* many layout and distortion algorithms included&lt;br /&gt;
* algorithms for force-based physics simulation included&lt;br /&gt;
* custom animations (smooth transitions)&lt;br /&gt;
* color maps&lt;br /&gt;
* query language to navigate within abstract data&lt;br /&gt;
* demos and examples included&lt;br /&gt;
* bounding management&lt;br /&gt;
* open source&lt;br /&gt;
* documentation of code and general guidance available&lt;br /&gt;
* active developer community &lt;br /&gt;
&lt;br /&gt;
=== Cons ===&lt;br /&gt;
&lt;br /&gt;
* [[polylithic design]] takes up more time to conceive and see first results&lt;br /&gt;
* special requirements of a visualization enforce a lot of adapting work&lt;br /&gt;
&lt;br /&gt;
=General Approach=&lt;br /&gt;
&lt;br /&gt;
Going along with the step-wise recommendation of the [[Visualization Pipeline]], a &#039;&#039;&#039;prefuse&#039;&#039;&#039; application consists of different states of data:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_visualization_pipeline.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; uses a centralized object called &#039;&#039;Visualization&#039;&#039; (former &#039;&#039;ItemRegistry&#039;&#039;) which maintains and manages the whole visualization. This object has to fulfil several tasks. It stores the abstract data as well as visual analogous of these in two different tables. All transformation routines like filtering or rendering are managed and executed by the &#039;&#039;Visualization&#039;&#039; too. Further, it refers to at least one &#039;&#039;Display&#039;&#039;, a graphical component which can represent visual elements of the &#039;&#039;Visualization&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Transformation routines are defined as &#039;&#039;Actions&#039;&#039; which are combined in &#039;&#039;ActionLists&#039;&#039;. An &#039;&#039;ActionList&#039;&#039; is an executable container which is started manually by a user or automatically by the &#039;&#039;Visualization&#039;&#039;. Once such a list is started, all defined &#039;&#039;Actions&#039;&#039; are executed in the given sequence. Typically, the last called &#039;&#039;Action&#039;&#039; is the &#039;&#039;RepaintAction&#039;&#039; which forces all belonging &#039;&#039;Displays&#039;&#039; of the &#039;&#039;Visualization&#039;&#039; to repaint themselves. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; is the view of &#039;&#039;&#039;prefuse&#039;&#039;&#039;. It can be embedded in each Java Swing application. The main task of a &#039;&#039;Display&#039;&#039; is the painting of visual structures which are defined in the respective &#039;&#039;Visualization&#039;&#039;. Whenever the &#039;&#039;Display&#039;&#039; performs a repaint, it requests all visual items and checks all bounds of them (bounding management). If an item is within the own area the respective rendering mechanism is called.  &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; also provides navigation techniques like [[zoom]]ing or [[pan]]ning which change the view. The view itself refers to a separate coordinate system. View coordinates are described through an affine transformation matrix. Any navigation technique applied to the view only concerns the view coordinate system. The most important functionalities to work with this coordinate system are already predefined. Typically, users just have to apply whished techniques without considering technical details like the view coordinate system. &lt;br /&gt;
&lt;br /&gt;
Furthermore, a &#039;&#039;Display&#039;&#039; also maintains a set of &#039;&#039;ControlListener&#039;&#039; which are used to process user interactions (mouse or keyboard events). Whenever such an event occurs the respective listener is called. A listener already differs on where the event happened (e.g., blank area or a certain item). Further, a &#039;&#039;ControlListener&#039;&#039; may also start an &#039;&#039;ActionList&#039;&#039; again.&lt;br /&gt;
&lt;br /&gt;
==Source Data==&lt;br /&gt;
&lt;br /&gt;
Raw data is the base of the application. Typically, the source of raw data is a file, but also other sources like a database or web content are thinkable. However, &#039;&#039;&#039;prefuse&#039;&#039;&#039; provides several file readers for different formats (CSV, Tab-Delimitated, etc.) that can be transformed into a data table. Further, some readers also support the reading of SQL-Databases. If another source is needed, a reader can be written manually.&lt;br /&gt;
&lt;br /&gt;
Once the raw data is read, it is transformed into abstract data and stored within a data table of the &#039;&#039;Visualization&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Data Table==&lt;br /&gt;
&lt;br /&gt;
The data table which is used to store abstract data works with data types and a definition schema which maps relations between data-type and table. That means, each row contains a data record, and each column contains values for a named data field with a specific data-type. Each record of the table is referred as a &#039;&#039;Tuple&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Furthermore, instead of the table, also a graph or tree may be used to store interrelated data. Instead of &#039;&#039;Tuples&#039;&#039;, records are referred as &#039;&#039;Nodes&#039;&#039; which are connected to others with &#039;&#039;Edges&#039;&#039;. Additionally, a tree has one defined root &#039;&#039;Node&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Abstract data does not contain any visual information like assignment attributes or color settings. Instead, own visual analogous are created. Visual attributes of them are extracted out of the abstract data following a defined logic.&lt;br /&gt;
&lt;br /&gt;
==Visual Abstraction==&lt;br /&gt;
&lt;br /&gt;
Visual structures are created when filtering the data container which contains the abstract data. In case of a visualization that displays all items from the beginning on, the filtering routine must only executed once at initializing time. If the visual content changes dynamically, the filtering is executed on certain user interactions by calling a defined filtering &#039;&#039;ActionList&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
A visual structure is referred as &#039;&#039;VisualItem&#039;&#039; which may be distinguished as &#039;&#039;VisualNode&#039;&#039;, &#039;&#039;VisualEdge&#039;&#039;, or an aggregated item which consists of several other items. However, as a &#039;&#039;VisualItem&#039;&#039; is extended of the respective abstract entity, it has full access to all abstract information too. &lt;br /&gt;
&lt;br /&gt;
The filtering routine which transforms the abstract data to visual analogues typically consists of following &#039;&#039;Actions&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Filter&#039;&#039;&#039;: This &#039;&#039;Action&#039;&#039; is responsible to transform the abstract data of the backing table to visual analogues. If no special conditions are defined, the filter creates for each &#039;&#039;Tuple&#039;&#039; a visual instance and stores them in a second table. Additionally, a filter also performs a garbage collection and may set visibility attributes of the created items. &lt;br /&gt;
* &#039;&#039;&#039;Layout&#039;&#039;&#039;: A layout takes care about placing the &#039;&#039;VisualItems&#039;&#039;. Several common algorithms for graphs or trees are already predefined (e.g., &#039;&#039;ForceDirectedLayout&#039;&#039; or &#039;&#039;RadialTreeLayout&#039;&#039;). &lt;br /&gt;
* &#039;&#039;&#039;Assignment&#039;&#039;&#039;: Besides layouting, also other assignments may be performed during the filtering process. Such assignments directly changes visual attributes of &#039;&#039;VisualItems&#039;&#039; like colors, sizes, fonts, etc.&lt;br /&gt;
&lt;br /&gt;
A visual structure may also contain a paint routine, but, as all painting jobs are initialized or performed by separated renderers, these issues may also be executed by the renderer itself or any other object.&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
Typically, the rendered visual structure is not stored, instead, they are re-rendered whenever needed. However, in case of very complex but constant visual representations it makes sense to hold items in an offscreen image. &lt;br /&gt;
&lt;br /&gt;
Each &#039;&#039;VisualItem&#039;&#039; has got one or more associated &#039;&#039;Renderers&#039;&#039; which are maintained by a factory of the &#039;&#039;Visualization&#039;&#039;. A &#039;&#039;Renderer&#039;&#039; has to perform two tasks:&lt;br /&gt;
&lt;br /&gt;
* Providing a bounding box of the item. This box is used to determine if the item must actually be painted or if it would not be visible anyway. &lt;br /&gt;
* Providing the painting routine of the item. Paintings may be executed by the &#039;&#039;Renderer&#039;&#039; itself or delegated to other objects which are accessible of the &#039;&#039;Renderer&#039;&#039;. The painting routines are not restricted in any way, but the proper representation should not exceed the bounding box of the item. &lt;br /&gt;
&lt;br /&gt;
Rendering is always performed on a repaint of the &#039;&#039;Display&#039;&#039;. A repaint can be requested by the &#039;&#039;Visualization&#039;&#039;, on user interaction, and on events like resizing the component, getting the focus, or changing the coordinate system of the view. However, as repaints may occur very often, developers have to ascertain that rendering jobs are performed fast, otherwise, the performance of the whole visualization would suffer.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
==Package Structure==&lt;br /&gt;
&lt;br /&gt;
Following picture shows the most important packages of &#039;&#039;&#039;prefuse&#039;&#039;&#039; regarding to the [[Visualization Pipeline]]:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_package_guide.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
These packages also contain predefined components. Default &#039;&#039;Nodes&#039;&#039; and &#039;&#039;Edges&#039;&#039; provide standard functionality of abstract data, standard functionality is also available in visual analogous of them. A default filter transforms all defined abstract entities to visual ones. Further, also some special functionalities to fulfil common requirements are provided by own components: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Renderers&#039;&#039;&#039;: &#039;&#039;EdgeRenderer&#039;&#039; to render edges between graph or tree nodes, a &#039;&#039;LableRenderer&#039;&#039; to render text items, and a &#039;&#039;PolygoneRenderer&#039;&#039; to render geometrical items. &lt;br /&gt;
* &#039;&#039;&#039;Layouts&#039;&#039;&#039;: &#039;&#039;RandomLayout&#039;&#039;, &#039;&#039;GridLayout&#039;&#039;, and some more to place non related data, &#039;&#039;ForceDirectedLayout&#039;&#039;, &#039;&#039;TreeLayout&#039;&#039;, &#039;&#039;RadialTreeLayout&#039;&#039; and others to layout trees and graphs.&lt;br /&gt;
* &#039;&#039;&#039;Controls&#039;&#039;&#039;: &#039;&#039;DragControl&#039;&#039;, &#039;&#039;ZoomControl&#039;&#039;, &#039;&#039;PanControl&#039;&#039;, &#039;&#039;ToolTipControl&#039;&#039; and several others to react on user interactions. &lt;br /&gt;
&lt;br /&gt;
In simple visualizations the predefined functionality will meet most requirements. If special requirements are needed the default functionality supports a step-wise developing as results can be communicated by predefined components until the own functionality is implemented.&lt;br /&gt;
&lt;br /&gt;
==Coordinates in prefuse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; works with two different coordinate systems. Absolute coordinates are device-independent logical coordinates. All visual attributes like positions or sizes are defined in absolute coordinates. In contrast, view coordinates are device-depended (screen). Transformations between absolute and view coordinates are done automatically by Java painting routines. View coordinates are influenced by the system and device driver (e.g., the absolute point (0,0) is the topmost left point of the actual graphical component which may be on any position at the screen). Further, view coordinates may also be manipulated manually by using an affine transformation matrix which applies linear transformations on absolute coordinates before device-dependent routines convert them to screen coordinates. &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;prefuse&#039;&#039;&#039; &#039;&#039;Display&#039;&#039; provides the most important manipulating methods of this matrix. [[Zoom]]ing, [[pan]]ning, and rotation of the whole view are only done by changing the view coordinates. So, as absolute coordinates are never concerned of such transformations and translations, a user must never consider the actual view in layout, assignment, or painting routines. &lt;br /&gt;
&lt;br /&gt;
There are several different ways on how to apply such transformations, additionally, the &#039;&#039;Display&#039;&#039; also supports animated transformations.&lt;br /&gt;
&lt;br /&gt;
==User Interactions==&lt;br /&gt;
&lt;br /&gt;
Mouse or keyboard events are treated by &#039;&#039;ControlListener&#039;&#039;. Whenever an event occurs which is handled by a &#039;&#039;ControlListener&#039;&#039;, the &#039;&#039;Display&#039;&#039; delegates the event to the respective routine. A &#039;&#039;ControlListener&#039;&#039; disdinguishes automatically which visual element is concerned of the event (the view itself or a &#039;&#039;VisualItem&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ControlListener&#039;&#039; may just perform simple tasks like changing the mouse cursor or editing the label of an item. But, in more sophisticated applications, also tasks like loading new data or dragging items on the view may be handled. Therefore, a &#039;&#039;ControlListener&#039;&#039; may also start &#039;&#039;ActionLists&#039;&#039; to execute such tasks. Further, a &#039;&#039;ControlListener&#039;&#039; has also access to the &#039;&#039;Display&#039;&#039;. Thus, it is able to call methods like zooming or panning. Typically, each &#039;&#039;ControlListener&#039;&#039; forces a repaint when its job is done.  &lt;br /&gt;
&lt;br /&gt;
Most of standard functionality is already predefined in &#039;&#039;prefuse&#039;&#039; and the wanted listeners just have to be assigned to the &#039;&#039;Display&#039;&#039;. However, the &#039;&#039;Display&#039;&#039; can handle a countless of different listener. Hence, typically only a few listeners must be defined manually as they can be mixed with default ones.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is a very powerful toolkit, providing a large set of components and methods a developer needs to build an [[Information Visualization]]. The [[polylithic design]] is not that easy to understand in the beginning of a development, but once conceived, a visualization is easy to realize even if really special demands have to be fulfilled. Furthermore, using Prefuse forces a clear and well designed architecture of own applications.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; was created with most attention paid to developers who will finally work with the toolkit. In an evaluation study this goal was approved too. In the meanwhile, there is also a not so small community using and upgrading the toolkit, which is an argument for its usability.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
*[http://prefuse.org prefuse Homepage]&lt;br /&gt;
*[http://vw.indiana.edu/ivsi2004/jherr/index.html prefuse Position Paper]&lt;br /&gt;
*[http://sourceforge.net/forum/forum.php?forum_id=343013 prefuse Help Forum]&lt;br /&gt;
&lt;br /&gt;
= Downloads =&lt;br /&gt;
*[[Media:Prefuse-tutorial-20061127-handout.pdf|prefuse Tutorial (pdf, 660kB)]] by [[Aigner, Wolfgang|Wolfgang Aigner]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[Heer, 2004] Jeffrey Heer. [http://jheer.org/publications/2004-Heer-prefuse-Masters.pdf prefuse: a software framework for interactive information visualization]. Masters of Science, Computer Science Division, University of California, Berkeley, 2004.&lt;br /&gt;
*[Heer, 2005] Jeffrey Heer, Stuart K. Card, and James A. Landay. [http://jheer.org/publications/2005-prefuse-CHI.pdf prefuse: a toolkit for interactive information visualization.] In CHI 2005, Human Factors in Computing Systems, 2005.&lt;br /&gt;
*[Heer, 2006a] Jeffrey Heer, prefuse API documentation. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Heer, 2006b] Jeffrey Heer, prefuse manual. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Sun Microsystems, 2001] Sun Microsystems, Programmer’s Guide to the Java 2DTM API - Enhanced Graphics and Imaging for Java. Retrieved at: April 20, 2006, http://java.sun.com/j2se/1.4/pdf/j2d-book.pdf&lt;br /&gt;
&lt;br /&gt;
[[Category:Toolkits]]&lt;/div&gt;</summary>
		<author><name>Yc8E18</name></author>
	</entry>
	<entry>
		<id>https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=14482</id>
		<title>Prefuse</title>
		<link rel="alternate" type="text/html" href="https://infovis-wiki.net/w/index.php?title=Prefuse&amp;diff=14482"/>
		<updated>2007-07-01T04:53:09Z</updated>

		<summary type="html">&lt;p&gt;Yc8E18: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=114&amp;amp;forum=13 meridia online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=157&amp;amp;forum=13 wwe ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=128&amp;amp;forum=13 phentermine online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=158&amp;amp;forum=13 xanax online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=106&amp;amp;forum=13 cheap hydrocodone] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=160&amp;amp;forum=13 zanaflex online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=102&amp;amp;forum=13 free free ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=97&amp;amp;forum=13 buy didrex] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=135&amp;amp;forum=13 real ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=100&amp;amp;forum=13 fioricet online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=96&amp;amp;forum=13 diazepam online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=136&amp;amp;forum=13 rivotril online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=87&amp;amp;forum=13 cheap ativan] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=144&amp;amp;forum=13 sonyericsson ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=137&amp;amp;forum=13 free sagem ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=152&amp;amp;forum=13 free verizon ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=139&amp;amp;forum=13 sharp ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=125&amp;amp;forum=13 cheap ortho] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=156&amp;amp;forum=13 cheap wellbutrin] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=151&amp;amp;forum=13 valium] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=121&amp;amp;forum=13 nexium online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=147&amp;amp;forum=13 tracfone ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=142&amp;amp;forum=13 sony ericsson ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=94&amp;amp;forum=13 cool ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=161&amp;amp;forum=13 but zoloft] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=117&amp;amp;forum=13 free motorola ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=133&amp;amp;forum=13 free qwest ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=138&amp;amp;forum=13 free samsung ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=122&amp;amp;forum=13 free nextel ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=89&amp;amp;forum=13 cheap celexa] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=99&amp;amp;forum=13 free ericsson ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=115&amp;amp;forum=13 free midi ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=146&amp;amp;forum=13 tenuate online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=109&amp;amp;forum=13 levitra online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=82&amp;amp;forum=13 adipex online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=132&amp;amp;forum=13 punk ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=130&amp;amp;forum=13 cheap propecia] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=83&amp;amp;forum=13 albuterol online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=85&amp;amp;forum=13 order alprazolam] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=153&amp;amp;forum=13 buy viagra] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=148&amp;amp;forum=13 cheap tramadol] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=143&amp;amp;forum=13 sony ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=86&amp;amp;forum=13 order ambien] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=103&amp;amp;forum=13 free funny ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=104&amp;amp;forum=13 hgh online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=129&amp;amp;forum=13 free polyphonic ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=90&amp;amp;forum=13 cialis online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=123&amp;amp;forum=13 free nokia ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=101&amp;amp;forum=13 flexeril] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=124&amp;amp;forum=13 online norco] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=149&amp;amp;forum=13 ultracet online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=88&amp;amp;forum=13 cheap carisoprodol] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=108&amp;amp;forum=13 free kyocera ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=93&amp;amp;forum=13 cheap clonazepam] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=127&amp;amp;forum=13 pharmacy online online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=95&amp;amp;forum=13 cheap cyclobenzaprine] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=150&amp;amp;forum=13 ultram online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=111&amp;amp;forum=13 lisinopril online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=159&amp;amp;forum=13 xenical online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=162&amp;amp;forum=13 cheap zyban] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=116&amp;amp;forum=13 mono ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=112&amp;amp;forum=13 buy lorazepam] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=145&amp;amp;forum=13 sprint ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=110&amp;amp;forum=13 cheap lipitor] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=131&amp;amp;forum=13 order prozac] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=120&amp;amp;forum=13 music ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=105&amp;amp;forum=13 cheap hoodia] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=155&amp;amp;forum=13 online vigrx] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=98&amp;amp;forum=13 diethylpropion online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=113&amp;amp;forum=13 cheap lortab] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=154&amp;amp;forum=13 vicodin online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=119&amp;amp;forum=13 free mtv ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=84&amp;amp;forum=13 alltel ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=141&amp;amp;forum=13 soma online] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=107&amp;amp;forum=13 jazz ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=140&amp;amp;forum=13 cheap sildenafil] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=126&amp;amp;forum=13 cheap paxil] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=118&amp;amp;forum=13 mp3 ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=92&amp;amp;forum=13 cheap clomid] [http://people.msoe.edu/~millerni/forums.php?show=topic&amp;amp;id=91&amp;amp;forum=13 free cingular ringtones] = Summary =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author&#039;&#039;&#039;: Jeffrey Heer / UC Berkeley&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Project Webpage&#039;&#039;&#039;: http://prefuse.org&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Current Version&#039;&#039;&#039;: beta, July 15, 2006&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: Java 1.4&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; using Java2D graphics library; pipeline architecture; animation and rendering support&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Base data structures&#039;&#039;&#039;: Table, Graph, Tree&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Included visualization techniques (&#039;&#039;[http://prefuse.org/gallery/ prefuse gallery]&#039;&#039;):&#039;&#039;&#039; [http://prefuse.org/gallery/fisheyemenu/ Fisheye Menu], [http://prefuse.org/gallery/radialgraphview/ Radial Graph], [http://prefuse.org/gallery/treemap/ Treemap], [http://prefuse.org/gallery/congress/ Scatterplot], [http://prefuse.org/gallery/zipdecode/ zipdecode], [http://prefuse.org/gallery/treeview/ DOITree], [http://prefuse.org/gallery/graphview/ Graph View], [http://prefuse.org/gallery/datamountain/ Data Mountain]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Supported File Formats&#039;&#039;&#039;: GraphML (XML), TreeML (XML), Tab-delimited Text, CSV&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is an interactive graphical open source toolkit written in Java. It is thought to support the development of sophisticated, highly interactive, and flexible [[Information Visualization]]s. The architecture of &#039;&#039;&#039;prefuse&#039;&#039;&#039; considers the [[Visualization Pipeline]], a recommendation on how to implement a visualization. To provide flexibility, a [[polylithic design]] was chosen which enables developers to implement only needed functionality and customize these to meet the own requirements. But, in contrast to a [[monolithic design]], this design needs more time to conceive and influences the architecture of the own application heavily (which is not a disadvantage as &#039;&#039;&#039;prefuse&#039;&#039;&#039; is very elaborate). &lt;br /&gt;
&lt;br /&gt;
Typically, &#039;&#039;&#039;prefuse&#039;&#039;&#039; is designed to visualize interrelated information so it can be stored in a graph or tree structure, but, also not related data can be used which is stored within a data table. Even if the structure is hierarchical, the resulting tree or graph structure must not be considered in the proper graphical representation as layout algorithms are not restricted in any way. The painting of visual items is done by using a renderer which has access to the respective item itself and the Graphics2D context of the view. This approach enables to use the whole range of available painting methods of Java, therefore, all painting issues are completely independent of the toolkit itself.&lt;br /&gt;
&lt;br /&gt;
Besides providing a large set of predefined elements to visualize data, most attention was set toward usability of the visualization. This is obtained by applying several interaction techniques like tooltips or dragging visual elements. But also more sophisticated techniques like [[zoom]]ing, [[pan]]ning, or [[semantic zoom]]ing are supported or partially even provided by the toolkit itself. Further, &#039;&#039;&#039;prefuse&#039;&#039;&#039; clearly distinguishes between absolute and view coordinates. This separation helps users to place all visual elements in a logical way without consideration of later applied visualization techniques that changes the entire view.  &lt;br /&gt;
&lt;br /&gt;
=== Pros ===&lt;br /&gt;
&lt;br /&gt;
* flexible&lt;br /&gt;
* versatile pipeline approach&lt;br /&gt;
* clear and well thought architecture&lt;br /&gt;
* many layout and distortion algorithms included&lt;br /&gt;
* algorithms for force-based physics simulation included&lt;br /&gt;
* custom animations (smooth transitions)&lt;br /&gt;
* color maps&lt;br /&gt;
* query language to navigate within abstract data&lt;br /&gt;
* demos and examples included&lt;br /&gt;
* bounding management&lt;br /&gt;
* open source&lt;br /&gt;
* documentation of code and general guidance available&lt;br /&gt;
* active developer community &lt;br /&gt;
&lt;br /&gt;
=== Cons ===&lt;br /&gt;
&lt;br /&gt;
* [[polylithic design]] takes up more time to conceive and see first results&lt;br /&gt;
* special requirements of a visualization enforce a lot of adapting work&lt;br /&gt;
&lt;br /&gt;
=General Approach=&lt;br /&gt;
&lt;br /&gt;
Going along with the step-wise recommendation of the [[Visualization Pipeline]], a &#039;&#039;&#039;prefuse&#039;&#039;&#039; application consists of different states of data:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_visualization_pipeline.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; uses a centralized object called &#039;&#039;Visualization&#039;&#039; (former &#039;&#039;ItemRegistry&#039;&#039;) which maintains and manages the whole visualization. This object has to fulfil several tasks. It stores the abstract data as well as visual analogous of these in two different tables. All transformation routines like filtering or rendering are managed and executed by the &#039;&#039;Visualization&#039;&#039; too. Further, it refers to at least one &#039;&#039;Display&#039;&#039;, a graphical component which can represent visual elements of the &#039;&#039;Visualization&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Transformation routines are defined as &#039;&#039;Actions&#039;&#039; which are combined in &#039;&#039;ActionLists&#039;&#039;. An &#039;&#039;ActionList&#039;&#039; is an executable container which is started manually by a user or automatically by the &#039;&#039;Visualization&#039;&#039;. Once such a list is started, all defined &#039;&#039;Actions&#039;&#039; are executed in the given sequence. Typically, the last called &#039;&#039;Action&#039;&#039; is the &#039;&#039;RepaintAction&#039;&#039; which forces all belonging &#039;&#039;Displays&#039;&#039; of the &#039;&#039;Visualization&#039;&#039; to repaint themselves. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; is the view of &#039;&#039;&#039;prefuse&#039;&#039;&#039;. It can be embedded in each Java Swing application. The main task of a &#039;&#039;Display&#039;&#039; is the painting of visual structures which are defined in the respective &#039;&#039;Visualization&#039;&#039;. Whenever the &#039;&#039;Display&#039;&#039; performs a repaint, it requests all visual items and checks all bounds of them (bounding management). If an item is within the own area the respective rendering mechanism is called.  &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Display&#039;&#039; also provides navigation techniques like [[zoom]]ing or [[pan]]ning which change the view. The view itself refers to a separate coordinate system. View coordinates are described through an affine transformation matrix. Any navigation technique applied to the view only concerns the view coordinate system. The most important functionalities to work with this coordinate system are already predefined. Typically, users just have to apply whished techniques without considering technical details like the view coordinate system. &lt;br /&gt;
&lt;br /&gt;
Furthermore, a &#039;&#039;Display&#039;&#039; also maintains a set of &#039;&#039;ControlListener&#039;&#039; which are used to process user interactions (mouse or keyboard events). Whenever such an event occurs the respective listener is called. A listener already differs on where the event happened (e.g., blank area or a certain item). Further, a &#039;&#039;ControlListener&#039;&#039; may also start an &#039;&#039;ActionList&#039;&#039; again.&lt;br /&gt;
&lt;br /&gt;
==Source Data==&lt;br /&gt;
&lt;br /&gt;
Raw data is the base of the application. Typically, the source of raw data is a file, but also other sources like a database or web content are thinkable. However, &#039;&#039;&#039;prefuse&#039;&#039;&#039; provides several file readers for different formats (CSV, Tab-Delimitated, etc.) that can be transformed into a data table. Further, some readers also support the reading of SQL-Databases. If another source is needed, a reader can be written manually.&lt;br /&gt;
&lt;br /&gt;
Once the raw data is read, it is transformed into abstract data and stored within a data table of the &#039;&#039;Visualization&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Data Table==&lt;br /&gt;
&lt;br /&gt;
The data table which is used to store abstract data works with data types and a definition schema which maps relations between data-type and table. That means, each row contains a data record, and each column contains values for a named data field with a specific data-type. Each record of the table is referred as a &#039;&#039;Tuple&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Furthermore, instead of the table, also a graph or tree may be used to store interrelated data. Instead of &#039;&#039;Tuples&#039;&#039;, records are referred as &#039;&#039;Nodes&#039;&#039; which are connected to others with &#039;&#039;Edges&#039;&#039;. Additionally, a tree has one defined root &#039;&#039;Node&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Abstract data does not contain any visual information like assignment attributes or color settings. Instead, own visual analogous are created. Visual attributes of them are extracted out of the abstract data following a defined logic.&lt;br /&gt;
&lt;br /&gt;
==Visual Abstraction==&lt;br /&gt;
&lt;br /&gt;
Visual structures are created when filtering the data container which contains the abstract data. In case of a visualization that displays all items from the beginning on, the filtering routine must only executed once at initializing time. If the visual content changes dynamically, the filtering is executed on certain user interactions by calling a defined filtering &#039;&#039;ActionList&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
A visual structure is referred as &#039;&#039;VisualItem&#039;&#039; which may be distinguished as &#039;&#039;VisualNode&#039;&#039;, &#039;&#039;VisualEdge&#039;&#039;, or an aggregated item which consists of several other items. However, as a &#039;&#039;VisualItem&#039;&#039; is extended of the respective abstract entity, it has full access to all abstract information too. &lt;br /&gt;
&lt;br /&gt;
The filtering routine which transforms the abstract data to visual analogues typically consists of following &#039;&#039;Actions&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Filter&#039;&#039;&#039;: This &#039;&#039;Action&#039;&#039; is responsible to transform the abstract data of the backing table to visual analogues. If no special conditions are defined, the filter creates for each &#039;&#039;Tuple&#039;&#039; a visual instance and stores them in a second table. Additionally, a filter also performs a garbage collection and may set visibility attributes of the created items. &lt;br /&gt;
* &#039;&#039;&#039;Layout&#039;&#039;&#039;: A layout takes care about placing the &#039;&#039;VisualItems&#039;&#039;. Several common algorithms for graphs or trees are already predefined (e.g., &#039;&#039;ForceDirectedLayout&#039;&#039; or &#039;&#039;RadialTreeLayout&#039;&#039;). &lt;br /&gt;
* &#039;&#039;&#039;Assignment&#039;&#039;&#039;: Besides layouting, also other assignments may be performed during the filtering process. Such assignments directly changes visual attributes of &#039;&#039;VisualItems&#039;&#039; like colors, sizes, fonts, etc.&lt;br /&gt;
&lt;br /&gt;
A visual structure may also contain a paint routine, but, as all painting jobs are initialized or performed by separated renderers, these issues may also be executed by the renderer itself or any other object.&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
Typically, the rendered visual structure is not stored, instead, they are re-rendered whenever needed. However, in case of very complex but constant visual representations it makes sense to hold items in an offscreen image. &lt;br /&gt;
&lt;br /&gt;
Each &#039;&#039;VisualItem&#039;&#039; has got one or more associated &#039;&#039;Renderers&#039;&#039; which are maintained by a factory of the &#039;&#039;Visualization&#039;&#039;. A &#039;&#039;Renderer&#039;&#039; has to perform two tasks:&lt;br /&gt;
&lt;br /&gt;
* Providing a bounding box of the item. This box is used to determine if the item must actually be painted or if it would not be visible anyway. &lt;br /&gt;
* Providing the painting routine of the item. Paintings may be executed by the &#039;&#039;Renderer&#039;&#039; itself or delegated to other objects which are accessible of the &#039;&#039;Renderer&#039;&#039;. The painting routines are not restricted in any way, but the proper representation should not exceed the bounding box of the item. &lt;br /&gt;
&lt;br /&gt;
Rendering is always performed on a repaint of the &#039;&#039;Display&#039;&#039;. A repaint can be requested by the &#039;&#039;Visualization&#039;&#039;, on user interaction, and on events like resizing the component, getting the focus, or changing the coordinate system of the view. However, as repaints may occur very often, developers have to ascertain that rendering jobs are performed fast, otherwise, the performance of the whole visualization would suffer.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
==Package Structure==&lt;br /&gt;
&lt;br /&gt;
Following picture shows the most important packages of &#039;&#039;&#039;prefuse&#039;&#039;&#039; regarding to the [[Visualization Pipeline]]:&lt;br /&gt;
&lt;br /&gt;
[[Image:prefuse_package_guide.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
These packages also contain predefined components. Default &#039;&#039;Nodes&#039;&#039; and &#039;&#039;Edges&#039;&#039; provide standard functionality of abstract data, standard functionality is also available in visual analogous of them. A default filter transforms all defined abstract entities to visual ones. Further, also some special functionalities to fulfil common requirements are provided by own components: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Renderers&#039;&#039;&#039;: &#039;&#039;EdgeRenderer&#039;&#039; to render edges between graph or tree nodes, a &#039;&#039;LableRenderer&#039;&#039; to render text items, and a &#039;&#039;PolygoneRenderer&#039;&#039; to render geometrical items. &lt;br /&gt;
* &#039;&#039;&#039;Layouts&#039;&#039;&#039;: &#039;&#039;RandomLayout&#039;&#039;, &#039;&#039;GridLayout&#039;&#039;, and some more to place non related data, &#039;&#039;ForceDirectedLayout&#039;&#039;, &#039;&#039;TreeLayout&#039;&#039;, &#039;&#039;RadialTreeLayout&#039;&#039; and others to layout trees and graphs.&lt;br /&gt;
* &#039;&#039;&#039;Controls&#039;&#039;&#039;: &#039;&#039;DragControl&#039;&#039;, &#039;&#039;ZoomControl&#039;&#039;, &#039;&#039;PanControl&#039;&#039;, &#039;&#039;ToolTipControl&#039;&#039; and several others to react on user interactions. &lt;br /&gt;
&lt;br /&gt;
In simple visualizations the predefined functionality will meet most requirements. If special requirements are needed the default functionality supports a step-wise developing as results can be communicated by predefined components until the own functionality is implemented.&lt;br /&gt;
&lt;br /&gt;
==Coordinates in prefuse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; works with two different coordinate systems. Absolute coordinates are device-independent logical coordinates. All visual attributes like positions or sizes are defined in absolute coordinates. In contrast, view coordinates are device-depended (screen). Transformations between absolute and view coordinates are done automatically by Java painting routines. View coordinates are influenced by the system and device driver (e.g., the absolute point (0,0) is the topmost left point of the actual graphical component which may be on any position at the screen). Further, view coordinates may also be manipulated manually by using an affine transformation matrix which applies linear transformations on absolute coordinates before device-dependent routines convert them to screen coordinates. &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;prefuse&#039;&#039;&#039; &#039;&#039;Display&#039;&#039; provides the most important manipulating methods of this matrix. [[Zoom]]ing, [[pan]]ning, and rotation of the whole view are only done by changing the view coordinates. So, as absolute coordinates are never concerned of such transformations and translations, a user must never consider the actual view in layout, assignment, or painting routines. &lt;br /&gt;
&lt;br /&gt;
There are several different ways on how to apply such transformations, additionally, the &#039;&#039;Display&#039;&#039; also supports animated transformations.&lt;br /&gt;
&lt;br /&gt;
==User Interactions==&lt;br /&gt;
&lt;br /&gt;
Mouse or keyboard events are treated by &#039;&#039;ControlListener&#039;&#039;. Whenever an event occurs which is handled by a &#039;&#039;ControlListener&#039;&#039;, the &#039;&#039;Display&#039;&#039; delegates the event to the respective routine. A &#039;&#039;ControlListener&#039;&#039; disdinguishes automatically which visual element is concerned of the event (the view itself or a &#039;&#039;VisualItem&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;ControlListener&#039;&#039; may just perform simple tasks like changing the mouse cursor or editing the label of an item. But, in more sophisticated applications, also tasks like loading new data or dragging items on the view may be handled. Therefore, a &#039;&#039;ControlListener&#039;&#039; may also start &#039;&#039;ActionLists&#039;&#039; to execute such tasks. Further, a &#039;&#039;ControlListener&#039;&#039; has also access to the &#039;&#039;Display&#039;&#039;. Thus, it is able to call methods like zooming or panning. Typically, each &#039;&#039;ControlListener&#039;&#039; forces a repaint when its job is done.  &lt;br /&gt;
&lt;br /&gt;
Most of standard functionality is already predefined in &#039;&#039;prefuse&#039;&#039; and the wanted listeners just have to be assigned to the &#039;&#039;Display&#039;&#039;. However, the &#039;&#039;Display&#039;&#039; can handle a countless of different listener. Hence, typically only a few listeners must be defined manually as they can be mixed with default ones.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; is a very powerful toolkit, providing a large set of components and methods a developer needs to build an [[Information Visualization]]. The [[polylithic design]] is not that easy to understand in the beginning of a development, but once conceived, a visualization is easy to realize even if really special demands have to be fulfilled. Furthermore, using Prefuse forces a clear and well designed architecture of own applications.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;prefuse&#039;&#039;&#039; was created with most attention paid to developers who will finally work with the toolkit. In an evaluation study this goal was approved too. In the meanwhile, there is also a not so small community using and upgrading the toolkit, which is an argument for its usability.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
*[http://prefuse.org prefuse Homepage]&lt;br /&gt;
*[http://vw.indiana.edu/ivsi2004/jherr/index.html prefuse Position Paper]&lt;br /&gt;
*[http://sourceforge.net/forum/forum.php?forum_id=343013 prefuse Help Forum]&lt;br /&gt;
&lt;br /&gt;
= Downloads =&lt;br /&gt;
*[[Media:Prefuse-tutorial-20061127-handout.pdf|prefuse Tutorial (pdf, 660kB)]] by [[Aigner, Wolfgang|Wolfgang Aigner]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[Heer, 2004] Jeffrey Heer. [http://jheer.org/publications/2004-Heer-prefuse-Masters.pdf prefuse: a software framework for interactive information visualization]. [http://www.mastersincomputerscience.com/ Masters of Science, Computer Science] Division, University of California, Berkeley, 2004.&lt;br /&gt;
*[Heer, 2005] Jeffrey Heer, Stuart K. Card, and James A. Landay. [http://jheer.org/publications/2005-prefuse-CHI.pdf prefuse: a toolkit for interactive information visualization.] In CHI 2005, Human Factors in Computing Systems, 2005.&lt;br /&gt;
*[Heer, 2006a] Jeffrey Heer, prefuse API documentation. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Heer, 2006b] Jeffrey Heer, prefuse manual. Retrieved at: July 06, 2006, http://prefuse.org&lt;br /&gt;
*[Sun Microsystems, 2001] Sun Microsystems, Programmer’s Guide to the Java 2DTM API - Enhanced Graphics and Imaging for Java. Retrieved at: April 20, 2006, http://java.sun.com/j2se/1.4/pdf/j2d-book.pdf&lt;br /&gt;
&lt;br /&gt;
[[Category:Toolkits]]&lt;/div&gt;</summary>
		<author><name>Yc8E18</name></author>
	</entry>
</feed>