Question
Get Max. Panel based on Table Height
Hi,
I wanted to create a panel with 'n' number of columns based on the table columns. But as of now I have get only 13 columns. Please guide me to add columns as many as based on the table column length.
var sCancel = { en: "Cancel"};
if ( app.activeDocument ) {
//app.doScript( autoSpalte, undefined, undefined, UndoModes.ENTIRE_SCRIPT, localize(sAutoColumn) );
var tables = app.activeDocument.stories.everyItem().tables.everyItem();
for(myCounter = 0; myCounter < app.activeDocument.activeLayer.textFrames.length; myCounter++)
{
// alert("TextFrame : " + app.activeDocument.activeLayer.textFrames.item(myCounter).contents);
myStory = app.activeDocument.activeLayer.textFrames.item(myCounter);
myStory.fit(FitOptions.frameToContent);
// alert(myStory.fit(FitOptions.frameToContent))
if (myStory.constructor.name == "TextFrame")
{
for( var j = 0; j< myStory.tables.length ; j++ )
{
myStory.fit(FitOptions.frameToContent);
var myColumnCount = myStory.tables[j].columns.length
for( var i = 0; i< myStory.tables[j].columns.length ;i++ )
{
// alert(myStory.tables[j].columns.length)
// alert("Width" + myStory.textFramePreferences.textColumnFixedWidth)
// alert("Left"+ myStory.tables[j].cells[i].leftInset)
//alert("Right" + myStory.tables[j].cells[i].rightInset)
if (myStory.constructor.name == "TextFrame")
{
myFrameWidth = myStory.textFramePreferences.textColumnFixedWidth-myStory.tables[j].cells[i].leftInset-myStory.tables[j].cells[i].rightInset;
}
else {
// 210208 Edit: try to get column width instead of simply textframe width
try {
// alert(myStory)
myFrameWidth = myFrame.textFramePreferences.textColumnFixedWidth;
} catch(e) {
myFrameWidth = myStory.geometricBounds[3] - myStory.geometricBounds[1];
}
}
}
}
}
}
}
var nuColumnWidths = new Array();
var nuColumnWidthFields = new Array();
var nuColumnWidthFieldLabels = new Array();
var nuColumnWidthCalc = new Array();
var w = new Window("dialog", "Column Fitting");
w.orientation = "row";
w.alignChildren = "fill";
w.alignment = "fill";
var fields = w.add("group");
fields.orientation = "row";
fields.alignChildren = "fill";
fields.alignment = "fill";
for (var n = 0; n < myColumnCount; n++) {
nuColumnWidths[n]= tables.columns[n].width;
var aPanel = fields.add("panel");
aPanel.orientation = "column";
aPanel.alignChildren="top";
aPanel.ix = n;
aPanel.text = n.toString();
nuColumnWidths[n] = '';
nuColumnWidthFields[n] = aPanel.add("edittext", undefined, nuColumnWidths[n]);
nuColumnWidthFields[n].characters = 2;
nuColumnWidthFields[n].onChange = function() {
var ix = this.parent.ix;
nuColumnWidths[ix] = Number(nuColumnWidthFields[ix].text.replace(/,/g, "."));
// alert(nuColumnWidths[ix] )
nuColumnWidthCalc[ix].value = false;
calcAuto();
}
nuColumnWidthCalc[n] = aPanel.add("statictext", undefined, "");
nuColumnWidthCalc[n].value = false;
nuColumnWidthCalc[n].onClick = function() {
calcAuto();
}
}
//calcAuto();
w.buttons = w.add("group");
w.buttons.orientation = "column";
w.buttons.alignChildren = "left";
w.defaultElement = w.buttons.add("button", undefined, "OK");
//~ w.defaultElement.onClick = okClick;
w.cancelElement = w.buttons.add( "button", undefined, localize(sCancel) );
w.cancelElement.onClick = function() {
this.window.close();
exit();
}
w.center();
var bClickedOK = w.show();
