• Non ci sono risultati.

8 // disegnare nella grayScaledImage

9

Graphics2D g2d = grayScaledImage.createGraphics();

10

g2d.drawImage(sourceImage, 0, 0, null);

11

g2d.dispose();

12

return grayScaledImage;

Per terminare on l'analisi delle lassi, si elen ano i metodi ontenuti

nel-la lasse di supporto Tools e si fornis e, per ias uno di essi, una breve frase

espli ativadella loro funzione.

reateAppFolder()e reateFolder(String path)sio upanodella rea-zione delle artelle ne essarie al software per salvare ledi ongurazione,

loged immaginis ansionate;

reateLogXML(String username, String date, String time, String numberOfPages, String path, String fName, String savingName) e

reateSour eXML(String sour eName) reano i leXML di log ed il le

sour e.xml;

date() e time() sono usati per la ra olta di informazionisu data ed ora dis ansione;

deleteAllFiles(String path)edeleteFolder(String path)eseguono, rispettivamente, la an ellazionedeilepresentiinuna artellae

l'elimina-zione diun'intera artella;

reateTrayI on() perla razione dell'i onanella system tray;

setSour e(String path) seleziona per l'utilizzo il dispositivo spe i ato nel le, passatogli ome parametro. In aso il lenon esista o il

dispositi-vo riportato nel le non sia disponibile, onsente una nuova selezione del

dispositivoe vi s rive ilnome su le;

MultiPageTIFF(BufferedIma ge[℄ array, File file)esaveToTIFF(int n, BufferedImage sour eImage) on orronoalla reazionediunleTIFF

multipagina (il primo) ed alla onversione da BufferedImage a le TIFF

(ilse ondo);

showImage(BufferedImage sour eImage, JS rollPane s rollPane)fa sì he la BueredImage passata ome parametro venga visualizzata nel

pannellospe i ato;

sentMessageFrame(String message, String titleFrame, ImageI on i on)ewarningFrame(String message, String titleFrame) sono

in-vo ati per la reazione, rispettivamente, di JOptionFrame ti tipo

INFOR-MATION_MESSAGE eWARNING_MESSAGE.

doExit() esegue l'us ita dal programma, mostrando un JOptionPane di tipoOK_CANCEL_OPTION heri hiedeuna onfermaprimadi hiudere

l'appli azione.

Non ritengo ne essario riportare il odi e di al uno di questi metodi, poi hé,

salvo quelli di ui si è già trattato in pre edenza, gli altri fanno uso di

las-si Java note ai più e presentano un'implementazione sempli e e lineare, la ui

omprensione non ri hiede parti olarisforzi.

8.7 La libreria Log4j e lo strumento Log4E

Log4j èuna libreriaJavasviluppatadallaApa he Software Foundation he

on-sente di implementare un ottimo sistema di logging per ontrollare il

ompor-tamento di un'appli azione in fase di sviluppo; è uno dei sistemi di logging più

utilizzato per le appli azioni Java, tanto da essere onsiderato uno standard de

fa to. Senzadubbio,un ledilogè inutile quandosi trattadipo he righe di

o-di e,madiventaessenzialequandoil odi ediventapiù omplessoe,soprattutto,

quando si lavora inun team. Sipro ede on la spiegazione dell'utilizzo di Log4j

edel pluginperl'IDE E lipse Log4E.

Innanzitutto, è ne essario importare la libreria Log4j all'interno del proprio

progetto: peristruzioni riguardanti questa pro edura si rimanda allalettura del

per ongurare lalibreriaeutilizzarlaall'internodi un'appli azione. Cias un le

di properties denis e tre entità he svolgono tre diverse funzioni:

ilLoggerspe i adi osasivogliatenertra ia(quali lassi,qualipa kage, e .);

l'Appenderspe i al'outputsu uisivuolevisualizzareillog(la onsole, un le ditesto, e .);

il Layout spe i a il formato di output del log (testo, le xml, le html, e .).

Una volta reato il le di properties, si può pro edere on l'uso della libreria.

Per prima osa va importato il pa kage on le lassi ne essarie alla reazione

dellog(import org.apa he.log4j.Logger;). Inse ondabattutasideve reare

l'oggetto Logger per poterlo utilizzare all'interno del programma. Per far iò è

ne essario inserireilseguente omando private stati final Logger logger

= Logger.getLogger(MyClass. la ss),fa endoattenzioneadimpostareilnome

della propria lasse nel parametro del ostruttore. A questo punto si può

pro- edere on l'utilizzazione dell'oggetto logger per reare i log attraverso i metodi

messi a disposizione dalla libreria. Per portare un esempio, una strategia dame

stesso utilizzataè quella he vede l'inserimento,all'interno del blo o at h, di

un omando del tipo logger.error(Messaggio); tale istruzione, se eseguita,

aggiungeallog una vo e ERROR esegnala he è stata generata e atturata una

parti olare e ezione (il ui nome è di solito spe i ato nel parametro di input

delmetodo).

Si immagini ora di avere entinaia di metodi e, per ias uno di essi, voler

noti are quando vengano ri hiamati quando terminino la propria ese uzione.

Inserire tutte queste righe di odi e all'interno delle proprie lassi può risultare

estremamente noioso, spe ialmente se i progetti a ui si lavora sono di grandi

dimensioni. Lapro edurapo 'anzides ritta può essereautomatizzataattraverso

l'utilizzo di un plug-in per l'IDE E lipse: Log4E. Esso si o upa di reare dei

sitemi dilogin manieradeltutto autonoma: li ando infatti on il tasto destro

in un punto spe i o del odi e sorgente, si può a edere al menù Log4E he

onsente opzioni diinserimento deimessaggi di logall'intera lasse, in un punto

spe i o, aimetodidella lasse ed altre opzioni.

L'utilizzoditalestrumentosièrivelatofondamentaleinpiùo asioni,aiutandomi

pro-grammaedinqualepuntospe i ovenivanogeneratelee ezioni hemandavano

Il tiro inio, svolto presso E-proje t s.r.l. nei mesi he vanno da ottobre 2011 a

febbraio2012, èstato de isamentearri hente, onsentendomi dimetterein

pra-ti a le nozioni apprese nel orso degli anni di studio, oltre adavermi fornito un

primo appro io alla realtà lavorativa. Il progetto al quale ho lavorato è stato

assolutamentegrati anteper hé mihapermessodipro edere inautonomiaper

quantoriguardaal unes elteimplementativeedal unistrumentiutilizzati,senza

maifarmiman are l'appoggio di olleghi ompetentie preparati.

Gli obiettivi del tiro inio sono stati raggiunti, produ endo una versione

funzio-nante dell'appli azione, seppure an ora s arna per quanto riguarda la sua

in-terfa iagra a.

Eventuali estensioni future si dirigeranno si uramente verso questo aspetto (il

miglioramentodella GUI) ed inoltre non èes luso he venga eettuato un

adat-tamentodel odi e per farsì he ilsoftware possa essere eseguitoan he su

ar hi-tettureUnix. Ulteriorisviluppidovrebbero inoltreprodurreunporting

dell'appli- azioneverso lepiattaformemobili più utilizzate(Android eiOS) per onsentire

l'a quisizione ed il trattamento delle immagini tramite foto amera ed il

onse-guente invio al do umentale Alfres o e la progettazione e realizzazione di una

Web appli ation, lato server, per la onsultazione del ba k-end Alfres o tramite

[1℄ Gestione do umentale in ban a. ABILab, Milano, 2009.

[2℄ Cay S. Horstmann Con etti di informati a e Fondamenti di Java - Terza

Edizione.Apogeo, 2005.

[3℄ Elliotte R. Harold, W. S ott Means XML Guida di Riferimento. Apogeo,

2001.

[4℄ Java Web Start http://do s.ora le. om/jav ase/ 6/do s/t e hn otes /

guides/javaws/developersgui de/ onte nts. html .

[5℄ TWAIN http://www.twain.org/do s /TWA IN_2 _1_ Spe .pdf .

[6℄ CMIS http://wiki.alfres o. om/wi ki/C MIS.

[7℄ Atom Publishing Proto ol http://bitworking.org/proj e ts /ato m

/rf 5023.html.

[8℄ Atom Publishing Proto ol http://atompub.org/

[9℄ Web Servi es http://www.w3.org/2002/ws/

2.1 Logo della E-proje ts.r.l.. . . 8

3.1 Elementidi TWAIN . . . 12

3.2 Elementisoftware di TWAIN . . . 13

3.3 Pro esso dia quisizione deidati . . . 15

3.4 Proto ollo di omuni azione - Diagrammadegli stati . . . 19

3.5 Dettagliodell'interfa iautenteperla selezione diun ledaiPhone 26 5.1 Librerie di terzeparti importate nelprogetto . . . 46

5.2 Personalizzazione leJAR - S eltadei ledaesportare . . . 48

5.3 Personalizzazione delleJAR - Manifest e Main lass . . . 49

5.4 A ettazione diun erti ato . . . 56

5.5 Diusione deiweb serverda novembre 1995 afebbraio 2012. . . . 58

6.1 Java LayoutManager . . . 70

6.2 Form diinserimentodati perun Boni o Ban ario . . . 71

6.3 Do ument Obje t Module - Vista ditutti i moduli. . . 77

7.1 S hermata dibenvenuto . . . 80

7.2 Dialogbox perla onfermadell'us ita dal programma . . . 80

7.3 Tabellaper lavisualizzazione dello stori odelle s ansioni . . . 81

7.4 Dettagli riguardanti uno deiles ansionati . . . 82

7.5 Selezione deltipodi do umento daimportare . . . 82

7.6 Form diinserimentodati . . . 83

7.7 Finestra dia quisizione dell'immagine. . . 83

7.8 Avviso della presenza dile dainviare . . . 84

7.9 FileChooserperla selezione diun le . . . 85

3.1 Il metodovoids anA tion (A tionEvent event) . . . 23

3.2 Il metodoSour e sele tSour e(Filele) . . . 24

4.1 AtomPub binding . . . 35

4.2 Web Servi es binding . . . 36

4.3 Il metodopubli void onne tToAlfres o(String user, String pass, String repositoryID, Stringname, String dir) . . . 38

4.4 OpenCMIS -Creazione di una artella . . . 39

4.5 Strutturabase diun do umentoJNLP . . . 41

5.1 Strutturabase diun do umentoJNLP . . . 54

5.2 Codi e peruna pagina HTML . . . 59

6.1 Do umento XML per ladenizione di una JMenuBar . . . 65

6.2 Codi e Java per il parsing di un do umento XML utilizzando le librerieCookXml . . . 66

6.3 Esempiodi utilizzodiCookSwing . . . 67

6.4 Form diinserimentodati perun Boni o Ban ario . . . 68

6.5 Creazione diun leXML . . . 74

6.6 Parsing diun leXML . . . 74

6.7 FileXML prodotto on l'utilizzo dellalibreria JDOM . . . 75

6.8 Cattura deidati inseriti nelform perun Boni o Ban ario . . . . 78

8.1 Assegnazionedi un A tionListener adun JButton . . . 89

8.2 Pannello on layout ditipo FormLayout . . . 94

8.3 Finestra diselezione dei ledainviare . . . 97

8.4 Invio deilesalvati . . . 98

8.5 Salvataggio ed invio delle . . . 98

8.6 A quisizionedei valori ontenutineltag <date> . . . 100

8.7 Rotazione diun'immagine . . . 101

Il primo pensiero va alledue persone a me più are, i miei genitori,

suppor-to ostante e fonti inesauribili di du ia ed aetto. Ringrazio Mar o, ontinuo

stimolo per farmitendere sempre al meglio. Ringrazio davvero di uore Mari a,

he mi in oraggia, mi sostiene e, soprattutto, mi apprezza per quello he sono.

Gli ami i, senza i quali la vita avrebbe tutto un altro sapore: Stefano, Enri o,

Davide, Ni ola, Giovanni, Sarah, Paola, Talita, Maddalena, Valentina e Giulia.

Ringrazio il relatore, Professor Mi hele Moro. Un grazie a Massimo Businaro,

Fran es o Businaro, Fabio Valeri, Manuel Spigolon e Simone Pinton. Per nire,

Documenti correlati