FlyingObjects.dwar's picture and description fields [message #304] |
Fri, 02 February 2018 03:45 |
etcdata
Messages: 2 Registered: February 2018
|
Junior Member |
|
|
Hello,
The flyingobjects.dwar file which comes with DW has a picture and description associated with each row in the data table.
Can you point me to some documentation describing how such a visualization file is created?
Thank you.
|
|
|
Re: FlyingObjects.dwar's picture and description fields [message #306 is a reply to message #304] |
Sun, 04 February 2018 19:54 |
thomas
Messages: 715 Registered: June 2014
|
Senior Member |
|
|
There is not official explanation and there is no direct way from DataWarrior to import images or html content.
But you can do that with a little editing of the dwar file in a text editor.
Lets assume you intend to add html and jpeg files to a column named 'Name'. You start with:
-a dwar file without any associated html or jpeg content.
-a folder with html files and one with jpeg files, both to be associated with the rows of the dwar file.
First you need to define one of the dwar's columns to carry the detail information.
This is done by defining column properties. Lets assume you want to add the detail links to
a column called 'Name'. For that you need to extend the column properties section, if there is one.
Otherwise you create a new one just after the </datawarrior-fileinfo> line. For that you add these lines:
<column properties>
<columnName="Name">
<columnProperty="detailCount 2">
<columnProperty="detailType0 image/jpeg">
<columnProperty="detailName0 Picture">
<columnProperty="detailSource0 relPath:images/">
<columnProperty="detailName1 Description">
<columnProperty="detailType1 text/html">
<columnProperty="detailSource1 relPath:html/">
</column properties>
These lines define for the column 'Name' two detail types (indicated by '0' and '1'):
- mime type 'image/jpeg' with the name 'Picture' to be found in a directory 'images'
- mime type 'text/html' with the name 'Description' to be found in a directory 'html'
Likewise you might use 'absPath' to define a complate detail directory path rather than a relative path from the dwar file.
Now you may concatenate detail file references to the respective cell content of the 'Name' column.
For instance you may add to a cell containing the name 'Aermacchi' the following: '|#|0:aermacchi.jpg|#|1:aermacchi.html'.
'|#|' serves as separator. Then comes a number (here 0 or 1) referring to the detail number in the properties section.
After the columns comes the detail file name. It must reflect the defined mime type.
If you open the updated dwar file in DataWarrior, if will show you the detail information. You may
the save the file under a different name and DataWarrior will ask you, whether the detail shall
be imported directly into the dwar file. If you do so, the directories with the individual files are not needed anymore.
I hope, I was clear and this solves your question...
Thomas
[Updated on: Sun, 04 February 2018 19:55] Report message to a moderator
|
|
|
|
|
Re: FlyingObjects.dwar's picture and description fields [message #2033 is a reply to message #2031] |
Wed, 22 November 2023 20:24 |
nbehrnd
Messages: 224 Registered: June 2019
|
Senior Member |
|
|
Hello helloWorld22,
to get familiar with the program's working, the default installation of DW in Linux in path /opt/datawarrior/ provides the wanted file in the folder /opt/datawarrior/example. The same folder provides eight additional demo files, too.* For an installation in OS/X and Windows I assume the pattern to be a similar, if not identical.
Norwid
* boxplots.dwar, costOfLiving2018.dwar, healthAndWealth1950+.dwar, macroWithActivityCliffsAndScaffolds.dwar, polyeder.dwar, processorsAndTransistors.dwar, winterScenery.dwar, and worldfactbook.dwar
[Updated on: Thu, 23 November 2023 08:38] Report message to a moderator
|
|
|
Re: FlyingObjects.dwar's picture and description fields [message #2034 is a reply to message #2033] |
Thu, 23 November 2023 11:24 |
helloWorld22
Messages: 13 Registered: June 2022
|
Junior Member |
|
|
Hi Norwid,
Thanks for pointing out the file in examples folder.
I can find the image in embedded in the flyingObjects.dwar file.
I can now render images from a link inside datawarrior without embedding it.
For anyone who wants to render images dynamically inside datawarrior:
And if your row has a variable, based on which you want to render the image, mention %s
So, for example, the row shows a link and the image in the link needs to be rendered inside datawarrior and also want to show an html page, following changes need to be done in the dwar file:
<columnName="Image URL">
<columnProperty="lookupName0 IC50 IMAGE">
<columnProperty="lookupURL0 <BASE_URL=?>%s">
<columnProperty="lookupCount 1">
<columnProperty="detailType0 image/jpeg">
<columnProperty="detailName0 Picture">
<columnProperty="detailType1 text/html">
<columnProperty="detailName1 Description">
<columnProperty="detailSource1 url/response:%s">
<columnProperty="detailSource0 url/response:<BASE_URL=?>%s">
<columnProperty="detailCount 2">
And the image url column will look like
70199_2_1|#|0:70199_2_1|#|1:<HTML_URL>
<BASE_URL=?> will have the base path and is the end point URI and final url after rendering will be
<BASE_URL=?>70199_2_1
<HTML_URL> is an html page that can be rendered inside DW(remember, javascript will not be rendered and only static html file will be rendered
inside SDK,
you can achieve this by mentioning like this
dwInterface.setColumnProperty(colImage, CompoundTableConstants.cColumnPropertyLookupCount, "1");
dwInterface.setColumnProperty(colImage, CompoundTableConstants.cColumnPropertyLookupName+"0", "IC50 Image");
dwInterface.setColumnProperty(colImage, CompoundTableConstants.cColumnPropertyLookupURL+"0", BASE_IMAGE_URL+"%s");
dwInterface.setColumnProperty(colImage, CompoundTableConstants.cColumnPropertyDetailCount, "2");
dwInterface.setColumnProperty(colImage, CompoundTableConstants.cColumnPropertyDetailType+"0", "image/jpeg");
dwInterface.setColumnProperty(colImage, CompoundTableConstants.cColumnPropertyDetailName+"0", "Picture");
dwInterface.setColumnProperty(colImage, CompoundTableConstants.cColumnPropertyDetailSource+"0", "url/response:"+BASE_IMAGE_URL+"%s");
dwInterface.setColumnProperty(colImage, CompoundTableConstants.cColumnPropertyDetailType+"1", "text/html");
dwInterface.setColumnProperty(colImage, CompoundTableConstants.cColumnPropertyDetailName+"1", "Description");
dwInterface.setColumnProperty(colImage, CompoundTableConstants.cColumnPropertyDetailSource+"1", "url/response:%s");
FYI for others who want to render image inside datawarrior dynamically.
Awesome cheminformatics tool.
Cheers.
[Updated on: Thu, 23 November 2023 17:54] Report message to a moderator
|
|
|