Prefuse adalah sebuah kerangka kerja perangkat lunak diperluas untuk membantu pengembang software menciptakan aplikasi visualisasi informasi interaktif menggunakan bahasa pemrograman Java. Hal ini dapat digunakan untuk aplikasi buildstandalone , komponen visual tertanam dalam aplikasi yang lebih besar, dan applet web. Prefuse berfungsi menyederhanakan proses mewakili dan efisien menyerahkan data, pemetaan data ke representasi visual (misalnya, melalui spatialposition, ukuran, bentuk, warna, dll), dan berinteraksi dengan data.
Prefuse mendukung satu set kaya fitur untuk pemodelan data, visualisasi, dan interaksi. Ini menyediakan dioptimalkan struktur data untuk tabel, grafik, dan pohon, sejumlah tata letak dan teknik pengkodean visual, dan dukungan untuk animasi, query dinamis, pencarian terintegrasi, dan konektivitas database. Prefuse ditulis di JaVa, menggunakan library Java 2D grafis, dan mudah diintegrasikan ke dalam aplikasi Java Swing atau applet web. Prefuse dilisensikan di bawah syarat-syarat lisensi BSD, dan dapat secara bebas digunakan untuk kedua tujuan komersial dan non-komersial. Galeri visualisasi dan video demonstrasi memberikan contoh berbagai jenis aplikasi yang dapat dibangun dengan toolkit prefuse. Untuk mempelajari lebih lanjut tentang prefuse, lihatlah panduan pengguna atau pertanyaan yang sering diajukan. Bagi pengguna versi alpha dari toolkit, ada juga panduan port untuk bermigrasi ke versi beta.
Berikut ini adalah beberapa fitur prefuse :
* Tabel, Grafik, dan data struktur pendukung Pohon atribut arbitrary data, pengindeksan data, dan pertanyaan seleksi, semua dengan jejak memori yang efisien.
* Komponen untuk tata letak, warna, ukuran, dan bentuk pengkodean, teknik distorsi, animasi, dan banyak lagi.
* Sebuah perpustakaan kontrol interaksi untuk umum interaktif, operasi langsung-manipulasi.
* Animasi dukungan melalui mekanisme penjadwalan kegiatan umum.
* Transformasi panning dan zooming, termasuk zooming geometris dan semantik.
* Dynamic query untuk menyaring data interaktif.
* Integrated teks pencarian dengan menggunakan beberapa mesin pencari yang tersedia.
* Sebuah simulasi mesin kekuatan fisik untuk tata letak dinamis dan animasi.
* Fleksibilitas untuk berbagai macam pandangan, termasuk menampilkan detail gambaran dan kelipatan kecil.
* built in adalah bahasa ekspresi SQL untuk menulis query untuk prefuse struktur data dan menciptakan bidang berasal data.
* Dukungan untuk menerbitkan query ke database SQL dan pemetaan hasil query ke dalam struktur prefuse data.
* Sederhana, API developer-friendly untuk membuat pengolahan kustom, interaksi, dan rendering komponen.
Selain menyediakan satu set besar elemen standar untuk memvisualisasikan data, perhatian sebagian besar didirikan terhadap kegunaan dari visualisasi. Ini diperoleh dengan menerapkan beberapa teknik interaksi seperti tooltips atau menyeret elemen visual. Tapi juga teknik yang lebih canggih seperti zoom, panning, atau zooming semantik didukung atau bahkan sebagian disediakan oleh toolkit itu sendiri. Selanjutnya, prefuse jelas membedakan antara mutlak dan melihat koordinat. Pemisahan ini membantu pengguna untuk menempatkan semua elemen visual dalam cara logis tanpa pertimbangan teknik visualisasi kemudian diterapkan bahwa perubahan tampilan keseluruhan.
Berikut ini kelebihan dan kekurangan prefuse :
Kelebihan :
* Fleksibel
* Pendekatan pipa serbaguna
* Jelas dan telah dipikirkan dengan baik arsitektur
* Layout banyak dan algoritma distorsi termasuk
* Algoritma untuk simulasi fisika berbasis kekuatan
* Custom animasi (transisi halus)
* Warna peta
* Bahasa query untuk navigasi dalam data abstrak
* Dilengkapi demo dan contoh
* manajemen
* Open source
* Dokumentasi kode dan bimbingan umum tersedia
* Komunitas pengembang yang aktif
Kekurangan :
* Desain polylithic membutuhkan lebih banyak waktu untuk memahami dan melihat hasil pertama
* Persyaratan khusus dari visualisasi yang banyak mengadaptasi pekerjaan
Pendekatan Umum
Rekomendasi langkah-langkah dari pipa Visualisasi, sebuah aplikasi prefuse terdiri dari bagian data yang berbeda :
Prefuse terpusat menggunakan objek disebut Visualisasi (ItemRegistry mantan) yang menjaga dan mengelola keseluruhan visualisasi. Objek ini harus memenuhi beberapa tugas. Ini menyimpan data abstrak serta analog visual ini dalam dua tabel yang berbeda. Semua rutinitas transformasi seperti penyaring atau rendering juga dikelola dan dilaksanakan oleh Visualisasi. Selanjutnya, mengacu setidaknya pada satu Display, komponen grafis yang dapat mewakili unsur-unsur visual dari Visualisasi. Transformasi rutinitas didefinisikan sebagai Tindakan yang digabungkan dalam ActionLists. ActionList adalah suatu wadah executable yang dimulai secara manual oleh pengguna atau secara otomatis oleh Visualisasi. Setelah daftar semacam ini tidak dimulai, semua Tindakan pasti dieksekusi dalam urutan yang diberikan. Biasanya, Tindakan yang terakhir disebut RepaintAction , memaksa semua Menampilkan milik dari Visualisasi untuk mengecat sendiri. Tampilan adalah pandangan prefuse. Hal ini dapat tertanam dalam setiap aplikasi Java Swing. Tugas utama dari Display adalah lukisan struktur visual yang didefinisikan dalam Visualisasi masing-masing. Setiap kali melakukan Tampilan repaint, itu permintaan semua item visual dan memeriksa semua batas-batas mereka .
Tampilan juga menyediakan navigasi seperti teknik zooming atau panning yang mengubah tampilan. Pandangan itu sendiri mengacu pada sebuah sistem koordinat yang terpisah. Lihat koordinat dijelaskan melalui matriks transformasi affine. Setiap teknik navigasi diterapkan ke tampilan hanya untuk melihat sistem koordinat. Fungsionalitas yang paling penting untuk bekerja dengan sistem koordinat sudah ditetapkan. Biasanya, pengguna hanya harus menerapkan teknik whished tanpa mempertimbangkan rincian teknis seperti tampilan sistem koordinat. Selain itu, Display juga memiliki seperangkat ControlListener yang digunakan untuk memproses interaksi pengguna (mouse atau keyboard ).
Sumber Data
Raw data adalah dasar dari aplikasi. Biasanya, sumber data mentah adalah sebuah berkas, tetapi juga bisa dari sumber lain seperti konten database atau web . Namun, pembaca prefuse menyediakan beberapa file format yang berbeda (CSV, Tab-Delimitated, dll) yang dapat diubah menjadi tabel data. Selanjutnya, beberapa pembaca juga mendukung pembacaan dari SQL-Database. Jika sumber lain diperlukan, pembaca dapat ditulis secara manual. Setelah data mentah yang dibaca, ditransformasikan menjadi data abstrak dan disimpan dalam tabel data Visualisasi tersebut.
Tabel Data
Tabel data digunakan untuk menyimpan karya-karya abstrak data dengan tipe data dan skema definisi yang memetakan hubungan antara data-jenis dan meja. Itu berarti, setiap baris berisi merekam data, dan setiap kolom berisi nilai untuk bidang data bernama dengan tipe data tertentu. Setiap catatan tabel ini disebut sebagai sebuah tuple. Selanjutnya, selain meja, grafik atau pohon juga dapat digunakan untuk menyimpan data yang saling berhubungan. Alih-alih tuple, catatan yang disebut sebagai Node yang terhubung ke orang lain dengan Tepi. Selain itu, pohon memiliki satu Node akar yang didefinisikan. Abstrak data tidak mengandung informasi visual seperti atribut tugas atau pengaturan warna. Sebaliknya, memiliki visual analog diciptakan. Atribut visual mereka yang diambil dari data abstrak setelah logika didefinisikan.
Abstraksi Visual
Struktur Visual tercipta saat menyaring wadah data yang berisi data abstrak. Dalam kasus visualisasi yang menampilkan semua item dari awal, proses penyaringan hanya harus dilaksanakan sekali pada menginisialisasi waktu. Jika perubahan konten visual dinamis, penyaringan dilaksanakan pada interaksi pengguna tertentu dengan memanggil ActionList penyaringan ditetapkan.
Struktur visual disebut VisualItem yang dapat dibedakan sebagai VisualNode, VisualEdge, atau item gabungan yang terdiri dari beberapa item lainnya. Namun, sebagai VisualItem adalah diperpanjang dari entitas abstrak masing-masing, memiliki akses penuh ke semua informasi abstrak juga.
proses penyaringan yang mengubah data analog visual abstrak biasanya terdiri dari Tindakan berikut:
* Filter: proses ini berfungsi untuk mengubah data abstrak dari tabel dukungan untuk analog visual. Jika tidak ada kondisi khusus didefinisikan, filter menciptakan untuk setiap tuple contoh visual dan menyimpannya dalam tabel kedua. Selain itu, filter juga melakukan pengumpulan sampah dan dapat menetapkan visibilitas atribut item yang diciptakan.
* Layout: tata letak Sebuah mengambil peduli menempatkan VisualItems. Beberapa algoritma umum untuk grafik atau pohon yang sudah standar (misalnya, ForceDirectedLayout atau RadialTreeLayout).
* Tugas: Selain layout, juga tugas lainnya dapat dilakukan selama proses penyaringan. tugas tersebut secara langsung perubahan atribut visual VisualItems seperti warna, ukuran, font,dll
Suatu struktur visual juga mungkin berisi gambar , tapi karena semua pekerjaan lukisan diinisialisasi atau dilakukan oleh pemecahan yang terpisah, hal ini juga dapat dilakukan oleh pemecahan itu sendiri atau benda lainnya.
Sudut Pandang
Biasanya, struktur visual yang diberikan tidak disimpan, sebagai gantinya , struktur visual kembali diberikan bila diperlukan. Namun, dalam kasus representasi visual yang sangat kompleks tapi konstan masuk akal untuk terus item dalam foto rahasia. Setiap Visual Item telah mendapat satu atau lebih renderers asosiasi yang diselenggarakan oleh pabrik Visualisasi tersebut. Sebuah Renderer harus melakukan dua tugas:
* Memberikan kotak pembatas item tersebut. Kotak ini digunakan untuk menentukan apakah item tersebut benar-benar harus digambar atau jika tidak akan terlihat pula.
* Memberikan lukisan rutin item. Lukisan dapat dilakukan oleh Renderer sendiri atau didelegasikan kepada benda lain yang dapat diakses dari Renderer. Rutinitas lukisan tidak dibatasi dengan cara apapun, tapi layak untuk mewakili tidak boleh melebihi kotak berlari item tersebut.
Rendering selalu dilakukan pada repaint dari Display. repaint A dapat diminta oleh Visualisasi, pada interaksi pengguna, dan pada acara seperti mengubah ukuran komponen, mendapatkan fokus, atau mengubah sistem koordinat pandangan. Namun, seperti Repaints mungkin terjadi sangat sering, pengembang harus memastikan bahwa pekerjaan rendering dilakukan dengan cepat, jika tidak, kinerja keseluruhan visualisasi akan gagal .
Paket Struktur
Paket Struktur mengandung komponen yang telah ditetapkan. Default Nodes dan Tepi menyediakan fungsionalitas standar data abstrak, fungsionalitas standar juga tersedia dalam analog visual mereka. Sebuah default filter mengubah semua entitas abstrak yang didefinisikan untuk visual. Lebih lanjut, juga beberapa fungsi khusus untuk memenuhi kebutuhan umum disediakan oleh komponen sendiri:
* Renderers: EdgeRenderer untuk membuat tepi antara node grafik atau pohon, LableRenderer untuk membuat item teks, dan PolygoneRenderer untuk membuat item geometri.
* Layouts: RandomLayout, GridLayout, dan sebagian lagi untuk tempat data yang tidak terkait, ForceDirectedLayout, TreeLayout, RadialTreeLayout dan lainnya untuk pohon tata letak dan grafik.
* Kontrol: DragControl, ZoomControl, PanControl, ToolTipControl dan beberapa orang lain bereaksi pada interaksi pengguna.
Dalam visualisasi sederhana fungsi yang telah ditetapkan akan memenuhi persyaratan yang paling. Jika persyaratan khusus diperlukan fungsi default mendukung langkah-bijak berkembang sebagai hasil dapat dikomunikasikan oleh komponen-komponen yang telah ditetapkan sampai fungsi sendiri diimplementasikan.
Koordinat dalam Prefuse
Prefuse bekerja dengan dua sistem koordinat yang berbeda. Absolut Koordinat perangkat-independen logis koordinat. Semua atribut visual seperti posisi atau ukuran didefinisikan dalam koordinat mutlak. Sebaliknya, melihat koordinat perangkat-tergantung (layar). Transformasi antara mutlak dan melihat koordinat dilakukan secara otomatis dengan rutinitas lukisan Java. Lihat koordinat dipengaruhi oleh sistem dan driver perangkat (misalnya, titik absolut (0,0) adalah titik kiri paling atas dari komponen grafis yang sebenarnya yang mungkin pada setiap posisi pada layar). Selanjutnya, melihat koordinat juga dapat dimanipulasi secara manual dengan menggunakan matriks transformasi affine yang berlaku transformasi linier pada koordinat mutlak sebelum rutinitas perangkat-tergantung mengkonversikannya ke koordinat layar.
Prefuse Sebuah Tampilan menyediakan metode memanipulasi yang paling penting dari matriks. Zooming, panning, dan rotasi dari pandangan keseluruhan hanya dilakukan dengan mengubah tampilan koordinat. Jadi, sebagai koordinat mutlak tidak pernah peduli transformasi tersebut dan terjemahan, pengguna tidak harus mempertimbangkan tampilan yang sebenarnya dalam tata letak, tugas, atau rutinitas lukisan. Ada beberapa cara berbeda tentang bagaimana menerapkan transformasi tersebut, tambahan, Tampilkan juga mendukung animasi transformasi.
Interaksi Pengguna
Mouse atau keyboard peristiwa diperlakukan oleh ControlListener. Setiap kali terjadi peristiwa yang ditangani oleh ControlListener, para delegasi Display acara ke rutinitas masing-masing. Sebuah ControlListener disdinguishes otomatis yang menyangkut unsur visual dari peristiwa (pandangan itu sendiri atau VisualItem a). Sebuah ControlListener mungkin hanya melakukan tugas-tugas sederhana seperti mengubah kursor mouse atau mengedit label item. Namun, dalam aplikasi yang lebih canggih, juga tugas-tugas seperti loading data baru atau menyeret item pada tampilan tersebut dapat ditangani. Oleh karena itu, ControlListener juga mungkin mulai ActionLists untuk melaksanakan tugas tersebut. Lebih lanjut, ControlListener juga akses ke Display. Dengan demikian, ia mampu memanggil metode seperti zooming atau panning. Biasanya, setiap ControlListener memaksa repaint ketika tugasnya selesai.
Sebagian besar fungsi standar sudah pradefinisi dalam prefuse dan pendengar hanya harus ditugaskan ke Tampilan. Namun, Display dapat menangani tak terhitung pendengar yang berbeda. Oleh karena itu, biasanya hanya beberapa yang harus didefinisikan secara manual karena mereka dapat dicampur dengan yang standar.
Kesimpulan
Prefuse adalah toolkit yang sangat kuat, menyediakan satu set besar komponen dan metode pengembang perlu membangun Visualisasi Informasi. Desain polylithic tidak mudah untuk memahami pada awal perkembangan, tapi begitu dipahami, visualisasi mudah jika tuntutan benar-benar khusus harus dipenuhi. Selanjutnya, dengan menggunakan kekuatan Prefuse arsitektur yang jelas dan dirancang dengan baik aplikasi sendiri.
Prefuse diciptakan dengan perhatian yang besar yang dibayarkan kepada pengembang yang akhirnya akan bekerja dengan toolkit ini. Dalam sebuah studi evaluasi tujuan ini disetujui juga. Sementara itu, tidak sedikit masyarakat menggunakan dan meningkatkan toolkit, yang merupakan argumen untuk berbagai kegunaan.