Pa da počnemo već jednom...
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Kao šef core tima, i čovek sa najvećom glavom na projektu (čitaj glavni :))
a posle mnogo razmišljanja, došao sam do sledećeg predloga, po kome će početi
da se radi od ponedeljka. Naravno ukoliko nema nekih kardinalnih propusta.
1. Razdvajamo GUI klasu od klase koja sadrži vrednosti atributa primitive,
onako kako sam uradio u poslednjem primeru.
2. Svaka manipulacija nad atributima primitive spada u nadležnost core
biblioteke. Dakle ako treba izmeniti boju, GUI zove API koji to radi, a ovaj
ga obaveštava signalom da se ažurira. Videti poslednji primer.
3. Prefiks svih klasa je EDA
4. Šema imenovanja klase sa atributima i njene GUI reprezentacije je sledeća:
EDACompPrimitive<koja> i EDACompPrimitive<koja>Data
5. Komponente se sastoje iz primitiva.
6. Za početak primitive će biti sledeće:
- Linija
- Pravougaonik (može i zaobljen da bude)
- Luk (krug je poseban slučaj luka, tako da nema potrebe za posebnom
primitivom)
- Pin
- Tekst
Pet komada, mislim da je za početak puna kapa.
7. Atributi svake od primitiva:
- Linija
* početna i krajnja tačka
* boja linije
* vrsta linije (puna, isprekidana, crta-tačka...)
- Pravougaonik
* početna tačka (gornji levi ugao)
* dimenzije
* boja linije
* vrsta linije
* boja ispune (fill)
* vrsta ispune (puna, vrsta šrafure...)
* koeficijent zaobljenja uglova
- Luk
* centar
* poluprečnik
* početni ugao
* krajnji ugao
* boja linije
* vrsta linije
* boja ispune
* vrsta ispune
- Pin
* početna tačka
* krajnja tačka
* boja
* vrsta (ulazni, izlazni...)
* tekst (npr. redni broj ili oznaka kao Vcc, A15, D6...). Ovo ćemo rešiti
tako što ćemo imati primerak klase tekst unutar primerka pin
- Tekst
* početna tačka
* sam tekst
* font
* boja
8. Svi atributi su privatni ili zaštićeni za klasu u zavisnosti od potrebe, a
pristupaće im se preko get-set fazona
9. Operacije nad primitivama su sledeće:
- pomeranje za određeni vektor
- rotacija za određeni ugao
- prevrtanje (flip) po obe ose
- promena veličine
10. GUI mora da obezbedi mrežu (grid) za crtanje i poravnanje (snap-to-grid).
Sve ovo može da se uključi ili isključi.
11. GUI bi trebalo da osmisli izgled i palete sa alatima.
12. GUI bi trebalo da obezbedi pored pojedinačnog i grupno uređivanje
svojstva primitive dijalogom (fazon: desni taster, pa properties).
Evo male ideje kako da nemate glavobolju sa switch-case, i da ovo radi
uvek bez obzira koliko vrsta primitiva dodavali kasnije:
U baznoj klasi GUI primitive definišete čist virtuelni metod koji će biti
namenjen za grupno uređivanje, a u izvedenim klasama ga preklopite tako
da pravi dijalog koji je primiren klasi primitive.
13. Core tim će obezbediti u data klasi signal za GUI klasu da se nešto
promenilo kako bi GUI klasa znala da treba da se ažurira.
14. I/O tim neka razmisli kako sve ovo strpati na disk.
NAPOMENE:
Za sve timove:
- Grupisanje primitiva u komponentu ćemo da odradimo čim dobijemo
koliko toliko stabilnu core biblioteku.
- U ponedeljak core tim počinje sa projektovanjem, tako da sve primedbe
na tačke 1. do 14. iznesite do nedelje uveče, jer će posle toga biti
prihvatane samo one koje ukazuju na teške gluposti i greške.
Za GUI tim:
- Konsultujte se između sebe, i kažite šta mislite da možete, i šta
mislite da ne možete da uradite. A i naručite API od core tima, pa ćemo da
razmotrimo jel možete da ga dobijete ili ćete morati da se snalazite sa
onim što ćemo vam dati.
Za I/O tim:
- Vidite da ako ikako možete I/O operacije uradite preko plugina, da bismo
imali spreman framework, kad budemo počeli da provaljujemo formate drugih
programa.
Za core tim:
Javite mi se na mail da prodiskutujemo o sistemu klasa, API-ju i načinu
rada. Naravno uradite cc na sve članove tima.
Valjda nisam sve žive smorio dužinom poruke...
- --
Pozdrav,
Toplica
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFAfwXCtKJqksC6c0sRAu5uAJ9vRNIv+oAl5AC9SV14B5UHdbE1lgCfVTJu
T+5OCe8EomX2JpmYP2+enWQ=
=8KXE
-----END PGP SIGNATURE-----
Hash: SHA1
Kao šef core tima, i čovek sa najvećom glavom na projektu (čitaj glavni :))
a posle mnogo razmišljanja, došao sam do sledećeg predloga, po kome će početi
da se radi od ponedeljka. Naravno ukoliko nema nekih kardinalnih propusta.
1. Razdvajamo GUI klasu od klase koja sadrži vrednosti atributa primitive,
onako kako sam uradio u poslednjem primeru.
2. Svaka manipulacija nad atributima primitive spada u nadležnost core
biblioteke. Dakle ako treba izmeniti boju, GUI zove API koji to radi, a ovaj
ga obaveštava signalom da se ažurira. Videti poslednji primer.
3. Prefiks svih klasa je EDA
4. Šema imenovanja klase sa atributima i njene GUI reprezentacije je sledeća:
EDACompPrimitive<koja> i EDACompPrimitive<koja>Data
5. Komponente se sastoje iz primitiva.
6. Za početak primitive će biti sledeće:
- Linija
- Pravougaonik (može i zaobljen da bude)
- Luk (krug je poseban slučaj luka, tako da nema potrebe za posebnom
primitivom)
- Pin
- Tekst
Pet komada, mislim da je za početak puna kapa.
7. Atributi svake od primitiva:
- Linija
* početna i krajnja tačka
* boja linije
* vrsta linije (puna, isprekidana, crta-tačka...)
- Pravougaonik
* početna tačka (gornji levi ugao)
* dimenzije
* boja linije
* vrsta linije
* boja ispune (fill)
* vrsta ispune (puna, vrsta šrafure...)
* koeficijent zaobljenja uglova
- Luk
* centar
* poluprečnik
* početni ugao
* krajnji ugao
* boja linije
* vrsta linije
* boja ispune
* vrsta ispune
- Pin
* početna tačka
* krajnja tačka
* boja
* vrsta (ulazni, izlazni...)
* tekst (npr. redni broj ili oznaka kao Vcc, A15, D6...). Ovo ćemo rešiti
tako što ćemo imati primerak klase tekst unutar primerka pin
- Tekst
* početna tačka
* sam tekst
* font
* boja
8. Svi atributi su privatni ili zaštićeni za klasu u zavisnosti od potrebe, a
pristupaće im se preko get-set fazona
9. Operacije nad primitivama su sledeće:
- pomeranje za određeni vektor
- rotacija za određeni ugao
- prevrtanje (flip) po obe ose
- promena veličine
10. GUI mora da obezbedi mrežu (grid) za crtanje i poravnanje (snap-to-grid).
Sve ovo može da se uključi ili isključi.
11. GUI bi trebalo da osmisli izgled i palete sa alatima.
12. GUI bi trebalo da obezbedi pored pojedinačnog i grupno uređivanje
svojstva primitive dijalogom (fazon: desni taster, pa properties).
Evo male ideje kako da nemate glavobolju sa switch-case, i da ovo radi
uvek bez obzira koliko vrsta primitiva dodavali kasnije:
U baznoj klasi GUI primitive definišete čist virtuelni metod koji će biti
namenjen za grupno uređivanje, a u izvedenim klasama ga preklopite tako
da pravi dijalog koji je primiren klasi primitive.
13. Core tim će obezbediti u data klasi signal za GUI klasu da se nešto
promenilo kako bi GUI klasa znala da treba da se ažurira.
14. I/O tim neka razmisli kako sve ovo strpati na disk.
NAPOMENE:
Za sve timove:
- Grupisanje primitiva u komponentu ćemo da odradimo čim dobijemo
koliko toliko stabilnu core biblioteku.
- U ponedeljak core tim počinje sa projektovanjem, tako da sve primedbe
na tačke 1. do 14. iznesite do nedelje uveče, jer će posle toga biti
prihvatane samo one koje ukazuju na teške gluposti i greške.
Za GUI tim:
- Konsultujte se između sebe, i kažite šta mislite da možete, i šta
mislite da ne možete da uradite. A i naručite API od core tima, pa ćemo da
razmotrimo jel možete da ga dobijete ili ćete morati da se snalazite sa
onim što ćemo vam dati.
Za I/O tim:
- Vidite da ako ikako možete I/O operacije uradite preko plugina, da bismo
imali spreman framework, kad budemo počeli da provaljujemo formate drugih
programa.
Za core tim:
Javite mi se na mail da prodiskutujemo o sistemu klasa, API-ju i načinu
rada. Naravno uradite cc na sve članove tima.
Valjda nisam sve žive smorio dužinom poruke...
- --
Pozdrav,
Toplica
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFAfwXCtKJqksC6c0sRAu5uAJ9vRNIv+oAl5AC9SV14B5UHdbE1lgCfVTJu
T+5OCe8EomX2JpmYP2+enWQ=
=8KXE
-----END PGP SIGNATURE-----
- Follow-Ups:
- Pravougaonik 5/5
- From: Vladimir Milojevic <emvlada@verat.net>
- Pravougaonik 5/5
Previous by date: Re: timeline
Next by date: Ko je gde?
Previous by thread: Greska.. Next by thread: Pravougaonik 5/5
Previous by thread: Greska.. Next by thread: Pravougaonik 5/5