Book Image

Eclipse Plug-in Development Beginner's Guide - Second Edition

By : Alex Blewitt
Book Image

Eclipse Plug-in Development Beginner's Guide - Second Edition

By: Alex Blewitt

Overview of this book

Eclipse is used by everyone from indie devs to NASA engineers. Its popularity is underpinned by its impressive plug-in ecosystem, which allows it to be extended to meet the needs of whoever is using it. This book shows you how to take full advantage of the Eclipse IDE by building your own useful plug-ins from start to finish. Taking you through the complete process of plug-in development, from packaging to automated testing and deployment, this book is a direct route to quicker, cleaner Java development. It may be for beginners, but we're confident that you'll develop new skills quickly. Pretty soon you'll feel like an expert, in complete control of your IDE. Don't let Eclipse define you - extend it with the plug-ins you need today for smarter, happier, and more effective development.
Table of Contents (24 chapters)
Eclipse Plug-in Development Beginner's Guide Second Edition
Credits
Foreword
About the Author
Acknowledgments
About the Reviewers
www.PacktPub.com
Preface
Index

Chapter 2 – Creating Views with SWT


Understanding views

1. In the Eclipse 3.x model, views must be subclasses of ViewPart. In the Eclipse 4.x model, parts do not need to have an explicit superclass.

2. In the Eclipse 3.x model, views are registered via an org.eclipse.ui.views extension point in the plugin.xml.

3. The two arguments that most SWT objects have are a Composite parent and an integer flags field.

4. When a widget is disposed, it will have its native resources released to the operating system. Any subsequent actions will throw an SWTException with a Widget is disposed message.

5. The Canvas has many drawing operations; to draw a circle, use drawArc(), and specify a full orbit.

6. To receive drawing events, a PaintListener must be created and associated with the control by using the addPaintListener method.

7. UI updates not on the UI thread will generate an SWTException with an Invalid thread access error.

8. To perform an update on a widget from a non-UI thread, use the asyncExec or syncExec methods from Display (3.x) or UISynchronize (4.x) to wrap a Runnable or lambda that will run on the UI thread.

9. SWT.DEFAULT is used to indicate default options in the flags parameter that is passed to the construction of an SWT widget.

10. Create a RowData object with the given size, and associate it with each widget.

Understanding resources

1. Resource leaks occur when an SWT Resource is acquired from the OS but then not returned to it via a dispose method prior to the object being garbage collected.

2. The different types of resources are Color, Cursor, Font, GC, Image, Path, Pattern, Region, TextLayout, and Transform.

3. Run the Eclipse instance in tracing mode, with org.eclipse.ui/debug and org.eclipse.ui/trace/graphics set, specified in a debug file, and launched with -debug.

4. Use the Display.getDeviceData() to get the objects arrays, and iterate through them.

5. The right way is to register a DisposeListener with the view, and the wrong way is to override the dispose method.

Understanding widgets

1. Using the setFocus method to set the focus on a particular widget.

2. Invoking redraw will allow the widget to redraw itself.

3. The combo can have a SelectionListener associated with it.

4. The widgetDefaultSelected is what is called when the default value is used, typically an empty value.

Using SWT

1. Use the Tray and TrayItem widgets.

2. The NO_TRIM means don't draw the edges of the window, or the close/maximize/minimize buttons.

3. Use setAlpha to control a widget's transparency, including shells.

4. setRegion with a path describing the shape.

5. A Group allows you to group things together with a standard item.

6. Most composites use a null layout manager by default; it's only shells and dialogs that have a non-default value.

7. Use a ScrolledComposite.