2 Replies Latest reply on Feb 23, 2012 1:51 AM by Diego_Pro_Imagem

    Naming an object - Simple?! - Javascript/Windows


      Hey all!


      And again I'm having trouble in a pretty simple thing. I searched for a code that searches the Paragraph Style that i want to, till here no problem. I fount the item, swap to selection tool so that it can change the selection to the text box instead of the text and then I want to name this object. Just that, but I just can't do it! hahahaha


      Take a look:


      var oDoc = app.activeDocument;
      //First loop through all stories then through all paragraphs in each story
      for(n=0; n< oDoc.stories.length;n++){
              // If paragraph style is "Silkeborg" then select paragraph and insert "S " before
              if  (oDoc.stories[n].paragraphs[i].appliedParagraphStyle.name == "referencia") {
      app.toolBoxTools.currentTool = UITools.SELECTION_TOOL;
      // NOMEIA
      app.activeDocument.selection.name= "Modelo";


      It searches for it, if finds it, change to selection tool but just won't name the object. What am I doing wrong?



      Here's some other script that i found that names the object by the same objects label:


      var myDocItems = app.activeDocument.allPageItems;
      for(var i = 0; i < myDocItems.length; i++)
          myDocItems[i].name = myDocItems[i].label;


      And this one works, but this object that searching at my script doesn't have a label, so I can't use it.


      Any tips?!


      Thanks guys! Cya!

        • 1. Re: Naming an object - Simple?! - Javascript/Windows
          [Jongware] Most Valuable Participant

          "Selection" is always an array, so you can't use


          ..selection.name = ..


          you must use


          ..selection[0].name = ...


          Second, "has no label" is not a problem :-) All textframes have a label (and usually it's empty). I don't know whether you should be using "name" or "label" in this case -- I believe the advantage of "name" in CS5.5 is that it will showin the Layers panel.


          Third (!), there is 1. no need to "switch to selection tool" to set a selection, and neither to use app.select.  Javascript allows instant access to everything, so you could simply set the name of any paragraph's outer frame using something like


          oDoc.stories[i].paragraphs[n].parentTextFrames[0].name = ...


          Note that a single paragraph may have more than a single "parent text frame" -- this paragraph maystart in one and end in another.

          • 2. Re: Naming an object - Simple?! - Javascript/Windows
            Diego_Pro_Imagem Level 1

            Outstanding Jongware! As always!


            Here's how it got:

            for(n=0; n< oDoc.stories.length;n++){
                    if  (oDoc.stories[n].paragraphs[i].appliedParagraphStyle.name == "referencia") {
                        oDoc.stories[n].paragraphs[i].parentTextFrames[0].name = "Modelo";


            So simple.


            Thank you so much!