memiliki id 1 ke sebuah token dengan id 1. Hasilnya terlihat pada Gambar 22.
Gambar 22 Relasi from text to token.
I.2.4. Inisialisasi Input XML
Sewaktu page di-load, akan dibuat sebuah sistem rendering terlebih dahulu dengan
fungsi onload page. Proses ini dapat dilihat pada gambar 23.
Gambar 23 Proses me-load sistem rendering. Hal ini dilakukan untuk mempersiapkan
DIV HTML yang akan digunakan, yaitu DIV dengan id
“viewer”. Pada proses selanjutnya, akan dibuat sebuah canvas yang akan
melakukan rendering. Proses ini dapat dilihat pada Gambar 24.
Gambar 24 Proses menyiapkan canvas. Rendering bisa dilakukan dengan meng-
input string XML secara langsung ke text field atau melakukan pemanggilan file XML yang
telah tersimpan di server. Jika pemanggilan file XML dilakukan, proses yang terjadi
adalah request ke server untuk meminta isi dari file tersebut. Isi dari file XML tersebut
kemudian akan di-parsing sehingga menjadi string. Proses tersebut dapat dilihat pada
Gambar 25.
I.2.5 Parsing XML
String XML yang masuk, kemudian akan di parsing menggunakan DOM Parser.
Prosesnya dapat dilihat pada gambar 26. Gambar 25 Proses parsing file XML menjadi
string.
Gambar 26
Proses parsing
XML menggunakan
DOM parser.
Parsing yang pertama kali dilakukan adalah parsing pada tag
componenst
. Setiap komponen akan dibuatkan objek yang
sesuai dengan nama tag tersebut. Properti masing-masing
objek akan
disesuaikan dengan data dari XML. Proses parsing pada
tag
components
dapat dilihat pada gambar 27. Proses berikutnya adalah parsing tag
relation
untuk mendapatkan relasi dari setiap komponen. Inti dari proses parsing
pada tag
relation
ini adalah untuk mendapatkan informasi yang ada dalam tag
from
dan tag
to
dari setiap komponen sehingga dapat terlihat arah relasi. Proses
parsing untuk tag
from
dapat dilihat pada Gambar 28.
1 function init 2 {
3 Viewer = new dean.Viewer viewer;
4 }
1 this.canvas = new dean.ViewerCanvas;
2 this.canvas.setLeft0; 3 this.canvas.setTop0;
4 this.canvas.setWidth pasta.webgui.stage.getWidth;
5 this.canvas.setHeight pasta.webgui.stage.getHeight;
6 pasta.webgui.stage.addControl 1 parse : functionxml
2 { 3 this.canvas.parsetrimxml;
4 }, 5 load : functionfileName{
6 if window.XMLHttpRequest xhttp = new XMLHttpRequest;
7 else 8 xhttp = new ActiveXObject
Microsoft.XMLHTTP; 9 xhttp.open
GET, fileName, false; 10 xhttp.send;
11 var xml = xhttp.responseText;
12 this.parsexml; 13
},
1 parse : functionxml 2 {
3 this.clear; 4 if window.DOMParser
5 FireFox,Chrome,Safari,Opera 6
{ 7 parser = new DOMParser;
8 xmlDoc = parser.parseFromString xml,textxml;
9 } 10 else Internet Explorer
11 { 12 xmlDoc = new
ActiveXObject Microsoft.XMLDOM;
13
xmlDoc.async=false; 14
xmlDoc.loadXMLxml; 15 }
Gambar 27 Proses parsing pada tag
components
.
Gambar 28 Proses parsing pada tag
relationships
bagian tag
from
. Proses selanjutnya adalah melakukan
parsing pada tag
relationships
pada bagian tag
to
. Proses ini dapat dilihat pada Gambar 29.
I.2.6 Pembentukan dan Peletakan komponen
Setelah melakukan parsing pada dokumen XML,
didapatkan komponen-komponen
penyusun word graph yang akan ditampilkan ke canvas. Komponen tersebut kemudian
digambar berdasarkan tag. Gambar 29 Proses parsing pada tag
relationships
pada bagian tag
to
. Komponen yang dibuat pada proses ini
adalah focus, token, frame, relation, dan text. Contoh proses untuk membuat komponen
focus dapat dilihat pada Gambar 30.
Gambar 30 Proses pembuatan komponen focus.
Proses selanjutnya
adalah peletakan
komponen ke dalam canvas. Pertama, dihitung jumlah masing-masing komponen,
kemudian komponen tersebut akan digambar ke dalam canvas. Frame akan diletakkan
terakhir karena harus dideteksi terlebih dahulu komponen yang ada di dalamnya. Pada proses
selanjutnya,
setelah semua
komponen diletakkan
ke dalam
canvas, adalah
menggambar relation yang menyesuaikan dengan tag
from
dan tag
to
dari masing-masing komponen. Proses ini akan
menghasilkan gambar di canvas berupa sebuah pola word graph dari XML yang telah
di-input. Contoh XML yang di-input adalah XML untuk preposisi pola 1. Output yang
terjadi di canvas ditunjukkan oleh Gambar 31.
Gambar 31 Word graph untuk pola preposisi 1.
1 parsing components 2 var
comNode = xmlDoc.getElementsByTagName
components[0]; 3 if
comNode = null 4 {
5 var tokenCount = 0;
6 var focusCount = 0;
7 ... 8 switch node.tagName
9 { 10 case token :
11 ... 12 break;
13 case focus : 14 ...
15 break; 16 case text
17 ... 18 break
; 19 case relation
20 ... 21 break;
22 case frame 23 ...
24 break;
1 parsing relation 2 var relNode = xmlDoc.
getElementsByTagName relationships[0];
3 .. 4 tag =
this.getFirstTagfromNode; 5
6 switch tag.tagName 7 {
8 case textid : 9 ... break;
10 case tokenid : 11 ... break;
12 case focusid : 13 ... break;
14 case frameid : 15 ... break;
16
} 1 var toNode = this.getTag
node, to; 2
3 if toNode = null {
4 tag = this.getFirstTagtoNode switch tag.tagName
{ 5 case textid :
6 ... break; 7 case tokenid :
8 ... break; 9 case focusid :
10 ... break; 11 case frameid :
12 ...break;
}
1 init : function 2
{ 3
this._super; 4 this.setBorderColor666666;
this.canvas.style.background = urlimgdeanfocusBg.png
5 this.className = Focus; 6
},
I.2.7 Implementasi Antarmuka