i2group / analyze

Develop and deploy custom Java extensions and REST API client code for i2 Analyze. View the Java API documentation.
https://i2group.github.io/analyze/
MIT License
37 stars 30 forks source link

How to add a selectList (combo-box) with the "user interface extension" #50

Closed ehurtadog closed 3 years ago

ehurtadog commented 6 years ago

Hello,

We are using DAOD connectors to add data to the portal, in some of them, we use the implementation of the ExternalDataContextResults functionality to retrieve several values for an entity. The problem is that there are too many resulting items so we have the need to filter them by a period of time (year, month, etc).

I have gone through the user interface extension project and I found that I can add elements to the GUI in order to generate some additional actions.

Therefore, I have two questions:

1.- I was wondering if there's a way in which I can add a selectList (instead of SimpleCommand) or I can embeed more options inside another one in order to ask the user for period of time he wants to be retrieved by the connector, let's say, something like this:

eia period select

Moreover, I'm thinking on this approach because I can't see another way to prompt the user for the time period.

2.- I need to share the period selected by the user with the DAOD Connector so, once achieved the GUI goal, I would like to know what's the best approach to share this value with the Data Adapter Subset.

The best way I'm thinking about would be sharing an object through the file system as I don't know how to communicate the Intelligence Portal GUI with the VM.

I'm not too much into C# so I don't know the best way to achieve this.

Best regards. Henry

TonyJon commented 6 years ago

Hi Henry

You say that you use ExternalDataContextResults to retrieve several results for an entity.

Do you mean that you have an entity then are doing a Show Context from the portal UI using the IExternalDataRetrievalService to return an ExternalDataResults type with the results of a getContext on that service but are finding that you have too many returned Items? (Let me know if this is not the case but I will assume that this is what you are doing for the moment).

If that is the case then I can see that you could get caught out by the fact that we do not have an implementation of that which allows paging or filtering.

What number of results are you trying to cope with and where are you trying to display them? On an ANB chart or in the Portal visualization?

1: You ask about being able to create multi level commands in the UI but I am afraid that this is not supported. What you can do, is add a separate command to the menu for each range that you want to offer.

2: The other problem is that , as you have realized, you can not supply the parameter you need to a DAOD getContext to get it to only return a sub set of the results for a date range. So you would need a mechanism outside of the Portal and DAOD interactions to tell your DAOD code to only return a portion of the data matching some criteria that you have some how made available to your code.

You could write your own rest service that your command calls to update a server side resource that your DAOD connector code can access and allow it to alter the range it is working with I guess.

Coming at this from another direction , if you just wanted to search over particular static ranges to minimize your data retrieval then you could use multiple copies of your DAOD connector each configured in your code to only search a specific year or month. The range specification would then be just an extension of the choice you already have for what data connector to use.

Cheers

Tony