CS4 to CS5 Changes

Noticed Changes
Just getting started with CS5 and encountering a few changes.

Interesting is that that the .lockState property has been removed from Text Frames. Well Text Frames and a few other items. I suppose that since it is the story of the frame that is locked it makes sense, but why the change now?

.checkIn () & .checkOut ()
Similar to the .lockState, the .checkIn and .checkOut methods have been moved to the story. The easy fix in all of these cases is to insert .parentStory in front of .lockState or .checkOut() or .checkIn().


Paragraphs of Selection

Handy for certain tasks
This is another function that I tend to use when needing to work with paragraphs. I recently came across it again and thought it was fine time to share.
The basic premise is that if the user has some text selected and you want to automate something with regard to the whole paragraphs that have any part selected, then you need something like this.
With all the ifs, switches, etc., this code sure does go marching off to the right, but that is just the way it is. It doesn't have to be pretty, it just has to work.

function getParagraphsOfSelection () {
//-- G E T P A R A G R A P H S O F S E L E C T I O N
//-- Generic: Yes.
//-- Purpose: To return an array of paragraphs relating to the selection
//-- or false if there is no selection or an error.
//-- Written: 10 March 2009 by Jon S. Winters from a prior work.
//-- eps@electronicpublishingsupport.com

//-- Determine is there in an appropriate selection.
try {
//-- Initialize the object
var myObject = false ;
//-- Check for a selection.
if(app.documents.length != 0){
if(app.selection.length != 0){
//Process the objects in the selection to create a list of
//qualifying objects (text frames).
case "TextFrame":
myObject = ( app.selection[0].parentStory.paragraphs ) ;
if(app.selection.length == 1){
//If text is selected, then get the parent text frame.
case "Text":
case "InsertionPoint":
case "Character":
case "Word":
case "Line":
case "TextStyleRange":
case "Paragraph":
case "TextColumn":
myObject = ( app.selection[0].paragraphs );
} //-- end of switch
} //-- end of if selections == 1
} //-- end of switch
} //-- end of app.selection.length
} //-- end of app.documents.length
} //-- end of try
catch (caughtError) {
return {} ;
return myObject ;
}//-- End of function