Ξεκινώντας την εκτέλεση της εφαρµογής εκτελείται ο παρακάτω κώδικας

Σχετικά έγγραφα
ΜΕΡΟΣ ΠΡΩΤΟ ΕΠΕΞΗΓΗΣΗ ΕΦΑΡΜΟΓΗΣ PHP

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Εργαστήριο Βάσεων Δεδομένων. Triggers

Εγκατάσταση. Εγκατάσταση του Wamp

Λογισµικό (Software SW) Γλώσσες

Εργαστήριο Βάσεων Δεδομένων

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

Εφαρµογή EXTRA. ιαδικασία εξαγωγής της Μηχανογραφικής. έκδοσης ισοζυγίου στην εφαρµογή Extra Λογιστική ιαχείριση.

ΕΡΓΑΣΤΗΡΙΟ 11 - Απαντήσεις

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Version X. Οδηγίες χρήσης

Outlook Express-User Instructions.doc 1

Εφαρµογή: Σύστηµα ιαχείρισης ιαδικτυακού Περίπτερου / Ιστοσελίδας στον διαδικτυακό τόπο kalliergea.gr

ΟΜΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ... 3 ΕΡΩΤΗΣΕΙΣ... 5 ΕΡΕΥΝΕΣ... 8

char name[5]; /* define a string of characters */

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΓΙΑ ΤΗΝ ΕΞΥΠΗΡΕΤΗΣΗ ΑΣΘΕΝΩΝ ΣΥΜΒΕΒΛΗΜΕΝΟΥΣ ΜΕ ΤΟΝ Ε.Ο.Π.Υ.

XAMPP Apache MySQL PHP javascript xampp

Αναγνώριση υποθεµάτων αρχείων Αντιγραφή κειµένου Αντιγραφη εικόνων Αντιγραφή video

Γενικές Πληροφορίες Πρέπει να προγραµµατίσουµε τα είδη επιλέγοντας τον κωδικό είδους ανάλογο µε την ύπαρξη ζυγαριάς ετικέτας- scanner ή όχι.

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Εργαστήριο #10 (Ε10) 1

Βάσεις Δεδομένων Ι Εξεταστική Περίοδος Φεβρουαρίου 2006

Ο χρήστης συμπληρώνει όνομα χρήστη και κωδικό και επιλέγει Είσοδος. Εάν δεν έχει κάνει εγγραφή στο σύστημα θα πρέπει να επιλέξει πρώτα Εγγραφή.

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

ΤΕΙ Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών. Επώνυμο Όνομα: Α.Μ. : Εξάμηνο : Αίθουσα

ΚΕΦΑΛΑΙΟ Web Services

Εργαστήριο Βάσεων Δεδομένων

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση

Εγκατάσταση Emfsigner - Algobox (driver για Graphic & Draft παραστατικά) 1. ηµιουργία εικονικού εκτυπωτή (ανίχνευσης)

Οδηγός Χρήσης Εφαρµογής Ανάρτησης Αιτήσεις ιόρθωσης / Ενστάσεις Αιτήσεις Χορήγησης Πιστοποιητικού Υποβολής ήλωσης (Έκδοση

Σηµαντικές παρατηρήσεις σχετικά µε το backround:

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Οδηγίες Χρήσης. της Εφαρµογής Ηλεκτρονικών Αιτήσεων Στέγασης στις. Φοιτητικές Κατοικίες του Πανεπιστηµίου Ιωαννίνων

Βασικές οδηγίες χρήσης συστήµατος ProTeAS

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

ζωγραφίζοντας µε τον υπολογιστή

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Εισαγωγή στη Χρήση του SPSS for Windows Σελίδα:

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ

Εργαστήριο 9. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο. Στόχος. Προετοιμασία περιβάλλοντος εργασίας

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

SC : Αλλαγή είδους (Sales Change)- Αριθµός Πεδίων 6.

1. Εισαγωγικά στοιχεία Νέες Δυνατότητες.

ήλωση προστασίας δεδοµένων προσωπικού χαρακτήρα της «unitedprint.com Hellas Ε.Π.Ε..»

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

Παρακάτω προτείνεται μια αλληλουχία ενεργειών την οποία ο χρήστης πρέπει να ακολουθήσει για να αξιοποιήσει τις δυνατότητες της εφαρμογής.

MESSAGE EDITOR FOR WINDOWS Ο ΗΓΙΕΣ ΧΡΗΣΕΩΣ

5. MΑΚΡΟΕΝΤΟΛΕΣ. Η δηµιουργία Μακροεντολής γίνεται µε δύο τρόπους :

Εισαγωγή στις Βάσεις εδοµένων και την Access

PHPMyAdmin: Σύντομος οδηγός για αρχάριους

Management School School Profile Save

Αρχίζοντας. Το Joomla τρέχει: Στο Joomla μπορούμε να προσθέσουμε επιπλέον λειτουργικότητα, να την επεκτείνουμε δηλαδή (extensions) PHP MySql

Οδηγίες Χρήσης της MySQL

2.2.3 Η εντολή Εκτύπωσε

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Με την αλλαγή των μεταβλητών σελιδοποίησης αυτόματα ρυθμίζετε το νέο όριο για τα άρθρα και τα αποτελέσματα αναζήτησης.

Συστήματα Διαχείρισης Βάσεων Δεδομένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. έσποινα Τσοµπανούδη, Α.Μ.

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Εργαστήριο Βάσεων Δεδομένων

Management Classes Create Class Create Class Management Classes List of Classes

Διαχείριση Βάσης Δεδομένων (dbadmin)

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ: Ανάπτυξη του Εκπαιδευτικού Ιστότοπου

Γενικό Λύκειο Κρουσώνα - Σχολικό έτος Εκπαιδευτικός: Παπαδάκης Σταµάτης

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

Διαγραφή Επιλέγετε Διαγραφή για να διαγράψετε μία ήδη υπάρχουσα διαδικασία εισαγωγής ASCII

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)


Παρακάτω προτείνεται μια αλληλουχία ενεργειών την οποία ο χρήστης πρέπει να ακολουθήσει για να αξιοποιήσει τις δυνατότητες της εφαρμογής.

ΤΕΣΤ ΠΙΣΤΟΠΟΙΗΣΗΣ ΓΝΩΣΕΩΝ ΚΑΙ ΔΕΞΙΟΤΗΤΩΝ

Εργαλεία του JDK. Β.1 Εργαλεία του JDK. Β.2 Μεταγλωττιστής javac. Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω.

Τεχνικός Εφαρμογών Πληροφορικής

Εισαγωγή και επεξεργασία δεδοµένων

Ο ΗΓΙΕΣ ΣΥΜΠΛΗΡΩΣΗΣ ΤΗΣ ΦΟΡΜΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοηµοσύνη Ι» 7ο Φροντιστήριο 15/1/2008

Οδηγίες Χρήσης της MySQL

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ. Πρόσβαση στην Καταγραφή και Εγχειρίδιο Χρήσης Εφαρµογών για ιευθύνσεις και Γραφεία Εκπαίδευσης

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

Οδηγίες για το Βιβλίο Κοστολογίου στα Γ κατηγορίας βιβλία

Εφαρμογή Ηλεκτρονικής Υποβολής Δηλώσεων Ε9. Οδηγίες Χρήσης

ΚΕΦΑΛΑΙΟ 4 ΤΟ ΕΡΓΑΛΕΙΟ SOLVER

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

(Εικόνα 1) Αφού εγκατασταθεί το λογισμικό κάνουμε κλικ πάνω στο εικονίδιο IP Reporting, το οποίο βρίσκεται στην επιφάνεια εργασίας.

Όλοι οι χρήστες του Turnitin πρέπει να δημιουργήσουν ένα προφίλ χρήστη.

Οδηγίες χειρισµού. Οδηγίες χρήσεως driver B

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΟ ARIS

Sheet2. Σωστή, και µπράβο που µεριµνήσατε για λίστες διαφορετικών µεγεθών.

Διαχείριση Πολιτισμικών Δεδομένων

Φυσική Σχεδίαση Υλοποίηση βάσης

Άσκηση 5 -Δηµιουργία ιστοσελίδων µε HTML µέρος 5 ο

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΩΝ Infocarina Net I57 MIRCA ARCADIA NET PLUS Infocarina NET Plus ΓΙΑ ΣΥΝ ΕΣΗ ΜΕ ΤΗΝ Γ.Γ.Π.Σ.

Αυτόματο Κλείσιμο Ισολογισμού

Report 2 Report. Συσχέτιση Εκτυπώσεων

Transcript:

Ξεκινώντας την εκτέλεση της εφαρµογής εκτελείται ο παρακάτω κώδικας 10

Επεξήγηση κώδικα Επειδή η εφαρµογή χρειάζεται οι πληροφορίες και οι επιλογές του χρήστη να διαδίδονται ανάµεσα στις ιστοσελίδες µέχρι την τελευταία χρησιµοποιούµε sessions τα οποία χρησιµοποιώντας cookies µας επιτρέπουν να αποθηκεύσουµε πληροφορία στον υπολογιστή του χρήστη την οποία µπορούµε να χρησιµοποιήσουµε στη συνέχεια. Συγκεκριµένα σε αυτή τη πρώτη σελίδα σβήνουµε τυχόν µεταβλητές που υπάρχουν στον υπολογιστή του χρήστη από προηγούµενες επισκέψεις. Επίσης βλέπουµε µια φόρµα σε HTML η οποία έχει 2 επιλογές: Ή αφήνει τον χρήστη να υποβάλει ένα ερώτηµα στην εφαρµογή ή να εξερευνήσει την υπάρχουσα βάση δεδοµένων. Αν ο χρήστης επιλέξει να υποβάλει ερώτηµα τότε το ερώτηµα µεταβιβάζεται στην κύρια ιστοσελίδα main.php όπου και θα δούµε παρακάτω πως χειρίζεται τις πληροφορίες. Αν ο χρήστης επιλέξει να εξερευνήσει την βάση δεδοµένων τότε µεταφέρεται στην ιστοσελίδα OutputApplet.html όπου µέσω ενός java applet που θα επεξηγηθεί στην συνέχεια περιηγείται στη βάση. Ακόµα βλέπουµε ότι χρησιµοποιούνται πίνακες της HTML για την αισθητική διαµόρφωση της ιστοσελίδας. 11

Στη συνέχεια θα παρουσιαστεί ο κώδικας της main.php Αρχικά βλέπουµε ότι γίνεται χρήση style sheets που σηµαίνει ότι οποιοδήποτε στοιχείο φαίνεται στην ιστοσελίδα παρουσιάζεται µε ένα συγκεκριµένο στύλ.εδώ π.χ φαίνεται ότι τα στοιχεία sign,title και authors θα έχουν προκαθορισµένη όψη. Προχωρώντας δηµιουργούµε ενα αντικείµενο htmlparser που στην ουσία είναι αυτό που θα επεξεργαστεί το ερώτηµα. 12

Με το που δηµιουργείται το αντικείµενο εκτελείται ο constructor ο οποίος φέρνει από τον ιστό την σελίδα µε τα αποτελέσµατα του google scholar που αντιστοιχούν στο ερώτηµα του χρήστη. Συνεχίζοντας την εκτέλεση των εντολών της η main.php Εκτελεί την εντολή $parser->parse(); η οποία είναι η ψυχή του αντικειµένου. 13

Αρχικά η σελίδα µετατρέπεται σε ένα string χωρίς αλλαγές νέας γραµµής και µετά εκτελείται πάνω σε αυτό το string η collect records η οποία φαίνεται παραπάνω. Χρησιµοποιώντας κανονικές εκφράσεις και έχοντας εξετάσει την διαµόρφωση των σελίδων αποτελεσµάτων του google διαχωρίζουµε τις εγγραφές από λοιπές πληροφορίες και προχωρούµε σε περαιτέρω επεξεργασία. Αµέσως µετά καλείται η analyze records που επεξηγείται παρακάτω. 14

Η analyze records µε αρκετά πολύπλοκες κανονικές εκφράσεις έχοντας εξετάσει διεξοδικά τη µορφή των ιστοσελίδων αποτελεσµάτων που δίνει το google διαχωρίζει τα ουσιαστικά στοιχεία των εγγραφών απο το σύνολο όπως: Τον τίτλο της δηµοσίευσης,τους συγγραφείς,τους συνδέσµους προς τα κείµενα αν αυτά υπάρχουν κ.α. Τα στοιχεία που εξάγονται αποθηκεύονται σε αντικείµενα record που µε τη σειρά τους αποθηκεύονται σε έναν πίνακα και εκτυπώνονται σε µια σελίδα ώστε να τα δεί ο χρήστης. 15

Πίσω στη main.php στη γραµµή 78 βλέπουµε τη κλήση της συνάρτησης παρουσίασης των αποτελεσµάτων.παρακάτω παρουσιάζεται ένα κοµµάτι του κώδικα που κάνει τη δουλειά. Αυτή η συνάρτηση παρουσιάζει τα αποτελέσµατα στο χρήστη σε οµάδες των οποίων τον αριθµό έχει επιλέξει ο χρήστης 16

Και πάλι πίσω στη main.php συνεχίζεται η εκτέλεση αφού αποθηκεύσουµε το αντικείµενο parser. Επειδή έχουµε επιλέξει την σχεδίαση του προγράµµατος έτσι ώστε ο κύριος κορµός του να είναι η main.php για να βρίσκουµε εύκολα το λογικό σηµείο που βρίσκεται η εκτέλεση χρησιµοποιούµε την αρχιτεκτονική του µαυροπίνακα όπου τα διάφορα κοµµάτια κώδικαδιεργασίες παίρνουν το έναυσµα να ξεκινήσουν όταν εµφανιστεί το κατάλληλο µήνυµα ενεργοποίησης τους δηλαδή ο εκάστοτε στόχος. Π.χ $_SESSION['target']="selectPaperAndFetchCitedByPapers"; Σε αυτό το σηµείο ο στόχος είναι να επιλέξει ο χρήστης µία δηµοσίευση και να του παρουσιαστούν όλες οι δηµοσιεύσεις που αναφέρονται στην επιλογή του. Παρακάτω φαίνεται ο κώδικας που αναλαµβάνει αυτή τη δουλειά. 17

Αρχικά µέσω των πινάκων GET και SESSION παίρνω αντίστοιχα την επιλογή του χρήστη δηλαδή τη θέση της δηµοσίευσης και το αντικείµενο parser που περιέχει τη λίστα µε όλα τα αποτελέσµατα. Ένας νέος parser δηµιουργείται και κάνει parse όπως είδαµε και παραπάνω την νέα σελίδα του google και τα παρουσιάζει στον χρήστη. Τώρα ένας νέος στόχος προστίθεται στον µαυροπίνακα ο οποίος είναι η επιλογή του χρήστη κάποιων δηµοσιεύσεων για να αποθηκευτούν στη βάση δεδοµένων πάντα σε συσχέτιση µε την αρχική επιλογή του. 18

Η εκτύπωση των αποτελεσµάτων γίνεται σε συνεργασία µε τη βάση όπου για κάθε εγγραφή που πρόκειται να εκτυπωθεί ζητάµε από τη βάση να µας απαντήσει αν αυτή η εγγραφή βρίσκεται ήδη αποθηκευµένη ώστε µε γραφικό τρόπο να ενηµερωθεί ο χρήστης. Υπάρχουν δύο περιπτώσεις σε αυτό το σηµείο. Είτε να υπάρχει µια εγγραφή ήδη στη βάση και η εγγραφή µε την οποία είναι συσχετισµένη να είναι ίδια µε την περίπτωση µας και όπου εµφανίζεται µια πράσινη ένδειξη είτε να είναι συσχετισµένη µε άλλη αλλά να εξακολουθεί να υπάρχει όπου εµφανίζεται µία µπλε ένδειξη. 19

Οι δηµοσιεύσεις παρουσιάζονται σαν µέρος µιας φόρµας µε κάθε µία να έχει ένα checkbox ώστε να µπορούµε να επιλέξουµε παραπάνω από µία και επίσης να µπορούµε να επιλέξουµε και από περισσότερες από µία σελίδες αποτελεσµάτων. Ο χρήστης επιλέγει µία από τις επιλογές που είναι είτε η αποθήκευση των ήδη επιλεγµένων δηµοσιεύσεων είτε η συνέχεια της περιήγησης χωρίς αποθήκευση είτε η συνέχεια της περιήγησης µε αποθήκευση. Στο σηµείο που επιλεχθεί το τέλος της περιήγησης και άρα η αποθήκευση εκτελείται ο κώδικας της παρακάτω σελίδας. 20

Βλέπουµε ότι δηµιουργείται ένα αντικείµενο databaseinteractor το οποίο διαχειρίζεται την βάση δεδοµένων.εδώ φαίνεται ο κώδικας που συνδέει την εφαρµογή µε τη βάση mysql. 21

Επιλέγουµε την συγκεκριµένη βάση που έχουµε δηµιουργήσει κατά την εγκατάσταση της εφαρµογής. Εδώ φαίνεται ο κώδικας που αφορά την εισαγωγή εγγραφών στη βάση. Βλέπουµε τα ερωτήµατα σε sql και τα οποία συµπληρώνονται κατά την εκτέλεση. Η συγκεκριµένη βάση έχει δύο πίνακες. Ο ένας περιέχει εγγραφές και ο άλλος έχει τις συσχετίσεις ανάµεσα στις εγγραφές του πρώτου. 22

Κατά την εισαγωγή των εγγραφών τους ανατίθεται ένας αύξων αριθµός ο οποίος χρησιµοποιείται για να γίνουν και οι εισαγωγές συσχετίσεων στον δεύτερο πίνακα. Παρόλο που ο χρήστης ενηµερώνεται για την ύπαρξη ή µη των εγγραφών που έχει σαν επιλογές για αποθήκευση µπορεί ακόµα και αν είναι ήδη αποθηκευµένη µια εγγραφή να την επιλέξει για αποθήκευση. Σε αυτή την περίπτωση οι εγγραφές ενηµερώνονται από τυχόν αλλαγές. 23

Βλέπουµε τον κατασκευαστή του applet και τα διάφορα στοιχεία που θα χρησιµοποιηθούν στη συνέχεια.η κλάση όπως φαίνεται χρησιµοποιεί νήµατα και είναι ακροατής γεγονότων. 24

Παραπάνω φαίνεται η χρήση του µοντέλου λίστας που θα δεχτεί τις εγγραφές και πως τη βάζουµε µέσα σε ένα scroll pane και αυτό µε τη σειρά του σε ένα panel.οµοίως φαίνεται και το δεύτερο panel. 25

Εδώ βλέπουµε την δηµιουργία της ετικέτας που ενηµερώνει τον χρήστη για τη κατάσταση και την δηµιουργία του τρίτου panel που περιέχει ένα scroll pane που µε τη σειρά του περιέχει ένα text pane. Επίσης φαίνεται και η χρήση των GridBagConstraints που χρησιµοποιούνται για τον καθορισµό της διάταξης των στοιχείων στην εφαρµογή. 26

Φαίνεται η χρήση των νηµάτων και η συνάρτηση run που βλέπουµε την σύνδεση µε τη βάση καλώντας τον driver που έχουµε εγκαταστήσει. ιάφορα µηνύµατα λάθους εµφανίζονται στον χρήστη ανάλογα µε τη κατάσταση στη οποία µπορεί να βρεθεί,µηνύµατα που ερµηνεύονται ανάλογα µε την εξαίρεση που κάθε φορά προκύπτει. 27

ηµιουργούµε ένα ερώτηµα SQL που υποβάλουµε στη βάση και παίρνουµε το σετ των αποτελεσµάτων. Το σετ αυτό θα το εισάγουµε στο component που εµφανίζεται στο gui που βλέπει ο χρήστης. 28

Εδώ φαίνεται πως χειριζόµαστε τα γεγονότα των λιστών που προκύπτουν από τη διάδραση µε το χρήστη όπως επίσης πως χρησιµοποιούµε το σετ των αποτελεσµάτων 29

Εδώ φαίνεται η συσχέτιση των 2 πινάκων που υπάρχουν στη βάση και πως χρησιµοποιούνται ώστε ο χρήστης να βλέπει διαλέγοντας µία δηµοσίευση ποιές συσχετίζονται µε την επιλογή του. Επίσης βλέπουµε πως µορφοποιούνται τα αποτελέσµατα µέσα στα διάφορα components του java swing. 30

ΠΑΡΑΡΤΗΜΑ Α Εργαλεία και γλώσσες ανάπτυξης Για την ανάπτυξη της εφαρµογής χρησιµοποιήθηκαν JBuilder 2007 της Borland Zend Studio 1 St JavaScript Editor Mysql, Apache Επίσης χρησιµοποιήθηκαν οι γλώσσες προγραµµατισµού Java (Swing) Php JavaScript Html, Css Sql 31

ΠΑΡΑΡΤΗΜΑ Β Μορφή βάσης δεδοµένων Η µορφή της βάσης δεδοµένων είναι CREATE TABLE `association_array` ( `paper` bigint(20) NOT NULL default '0', `cited_by` bigint(20) NOT NULL default '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE `papers` ( `id` bigint(32) NOT NULL auto_increment, `title` varchar(128) NOT NULL default '', `authors` varchar(128) NOT NULL default '', `sign` varchar(128) NOT NULL default '', `title_link` text NOT NULL, `data` varchar(128) NOT NULL default '', `year` varchar(32) NOT NULL default '', `description` text NOT NULL, `cited_by_link` text NOT NULL, `cited_by_number` varchar(32) NOT NULL default '', `primarypaper` tinyint(2) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `title` (`title`), FULLTEXT KEY `description` (`description`), FULLTEXT KEY `cited_by_link` (`cited_by_link`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=9 ; Το όνοµα της βάσης είναι papers_db 32

ΠΑΡΑΡΤΗΜΑ Γ Ασφάλεια και οδηγοί Προκειµένου το applet να έχει πρόσβαση στη βάση πρέπει να γίνει αλλαγή στο αρχείο που βρίσκεται στη θέση C:\Program Files\Java\jre1.6.0\lib\security\java.policy και στη γραµµή 23 να προστεθεί η παρακάτω permission java.net.socketpermission "localhost:3306-", "connect"; Επίσης χρειάζεται ένα extension που θα επιτρέψει στο applet να επικοινωνεί µε την Mysql το οποίο πρέπει να προστεθεί στις θέσεις C:\Program Files\Java\jre1.6.0\lib\ext C:\Program Files\Java\jdk1.6.0\jre\lib\ext 33

34