I am using cytoscape.js and the cola extension and I am interested in creating a layout similar to.
this example
I would like the neighbours open smoothly like in the example.
Please have look my codepen when i expand the node layout.run() is not
working and if i re-create the layout the affects is not the same like in original cola example.
https://codepen.io/kemalhur/pen/rrOzEq
Thanks
Related
Situation:
I have a pandas dataframe which I convert into an html table via df.to_html(). I then add the DataTables class to the table. This DataTables-table has the following columns:
ID | X | Y | Val |...More columns...| Selection_Criteria |...More columns...
The values in Selection_Criteria can be either 1 or 0. I know that with:
$('#ProductList').DataTable( {
...
"fnInitComplete": function(oSettings, json) { $('#ProductList tbody tr:eq(0)').click(); }
});
(Source: http://code.datatables.net/forums/discussion/38171/automatic-select-of-the-first-row-on-reload)
..it is theoretically possible to select the first row. (In reality, I have not been able to simulate a click for the first row.)
But my question goes more towards: How do I automatically pre-select ALL rows where the value is 1 in Selection_Criteria? What is the best approach? Should this be done client/server side?
In pandas the term "select"(ing) means to screen out that which was not selected for. I know that in a table on a web page, selected can mean being highlighted to stand out from the others. There are a couple of ways you can do this on the server side. You could display two tables, one for each state of Selection_Criteria. This would save you the hassle of trying to select individual rows out of a table in the first place (which would be done with Javascript, not Pandas). While pandas has the ability to add a class to the resulting html, the class is applied to the element.
If you are using jquery you are going to use these pieces. as you haven't put example data I can't be exact.
replace x in the next line with the number of columns the Selection_Criteria=1 is across the table
$( "tr td:nth-child(x):contains('1')" ).addClass('selected');
There are solutions on the backend using beautifulsoup and css selectors, or lxml.etree with xpath selectors. But jquery is going to be the most concise with this problem.
#Aliester. Thank you for the pointer!
This helped me find the solution to my own question. What I did:
1.) Identify row index that I want to select when the table loads.
2.) Pass the index to js.
3.) Loop over the indices and apply the following command to each index entry:
table.row(':eq('+hit_index_row+')').select();
So I am using the API to select each individual row. This works for me and hopefully could be helpful to others as well. It may be a bit hacky, so more elegant suggestions are welcome!
You can do this by providing a function for the "rowCallback" option when initializing the DataTable. https://datatables.net/reference/option/rowCallback
Also it is generally better to use the API methods to select rows instead of just changing the class. I found that the DataTable + Select libraries keep an internal collection of selected row indexes (just current page if serverside processing is on) instead of using the class to resolve selected items.
So while the display will look right, if you just change the class, if you rely on any of the API methods to get selected items later on there will be issues. Additionally just changing the class on the row will not fire any of the "select" events on the table so you can't rely on those either.
Here I am struggling to finding xpath to select the text Book from below Images for Web content and DOM
Advice me how to select book text.
I have done up to this point. May be its strait forward
Xpath I created is :
//*[#class='four columns m-r-3']//following-sibling::h2/strong
image of web content
Try
//h2[#class='font-plus-2 m-b-half']/strong/text()
UPDATE:
Looks there is space in the value for element strong, so you may normalize it as shown below:
//h2[#class='font-plus-2 m-b-half']/strong[normalize-space(.) = 'Book']
Can anyone help me? it seems no way to do this in blend 4
With Blend 4 open, go to Data tab.. hit the second icon from right("Create sample data").. select "Create sample data from class.." and select your class. This will generate sample data source. You can bind your controls to this data source to see the controls filled with sample in Blend designer. HTH.
The method I'm using now - although really less than perfect - is by creating a dummy class which contains a list of items of the original class. I.e.:
class We_Want_Items_Of {}
class Dummy_Class { List<We_Want_Items_Of> Test {get;set;}}
Then you can create a sample datum for the Dummy_Class, which will contain a list of We_Want_Items_Of's. You can then use that list as a data source for, for instance, a ListBox.
I'm looking for a demo project/tuturial of a table view where the cells have several textboxs so it looks like a grid. each line can be edited and save(locally but DB is better).
I found this project before ... but I lost it :_(
I've looked for it in the web for hours now and if you can help me I would appriciate it alot
I think I first found it in:
http://open.iphonedev.com/
But can't find it now...it should look like this:
alt text http://www.flickr.com/photos/48660221#N06/4804793849/
alt text http://www.flickr.com/photos/48660221#N06/4804793569/
It's probably one of these projects: http://open.iphonedev.com/search/grid
I'm doing some drag and drop js testing with selenium-client. It works (taking screengrabs before and after clearly show the elements to switch places), but I'm having trouble programatically asserting the change happened.
Am I mental, or can I not do something like:
selenium.assert_equal("css locator", "expected id of element")
which, in this case, would look something like:
selenium.assert_equal("css=li:nth-child(1)", "li#list_item_2")
Any tips on how to implement this would be great.
Thanks,
Adam
Edit: if I had selenium.get_element that would take a selector and return what it was, I could then perform the assertion in the next step.
i.e.
element = selenium.get_element("css=li:nth-child(1)")
assert_equal(element, "li#list_item_2")
(I think).
Your example won't work because you're comparing two strings that aren't equal. One way to assert that your element has moved would be to use isElementPreset as demonstrated below:
//before drag and drop
assertTrue(selenium.isElementPresent("css=#source li:nth-child(1)"));
assertFalse(selenium.isElementPresent("css=#target li:nth-child(1)"));
//drag and drop code here
...
//after drag and drop
assertTrue(selenium.isElementPresent("css=#target li:nth-child(1)"));
assertFalse(selenium.isElementPresent("css=#source li:nth-child(1)"));
This example uses the Java client API, but it should be easy to work out how to do it in your preferred client API. It will also depend heavily on your application, as the above will check that the element with id of 'target' has one child li element before the drag and drop, and none afterwards. If you have a snippet of your HTML source I might be able to prove a more robust example.