chemical formula in RichEditableText
Hi,
for chemical formulars in my application I need to convert the <sub> tag.
I get the formula from the DataBase. I am able to display the formula but not to edit, because every part stays single.
I would need to merge them to a group but I don't know how. I tried some different ways but nothing works.
// variable with content from DataBase
var txtFormulaXMLFOTemp:String = "";
while(txtFormulaXMLFOTemp.length > 0){
formulaXMLFOSubStart = txtFormulaXMLFOTemp.search("<sub>" );
formulaXMLFOSubEnd = txtFormulaXMLFOTemp.search("</sub>");
if(formulaXMLFOSubStart > -1 && formulaXMLFOSubEnd > -1 && (formulaXMLFOSubEnd > formulaXMLFOSubStart)){
txtFormulaXMLFO = txtFormulaXMLFOTemp.substring(0, formulaXMLFOSubStart);
txtFormulaXMLFOStart = txtFormulaXMLFO;
txtFormulaXMLFOSub = txtFormulaXMLFOTemp.substring((formulaXMLFOSubStart + 5), formulaXMLFOSubEnd);
txtFormulaXMLFOTemp = txtFormulaXMLFOTemp.substring((formulaXMLFOSubEnd + 6), txtFormulaXMLFOTemp.length);
var richTxtFormulaFOStart:RichEditableText;
richTxtFormulaFOStart = new RichEditableText();
richTxtFormulaFOStart.text = txtFormulaXMLFOStart;
hGroupEditView.addElement(richTxtFormulaFOStart);
var richTxtFormulaFOSub:RichEditableText;
richTxtFormulaFOSub = new RichEditableText();
richTxtFormulaFOSub.text = txtFormulaXMLFOSub;
richTxtFormulaFOSub.textFlow.baselineShift = "subscript";
richTxtFormulaFOSub.textFlow.dominantBaseline = "ascent";
richTxtFormulaFOSub.validateNow();
hGroupEditView.addElement(richTxtFormulaFOSub);
}
else{
txtFormulaXMLFO = txtFormulaXMLFOTemp;
txtFormulaXMLFOEnd = txtFormulaXMLFO;
var richTxtFormulaFOEnd:RichEditableText;
richTxtFormulaFOEnd = new RichEditableText();
richTxtFormulaFOEnd.text = txtFormulaXMLFOEnd;
hGroupEditView.addElement(richTxtFormulaFOEnd);
}
<s:HGroup id="hGroupEditView" x="0" gap="0" width="100%" alignmentBaseline="descent" textAlign="left" mouseEnabled="true">
<s:RichEditableText id="editorFO"
maxHeight="20"
focusEnabled="false"
editable="true"
multiline="false"
breakOpportunity="none"
selectionChange="editor_selectionChangeHandler(event);"
change="setDisplayEdit(event)">
</s:RichEditableText>
</s:HGroup>
My future goal:
Below "editorFO" is a ButtonBarButton with some further possibilities to change the formula (bold, underline, add greek letters).
That works like shown in other examples:
protected function subBtn_clickHandler(evt:MouseEvent):void {
var txtLayFmt:TextLayoutFormat = editor.getFormatOfRange(null,
editor.selectionAnchorPosition,
editor.selectionActivePosition);
txtLayFmt.baselineShift = (txtLayFmt.baselineShift == BaselineShift.SUBSCRIPT ? BaselineShift.SUBSCRIPT : BaselineShift.SUBSCRIPT);
editor.setFormatOfRange(txtLayFmt,
editor.selectionAnchorPosition,
editor.selectionActivePosition);
editor.setFocus();
}
Any help is most appreciated.
Thanks, Ellen
