-
Notifications
You must be signed in to change notification settings - Fork 97
EclipseAndCSS
Eclipse is a Java-based framework for creating applications.
At its core is the extensible OSGi plug-in system. Application code is split into modular bundles called Plug-Ins. The Eclipse runtime loads required plug-ins and their dependencies. Plug-ins can describe software interfaces as Extension Points, and other plug-ins then register their implementation of these interfaces in the Eclipse Registry, allowing loose coupling of software components.
The Eclipse Rich Client Platform (RCP) provides an extensive user interface framework based on extension points. While this was originally developed for the Eclipse Java IDE, RCP can be used independently from the IDE to create applications like CSS.
An Eclipse Product combines the plug-ins that you want to use at your site with site-specific settings for access to network, database etc. You add a 'Welcome' screen that guides users through their initial steps, and the result is then a homogeneous application that your users can for example download from a web page.
When looking for Books on Eclipse, note that you probably don't need books on the Eclipse IDE, since those are for general Java programming. Instead, look for books on RCP, SWT, JFace, Plug-ins, OSGi, for example:
- "eclipse Plug-ins, Third Edition" by Eric Clayberg, Dan Rubel (Addison-Wesley Professional) is an update to "Eclipse: Building Commercial-Quality Plug-ins", which used to be the book on Eclipse, Plug-ins, RCP.
- "Eclipse Rich Client Platform (2nd Edition)" as well as "OSGIi and Equinox", both by Jeff McAffer, Jean-Michel Lemieuxr, Chris Aniszczyk (Addison-Wesley Professional) seem to cover relevant topics as well
With Eclipse evolving at a rapid pace, all books quickly become obsolete. The online help of the Eclipse RCP IDE and a google search are often the fastest way to get specific information.
- http://www.eclipse.org/swt/snippets -- Snippets of SWT code
While Eclipse allows you to build arbitrary applications, CSS provides plug-ins that help with control system tasks like accessing live or historic data, handling user permissions or sending information to a log book. For help, refer to
- List of most CSS plugins
- Compare Eclipse/CSS with Standalone Control System Tools
- Java doc or JUnit tests in the source code that explain and demonstrate the functionality.
- '@author' information in each source file if you want to contact the original implementor.
- Documentation in the org.csstudio.startuphelper plugin for the suggested way to create a Product for your site.
This CSS 'Guide' steps through installing CSS with an Alarm and Archive system (as used by SNS), starting from fetching the source code, importing it into Eclipse and so on:
These slides from the Spring 2010 EPICS Collaboration Meeting hosted by ITER at Aix-en-Provence, France show
- Basic test-driven Java development in the Eclipse IDE,
- Bundling of code into Plug-ins, creating a simplistic IOC where the Eclipse Registry provides the "glue" between APIs for Records and Links and the actual implementations
- Building a minimal "Probe" type UI for CSS
- https://ics-web.sns.ornl.gov/css/EPICS2010Intro/EclipseCSSDevIntro1.pdf - Slides
- https://ics-web.sns.ornl.gov/css/EPICS2010Intro/nioc.zip - Source code used in the slides
- https://ics-web.sns.ornl.gov/css/EPICS2010Intro/sns_css_src_2.0.1.zip - CSS source snapshot used in the 3rd part of the slides
More CSS Training slides: