PDA

View Full Version : [texts] problem using encapsulated text classes


amelard
10-27-2004, 08:24 AM
Hi

I am trying the Laszlo system, I came accross a problem, I want to define text classes with different font / colors, for exemple title, body, etc.

here is the code:

<class name="title" extends="text">
<attribute name="width" value="${mainWindow.width/2}" />
<attribute name="font" value="congab" />
<attribute name="fontsize" value="18" />
<attribute name="fgcolor" value="0xDD0000" />
</class>
<class name="corps" extends="text">
<attribute name="width" value="${mainWindow.width/2}" />
<attribute name="x" value="10" />
<attribute name="fgcolor" value="0xFFAA00" />
<attribute name="multiline" value="true" />
</class>
<class name="quote" extends="corps">
<attribute name="fgcolor" value="blue" />
</class>


Now, I load the text specified in an xml file:

<texts>
<home>
<title>Photography</title>
<corps>
<![CDATA[
<u>(Greek "drawing with light" from photos = light, and graphis = stylus, paintbrush or graphe = representation by means of lines, drawing)</u><br/>Photography is the technique of recording, by chemical or mechanical means, a permanent image on a layer of material sens.
]]>
</corps>
</home>
<storyline>
<title>StoryLine</title>
<intro>Cum lupa saepius ad parvulos veluti ad catulos reverteretur, Faustulus, pastor regius, rem animadvertit, eos tulit in casam et Accae Laurentiae coniugi dedit educandos.</intro>
<main>Interea Remum latrones ad Amulium regem perduxerunt, eum accusantes, quasi Numitoris greges infestare solitus esset; Remus itaque a rege Numitori ad supplicium traditus est: at Numitor, considerato adolescentis vultu, haud procul erat quin nepotem agnosceret. Nam Remus oris lineamentis erat matri simillimus, aetasque tempori expositionis congruebat. Dum ea res animum Numitoris anxium teneret, repente Romulus supervenit, fratrem liberavit, et Amulio interfecto, avum Numitorem in regnum restituit.</main>
<conclusion>Deinde Romulus et Remus urbem in iisdem locis ubi expositi educatique fuerant condiderunt; sed orta est inter eos contentio uter nomen novae urbi daret, eamque regeret; adhibuere auspicia. Remus prior sex vultures, Romulus postea, sed duodecim, vidit. Sic Romulus augurio victor Romam vocavit; et ut eam prius legibus quam moenibus muniret, edixit ne quis vallum transiliret. Quod Remus irridens transilivit; eum iratus Romulus interfecit, his increpans verbis: "Sic deinceps malo afficietur quicumque transiliet moenia mea." Ita solus potitus est imperio Romulus. ROMULUS, ROMANORUM REX PRIMUS</conclusion>
</storyline>
<author>
<title>The Author</title>
<img>photo/alex.jpg</img>
<desc>Romulus imaginem urbis magis quam urbem, fecerat: deerant incolae. Erat in proximo lucus: hunc asylum fecit. Eo statim multitudo latronum pastorumque confugit. Cum vero ipse et populus uxores non haberent, legatos ad vicinas gentes misit, qui societatem conubiumque peterent. Nusquam benigne legatio audita est: ludibrium etiam additum: "Quidni feminis quoque asylum aperuistis? Id enim compar foret conubium." Romulus aegritudinem animi dissimulans ludos parat: indici deinde finitimis spectaculum iubet. Multi convenere studio etiam videndae novae urbis, maxime Sabini cum liberis et coniugibus. Ubi spectaculi tempus venit, eoque deditae mentes cum oculis erant, tum, dato signo, virgines raptae sunt: et haec fuit statim causa bellorum.</desc>
</author>
<pics>
<title>Pick a Pic</title>
<desc>Romulus imaginem urbis magis quam urbem, fecerat: deerant incolae. Erat in proximo lucus: hunc asylum fecit. Eo statim multitudo latronum pastorumque confugit. Cum vero ipse et populus uxores non haberent, legatos ad vicinas gentes misit, qui societatem conubiumque peterent. Nusquam benigne legatio audita est: ludibrium etiam additum: "Quidni feminis quoque asylum aperuistis? Id enim compar foret conubium." Romulus aegritudinem animi dissimulans ludos parat: indici deinde finitimis spectaculum iubet. Multi convenere studio etiam videndae novae urbis, maxime Sabini cum liberis et coniugibus. Ubi spectaculi tempus venit, eoque deditae mentes cum oculis erant, tum, dato signo, virgines raptae sunt: et haec fuit statim causa bellorum.</desc>
</pics>
</texts>

I display this text like that:

<window title="main" id="mainWindow"
x="140"
y="70"
width="${canvas.width-250}" height="410"
closeable="true" resizable="false">
<view width="50%" height="50%" align="center" valign="middle">
<simplelayout axis="y" />
<text id="mainWindowText" height="${immediateparent.height}" width="${immediateparent.width}" multiline="true">
<datapointer id="process" xpath="photosXml:/photos/texts/">
<method event="ondata">
this.selectChild();
do {
var mytext = this.getNodeText();
this.parent.addText("&lt;"+this.getNodeName()+"&gt;"+mytext+"&lt;/"+this.getNodeName()+"&gt;"+"&lt;br /&gt;");
Debug.Write(this.parent.getText());
}while(this.selectNext());
this.selectParent();
</method>
<method event="oninit">
this.selectChild()
</method>
</datapointer>
</text>
<view width="${parent.width}">
<button text="Next" align="right" valign="top">
<method event="onclick">
mainWindowText.clearText();
process.selectNext();
</method>
</button>
<button text="Prev" align="left" valign="top">
<method event="onclick">
mainWindowText.clearText();
process.selectPrev();
</method>
</button>
</view>
</view>
</window>

Here is an extract of the debuger:

<title>Photography</title><br /><corps><u>(Greek "drawing with light" from photos = light, and graphis = stylus, paintb

The problem is that the classes <title> and <corps> are not effective, the text is still black... although the <u> is displayed as underlined, I cannot understand... Please help !

Alexandre.