Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 371151 - UI for working with plugin service properties
Summary: UI for working with plugin service properties
Status: CLOSED WONTFIX
Alias: None
Product: Orion
Classification: ECD
Component: Client (show other bugs)
Version: 0.4   Edit
Hardware: PC Windows 7
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Curtis Windatt CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 373407 374604 (view as bug list)
Depends on:
Blocks:
 
Reported: 2012-02-09 17:25 EST by Susan McCourt CLA
Modified: 2017-01-10 15:42 EST (History)
6 users (show)

See Also:


Attachments
Display services as resizable scrollable div (19.67 KB, patch)
2014-11-25 14:31 EST, Curtis Windatt CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Susan McCourt CLA 2012-02-09 17:25:05 EST
I know Anton did work to click on a service link name and see the properties dump in the console.  I thought this was a pretty cool solution for seeing the properties without cluttering the more user oriented plugins page.

However, I can't seem to make it work.  I clicked on the name, nothing happens in Chrome or FF, or at least I don't see stuff in my console.  I think that either I didn't understand how to invoke the feature, or maybe it was not released yet.

I think we need some way to see the properties or else we really are going to have to leave a link to the old plugins page handy.  That is why I'm marking this RC1...so we can decide what to do
Comment 1 Anton McConville CLA 2012-02-10 14:19:36 EST
When you see a 'JavaScript Object' as a value for an item in a service table in the carousel, you can click on that to see a live dump of the object in the console. That string will change color when hovered over, and offers a tooltip.

This is a backdoor way for now - taking advantage of the object traversal in the console, as opposed to building our own ui - ultimately, I think if you have to start digging into the object itself it is the land of debug, and this plugins user interface is arguably not the place for that data. I even have qualms about including what I did, but figure it is discreet and doesn't impact users that don't want to know more.

The old plugins page only offered a print of the object [object][object] etc.

I've tested this on what was committed and it seems to work for me - not on IE though, since its console doesn't offer the capability that the others do.
Comment 2 Susan McCourt CLA 2012-02-10 17:32:00 EST
Sorry, I just misunderstood the feature when we were talking about it ST.
I thought that clicking on the service name "orion.page.link" etc. would cause a dump of all the service properties (vs. just a dump when you click the object one).  

Since the bug is open (ha!) I'll retarget it to the longer term issue.

As we've discussed before, the plugins page perhaps is the wrong place completely to work with service properties.  Maybe the best thing to do long term is a link to a page for service properties.

The thins I could imagine wanting:
- see and edit service properties live.
- see all declarations of a service (such as "orion.page.link") in an aggregated list from all plugins
Comment 3 Susan McCourt CLA 2012-03-06 13:28:27 EST
I have a short term problem in bug 373407.
Comment 4 Susan McCourt CLA 2012-04-04 17:00:57 EDT
I've been doing a fair bit of work lately where I have to see various properties and long URI's on the service declarations.  I have to say that I find the carousel pattern pretty cumbersome for working with service properties.  The crux of the problem as I see it is that services aren't visually distinctive.  There's no image thumbnail or other visually distinctive aspect of a particular service definition that makes it worth browsing visually in a carousel.  They all look the same really, it's just text and properties.  

So I'm left to click one by one until I find what I need, and then if the data is complex, it might clip (bug 373407).

If I were browsing music albums, or movie posters, or app icons, or anything visually distinctive, a carousel makes more sense.  Another issue is that I'm rarely "browsing" the services in a plugin to see what it has implemented.  I'm usually wanting to get at something specific.

I think we discussed awhile back that the plugins page user wasn't expected to care deeply about the service properties.  They are just trying to browse what they have installed, etc.  So maybe the service properties don't need to be shown at all, or just an overview of the names of the services.  Maybe a carousel makes sense here (what does this plugin do?), if you had icons for each kind of service contribution, you could use a carousel to look at images representing "editor commands" or "banner links" or whatever.  (I'm kind of working backwards here, making the data fit the carousel...)

For plugin developers that need to see what the service properties are, it's a frustrating view of the world.
Comment 5 Susan McCourt CLA 2012-05-07 12:13:45 EDT
I've been thinking about this some more and think I have a pretty simple proposal to solve some of the current pain points with working with plugin service properties without cluttering the end user/plugin catalog view of the world.  The "a-ha" I had this weekend is that the service extension data is best navigated via an editor outliner.  So it would work like this:

* get rid of the service carousel and instead provide a link to something like "plugin services" or "developer info"...
* we implement a services.html page that can hash on the plugin (non-hash means all services)
* the service page groups the info by service extension point (with an optional plugin filter based on the hash).  You can see all services and which plugins contribute them.  The plugin info next to the service can show the developer related info.  The ones important to me:
** plugin URL (what is installed)
** link to the plugin source.  If the user has specified a workspace location, we can edit it.  If the user has not, we can open the editor read only
* implement an editor outliner for plugins that shows service declarations and editor properties.  
* you can also filter by service on the page..."show me all orion.page.link extensions".  

I think this would address the current issues in bug 374604, 373560, 373407, 376540, and 371544 and the implementation is pretty simple:
- a tabular list of services
- a preference for tying a plugin to its source code
- a simple plugin metadata outliner

What do you all think?
If we think this is the way to go, I can take this bug...
Comment 6 Susan McCourt CLA 2012-05-07 12:19:47 EDT
(In reply to comment #5)
> The plugin info next to the service can show the developer
> related info.  The ones important to me:
> ** plugin URL (what is installed)
> ** link to the plugin source.  If the user has specified a workspace location,
> we can edit it.  If the user has not, we can open the editor read only

Implied but not mentioned explicitly, the third thing here
 ** current metadata values and properties of the plugins.  We wouldn't edit them here, but it's important to know what the system thinks the value is vs. what the editor or read only view would show you.  This is for the "I pushed to github but gh-pages is taking way too long" scenario, where your source has one thing but the deployed plugin has not caught up yet.
Comment 7 Susan McCourt CLA 2012-05-07 12:27:15 EDT
this also means we need a way to open the read only editor on a non-workspace file (at its install location).  Not sure we can do that yet.  At that point you would never need to link the plugin itself, just to the editor opened on its source.
Comment 8 Anton McConville CLA 2012-05-07 16:06:21 EDT
If this seems the best user interface for services, then I support it, and I'd be grateful if you took the bug, Susan.

The only input I have about it is that I spoke with Mark a week or so ago about the problems with the carousel. I agree that the carousel in this case is not appropriate. We looked at the UI Eclipse offers for extensions which is a split list of services on the left hand side and a table entry on the right hand side when each is selected.

I had intended to replace the carousel with a similar interface. I could make them appear in the same way from the plugin page in a measured layout.

That's my only alternative, but if you think that moving to this new proposed solution is preferable, then let's do that.

(In reply to comment #7)
> this also means we need a way to open the read only editor on a non-workspace
> file (at its install location).  Not sure we can do that yet.  At that point
> you would never need to link the plugin itself, just to the editor opened on
> its source.
Comment 9 Susan McCourt CLA 2012-05-08 12:01:57 EDT
(In reply to comment #8)
> The only input I have about it is that I spoke with Mark a week or so ago about
> the problems with the carousel. I agree that the carousel in this case is not
> appropriate. We looked at the UI Eclipse offers for extensions which is a split
> list of services on the left hand side and a table entry on the right hand side
> when each is selected.
> 
> I had intended to replace the carousel with a similar interface. I could make
> them appear in the same way from the plugin page in a measured layout.
> 
> That's my only alternative, but if you think that moving to this new proposed
> solution is preferable, then let's do that.

I don't think these ideas are conflicting at all.  I think what you are proposing is a particular way of navigating the services once you get to the new page.  I haven't drawn a picture yet of the presentation, I was trying to imagine the workflow at a page level:

>* the service page groups the info by service extension point (with an optional
>plugin filter based on the hash).  You can see all services and which plugins
>contribute them.  The plugin info next to the
>service can show the developer related info. 

"You can see all services" didn't literally mean they all appear there, though they could.  Eclipse PDE has that master/details service list, and the LHS is constructed in different ways.  You can see declarations/implementors/or grouped by plugin.  So the master-details could work here.

To me what's key is that the left and side (whether it's master-details or an outliner) has a switch box/filter that lets you control what appears in the left hand side.  Which services?  From which plugins?  For example I might want to see all the implementations of orion.page.link, or I might want to see all services declared by plugin X.  So I think we need some swithc boxes (and URL hashes) to control what's on the left hand side (services per plugin, services of a particular type, etc.)  The alternative is the section outliner where you see the same list on the left but can scroll through all of them.  I think it depends on how much data is there.  (this is going back to bug 368848).

We can iterate this.
I think the main thing I wanted to point out here is that rather than implementing some kind of form UI for editing the properties, we could use the editor/outliner model to quickly take the user to the implementation.  And also that a link to the source is more useful than linking to the plugin itself.
Comment 10 Susan McCourt CLA 2012-05-08 12:03:34 EDT
(In reply to comment #8)
> If this seems the best user interface for services, then I support it, and I'd
> be grateful if you took the bug, Susan.

I'll mark it 0.5 with a caveat that I might not get to it.  
I'll attach sketches when the time comes and hopefully you and Mark can comment...
Comment 11 Susan McCourt CLA 2012-05-21 16:31:43 EDT
removing milestone.
Comment 12 Susan McCourt CLA 2012-10-04 10:53:58 EDT
moving milestone to 2.0 M1 for future triage.
Comment 13 Susan McCourt CLA 2012-10-25 12:29:48 EDT
Simon, did you have plans here?
Comment 14 Simon Kaegi CLA 2012-12-17 16:18:10 EST
I can own it for now but will likely delegate at some point.
Comment 15 Simon Kaegi CLA 2013-06-10 15:25:51 EDT
*** Bug 373407 has been marked as a duplicate of this bug. ***
Comment 16 Simon Kaegi CLA 2013-06-10 15:33:58 EDT
*** Bug 374604 has been marked as a duplicate of this bug. ***
Comment 17 Curtis Windatt CLA 2014-11-25 14:31:20 EST
Created attachment 248925 [details]
Display services as resizable scrollable div
Comment 18 Curtis Windatt CLA 2015-06-23 17:42:05 EDT
http://git.eclipse.org/c/orion/org.eclipse.orion.client.git/commit/?id=10006d34287fd55922a83b7df39ed3b75298d7cd
Provides more useful text than 'JavaScript Object' for the vast majority of cases.
Comment 19 Michael Rennie CLA 2017-01-10 15:42:44 EST
Closing as part of a mass clean up of inactive bugs. Please reopen if this problem still occurs or is relevant to you. For more details see:

https://dev.eclipse.org/mhonarc/lists/orion-dev/msg04002.html