Bug 235654 - [ui] Filtered items that are not visible don't install
Summary: [ui] Filtered items that are not visible don't install
Status: RESOLVED FIXED
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: p2 (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 major with 1 vote (vote)
Target Milestone: Kepler M4   Edit
Assignee: P2 Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: helpwanted, usability
: 258461 275480 278275 316686 (view as bug list)
Depends on:
Blocks: 309136
  Show dependency tree
 
Reported: 2008-06-04 13:40 EDT by Ian Bull CLA
Modified: 2013-06-14 16:15 EDT (History)
13 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ian Bull CLA 2008-06-04 13:40:41 EDT
Eclipse 3.4 RC3

I was trying to install both EMF and Ecore tools using p2.  
1. I opened the available software
2. Searched for EMF
3. Selected EMF SDK
4. Searched for ecore tools
5. Selected Ecore tools
6. Hit install

Only ecore tools was going to be installed (note that EMF was currently filtered).  If I clear my selection box before hitting install, they both install fine.
Comment 1 Susan McCourt CLA 2008-06-04 13:59:37 EDT
this is a known limitation that could perhaps be argued to be a feature, but it really is just the result of the implementation.

You can clear and reset the filter to find selections, but it will always honor what is visible.

See bug #229735 comment #7.

Leaving this open because we might want to revisit the behavior when we develop a better solution for asynch checkbox filtering (bug #233269).
Comment 2 Ian Bull CLA 2008-06-04 14:09:22 EDT
I battled pretty hard with this when I implemented the filteredcheckbox tree for the plug-in selection on the launch page.  One option may be to disable the install button while there are items filtered.  (Don't do this for 3.4)

In the PDE I ended up having to keep a separate state of "checked bundles", and manage the checkmarks during the refresh.  

If we ever get around to fixing Bug# 220668, then we can address this issue here.
Comment 3 Susan McCourt CLA 2008-06-04 14:26:28 EDT
I think it would be wrong to disable the install button while filtered.  If you press the button and realize your wizard is missing items that are filtered out of view, it's pretty easy to realize what you need to do about it.  If the install button is disabled, well, you don't really know what to do next.

I think the real fix will be bug #233269...taking the ideas from the PDE solution, from our solution, looking at data binding, etc.  I'm going to work with Boris to try to get something that scales. I agree with him that trying to hack around what is there is really painful and bug-laden.  

I tried some of the other solutions (including your filtered checkbox viewer that PDE uses) but it didn't work.  We have issues involving asynch retrieval of elements that are different than PDE's.  PDE does asynch retrieval to do one initialization sequence and after that everything can be synchronous.  In our case this is not true, and coupled with the accumulation strategy of DeferredTreeContentManager, we had tons of timing problems.
Comment 4 Susan McCourt CLA 2008-06-04 14:31:16 EDT
>In the PDE I ended up having to keep a separate state of "checked bundles", and
>manage the checkmarks during the refresh. 

We do something similar, but because of various timing problems we had save and restore the checkmarks from the filtered tree/filter job rather than keep them in the viewer.  That is why the viewer doesn't know about the checkmarks that aren't visible.
Comment 5 John Arthorne CLA 2008-06-04 14:41:52 EDT
I think you'll get some users confused regardless of which approach you use. I think only installing what the user can see is safer, in that it won't install something they checked earlier but forgot they had checked. Since the install wizard will always preview what will actually be installed, the user has an opportunity to double-check and go back if they missed something. 

We had a similar debate in CVS about the various filtering modes in the Synchronize view, and decided only operating on what was visible had the least chance of surprise.
Comment 6 Ian Bull CLA 2008-06-06 01:33:58 EDT
I agree that disabling the install button was a bad idea.  Users may not know what to do to enable it, but (personally) I don't buy the argument that users would only expect to install the items they see.  Quick filtering (through mylyn, text filters, etc...) is very common in the Eclipse UI, and I imagine that users will search for a number of different units to install, and not necessarily think to disable the last filter.  (Unlike the CVS view, these are very light-weight filters)

That said, I do appreciate that this has some hard technical challenges, (and could potentially confuse others) and the wizard page that previews what will be installed should help avoid confusion.

I suggest we keep this bug open, but don't worry about fixing it (yet). If others think this is a problem, then we can address it.  If I'm the only person that thinks this is a problem then I will close it as invalid.

Susan, John, thanks for all the information.
Comment 7 Susan McCourt CLA 2008-06-06 15:46:16 EDT
Yes, I want to leave this open and make the decision intentionally rather than having it as an artifact of the implementation.
Comment 8 Susan McCourt CLA 2008-12-04 13:55:00 EST
fyi, in bug 257597 I'm considering a "N items selected" label.  This might help if we decide to change our mind on the selection filtering.
Comment 9 Susan McCourt CLA 2008-12-11 11:39:43 EST
Note to self:  if we revisit this, take a look at the new ICheckStateProvider provided in M4 in platform UI.  This may allow us to stop using our copy of ContainerCheckedTreeViewer (and all the checkstate bugs that come with it) and instead just use a checked tree viewer and custom checkstate provider.
Comment 10 Susan McCourt CLA 2008-12-11 14:34:57 EST
*** Bug 258461 has been marked as a duplicate of this bug. ***
Comment 11 Susan McCourt CLA 2009-05-08 18:39:13 EDT
*** Bug 275480 has been marked as a duplicate of this bug. ***
Comment 12 Michael Valenta CLA 2009-05-08 21:19:34 EDT
One thing the description doesn't mention is that the Group Items by Category is also affected by this (See the description in bug 275480 for the dance I had to do to install multiple features, some of which are grouped and some of which are not). If what John mentioned in comment 5 is true, then perhaps using check boxes is not the right answer here. Perhaps an approach like the one used by the PDE import wizard would be better. That is, you have two panes, one which shows the features that can be installed and another that shows those that have been selected. This takes up more real-estate but is less confusing for the user.
Comment 13 Susan McCourt CLA 2009-05-28 16:00:53 EDT
*** Bug 278275 has been marked as a duplicate of this bug. ***
Comment 14 Susan McCourt CLA 2009-09-08 14:30:47 EDT
I'm working on this now, but won't be putting anything in for M2.
Comment 15 Susan McCourt CLA 2009-10-15 15:05:22 EDT
Need to figure out what an unchecked
[ ] Contact all software sites

button behaves like in this model, where you aren't viewing "all sites" and you have selections from multiple sites.  Ideally we would have a provisioning context that included only those sites from which selections were made.
Comment 16 Susan McCourt CLA 2009-10-15 15:12:45 EDT
(In reply to comment #12)
> If what John mentioned in comment 5 is true, then perhaps using check
> boxes is not the right answer here. Perhaps an approach like the one used by
> the PDE import wizard would be better. That is, you have two panes, one which
> shows the features that can be installed and another that shows those that have
> been selected. This takes up more real-estate but is less confusing for the
> user.

My current thinking is that we'll have a status indicator like 
"16 items selected" and if you hover over that indicator you'll get a popup showing you everything you've selected so far.  Note that when you press "Next" you get the confirmation list showing everything you had picked (and drill-down detail if you want to see what requirements will be brought in).
Comment 17 Ian Bull CLA 2009-10-15 15:27:38 EDT
I think PDE reuses this dialog for target management.  This might of interest to them too.  CCing Chris.
Comment 18 Curtis Windatt CLA 2010-04-14 10:44:23 EDT
*** Bug 309136 has been marked as a duplicate of this bug. ***
Comment 19 Jeff McAffer CLA 2010-04-14 11:14:23 EDT
This is more than a polish item IMHO.  Since PDE uses this in the target editor, the clearing of the selection when using the filter field results in the loss of user data.  Elevating this to major.
Comment 20 Susan McCourt CLA 2010-04-14 12:20:52 EDT
(In reply to comment #19)
> This is more than a polish item IMHO.  Since PDE uses this in the target
> editor, the clearing of the selection when using the filter field results in
> the loss of user data.  Elevating this to major.

No data should be lost.  For example (with I-build and Helios in my list of sites among others)

Install New Software
All Available Sites
Type "rel" and select releng
now type "acc" and select acceleo

if you push "next" without clearing the filter you get acceleo only.
If you go back and clear the filter, you get acceleo and releng.

I agree this has usability issues but data is not lost.

I'd really like to reexamine this in a larger context.  Having the double filter of site and then filter text is pretty confusing, and the filter by repo does not exhibit consistent behavior with the text filter.
Comment 21 Jeff McAffer CLA 2010-04-14 12:42:01 EDT
(In reply to comment #20)
> No data should be lost.  For example (with I-build and Helios in my list of
> sites among others)
> 
> Install New Software
> All Available Sites
> Type "rel" and select releng
> now type "acc" and select acceleo

My comments relate to PDE Target Platform management workflows.  When you are installing software the profile has the list and it is essentially an additive operation. In that case, I agree, no data loss.

Curtis closed Bug 309136 as a dupe of this one. Check out the workflow described there.

In that case you are EDITING the target.  That is, it is not additive. The target elements for that site are initially checked. You use the filter to find and add antoher.  Click Finish and, well, all your other data is lost because the target was edited.  If the flow was "what do you want to *add* to the target" then it would he like installing.

> if you push "next" without clearing the filter you get acceleo only.
> If you go back and clear the filter, you get acceleo and releng.
> 
> I agree this has usability issues but data is not lost.

You could argue that this is a just a usability issue and all users of the dialog should always clear the filter before clicking finish but if all users have to do that all the time in order to not lose data, it seems like a problem that should be fixed.  (obviously I have exaggerated and there are useful flows where you have nothing, filter, select something, click finish and are happy. I suggest that that flow is far from the norm.  Users edit their target def many more times after initial creation)

> I'd really like to reexamine this in a larger context.  Having the double
> filter of site and then filter text is pretty confusing, and the filter by repo
> does not exhibit consistent behavior with the text filter.

Agreed however every single time we show people the target definition workflow in tutorials, courses and demos, this bites us and we have to say "don't use the filter field".
Comment 22 Curtis Windatt CLA 2010-04-14 14:35:32 EDT
(In reply to comment #21)
> My comments relate to PDE Target Platform management workflows.  When you are
> installing software the profile has the list and it is essentially an additive
> operation. In that case, I agree, no data loss.

Since this workflow keeps causing issues (see also bug 272725) perhaps I can look (again) at tweaking the PDE workflow in bug 276214.
Comment 23 Susan McCourt CLA 2010-04-14 14:37:37 EDT
(In reply to comment #21)
 
> My comments relate to PDE Target Platform management workflows.  When you are
> installing software the profile has the list and it is essentially an additive
> operation. In that case, I agree, no data loss.
> 
> Curtis closed Bug 309136 as a dupe of this one. Check out the workflow
> described there.

I see.  It's a lot worse there.
Whereas in this bug there was a reasonable debate about the user's expectations, I think when the same UI component is used to reflect an editing state, there's really no debate to be had.

Should we undup the bugs?  I feel your pain here, but my problem is that I'm maxed out with bugs/performance issues, etc., I don't have any cycles to look at usability issues at all.
Comment 24 Susan McCourt CLA 2010-04-14 14:39:06 EDT
(In reply to comment #22)
> (In reply to comment #21)
> > My comments relate to PDE Target Platform management workflows.  When you are
> > installing software the profile has the list and it is essentially an additive
> > operation. In that case, I agree, no data loss.
> 
> Since this workflow keeps causing issues (see also bug 272725) perhaps I can
> look (again) at tweaking the PDE workflow in bug 276214.

Just mid-air collided with Curtis.
Curtis, if the PDE workflow change requires tweaks to the AvailableIUGroup and you can make a patch, I will look at it.
Comment 25 Jeff McAffer CLA 2010-04-14 16:15:00 EDT
Seems like undup'ing would be appropriate. While I agree that PDE is just reusing p2 function, it is clear that the workflows are different.  Over to you Curtis...
Comment 26 Dani Megert CLA 2010-05-20 09:57:45 EDT
Ping. This is a P1 on the polish list. Any chance for 3.6 or at least 3.6.1?
Comment 27 Susan McCourt CLA 2010-05-20 11:38:11 EDT
(In reply to comment #26)
> Ping. This is a P1 on the polish list. Any chance for 3.6 or at least 3.6.1?

This is an annoyance, but discussion in this bug concluded that the PDE target definition workflow was the one with the more severe issue.  (the same code is being used but for different purposes).

Therefore I believe that bug 309136 is the one Jeff was referring to on the polish list.  Jeff, please correct me if I'm wrong about this...
Comment 28 Pascal Rapicault CLA 2010-05-20 14:26:15 EDT
> Ping. This is a P1 on the polish list. Any chance for 3.6 or at least 3.6.1?
  I don't want to rush that. The population of the UI is already slow and doing this sort of verification will make it slower. On top of that it won't necessarily be precise as the filters get more complex.
  Ideally I think additional information is necessary so that what is used to determine what gets shown does not collide with what is used to resolve dependency.

  One thing to note is that in 3.6, the error messages to handle with the installation of a non matching IU has greatly improved, so it makes it easier for ppl to figure out what is going on.

  Btw, where is the list of polish items, and who put that on there and I did not know :)
Comment 29 Susan McCourt CLA 2010-05-20 14:49:58 EDT
(In reply to comment #28)
> > Ping. This is a P1 on the polish list. Any chance for 3.6 or at least 3.6.1?

> 
>   Btw, where is the list of polish items, and who put that on there and I did
> not know :)

Jeff put it on there but he was really referring to the more extreme issues in PDE target definition, where it removes stuff from your target because of the filtering.

In the install UI we don't remove anything, there is no harsh consequence (other than perhaps surprise/annoyance.)...

I have never wanted to look at this for the install wizard without also considering the effect of the repository filter.  If we install not-visible filtered items, do we also install not-visible items that were previously selected in another repo in the combo?  In other words, it's a design issue, not just a "bug" to be fixed now or in a maintenance release.
Comment 30 Jeff McAffer CLA 2010-05-20 16:20:07 EDT
I added this to the polish list when it was suggested that this was the root of the PDE target platform problems.   I'm fine with moving the polish entry to PDE though it seems like the PDE team is not going to get to bug 309136...

As for the polish list itself, its the list we do every year where committers can add items they find and think are particularly important for teams (any team) to look at.  See http://wiki.eclipse.org/Polish3.6 or refer to the minutes of various PMC and planning meetings.
Comment 31 Pascal Rapicault CLA 2010-05-20 20:19:38 EDT
Damn, I just totally confused the issue with another one... Sorry about that. That'll teach me to only rely on the title of the bug rather than the description.

As for the list itself, I must admit that I had not seen it, but I missed a few calls and must not have seen it on the ML.
Comment 32 Pascal Rapicault CLA 2010-06-12 21:02:46 EDT
*** Bug 316686 has been marked as a duplicate of this bug. ***
Comment 33 Ian Bull CLA 2012-11-14 15:09:41 EST
I have a fix for this that works in the 'simple case'. That is, if an item is checked and then hidden by a text filter, then it will stil be installed. If you switch to a different repository and start checking items, the items from the first repository won't be selected anymore.

This should hopefully help in the PDE Target case since you usually create a new 'site' for each p2 repository you want.  

As for the visibility issue -- we are now installing things that are out of view, a user will still have the opportunity to review the list of items on the next page in the wizard.