Laajenna kaikki Sulje kaikki
Dokumentin nimi: HtmlEditTbox luokkakuvaus
Dokumentin tekijät Juha Lähteenmäki
Dokumentin jakelu: Juha Lähteenmäki
Dokumentin jakelun rajoitukset Ei rajoituksia
Viimeksi muokattu: 16.07.2003
Dokumentin versiotiedot: (esim. Työversio (beta 1.0),Versiosykli nro 1) versio 1.0, versiosykli 2, valmistumis pvm: 16.7.03
Dokumentin kattavuus: Kattaa luokan/moduulin rajapinnan kuvauksen
Dokumentointi malli: STEP työversio beta 1, SoftaSpec Versio 1.0 beta 3
Liittyy osana dokumenttiin: HtmlEditCtrl SoftaSpec
Osan pakollisuus: Pakollinen kaikissa järjestelmissä/komponenteissa.
Dokumentin muutoksia: (ekan version valmistumisen jälkeen) (18.6.03, Juha)
  • Päivitetty dokumentti ajan tasalle toteutuksen jälkeen (Pieniä lisäyksiä)

(21.6.03, Juha)

  • Lisätty Cut, Copy ja Paste ToolBar:n perustilassa näkyviksi nappuloiksi
  • Lisätty eReadOnly tila  modeen

(22.6.03, Juha)

  • Päivitetty kontrollin kuvat

(16.7.03, Juha)

  • Päivitetty Dokumentointimallin nimi, tarkastettu

 

 

- Rajapintakuvauksissa käytetyt symbolit

Rajapintasymbolien selitykset
Public Interface
Internal Interface
Public Class
Internal Class
Public Property
Protected Property
Internal Property
Private Property
Public Event
Internal Event
Public Const/Enum
Protected Const/Enum
Internal Const/Enum
Private Const/Enum
Public method
Protected method
Internal method
Private method

 

Käyttöliittymäkuvauksen rajapintasymbolit
Button (painonappi)
ImageButton (kuvapainonappi esim. työkalupaletissa)
CheckBox (valintanappi)
Grid (Gridi)
TextBox
RadioButton
ListBox
DropDownList (ComboBox)
Label
TabControl
DropDownMenu

- Yleistä

Nimi: (myös nimiav.) Web.UI.WebControls.HtmlEditTbox
Kuvaus: (tehtävä)  

Kontrollin pääluokka ja ulospäin näkyvä rajapintaluokka. Päävastuualueena on kontrollin toiminnan ja rakentamisen koordinointi, osien yhdistäminen ja rajapinnan tarjoaminen

 

Versio: 1.0, versiosykli 2
Kehitetty osana projektia: HtmlEditCtrl versiosykli 2
Näkyvyysalue: Public
 

Emo komponentin ja/tai paketin nimi:

(jos sisältyy kiinteästi johonkin pakettiin joka ei vaihdu eri projektien puitteissa)

 

 Sisältyy komponenttiin HtmlEditTbox

Arvioidut käyttömahdollisuudet eri projekteissa (Yleiskäyttöisyys aste)

  • 3 (3R)= Täysin yleiskäyttöinen ja tod. näk. hyödyllinen

  • 2 (2R)= Yleiskäyttöinen muttei ehkä hyödyllinen (esim. kapeahko projektispesifinen sovellusalue)

  • 1 (1R)= Osittain yleiskäyttöinen eli vaatii muokkausta ennen uudelleen käyttöä (tai vain tietyt metodit)

  • 0 = Vain tämän projektin käyttöön. Muissa projekteissa korkeintaan pohjana tai mallina

Huom. Yleiskäyttöisyyden arvioinnissa on huomioitava myös luokan riippuvuudet muihin luokkiin/moduuleihin. Yleiskäyttöisyys aste on riippuvuuksien perusteella sama kuin riippuvuussuhteista heikoimman luokan/moduulin yleiskäyttöisyys. R numeron perässä tarkoittaa että ko. luokka on yleiskäyttöinen ryhmänä (komponenttina) eli yhdessä tiettyjen luokkien/moduulien kanssa. Tässä tapauksessa on lueteltava muut moduulit/luokat joiden kanssa annettu yleiskäyttöisyys aste täyttyy.

 

 3R HtmlEditTbox-kontrolliin liittyvät muut luokat
yksinään 0

Suorat riippuvuudet:

(luettelona, tarvittaessa luokkakaavio)

 

 

- Käyttöliittymän kontrollit

HtmlEditTbox:n ulkoasu on normaalisti suunnilleen seuraava:

 

1) Perusmoodissa (eBasic)

 

2) Advanced moodissa (eAdvanced)

 

3) ReadOnly moodissa (eReadOnly) Vierityspalkki toimii mutta ToolBar:ia ei näy eikä kontrollin tekstiä voi muuttaa

 

Koska kontrollin käyttöliittymän muodostamisesta vastaavat aliluokat: HtmlEditTboxToolBar ja HtmlEditTboxTextBox. Ei varsinaisen kontrolliluokan (HtmlEditTbox) alla ole pääkehystä (myMainTable) lukuun ottamatta kontrolleita. Käyttöliittymä kontrollit on siis tarkemmin listattu kummankin aliluokan moduulikuvauksen yhteydessä.

 

Jäsenkontrollit
Kontrolli Kuvaus
myMainTable Taulukko kontrolli (ASP.NET Table)--> toimii kontrollin pääkehyksenä johon toolbar ja editTextbox lisätään

 

- Rajapinta

Tähän on merkitty näkyviin vain sellaiset kantaluokan metodit, propertyt tai eventit joiden totetusta tämä periytetty luokka muuttaa. Näissä tapauksissa taulukossa selityksen perässä on suluissa (inherited from kantaluokan nimi). Linkit kantaluokkien/rajapintojen kuvauksiin ennen varsinaista luokkakuvausta.

Näkyviin ei ole merkitty private-tason metodeja, jäsenmuuttujia tai propertyjä. Näkyviin ei myöskään ole merkitty sellaisia protected/internal tason metodeja jotka eivät ole ulkoisen käytön/arkkitehtuurin ymmärtämisen kannalta olennaisia.

Metodien parametrit jätetään kuvauksissa vielä avoimiksi. Suuntaa antavia metodien parametrilistoja voidaan luokkakuvauksiin merkitä mutta tarkat parametrilistat liitetään vasta CodeCommentReporteihin.

Periytyy:

Luokka/rajapinta Kuvaus (erityisesti kantaluokkanäkökulmasta)
System.Web.UI.WebControls.WebControl  

.NET:n WebControllien kantaluokka. Kantaluokan valmiiksi tarjoamat ominaisuudet ja yhtenäinen rajapinta muiden WebControllien kanssa tekevät periyttämisestä ehdottomasti järkevimmän ratkaisun.

 

 

Rajapinta
Rajapintametodi/property/eventti Kuvaus

 

Public

EHtmlEditTboxState  

Enumi joka kuvaa HtmEditTbox-kontrollin mahdollisia tiloja. Tilat ovat eBasic (käyttöliittymä basic-moodissa) ,  eAdvanced (käyttöliittymä advanced moodissa) sekä eReadOnly (Toolbar-piilossa ja käyttöliittymä ReadOnly moodissa) (ks. Edellisen lukukappaleen kuvat)

Virhekäsittely:-

Mode:EHtmlEditTboxState  

HtmEditTbox-kontrollin tila. Mahdolliset tilat ovat eBasic (käyttöliittymä basic-moodissa), eAdvanced (käyttöliittymä advanced moodissa), sekä eReadOnly (ks. Edellisen lukukappaleen kuvat)

Oletus: eBasic

Virhekäsittely:-

ToolBar:HtmlEditTboxToolBar  

HtmEditTbox-kontrollin ToolBar:iin liittyvät ominaisuudet. ToolBar:n tarjoamat julkiset propertyt löytyvät HtmlEditTboxToolBarModuleSpec:stä. Property on readonly eli ToolBar:ia ei voi kerralla asettaa mutta sen yksittäiset ominaisuudet ovat muutettavissa

Oletus: ToolBar ko. moodia vastaavassa oletustilassa

Virhekäsittely: Jos lapsikontrollien alustus jostakin syystä epäonnistuu viittaus aiheuttaa NullReferenceException:in

EditTextBox:HtmlEditTboxTextbox  

HtmEditTbox-kontrollin TextBox:iin liittyvät ominaisuudet. TextBox:n tarjoamat julkiset propertyt löytyvät HtmlEditTboxTextboxModuleSpec:stä. Property on readonly eli TextBox:ia ei voi kerralla asettaa mutta sen yksittäiset ominaisuudet ovat muutettavissa

Oletus: TextBox: ko. moodia ja sourcevalintatilaa vastaavassa oletustilassa

Virhekäsittely: Jos lapsikontrollien alustus jostakin syystä epäonnistuu viittaus aiheuttaa NullReferenceException:in

TboxHTMLSaved

 

Eventti joka nousee kun HtmlEditTbox:n teksti tallennetaan (kun painetaan Save-nappulaa). Parametrina välitetään src = HtmlEditTbox ja eventtiargumenttiluokkan HtmlEditTboxEventArgs ilmentymä.

Virhekäsittely:-

 

 

Protected

(Huom. Tähän osaan merkitty näkyviin vain pakolliset protected metodit eli mikäli muita metodeita tarvitaan on niitä mahdollisuus lisätä)

CreateChildControls()  

Luo lapsikontrollit ja kontrollin pääkehyksen. Toimii seuraavaan tapaan:

  1. Luo kontrollin pääkehyksen (myMainTable) ja siihen toolbar-solun sekä editTextBox-solun.


  2. Tämän jälkeen luo HtmlEditTboxToolBar ja HtmlEditTboxTextBox oliot välittäen niiden rakentajille vastaavan taulukon solun kontrollimatriisin (ControlArray)


  3. Lisää pääkehyksen omiin lapsikontrolleihinsa (this.Controls.Add)

Huom. arvoja ei vielä tässä vaiheessa alusteta.

(inherited from WebControl)

Tämä toiminto voidaan tarvittaessa jakaa sopiviin palasiin joko protected tai private tasolla.

Virhekäsittely: Ei mietitty

OnPreRender(System.EventArgs e)  

Alustaa lapsikontrollit EditTBox:n renderöintikuntoon. (Esim.  tyylit ja mitat) seuraavaan tapaan:

  1. Alustaa kontrollin pääkehyksen (myMainTable) leveys = 100% korkeus = 100% jne.


  2. Kutsuu HtmlEditTboxToolBar ja HtmlEditTboxTextBox olioden Initialize() metodeita

  3. Lisää sivulle tarvittavat skriptit kutsumalla HtmlEditTboxToolBar sekä HtmlEditTboxTextBox:n tarvittavia skriptimetodeita ja lisää näihin myös omat koko kontrollia koskevat skriptinsä

(inherited from WebControl)

Tämä toiminto voidaan tarvittaessa jakaa sopiviin palasiin joko protected tai private tasolla.

Virhekäsittely: Ei mietitty