npellet / visualizer Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Currently, the "range" and "normal" sliders are in the same category.
Make a separate range type, with default values for start AND end
In this simple example, there are three views. View 1 has two modules, view 2 has the same modules but at different places. View 3 is empty.
When the header button is used to switch views, the data initialization throws an error.
Try to migrate phylogram to d3 v3 library
Please update the following controllers
dendrogram
jsmol
jsmol_script
phylogram
var_editor
webservice_nmr_spin
Now that more options are available in entry points it should be renamed to something like "Global preferences"
util/util, ln 182
if( stack ) {
eval( ( stack ? 'stack[ "' + jpath + '" ] ' : 'el' ) + '= function( el ) { if (' + ifString + ') return el.' + jpaths2.replace(regNum, "[$1]$2") + '; else return "" }');
}
It's not gonna work, we must return the function if stack is undefined and remove "el = "
Question is, where is it used, besides fasttable ?
Can you tell me a bit how the depencies work so that we may minify it ?
When sorting a fast array viewer the _highlights becomes crazy. Missing a kill highlight ?
Same problem when the value of the table change. The highlight is not reset.
The informations that is now present in the module:
controller.prototype.moduleInformation = {
moduleName: 'Display dendrogram',
description: 'Display a dendrogram based on jit',
author: 'Luc Patiny',
date: '30.12.2013',
license: 'MIT'
};
Could be displayed somewhere. Maybe in the module general configuration.
Is there by the way a possible to update automatically the date when committing the code
Ok so I modified the forms so that we may print any HTML code in a group.
This way we may put some information almost anywhere (not between two fields belonging to the same group)
Now the question is, what do we want to show =D ?
I think we should have detailed information about the module, i.e. what it can actually receive, what it is, what it can send, how it displays the information, what it may do. This is information we already have encoded in the file, or that we could write in a json format and stick it in the controller.
Create a special dev.html page to help developing new features
Say you have a module that listens to highlights (jqgrid for example).
With the following sequence of events :
The third event does not occur and you have to highlight a second value to be able to highlight the first again.
To test : http://script-test.epfl.ch/script/Tiny/20140107/LdRwKmtoLM
Hover a value, get out of the table and hover the same value again.
For instance, if no variable in / variable out, action in / action out, we may hide the tab.
Make the difference between a slider and a range using 2 different types. This allows to solve more easily the preferences
In the "global preferences" it is not possible anymore to select a JPath. When trying to click on a arrow to open the item it will quit the drop down menu.
Each time a view is loaded (with the versionloader header), the "Add a module" element is duplicated in the context menu.
We need to put some order in the basic available modules.
In order to change the file system we need to change the way a module is defined.
Currently
"Server interaction": {
"button_url": "Button URL",
}
Each module must include the URL of a folder (relative or absolute) that MUST contain controller.js, model.js and view.js
We could actually think about a 4th file, config.json which contains all the config currently in the controller. Would make a lot of sense then to parse it and create an automatic documentation.
Uncaught ReferenceError: el is not defined init.js:285
10
It would be nice to have the possibility to execute the logic of an event (data treatment, variable preparation) only when necessary, that is when at least 1 variable out or 1 action out is bound to this event.
2D grid only display one molecule
JQgrid is more unpredictable about the number of molecules that will be displayed
In the definition of the modules should we think about
{
moduleName: "Test",
url: "http:// ....",
versions: ["1.0","1.1","2.0"],
defaultVersion: "1.0"
}
In the configuration of a module we could then be able to switch from one version to another. This would allow to test new version of a module easily
The first level variable are not defined by default anymore. The variable are added in the "general preferences" but the corresponding jpath is not displayed
We have to change all
API.listenHighlight(element._highlight)
to
API.listenHighlight(element)
Luc, can you handle this in the modules ?
I'll upgrade the framework
Possible enhancements :
type: "pie"
format for color / value ?
$colors:[]
$values:[]
$size should also work
Accept more than 1 variable in the module, and combine them with the sprintf parameter.
Running "requirejs:compile" (requirejs) task
Tracing dependencies for: init
Error: ENOENT, no such file or directory
'/Applications/MAMP/htdocs/test/SplashScreen/visualizer/build2/usr/datastruct
ures/filelist.js'
In module tree:
init
src/main/entrypoint
Warning: RequireJS failed. Use --force to continue.
Columns with numbers are not rendered and show "Loading" instead.
Seems wrong if it's gitted.
Each time the configuration of a module is saved, a new listener is created, but the previous one is still here.
So in the situation where you edit 5 times de configuration, the "update" function will be called 5 times when an input variable changes
In the example the fasttable on the right does not show the background colors
For specific cases, it could be useful to create a variable filter directly in the view so we do not need to create a file for it and add it to the filter list
Possibility for the user to define his own types
If you try to sort a column in jqgrid the molecules disappear
for each instance of a module, the corresponding "style.css" is loaded into the DOM via the init method.
We need to load it only once
Possibility to execute a function when a module is about to be deleted
For development, we need a default config file. I put it under src/config/default.json but I had to modify the entry point and now it does not match the grunt config that creates default.json in src/
Add a possibility to resize a view (and each module relative to its new size)
If you are too fast when you hover the mouse on the table, the spectra displayer will stop removing the serie before adding a new one. The series will stack and the page will become very slow.
If you go over the matrix example
http://npellet.github.io/visualizer/src/index.html?config=../testcase/config/default.json&viewURL=../testcase/data/fiber/view.json&dataURL=../testcase/data/fiber/data.json
If you are too fast the spectra superimpose and does not clear the previous. This seems to be an async loading problem
Out event does not work in the testcaee
When clicking on a cell the cell is selected and not the row and it seems that the onClick event is not sent
?config=../testcase/config/default.json&viewURL=../testcase/data/chemcalcLookup/view.json&dataURL=../testcase/data/chemcalcLookup/data.json
When sending a _highlight parameter allow both syntax:
_highlight:["A","B"]
or
_highlight:"A"
Currently the API checks if it is an array and do nothing if it is not
Question.
An element should always have a parent that it is referenced to (according to our previous discussion).
How about an element that could possibly have multiple parents ?
What would happen when you stringify this ?
For instance
var hasMultParents = { "hello": "world" };
var b = {};
var c = {};
b.a = hasMultParents;
c.a = hasMultParents;
var d = [ c,b ];
console.log( JSON.stringify( d ) );
This will output
[{"a":{"hello":"world"}},{"a":{"hello":"world"}}]
Which essentially copies the element.
This could be an issue someday.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.