Faili allalaadimise dialoog

Veel üks Silverlight 3 uus feature on võimalus lihtsalt luua faili allalaadimise dialoog.image thumb10 Faili allalaadimise dialoog

Selleks tuleb kõigepealt muidugi luua nupp ja sellele vastav event.

image thumb11 Faili allalaadimise dialoog image thumb12 Faili allalaadimise dialoog

Save_Click meetodis tuleb kõigepealt luua uus SaveFileDialog:

SaveFileDialog dialog = new SaveFileDialog()

Järgmisena tuleb ära määrata salvestava faili tüüp. See ei ole küll kohustuslik, aga teeb kasutajal elu mugavamaks. Eriti kui on teada, et salvestatakse näiteks ainult tekstifaile.

{
DefaultExt = "txt",
Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*",
FilterIndex = 1
};

Viimasena tuleb paika panna see, kuidas info sinna salvestatavasse faili saab.

bool? dialogResult = dialog.ShowDialog();
if(dialogResult == true){
    StreamWriter writer = new StreamWriter(dialog.OpenFile());
    foreach (string el in selectedList){
        writer.WriteLine(el);
    }
    writer.Dispose();
    writer.Close();
}

Oma sõnaraamatu puhul hoiame me kõiki sõnu List<string> tüüpi muutujas selectedList ja see kood võtabki siis kõik seal listis olevad sõned ja kirjutab need faili.

Lõpuks veel kogu Save_Click meetod:

private void Save_Click(object sender, System.Windows.RoutedEventArgs e)
{
    SaveFileDialog dialog = new SaveFileDialog()
    {
        DefaultExt = "txt",
           Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*",
        FilterIndex = 1
    };

    bool? dialogResult = dialog.ShowDialog();
    if(dialogResult == true){
        StreamWriter writer = new StreamWriter(dialog.OpenFile());
        foreach (string el in selectedList){
            writer.WriteLine(el);
        }
        writer.Dispose();
        writer.Close();
    }
}

Rakenduse ikoonide muutmine

Ühes varasemas postituse rääkisime sellest, kuidas Silverlight rakendust brauserist väljaspool tööle panna. Kes selle ise järgi proovisid, siis võib-olla märkasid, et vaikimisi on iga rakendus ikoon midagi sellist:

image thumb5 Rakenduse ikoonide muutmine

See ei ole küll kole ikoon, aga ikka tahaks ju enda rakenduse teistest eristamiseks midagi huvitavamat. Tuleb välja, et see on täiesti võimalik, kuigi Expression Blendi kasutades natuke keerulisem kui arvata võiks.

Ikoonide ettevalmistamine

Silverlight tahab ikoone saada neljas erinevas suuruses ja PNG formaadis. Nõutuavad suurused on 16×16, 32×32, 48×48 ja 128×128 pikslit. Meie kasutasime piltide erinevatesse suurustesse salvestamiseks Painti, kuigi selleks on ilmselt ka paremaid rakendusi, sest Paint kaotab PNG failide salvestamisel ära läbipaistvuse ja tekib natuke häiriv valge taust. Meie ikoonid olid näiteks sellised:

16×16 32×32 48×48 128×128
16x16 thumb Rakenduse ikoonide muutmine 32x32 thumb Rakenduse ikoonide muutmine 48x48 thumb Rakenduse ikoonide muutmine 128x128 thumb Rakenduse ikoonide muutmine

Kindlasti on vajalikud kõik eri suurustest failid, sest neid näidatakse erinevates kohtades (Start-menüü, töölaud jne.).

Failide projekti lisamine

See on Expression Blendis kõige keerulisem samm ja selle tööle saamiseks kulus mul ikka päris mitu tundi, sest internetist ei õnnestunud ühtegi juhendit ka leida. Visual Studios oleks see ilmselt palju lihtsamalt käinud ja VS kohta leidub netis ka päris palju juhendeid.

Kõigpealt tuleb luua projekti alla uus kaust, mida saab teha näiteks niimoodi:

image thumb6 Rakenduse ikoonide muutmine

Järgmisena tuleb vajutada parema klahviga loodud kaustal ja valida Add Existing Item…

image thumb7 Rakenduse ikoonide muutmine

Avanenud aknas tuleks üles otsida päris alguses loodud ikoonid ja need sinna kausta lisada. Tulemus võiks näha välja midagi sellist:

image thumb8 Rakenduse ikoonide muutmine

Build actioni muutmine

Järgmine samm ongi kõige keerulisem, sest kui niimoodi faile lisada, siis paneb Expression Blend build actioni väärtuseks Resource, aga ikoonide puhul peab see olema Content. Lisaks ei ole võimalik kasutajaliideses seda kuidagi muuta. Lahenduseks on see, kui minna Windows Exporeriga projekti kausta ning avada suvalise tekstiredaktoriga ProjektiNimi.csproj fail. Minul asub see näiteks sellises kohas:

C:\Users\alasoo\Documents\Expression\Blend 3\Projects\SilverlightApplication1\SilverlightApplication1

Kui see fail on avatud, siis tuleb sealt üles otsida pildifailide kohta käivad read

<Resource Include="icons\128x128.png" />
<Resource Include="icons\16x16.png" />
<Resource Include="icons\32x32.png" />
<Resource Include="icons\48x48.png" />

ja neis sõna Resource asendada sõnaga Content:

<Content Include="icons\128x128.png" />
<Content Include="icons\16x16.png" />
<Content Include="icons\32x32.png" />
<Content Include="icons\48x48.png" />

Nüüd peaks olema kõik failid õigesti projekti lisatud.

Ikoonide asendamine

Ikoonide asendamiseks tuleb avada meile juba tuttav OutOfBrowserSettings.xml fail ja lisada sinna järgmised read:

<OutOfBrowserSettings.Icons>
    <Icon Size="16,16">icons/16x16.png</Icon>
    <Icon Size="32,32">icons/32x32.png</Icon>
    <Icon Size="48,48">icons/48x48.png</Icon>
    <Icon Size="128,128">icons/128x128.png</Icon>
</OutOfBrowserSettings.Icons>

Kui nüüd järgmine kord rakendust installeerima hakata, siis on ikoon juba muutunud.

image thumb9 Rakenduse ikoonide muutmine

Brauserivälise rakenduse loomine

Üks Silverlight 3-e uusi omadusi on see, et nüüd on võimalik luua ka selliseid rakendusi, mis töötavad brauserist väljaspool.  Väga kasulik on see näiteks selliste programmide puhul, mis töötamiseks tingimata internetiühendust ei vaja, nagu näiteks meie Home Reading Helper sõnaraamaturakendus.

Alustamine

Esimene samm on Expression Blend 3-s väga lihtne. Tuleb lihtsalt avada oma projekt ja valida ülevalt menüüst Project > Silverlight Project Preferences > Enable Application Outside Browser.

image thumb Brauserivälise rakenduse loomine

Kui nüüd Run Project teha, siis on peale rakenduse laadimist võimalik sellel parema klahviga vajutada ja see oma arvutisse paigaldada.

image thumb1 Brauserivälise rakenduse loomine

Seadistamine

Kui nüüd aga rakendus käima panna, siis võib märgata, et akna suurus on vale ja nimi ei ole ka päris selline nagu ta olla võiks.

image thumb2 Brauserivälise rakenduse loomine

Nende vigade parandamiseks tuleb muuta OutOfBrowserSettings.xml faili, mis asub Properties kaustas.

image thumb3 Brauserivälise rakenduse loomine

Selle sisu näeb tavaliselt välja umbes järgmine:

<?xml version="1.0" encoding="utf-8" ?>
<OutOfBrowserSettings ShortName="SilverlightApplication1" EnableGPUAcceleration="True">
    <OutOfBrowserSettings.Blurb>
        A short description of the application.
    </OutOfBrowserSettings.Blurb>
    <OutOfBrowserSettings.WindowSettings>
        <WindowSettings Height="600" Width="800" Title="SilverlightApplication1" />
    </OutOfBrowserSettings.WindowSettings>
</OutOfBrowserSettings>

Meile piisab sellest, kui muuta natuke 7. rida ja kirjutada sinna näiteks:


<WindowSettings Height="480" Width="640" Title="Home Reading Helper" />

Lõpptulemus on juba palju ilusam.

image thumb4 Brauserivälise rakenduse loomine

Ongi valmis!

Brauserivälised rakendused töötavat nii Windowsi kui ka Maciga (kuigi esmapilgul natuke aeglasemalt). Kuna Moonlight veel Silverlight 3-e ei toeta, siis selle operatsioonsüsteemi kasutajad on hetkel natuke kõrvale jäetud.

Minu esimene Silverlight rakendus

Nagu postituse ülemisest äärest näha on, siis ei ole ma Jaana, vaid olen hoopis Kaur.  Viimasel ajal olen ma põhiliselt kirjutanud MUG.ee blogisse.  Nädal aega tagasi hakkasin ma ilma igasuguse varasema kogemuseta Jaana abiga ehitama oma esimest Silverlight rakendust. Nüüd, kui programm peaaegu valmis on, mõtlesin õpitust ka siin blogis natuke kirjutada.

Millega on tegu?

Umbes aasta tagasi võtsin ma ülikoolis saksa keelt ning selle aine raames oli meil vaja üsna palju lugeda ja tõlkida. Kuna ma aga ei viitsinud uusi sõnu käsitsi välja kirjutada, siis mõtlesin, et võiks olla selline sõnaraamatu rakendus, kus oleks võimalik ühe hiireklikiga otsitud sõnu salvestada. Selle tulemusena sündis üks hästi kole PHP-rakendus mis parsis BEOLINGUS-e veebisõnastikku.

Kuna ma ei olnud juba algusest saati sellega rahul ning mingil hetkel läks see paratamatult katki ka (BEOLINGUS muutis oma veebilehe struktuuri),  siis otsustasin lõpuks asja kätte võtta.

hrh thumb Minu esimene Silverlight rakendus

Home Reading Helper on lihtne sõnaraamat, kust saab sõnu otsida ja neil klikkides huvitavaid sõnu välja valida. Töö lõpetades saab kõik välja valitud sõnad tekstifailina kettale salvestada. Keeltest on hetkel toetatud eesti-inglise-eesti (eki.ee) ja saksa-inglise-saksa (freedict.de).

Kuidas tehtud?

Lähipäeval kirjutan ma kõigist olulisematest ja huvitavamatest sammudest eraldi postitused ja lisan viited neile ka siia. Sõnade otsimine on realiseeritud ühe varasema Jaana postituse põhjal.