Täiesti uus integratsiooniprogramm Markuse arvuti jaoks!

 

Markuse arvuti asjad kasutab nüüd täiesti uut integratsiooniprogrammi, mis asendab iganeva integratsioonitarkvara koodi uute dünaamilistemate standarditega.

Markuse arvuti asjade ajaloo jooksul on olnud 3 erinevat tarkvaraprogrammi, mis jooksid taustal ning kuvasid ennast ikoonina tegumiribal, millele paremklikkides avanes menüü. Kuid suur puudus nii kõige esimesel "kontroller" kui ka hilisemal "integratsioonitarkvara" programmil oli see, et menüü üksusi ei olnud võimalik muuta ilma programmi koodi muutmata ja uuesti kompileerimata. Uus integratsiooniprogramm muudab seda!

Integratsiooniprogramm kasutab JSON formaadis konfiguratsioonifaili, et talletada menüü üksusi. Näide ühest sellisest menüüelemendist on selline:

 {
            "MenuIdentifier": "FlashDrv",
            "SubItems": null,
            "StatePoller": "IS_TRUE(FlashDrivesAvailable) ? Default : Gray",
            "States": [
                {
                    "StateIdentifier": "Default",
                    "Label": "Markuse mälupulk",
                    "IconPath": "%MAS_ROOT%/integration_data/mas_flash.png",
                    "Action": "default::FlashAutorun"
                },
                {
                    "StateIdentifier": "Gray",
                    "Label": "Ühtegi mälupulka pole haagitud",
                    "IconPath": "%MAS_ROOT%/integration_data/mas_flash.png",
                    "Action": null
                }
            ]
}

Nagu näha, siis igal menüü üksusel on erinevad "olekud". Antud näite puhul on kasutatud olekuid selleks, et kuvada erinev tekst vastavalt sellele, kas arvutisse on mälupulk sisestatud. Olekute valik tehakse vastavalt StatePoller-iga defineeritud valemi abil. Selles näites kasutatakse IS_TRUE funktsiooni, mis kontrollib integratsiooniprogrammi sisseehitatud tõeväärtust. Teisisõnu, kui mingi Markuse mälupulk on sisestatud, siis kasuta "Default" olekut, vastasel korral kasuta "Gray" olekut.

Igale menüüelemendile on võimalik lisada ka ikoon ning see võib olla erinev vastavalt olekule! Me kasutame failisüsteemi korrastamiseks ainult ühte asukohta ikoonide jaoks, kuid tehniliselt võib see ikoon asuda ükskõik kus (võime kasutada ka Linuxis ikoone /usr/share/icons alamkataloogidest).

Action ehk tegevus ütleb integratsiooniprogrammile, mida tuleks teha, kui kasutaja klikib selles olekus menüü elemendil. Selles näites kasutame sisseehitatud "FlashAutorun" funktsiooni, mis avab ühelt sisestatud seadmelt Mälupulga juhtpaneeli, mis seejärel kuvab mitme seadme valimise akna, kui on sisestatud mitu mälupulka. Kui väärtus on null, siis selles olekus menüüelemendile klikkimine sulgeb ainult menüü ja ei tee midagi muud.

Lisaks sisseehitatud funktsioonidele on võimalik ka avada programme ja veebiaadresse kasutades shell:: ja web:: prefikse. Siin on näide, mis lukustab Windowsis arvuti ekraani:

 {
     "MenuIdentifier": "LockWorkstation",
     "StatePoller": null,
     "SubItems": null,
     "States": [
          {
               "StateIdentifier": "Default",
               "Label": "Lukusta ekraan",
               "IconPath": "%MAS_ROOT%/integration_data/root_idc_key.png",
               "Action": "shell::Rundll32.exe user32.dll,LockWorkStation"
          }
     ],
     "RequiredFeatures": "MM"
}

Pange tähele, et me ei defineerinud siinkohal StatePollerit, mis tähendab, et integratsiooniprogramm kuvab menüü üksuse ainult Default olekus. 

Igal menüüelemendil on ka valikuline "RequiredFeatures" väli, mis defineerib Markuse arvuti asjade väljaande erifunktsioonid, mis on vajalikud selle menüüelemendi kasutamiseks. Ütleme näiteks, et me peaksime saama seda funktsiooni kasutada ainult siis, kui väljaandes on kaugühenduse tugi - selleks võiksime kasutada RequiredFeatures väljal väärtust "MM-IP-RD", kus MM = põhifunktsioonid, IP = integratsiooniprogramm, RD = kaugjuhtimine. Siinkohal tasub mainida ka seda, et integratsiooniprogramm ei käivitu, kui arvutis puudub IP erifunktsioon.

Menüüs võivad ka paikneda alammenüüd. Selleks saab kasutada "SubItems" välja, kuhu läheb sarnane list menüüelementidest nagu juurmenüüs. Kuigi JSON formaat teoorias võimaldab seda, ei ole praeguses versioonis võimalik lisada menüüsid menüü menüüdesse (põhimenüü -> alammenüü -> alammenüü alammenüü) ehk teisisõnu ainult 1x menüüsügavus on lubatud.

Integratsiooniprogrammil on ka uus laadimisekraan, mis kuvatakse arvuti käivitumisel. See näeb välja selline:

 

Ning kui toimub mingi tegevus taustal, muutub tegumiriba ikoon liivakellaks:  

Samuti on saadaval endiselt ka integratsioonitarkvarast pärinev nutiseadme PIN koodiga sidumise funktsioon, kuid puudub näiteks tarkvara paigaldamise režiimi funktsioon ja juurutamise aken (viimased olid vähe kasutatud integratsioonitarkvaras). Samuti puudub teemade valimise menüü (selle asemel tuleb kasutada arvuti juhtpaneeli) ning juhtpaneelis või menüüfailis tehtud muudatusi ei rakendata koheselt (Markuse asjad tuleb iga muudatuse järel taaskäivitada).

Lisaks integratsiooniprogrammile on nüüd saadaval ka seadmehaldur, kus on võimalik kohtvõrgus seotud seadmeid käsitsi lisada ja eemaldada. Seda akent saab avada toetatud seadmetes integratsiooniprogrammi kaudu ja see näeb välja selline:

 

Kommentaarid