Gascripe

C# .NET Windows Forms Zdrojákoviště Gascripe

Hlavní částí tohoto programu jsou oblasti. Ty se editují úplně nahoře. Lze přidávat, editovat a mazat. Maže se následovně - klikněte na oblast a stisknte Delete... :) Edituje stiskem F2 (Musí být zvolena oblast!). Stějně tak i u sekcí a souborů. U nich však máte kromě standartních zkratek (N - nový, F2 - editace jména, Delete - smazání) i možnost využít ContextMenuStri­pu... Kliknutím na sekci se v okně vedle zobrazí její soubory. Soubory lze otevírat standartně - dvojklikem, či ContextMenuStri­pem... Pro Vaše pohodlí tu je i další možnost - můžete využít tlačítek dole... :) Vždy je třeba označit danou věc, jinak Vám to prostě nepůjde. Vše by mělo být pojištěno - kromě vstupu do složek v Aplikačních datech mimo program... Tedy až na hlavní složku - tu klidně smažte...

Nyní jsem přidal možnost měnit barvy - jak pomocí brevných schémat, tak dialogem pro jednotlivé sekce. Pokud budete chtít ruční barevné úpravy resetovat - stačí vybrat jedno ze schémat.

Přidána možnost přetahovat libovolné soubory/složky. Lze s nimi manipulovat úplně stejně - navíc s možností dialogu "Open with". Ovšem za cenu neuhlídatelnosti - pokusím se vše pojistit, ale zatím je to nekryté - kolize stejných jmen (dojde k přepsání staršího souboru) a zapomenutí koncovky při editaci. Tak nezapomeňtě na koncovku při změně jména! (To vše se samozřejmě týká jen přetáhlých souborů...)


Galerie

Program byl vytvořen v roce 2012.

 

Stáhnout

Staženo 264x (202.04 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

  Aktivity (1)

Program pro vás napsal matesax
Avatar

Jak se ti líbí článek?
Celkem (2 hlasů) :
55555


 



 

 

Komentáře
Zobrazit starší komentáře (11)

Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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

 
Odpovědět 27.9.2012 16:14
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Avatar
lcet.m
Člen
Avatar
lcet.m:

var není dynamické typování. Používá ho správně.

 
Odpovědět 14.1.2013 17:40
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. Zobrazit vše