Download presentation
Presentation is loading. Please wait.
Published byOliver Strickland Modified over 9 years ago
1
Zach Musgrave & Jason Fulghum Amazon Web Services March 28, 2013
3
Error Reporting Build Automation and Distribution Responsive UIs Resource Management Data Binding Build on Eclipse Platform Projects Tips and Tricks
4
When your software inevitably breaks.
5
Use Plugin’s getLog() method: ◦ getLog().log(new Status(Status.ERROR, PLUGIN_ID, errorMessage, e)); Or… use StatusManager directly, for more control
7
Help your customers collect basic debugging information before you have to ask Make it as easy as possible to report problems, or you might not find out about bugs before you start losing customers
8
Release early and often; make it easy!
9
Eclipse’s standard release engineering tools Built on Ant, so easy to integrate into existing build processes
11
Plugins and features stored in Amazon S3 Distributed through Amazon CloudFront for fast downloads from edge locations all over the world Old versions remain in Amazon S3 if needed Use Amazon CloudFront access logs feature for download metrics
12
The UI thread is for UI, and nothing else. Really.
13
DON’T DO SYNCHRONOUS IO IN THE UI THREAD! Seriously, not even once.
14
For work that needs customer visibility, but will take some amount of time
15
Pattern for short-lived, but potentially disruptive IO work Example: populate a Combo using data from a web service call
16
From the UI: cancel any running thread, then start a new one From the CancelableThread: do non-UI work (web services calls), then: ◦ Check if canceled ◦ If not, update UI ◦ Otherwise exit Synchronization is important
17
Better performance than regular Tables Use SWT.VIRTUAL to speed them up more
18
Display.asyncExec(Runnable) Display.syncExec(Runnable)
19
Why make X copies when 1 will do?
20
Override AbstractUIPlugin#createImageRegistry()
21
Remember: fonts use file handles! Don’t create a font just to apply it to a control Share fonts as much as possible, and remember to dispose() of them when they aren’t needed anymore Or use shared fonts, like in JFaceResources
22
A cleaner way to implement MVC, but with a steep learning curve.
23
The basic idea: bind your data model to a UI element, and when one changes the other does too IObservableValue model = PojoObservables.observeValue(pojo, “field”); IObservable target = SWTObservables.observeText(text, SWT.Modify); bindingContext.bindValue(target, model);
25
Fields can validate themselves Aggregate status gets rolled up
27
Stand on the shoulders of giants.
28
Tools for developing and deploying web and Java EE applications Used in the toolkit for: ◦ Deploying AWS Java web apps to AWS Elastic Beanstalk through custom server types
29
Vendor neutral platform and tools for working with relational and non-relational data sources Used in the toolkit for: ◦ Connecting to Amazon RDS databases ◦ Browsing and editing Amazon SimpleDB data sources
30
Aggregates data contributed by multiple plugins into a single, hierarchical tree view Good support for drag and drop actions Used in the toolkit for: ◦ AWS Explorer view
31
A miscellany of time-saving advice.
33
Easy pluggable dialog box with an optional custom control area
34
Easy way to create clean, easy to use UIs
35
Used to store hierarchical data to persist preferences and history for views, dialogs, and wizards Allows UIs to be prepopulated with users’ previous selections and history
36
Look for “SDK” packages on update sites
37
Q: How do I implement this interface? A: Copy someone else!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.