NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Gascripe

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:27.9.2012 15:46

Aha, ty jsi to publikoval. No pořád nechápeš tu podstatu, je potřeba oddělit logiku od vzhledu. Vzhledem myslím to, s čím pracuje uživatel. Proto v té třídě nemá být ani:

string name = Interaction.InputBox("Zadej jméno nové sekce.", "Section Name Dialog", "NewSection");

To je přeci část uživatelského rozhraní, to patří ven. Metoda ve třídě má sežrat parametry a vyplivnout výsledek, nemá se již na nic ptát, od toho tu je to rozhraní venku.

Editováno 27.9.2012 15:46
Odpovědět
27.9.2012 15:46
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:27.9.2012 15:53

Ale ono to je v tom manageru...

private void SectionViewerActualize()
{
    FilesViewer.Items.Clear();
    SectionViewer.Nodes.Clear();

    if (!String.IsNullOrEmpty(actualArea))
        SectionViewer.Nodes.AddRange(new SpravaGascripe().CreateNodesArray(actualArea));
}

private void CreateSection()
{
    if (String.IsNullOrEmpty(actualArea))
        MessageBox.Show("Není vybrána žádná oblast!", "Kam s ní?");

    else if (sectionManager.CreateSection((String.IsNullOrEmpty(actualPath) || SectionViewer.SelectedNode == null || MessageBox.Show("Chceš vytvořit podsekci (ano), či novou hlavní sekci (ne)?", "Ověření", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.No) ? actualArea : actualPath))
            SectionViewerActualize();
}

private void EditSectionName()
{
    if (sectionManager.Rename(actualPath))
        SectionViewerActualize();
}

private void RemoveSection()
{
    if (SectionViewer.SelectedNode != null && sectionManager.Remove(actualPath))
    {
        actualPath = null;
        FilesViewer.Items.Clear();
        SectionViewerActualize();
    }
}

Kde to vidíš?

Editováno 27.9.2012 15:53
 
Odpovědět
27.9.2012 15:53
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:27.9.2012 15:56

Např. v SectionManager:

public bool CreateSection(string path)
        {
            string name = Interaction.InputBox("Zadej jméno nové sekce.", "Section Name Dialog", "NewSection");

            if (String.IsNullOrEmpty(name))
                return false;
            else
            {
                new DirectoryInfo(NoExistName(path + @"\" + name)).Create();
                return true;
            }
        }
Odpovědět
27.9.2012 15:56
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:27.9.2012 16:00

Ale to je již ta třída mimo - to mám udělat ještě další? :) Jo takhlen - mám dát parametr newName (string) - a ptát se při volání?

Editováno 27.9.2012 16:03
 
Odpovědět
27.9.2012 16:00
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:27.9.2012 16:14

Ještě něco - než to dám ke schválení?

 
Odpovědět
27.9.2012 16:14
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:27.9.2012 16:34

Aplikace má 2 vrstvy, v jedné jsou formy a jejich obsluha včetně dialogů a dalšími věcmi, se kterými uživatel pracuje. V druhé je jen logika. 1. vrstva vezme data od uživatele a předá je té druhé. Ta něco udělá a zas předá řízení té první, která ukáže výsledek uživateli.

Dáš tam parametr, přesně tak. To ActualFolder nebo jak se to jmenuje by mohla být proměnná té třídy, předpokládám, že se nemění, šla by nastavit při vytvoření.

Určitě jsem tam někde ještě viděl práci se stream a nad tím dialog. Si to projeď :)

Editováno 27.9.2012 16:34
Odpovědět
+1
27.9.2012 16:34
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:27.9.2012 16:51

No ta se mění vůbec ze všech nejvíce... :) Proto to je actualPath - aktuální - tedy je v ní cesta, kde zrovna uživatel je...

 
Odpovědět
27.9.2012 16:51
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:27.9.2012 17:02

Jo tak, můžeš jí tedy předávat parametrem nebo použít nějaký návrhový vzor, ale v tom nejsem tak dobrý, abych ti mohl radit, je to docela věda :)

Odpovědět
27.9.2012 17:02
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:27.9.2012 17:19

Update...

 
Odpovědět
27.9.2012 17:19
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 21.