-
June 12th, 2009, 09:41 AM
#1
If the above is not acceptable and you need to dynamically filter the events and sub-events in your second page, then I'm afraid you cannot take advantage of a DynaMetapushTable or MultiDynaMetapushTable.
Did you mean after user have selected certain Event from the first page, the second page will subscribes to required item (sub-events) but any new pushed item that came after second page has subscribed which is not the required one will also show on the second page?
If I really have to use the NonVisualtable, where can I get the demo? and perhaps, the MultiDynaMetaPushTable as well. Thank you.
-
June 15th, 2009, 12:23 PM
#2
The whole discussion is becoming complex and I would like to avoid any misunderstanding.
Let me go back one step.
What you cannot do with a DynaMetapushTable or MultiDynaMetapushTable is to filter rows on the client side. These tables show all the rows they receive, according to the items they subscribe to.
Hence, if the item you use on the first page lists all the possible events, you cannot use the same item to feed the second page, where you need to show only a subset of events.
If events A and C are selected, your second page should subscribe to suitable items, like "eventAdetails" and "eventCdetails", that your Data Adapter has to supply. The table is able to show rows from both items.
Then, if the user selects also event E and you want it to appear in the second page, you have to replace the table with a new table which subscribes to "eventAdetails", "eventCdetails" and "eventEdetails".
Is that acceptable?
Otherwise, you must resort to a NonVisualTable.
Your specific scenario is not covered by our examples.
You can see a MultiDynaMetapushTable in the sample installation of Lightstreamer in the Portfolio Demo. The Drop-Down Demo uses a NonVisualTable with COMMAND mode.
-
June 16th, 2009, 02:54 AM
#3
Hi, DarioCrivelli, thanks again for your kind replied.
If events A and C are selected, your second page should subscribe to suitable items, like "eventAdetails" and "eventCdetails", that your Data Adapter has to supply. The table is able to show rows from both items...
What you are talking is the exactly scenario that I want. Just the thing that I don't understand is "subscribes to suitable items", what does it mean and how to do that?
and the statement "...your Data Adapter has to supply...", does it means that I have to add something extra in the adapters.xml other than just with the simple metadata and adapter_class? Following is the content in my adapters.xml:
<?xml version="1.0" ?>
- <adapters_conf id="RBMS_Demo">
- <metadata_provider>
<adapter_class>com.lightstreamer.adapters.metadata .LiteralBasedProvider</adapter_class>
</metadata_provider>
- <data_provider>
<adapter_class>com.lightstreamer.adapters.remote.d ata.NetworkedDataProvider</adapter_class>
<param name="request_reply_port">1001</param>
<param name="notify_port">1002</param>
</data_provider>
</adapters_conf>
Sorry for such many questions, because I couldn't understand it well by just referring to the documentation. Thanks.
-
June 16th, 2009, 07:54 AM
#4
Hi DarioCrivelli, sorry for another question..I'm currently testing on DynaMetapushTable, it work nicely (except the grouping feature), and when I changed to MultiDynaMetapushTable, the web client was not able to display the pushed data. I can see the table row was expanded without displaying any of the pushed data. Following is the code on my client page:
<table>
<tr align="center" class="greenbar">
<td width="10%">LEAGUE</td>
<td width="11%">TIME</td>
<td width="11%">SCORE</td>
<td width="28%">EVENT</td>
<td width="18%">PRICE</td>
<td width="18%">PRICE2</td>
</tr>
<tr id="news" source="lightstreamer">
<td align="center" width="10%"><div source="lightstreamer" field="3">Loading...</div></td>
<td align="center" width="11%"><span source="lightstreamer" field="4">Loading...</span></td>
<td align="center" width="11%"><span source="lightstreamer" field="5">Loading...</span></td>
<td width="28%">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="table_noline">
<tr><td align="left"><span source="lightstreamer" field="6">Loading...</span></td></tr>
<tr><td align="left"><span source="lightstreamer" field="7">Loading...</span></td></tr>
</table>
</td>
<td width="18%">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="table_noline">
<tr><td align="left"><span source="lightstreamer" field="8">Loading...</span></td><td align="right"><span source="lightstreamer" field="10">Loading...</span></td></tr>
<tr><td align="left"><span source="lightstreamer" field="9">Loading...</span></td><td align="right"><span source="lightstreamer" field="11">Loading...</span></td></tr></table>
</td>
<td width="18%">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="table_noline">
<tr><td align="left"><span source="lightstreamer" field="12">Loading...</span></td><td align="right"><span source="lightstreamer" field="13">Loading...</span></td></tr>
<tr><td align="left"></td><td align="right"><span source="lightstreamer" field="14">Loading...</span></td></tr></table>
</td>
</tr>
</table>
<script>
var schema = ["command","key","eventid"];
var undschema = ["sfe","datetime","score","teama","teamb","hhandica p","ahandicap","home","away","overunder","over","u nder","bgcolor"];
var group = ["news"];
var mode = "COMMAND";
//var schemaCommand = "key command sfe datetime score teama teamb hhandicap ahandicap home away overunder over under bgcolor";
//var commandTable = new DynaMetapushTable("NewUser", schemaCommand, "COMMAND");
var commandTable = new MultiDynaMetapushTable(group, schema, mode, undschema);
//TABLE
commandTable.setSnapshotRequired(true);
commandTable.setRequestedMaxFrequency(0.5);
//VISUALTABLE
commandTable.isPushedHtmlEnabled(true);
commandTable.setPushedHtmlEnabled(true);
commandTable.setClearOnDisconnected(true);
commandTable.setClearOnRemove(true);
commandTable.setClearOnAdd(true);
//DYNAMETAPUSHTABLE
commandTable.onChangingValues = formatValues;
commandTable.onItemUpdate = updateItem;
commandTable.setMaxDynaRows("unlimited");
commandTable.setMetapushFields(2, 1);
commandTable.setMetapushSort(4, true);
lsPage.addTable(commandTable, "news");
</script>
adapters.xml:
<?xml version="1.0" ?>
- <adapters_conf id="RBMS_Demo">
- <metadata_provider>
<adapter_class>com.lightstreamer.adapters.metadata .LiteralBasedProvider</adapter_class>
</metadata_provider>
- <data_provider>
<adapter_class>com.lightstreamer.adapters.remote.d ata.NetworkedDataProvider</adapter_class>
<param name="request_reply_port">1001</param>
<param name="notify_port">1002</param>
</data_provider>
</adapters_conf>
I'm actually just change the Table type to MultiDynaMetapushtable and the schema. When I try pushing data to the client, the table row is expanding but without any data display. Just wondering if I miss anything or set something wrong on the adapters/web client/the push application (the push application is written in vb.net by referring to the .net hello world example).
-
June 16th, 2009, 09:16 AM
#5
Your Data Adapter currently supplies an item called "NewUser", i.e. the Subscribe method recognizes the "NewUser" name and supplies data accordingly. All other items needed, as "eventAdetails" and "eventCdetails" in my example, should be managed in the same way. No configuration change is needed; just an extension of the adapter source code.
If the item for the first page supplied data for the first level events, like:
key=eventA command=ADD name=confederation cup
key=eventB command=ADD name=nba finals
then the "eventAdetails" item would supply updates for second level events, like:
key=match1 command=ADD team1=Italy team2=USA
key=match2 command=ADD team1=Spain team2=New Zealand
and so on.
The Data Adapter should do all the work.
About the MultiMetapushTable, it seems that you just tried to rewrite the client page with no modification on the Data Adapter side. The client code shown assumes that for each possible value of the "key" field coming with the "news" item, an item with that name is also supplied by the Data Adapter; this is how the MultiMetapushTable works. Have you extended your Data Adapter accordingly?
-
June 25th, 2009, 05:43 AM
#6
Hi DarioCrivelli, thanks for your kind reply.
Have you extended your Data Adapter accordingly?
I've refer to the sample demo adapter and the documentation but not understand
I found a tutorial on NonvisualTable with Command mode from Alessandro, it works quite well for me. Grouping and filtering can be apply since the display can be customize (I have simply tested and works well, should be OK, have to further testing though).
I discovered a thing during testing, where the snapshot will be clear after the web client been idled sometimes (without doing anything, refresh etc.). Do you have any idea on this? Please correct me if I'm wrong. Thanks.
-
June 26th, 2009, 08:39 AM
#7
So, you have managed to get the desired behavior by resorting to a NonVisualTable, with client side filtering.
Ok. I hope that the data that gets filtered out is not too much, because this could pose scalability issues.
As far as I understand your new problem, we have never observed anything similar (but for the case that the Server is shut down).
Can you please provide us with a more detailed description of what happens?
What do you mean by "snapshot"? This word has a special meaning in Lightstreamer and I'm not sure if you mean a Lightstreamer snapshot or something else.
Similar Threads
-
By AndyKelly in forum Client SDKs
Replies: 1
Last Post: July 7th, 2010, 10:50 AM
-
By AndyKelly in forum Adapter SDKs
Replies: 0
Last Post: July 6th, 2010, 10:34 AM
-
By sarbao in forum General
Replies: 1
Last Post: April 16th, 2009, 08:59 AM
-
By tuongkha in forum Client SDKs
Replies: 4
Last Post: March 19th, 2008, 10:10 AM
-
By gerald.logor in forum Client SDKs
Replies: 1
Last Post: November 5th, 2007, 01:36 PM
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
All times are GMT +1. The time now is 09:53 AM.
Bookmarks