mysticfall / pivot4j

Pivot4J provides a common API for OLAP servers which can be used to build an analytical service frontend with pivot style GUI.
Other
128 stars 99 forks source link

Improving multi selection in Hierarchy Configuration panel #85

Open klaudiusz223 opened 11 years ago

klaudiusz223 commented 11 years ago

Deselecting with "Ctrl" button doesn't work. Implementing multi selection with the "shift" button.

And maybe in the future implementing filtering. Something similar to http://www.primefaces.org/showcase/ui/picklist.jsf

mysticfall commented 11 years ago

@klaudiusz223 Could you be more specific please? I checked the 'ctrl-click' functionality just now, but it seemed to work alright to me.

By the way, I initially considered using a pick list component, but gave up the idea since it wouldn't allow any hierarchical / partial selection.

For example, with the current implementation, you can select only [Time].[1997].[Q1] and [Time].[1997].[Q2] excluding [Time].[1997] itself.

With the pick list component, all members need to be shown as flattened items (without depth, like Saiku) and it would be hard to select/deselect based on hierarchical structure.

klaudiusz223 commented 11 years ago

I checked the 'ctrl-click' functionality just now, but it seemed to work alright to me.

Selecting with "ctrl-click" works also for me, but when something is selected, I'm not able to deselect it with "ctrl-click"

I initially considered using a pick list component ...

I've thought only about adding filtering in current hierarchical implementation.

mysticfall commented 11 years ago

@klaudiusz223 Ah.... figured it out the deselecting problem. I initially thought you meant deselecting members from the right panel to the left.

But I am still trying to understand what you want with the picklist. You mean adding a picklist somewhere in current hierarchy config dialog? If so, it'd be very helpful for me to understand your suggestion if you could elaborate a little more how and for what it can be used in such a context.

On a side note, even I don't prefer in generally to write about non technical things in an issue tracker, I want to express my thanks for your effort in reporting those issues for the project.

You seem to have an uncanny ability to dig up critical issues which I overlooked. I'll try to be fast in dealing with those problems.

I'm writing it here, since you don't have an email address in your profile so I don't know how otherwise to contact you.

Anyway, you are really helping the project to move forward. Thank you!

klaudiusz223 commented 11 years ago

What I mean is to add a filter/find field to the current hierarchical component (not changing current component to the pick list). It will be useful about big and/or depth hierarchies. When someone writes a text in the search field then hierarchical component will show all members that match this text and all of ascendants of these members.

For example

1

And after writing some text

2

I'm not sure if this is easy to implement or if this should be implemented as a new prime faces component but this is not the most important feature nowadays .

mysticfall commented 11 years ago

Ok, now I understand what you meant. Actually, I did exactly the same thing with my commercial project which is also based on Pivot4J.

However, there was some severe usability problems since I could not find any viable, standard (that is non Mondrian specific) method to efficiently search members in a hierarchy.

It's not viable to just iterate over the tree since it would take so much time with a big hierarchy. So I tried with querying the Olap4j's metadata instead but it did not completely solve the performance problem.

As a last resort, I used a search engine (Lucene/Solr) to pre-index every members of each registered data sources. It worked, but it needs large amount of time before the indexing is finished so I'm still not sure if it was the best approach available.

Of course we could just filter what is already loaded on screen. But in that case, I'm afraid the usefulness of the feature would not worth the trouble, and your image also clearly shows that we need to filter unloaded members as well.

So, if you don't object or have a better idea than mine how to efficiently implement it, I'll just clear the milestone and defer this issue until that hurdle is cleared.

By the way, the main issue with the ctrl-click is already resolved and commited to the repository.

Thanks!