13.07.2015 Views

Projektering av passersystem

Projektering av passersystem

Projektering av passersystem

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

I J<strong>av</strong>a inte finns någon fördefinierad datatyp <strong>av</strong> trädstruktur. I swingkomponenten Jtreegår det att n<strong>av</strong>igera sig vertikalt mellan trädets komponenter, den använda datatypensom komponenterna består <strong>av</strong> hade alltså egentligen inte behövt vara <strong>av</strong> trädstruktur(med länkar till tillhörande noder). Nackdelen med att skapa objekt som inte länkar tillvarandra och placera dom i ett JTree är att man blir beroende <strong>av</strong> komponenten Jtreeslänkar, dessutom är det inte är möjligt att i Jtree specificera vilka komponenter sompassar ihop med vilka andra. Istället skapade jag därför datatypen Hardware och varjeobjekt som skapas i trädet ärver denna datatyp. Med denna datatyp ärvs ett antalmetoder som kan användas på objektet samt de variabler som länkar ihopkomponenterna med varandra. Varje komponent som ärvt Hardwares egenskaper harinformation om vilka andra komponenter den hör ihop med men även vilka den ärkompatibel med.Alla komponenter som skapas i trädet har en komponent ovanför sig, denna komponentbenämns som förälder. De flesta komponenter som skapas i trädet kan i sin tur ha andrakomponenter kopplade till sig, dessa benämns som barn eller extrabarn. Skillnadenmellan de båda är att barnen är de komponenter som vanligtvis läggs till. Extrabarnanvänds om komponenten har några övriga produkter som går att ansluta. Anledningentill att en distinktion behövt göras är på grund <strong>av</strong> att de går att addera till komponentenenligt olika logik. Centralenhet 9017 har exempelvis följande barn: loopkort 4014 och9018, totalt kan centralenheten ha upp till fyra loopkort kopplade till sig. Menoberoende <strong>av</strong> hur många loopkort som faktiskt är inkopplade gåt det dessutom attkoppla in ett reläkort 6416 och en bokningspanel 8001, detta är centralenhetensextrabarn.Alla komponenter som skapas <strong>av</strong> typen hardware sparas i en Arraylist <strong>av</strong> typen, kallad Centralerna. Detta innebär att nya objekt som skapas enkelt kanläggas till genom metoden add. Samtidigt innebär det att alla objekt behöver ett uniktid-nummer eftersom dess plats i ArrayList inte är beständig. När ett objekt tas bort imitten <strong>av</strong> Arraylist så flyttas positionen på alla objekt som ligger efter det borttagnaobjektet, ett steg bakåt. Fördelen med denna lösning är att det är lätt att lägga till nyaobjekt, utan att behöva ta hänsyn till hur många som redan finns, d.v.s. man risker aldrigatt överskrida gränsen för listans längd. En annan fördel men denna lösning är att det ärenkelt att snabbt få en översikt på vad som finns inlagt, genom att det bara är att gåframåt i listan över installerade komponenter går det snabbt att räkna igenom allahårvarukomponenter som finns i installationen.4.2.4 Lägga till en komponentFör varje produkt finns en unik metod som lägger till just den produkten, de skillnadersom faktiskt finns mellan metoderna beror på logiken kring hur produkten kan läggastill eller inte.Metoden som lägger till en komponent skapar själva komponenten och placerar den iArrayListan, och lägger sedan till komponenten, dels till flik 1 i hårdvaruträdet och tillflik 3 i kalkylbladet. Det som skiljer metoderna åt är framförallt vart respektivekomponent läggs till hos dess förälder, d.v.s. om den räknas som ett normalt barn ellerett extrabarn, såsom reläkorten och bokningspanelen. Vissa metoder är överlagrade,detta beror på att det i vissa fall ska gå att lägga till en komponent till den som för- 15 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!