Aptana/Eclipse/PDT is like the cold headache you get from eating ice cream. It seems really great at first, but then you find yourself in so much pain that you forget what you saw in the first place.
I'm setting up a XAMPP environment, with a shared host as an eventual target for the output, along with separate source trees for a bunch of shared "stock" Joomla components/templates/modules/plugins, as well as a source tree for the client's customized site code. After a while, I may need to recreate the XAMPP htdocs area, but anyway an installed htdocs area is never, EVER, sufficient to manage source changes reliably.
So, I bootstrapped the site initially on the shared host, just to put up a work-in-progress page, then found it trivial to pull in sources into a local workspace via Eclipse. Just configure an FTP connection, then configure a local disk connection. After the XAMPP Joomla is installed and bootstrapped (via Joomlapack it is easy), it is a a simple matter to push small changes up to the XAMPP installed directory. Except it doesn't work the other way around. Right clicking on a folder, you'd expect that you could select from the local connection to pull back changes... but it doesn't let you pick the local connection as an option.
I could use Phing, but WTF: I can already use ANT or Phing outside of Eclipse. The one thing I'd like to see in an Eclipse based tool, is SIMPLE features NOT BURIED 10 levels deep, that DIRECTLY eliminate the repetitive tasks of staging files during the development. Instead what I find is that it gets in the way of the work far more than it facilitates it. Currently the staging is too badly broken in Eclipse to pay anything back from the investment of time.
What do I want? I want to be able to tell the IDE simply that when I change a static source file -- one that need not be modified or "built" prior to use -- there is a mapping for where it should be pushed, and a mapping from where it could be pulled, relative to a connection. I thought this was possible with Aptana, but apparently it only kind-of-sort-of works, if and only if the target tree is isomorphic to the source tree. That is a laughably silly implementation for anyone who has done real software work, but it is the (reasonable) result of relying upon external build tools perform the distribution function. Problem is, that's not the way the Web works. Our tools should facilitate the way we work today, not the way a Java coder used to work in the late '90s.