Vlákno názorů k článku Seaside (1) od kamk - Něco jsem v Seaside dělal, tak jenom pár...

  • Článek je starý, nové názory již nelze přidávat.
  • 22. 2. 2005 13:33

    kamk (neregistrovaný)

    Něco jsem v Seaside dělal, tak jenom pár postřehů. Musím se přiznat, že němám přehled jak se to dělá v jiných frameworks. Takže nejdříve šablony. Ty prostě skutečně nejsou, 90% všeho se generuje pomocí kódu, který poskládá HTML stránku. Takže např.

    renderContentOn: html
       html paragraph: [
          html text: 'Hello world'
       ].
    

    vyrobí <p>Hello world</p>. Podívejte se na WAAbstractHtmlBuilder co všechno se dá podniknout. Pokud nějaká značka chybí, tak se dá udělat třebas:

       html tag: 'strong' do: [html text: 'Hello world'].
    

    což vyrobí <strong>Hellow world</strong>. Jsme v OOP, takže není problém si podědit tenhle builder a vyrobit vlastní, kde budeme mít vlastní specialitky. Můj vlastní dělal překlad vkládaného textu. Otázky designu co se týče barvy, písma, všechno je ponecháno na CSS a taky je to ještě ve vývoji.

    Další věc je logika. Např. každá komponenta (ta vaše vlastní taky) umí něco jako

       self inform: 'Jsem v pohode'.
    

    Tohle vykreslí stránku s daným textem a jedním tlačítkem OK. Je to už předefinováno, ale tím že ve smalltalku je všechno dost plastický, tak se to dá upravit nebo podědit. Takže třebas stránka kde je odkaz co vede na nějakou akci je:

    renderContentOn: html
       html paragraph: [
          html
             anchorWithAction [self inform: 'Jsem v pohode']
             text: 'Cau, jak se mas'
       ].
    

    Tohle udělá odstavec s linkou která vede "někam" a po jejím kliknutí se objeví stránka s tlačítkem OK a to vede zpět. Teď například nějaký hlasovátko:

    renderContentOn: html
       html anchorWithAction: [self answer: #yes] text: 'Jsem za'.
       html break.
       html anchorWithAction: [self answer: #no] text: 'Jsem proti'.
       html break.
       html anchorWithAction: [self answer: #dunno] text: 'Nevim'.
       html break.
    ].
    

    Mít takovou komponentu v proměnný "hlasovac", tak stačí jí zavolat odněkad z programu:

    html
       anchorWithAction: [vysledek := self call: hlasovac]
       text: 'Co si myslite o....'
    

    Samozřejmě i když je tady snaha o lineární flow control, pořád jsme v zajetí request-response, takže musí mít napaměti kdy ta aplikace se bude vykreslovat kdy podnikne nějakou akci a opět dojde k vykreslování.

  • 3. 2. 2007 19:06

    petr (neregistrovaný)
    třeba u www.espolubydlici.cz to bylo použito