Bug 214379 - [api] Generalize screen capture UI and other common facilities for cross-project use
Summary: [api] Generalize screen capture UI and other common facilities for cross-proj...
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Mylyn (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P1 enhancement (vote)
Target Milestone: 3.0   Edit
Assignee: Mik Kersten CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-01-04 13:46 EST by Scott Lewis CLA
Modified: 2008-04-30 22:51 EDT (History)
6 users (show)

See Also:


Attachments
mylyn/context/zip (119.28 KB, application/octet-stream)
2008-04-30 22:51 EDT, Mik Kersten CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Scott Lewis CLA 2008-01-04 13:46:33 EST
Currently Mylyn has a wizard-based screen capture user interface.  Several other projects (e.g. ECF) have the need for a screen capture UI for different purposes (in ECF's case, for transmission to others via IM rather than/in addition to saving to file).

For user simplicity, it would be helpful to have one (extensible) user interface for doing screen capture.  It would allow some amount of flexibility on how/what of the screen was captured (e.g. the entire display, workbench, view, selected screen region), how much time delay before the shot is actually taken, and perhaps some basic/flexible editing capabilities (e.g. bug#195691, bug#209897, bug#210020, bug#210179).

For ECF's use cases, it would be helpful to have much of the screen capture user interface be optionally displayed/used, in order to keep the usage easy and lightweight.  Further, it would be desirable to have minimal dependencies on non-swt or jface plugins so that multiple environment (i.e. non-Eclipse) usage is possible.
Comment 1 Boris Bokowski CLA 2008-01-04 16:29:07 EST
We can certainly talk about moving this functionality into Platform UI or IDE at some point. I am not sure if we will have enough time for this in 3.4 though - could the Mylyn code be copied into ECF for now and pushed down after the 3.4 release? This way, you could at least get a consistent UI now, without also having to worry about APIs etc.
Comment 2 Eugene Kuleshov CLA 2008-01-04 17:18:16 EST
Separate plugin would probably address issue with the copying code.
Comment 3 Scott Lewis CLA 2008-01-04 17:54:27 EST
(In reply to comment #1)
> We can certainly talk about moving this functionality into Platform UI or IDE
> at some point. I am not sure if we will have enough time for this in 3.4 though
> - could the Mylyn code be copied into ECF for now and pushed down after the 3.4
> release? This way, you could at least get a consistent UI now, without also
> having to worry about APIs etc.
> 

We (ECF) are open to reusing the Mylyn UI code, especially in the short term, as long as it's in a separate plugin (Eugene's point in comment #2 I think), dependencies are as few as possible (i.e. not on the rest of Mylyn), and it can reasonably be used to support our use cases (i.e. serializing to a remote IM address via ECF datashare rather than to a file).

Comment 4 Scott Lewis CLA 2008-01-06 19:04:36 EST
screen shots of ECF's current screen capture over IM:

http://wiki.eclipse.org/Screen_Captures_over_IM

These shots (or usage) should give some feel for flow and desire for 'lightweight' UI.

Comment 5 Mik Kersten CLA 2008-01-08 12:59:30 EST
Sounds good to me.  We need to make a plug-in with generic Mylyn UI facilities anyway, in order to support dependency-free reuse and easy of moving those to Platform if/when possible.  The current generic UI that three has been interest in dependency-free reuse of include the following, in rough priority order:
* Desktop Notification popups (bug 177974) 
* Screen capture (this bug)
* Adaptive refresh filtered tree (org.eclipse.mylyn.internal.tasks.ui.AbstractFilteredTree)
* Task editor form components (e.g. text rendering, date picking)
* Composite working sets (can aggregate multiple types of elements)

For Mylyn 2.3 we can create a project that holds these, but might not be done wit hthis bug until 3.0, since we may need to iterate once ECF tries it.  

First thing we need to do is settle on a name for the new plug-in.  The best one might org.eclipse.mylyn.workbench.ui or org.eclipse.mylyn.workbench.  

Boris: any suggestions for naming of this plugin?  Note that we don't have an org.eclipse.mylyn.ui space, but  use org.eclipse.mylyn.<foo>.ui/core and have leaned away from not adding the ".ui" since some projects that started out with no need for a split have ended up split.
Comment 6 Mik Kersten CLA 2008-02-21 00:43:41 EST
This bug is triggering a restructuring of some of our common UI components and will need to wait until 3.0.  I'm still not sure what the right name for the plug-in is.  The thing that makes it even more challenging, is that some of the things that go into it could potentially find a better home elsewhere (e.g. Desktop Notification popups would be nice to have in Platform).  My current thinking is that this go into a plug-in called org.eclipse.mylyn.workbench, and that the packages are either provisional or internal so that they can move without causing API breakage.  This would violate our goal of making Mylyn plug-ins not use internals from other Mylyn plug-ins, but that exception might make sense in this case.
Comment 7 Eugene Kuleshov CLA 2008-04-23 18:19:47 EDT
It would be neat to have an option to submit screenshots to Imagebin site which is quite popular on #eclipse irc channel. See http://imagebin.org/index.php?page=add
Comment 8 Mik Kersten CLA 2008-04-30 22:51:36 EDT
This is now done, and triggered the creation of the Mylyn Commons API: http://wiki.eclipse.org/Mylyn_Integrator_Reference#Commons_API

Scott: the screenshot facility is currently embodied in a generic wizard page.  It's possible to make that a more generic component, e.g. if embedding in a view or editor was desirable.

Willian: note that we still need to figure out what to do about the IImageCreator interface, since it doesn't provide much right now.  Once we have another client of the screenshot capture we could consider expanding on this interface, or making an abstract class, which hides some of the implementation of the screenshot capture facility while still make it possible to embed and grab contents from.
Comment 9 Mik Kersten CLA 2008-04-30 22:51:41 EDT
Created attachment 98289 [details]
mylyn/context/zip