Friday, January 30, 2009

Latest e4 resource changes

Here is an overview of the changes in the e4 resources available in the latest e4 build:

  1. Editable linked resource locations.

    The user can now conveniently change the location of a linked resource by clicking the "Edit..." button in the resource property page.

  2. Project Linked Resource Variables

    Linked resources that are variable relative can now use a variable list that is defined in the project itself, instead of only relying on the workspace variables. The linked resources can also be specified as relative to the project directory itself, making projects referencing other files outside of the project directory portable across workspace and computers.

  3. Groups
    Groups are virtual folders that the user can use to create an arbitrarily complex logical project independent of the file system hierarchy.

    Groups, as opposed to regular folders, do not exist on the file system and therefor a) do not pickup any additional resources underneath them when a refreshLocal() is performed, and b) can only contain other groups or linked resources as children.

    Groups are fully compatible with the existing 3.4 Core Resource API, and all plugins work just as expected. Groups are seen internally by clients as an linked resource folder with an invalid location (that returns null from getLocation()).

  4. Resource Filters
    Resource filters can be added on any project, folder, linked resource folder or group to automatically build the project structure by limiting what files and folders are visible to the resource workspace layer when a refreshLocal() is performed.

    Resource filters is a powerful feature that allows an Eclipse project to include folders that contains thousands of elements, but only including a fraction of them in the project. As opposed to UI view filters, resource filters are applied at the lowest level, and do not cause resources to be wasted for elements excluded from the directory.

  5. Drag and Drop auto-generation of linked resources

    (A somewhat better version of the video is available here)

    When files are dragged and dropped from Windows Explorer on a projet in the Navigator, the user can choose either to
    1. Copy the files under the target directory (the previous operation)
    2. Create a hierarchy of groups and linked resources replicating the file system file and folder hierarchy<
    3. Create only linked resources

     Linked resources can also be creating when dragging resources from one project to another, transparently transfering the path variables the linked resource might be referring to.  

    Note that this linked-resource drag and drop awareness is currently only available to the Navigator view. 

  6. Linked Resource Editor

    Under the new Linked Resource project property page, a new Linked Resources tab is available. This tab shows a list of all resources in the project, and group them by their location path, being either invalid (for broken paths), absolute paths (which makes them non-portable) and correct paths.

    The user can then easily see which linked resource requires modification, and change it directly in the dialog by choosing the "Edit..." button.

    The user can also automatically convert one or many linked resources to absolute or relatives paths by clicking on the Convert Relative/Absolute button. This command will automatically generate linked resources if needed and try to make the path as portable as possible.


Benjamin Cabé said...

Very interesting features, Serge!
You should think about adding your blog to PlanetEclipse :-)

Serge Beauchamp said...

Thanks for the tip, I just submitted by blog to it :)