Hi,
As usual, please watch the attached video to see a demonstration of the issue.
The question is: how do I maintain the desired text alignment after the font size has been changed?
I'm still confused about why I have to play with the offset.
I would have expected the left and right X offsets to be 0 and 1 respectively, but if I do that the text falls outside the node!
Hence my settings of 0.25 and 0.75 which seem to work.
Here's the code that I am using to set the text alignment:
function AlignText(alignment) {
var obj = new Object();
obj.textAlign = alignment; // left, right or center
for (var i = 0; i < diagram.model.selectedItems.children.length; i++) {
var object = diagram.model.selectedItems.children[i];
if (diagram.getObjectType(object) == 'node') { // A node or a text object
if (diagram.getObjectType(object) == 'text') { // text object
if (object.textBlock) {
if (alignment == 'left') {
obj.horizontalAlign = ej.datavisualization.Diagram.HorizontalAlignment.Left;
obj.offset = ej.datavisualization.Diagram.Point(0.25, 0.5);
} else if (alignment == 'right') {
obj.horizontalAlign = ej.datavisualization.Diagram.HorizontalAlignment.Right;
obj.offset = ej.datavisualization.Diagram.Point(0.76, 0.5);
} else {
obj.horizontalAlign = ej.datavisualization.Diagram.HorizontalAlignment.Center;
obj.offset = ej.datavisualization.Diagram.Point(0.5, 0.5);
}
diagram.updateLabel(object.name, object.textBlock, obj);
}
} else { // node
if (object.labels[0]) {
if (alignment == 'left') {
obj.horizontalAlign = ej.datavisualization.Diagram.HorizontalAlignment.Left;
obj.offset = ej.datavisualization.Diagram.Point(0.25, 0.5);
} else if (alignment == 'right') {
obj.horizontalAlign = ej.datavisualization.Diagram.HorizontalAlignment.Right;
obj.offset = ej.datavisualization.Diagram.Point(0.75, 0.5);
} else {
obj.horizontalAlign = ej.datavisualization.Diagram.HorizontalAlignment.Center;
obj.offset = ej.datavisualization.Diagram.Point(0.5, 0.5);
}
diagram.updateLabel(object.name, object.labels[0], obj);
}
}
} else { // Must be a connector
if (object.labels[0]) {
if (alignment == 'left') {
obj.horizontalAlign = ej.datavisualization.Diagram.HorizontalAlignment.Left;
obj.offset = ej.datavisualization.Diagram.Point(0.25, 0.5);
} else if (alignment == 'right') {
obj.horizontalAlign = ej.datavisualization.Diagram.HorizontalAlignment.Right;
obj.offset = ej.datavisualization.Diagram.Point(0.75, 0.5);
} else {
obj.horizontalAlign = ej.datavisualization.Diagram.HorizontalAlignment.Center;
obj.offset = ej.datavisualization.Diagram.Point(0.5, 0.5);
}
diagram.updateLabel(object.name, object.labels[0], obj);
}
}
}
}
Thanks in advance for any advice on how to fix this.
Jim
Attachment:
Syncfusion__Text_Alignment_with_Font_Change__07Jun2015_644655f.zip