Java Development with Eclipse, Page 2
Each Resource may be annotated with various kinds of Markers, which can carry an arbitrary set of properties. These are typically used for representing compilation errors, bookmarks, or search result matches. Markers are usually persisted across workbench sessions.
Projects may be shared among multiple workspaces (and machines and users) with the help of Team Support. This set of plug-ins provides the necessary infrastructure for plugging in various version control system implementations. The Eclipse Platform and SDK come with the default CVS team provider.
The Workspace maintains a limited change history for all its Resources. This makes it possible to recover previous versions of Files even without the use of a version control system (in other words, something like a filesystem-level "undo"). There's a limit, however, to how much history is kept. Also, this history is local to the workspace and cannot be shared with other workspaces or team members. Therefore, it is not a substitute for a version control system.
The Eclipse IDE Workbench provides a set of standard functions (typically accessible through the application menu and/or toolbar) and views available in all IDE applications. To see only the base set of menus, please switch to the Resource perspective and close any open editors.
Following the main menu from right to left, the one that I'm sure you'll find most useful is Help. Choosing Welcome opens up a Web-page-like introduction to your Eclipse product (in this case, the Eclipse SDK). It is presented by default the first time you run the application. Selecting Help Contents will open a separate help window, which provides your application's user and developer documentation in the form of hyperlinked Web pages. The documentation is fully searchable. Starting with Eclipse 3.1, there is Dynamic Help, which displays a set of topics relevant to your current workbench activity. Key Assist (also invoked by pressing Ctrl+Shift+L) is invaluable when learning the various keyboard shortcuts (the knowledge of which, trust me, is sure to make you look like an expert). Tips and Tricks will bring you to a special Help topic with helpful suggestions on how to make the most out of your application. Lastly, Cheat Sheets will walk you step-by-step through some common but potentially complex tasks.
Because of their plug-in-based architecture, Eclipse applications can usually be updated with the latest patches and new functionality using the built-in Configuration Management facility. It is accessible through Help -> Software Updates. Whether or not you can obtain online updates depends on your application vendor (Eclipse plug-ins typically come with a pre-configured Web site address of where to look for updates).
You already know some of the functions provided under the Window menu. Aside from managing perspectives, selecting views, and navigating between your views and editors, you can choose to open another workbench windowsomething very useful when working in a multi-monitor environment (note that each new window is based on the same logical workbenchyou don't actually start a new workbench session when you open another window). The very cool New Editor option will open up a new instance of the currently active editor. This will allow you to see (and edit) two or more different parts of the same file which would otherwise not fit into the same window (if you decide to try this and the new editor instance is opened in another editor tab, hiding the original one, just drag the tab to the bottom portion of the editor areathis will "tile" the two editor windows so that you can see both at the same time).
The ability to customize your application can sometimes be a mixed blessingyou have to make your way through a myriad of pages of settings, each often with its own tabs. However, the ability to customize preferences is very important to Eclipse, and thus its Preferences dialog (accessible through Window -> Preferences) has been optimized to support easy navigation and keyword filtering of the various preferences used by the application. All preferences are organized into logical groups, accessible through a tree-like navigator on the left-hand side. Because many preference settings depend on one another, links are provided to easily jump from one to another without having to search through the entire preference tree. The browser-like ability to trace your way back to previously visited preference pages saves you from having to remember the structure of your preference tree. Note that you can share your preference settings with other team members by exporting and importing them using the corresponding wizard (choose File -> Import/Export, then select the Preferences wizard).
The next menu in the main application menu bar is Run. The only standard function it provides is the ability to configure and run external toolsa very important integration point between Eclipse and other tools (if all else fails, you can integrate external tools into Eclipse using this function). The Run menu is typically populated with plug-in-specific functions, depending on the current perspective.
The Project menu is related to the Eclipse Resource model. It provides functions to open and close selected projects, as well as to manage project builds; if you choose not to have Eclipse run your projects' builders incrementally whenever resources change, you can Clean or Build all (or a subset of) your projects manually, at your convenience. The last menu option enables you to open the selected project's Properties dialog.
The Search menu's top option brings up the Search dialog, which gives you the ability to search your workspace for different kinds of resources. Different search tabs provide options specific to the type of resource (for example, Java files) being searched. The type of search supported by default is a simple file search. Search results are displayed in a special view, which is opened as needed. The rest of the Search menu items provide shortcuts to specific search tabs in the Search dialog.
The Navigate menu provides functions that let you navigate through your workspace resources as well as editors, edit locations, and annotations. Because of that, most of its functionality is editor and tool-specific.
The Edit menu groups the typical editing functions, such as Undo, Redo, Cut, Copy, Paste, Delete, Select All, and Find/Replace (also referred to as Global Actions). These are typically available at all times (regardless of what editor is currently active), but exactly what they do depends on the particular editor. (For example, a text editor may allow you to copy the selected text into your clipboard, whereas a drawing editor will copy the selected graphic figures, and so on.)
The last menu in your inverse sequence, albeit one that you'll probably frequent the most, is the File menu. Many of its options are resource-oriented. Others, such as Close, Close All, Save, Save As..., Revert, and Print are editor-related (each editor type provides its own implementation of these). New, Import, and Export options bring up their corresponding wizard selection dialogs. The New sub-menu exposes shortcuts to wizards most relevant in the current perspective. (For example, Java perspective will have a new Package, Class, Interface, and the like.) Exactly which New, Import, and Export wizards are available depends on your application and/or the set of installed plug-ins. At a minimum, you can create new Projects, Folders, and plain text Files; import projects from an external location in the filesystem, and import and export preferences and resources to/from archive files or the filesystem. Rounding up the contents of the File menu, Switch Workspace allows you to switch your workspace without having to restart Eclipse, and Exit will let you go home after a good day's work.
In addition to a standard set of menus, the IDE Workbench provides a number of standard views. Unlike editors, which typically allow you to modify instances of a certain type of resource (such as Java files), views are typically designed to help you find your way around the workbench, workspace, or some other application-specific model. Ordinarily, there's only one view of the same kind that's open at the same time. Although views are not strictly read-only (in fact, many do allow you to make modifications to whatever it is they display), they usually don't provide the same type of editing support as editors do. Both views and editors may provide a context menu that is displayed when their content area is right-clicked (this is something that typical Web users tend to be less accustomed to because Web pages don't provide application-specific context menus). Some context menu options depend on the view's or editor's selection.
In the Resource perspective, the most important view is the Resource Navigator. It displays the contents of your workspacethe projects, folders, and files in an expandable tree. It also lets you manipulate them (rename, delete, and so on). Double-clicking a file will open it in the appropriate editor. Other perspectives, such as the Java perspective, have equivalent views (for example, Package Explorer) that let you navigate the portion of your workspace relevant to that perspective.