Skip to content

Problem with timeline #188

@jaygray0919

Description

@jaygray0919

We want to use Exhibit 3 timeline extension for biological sequences rather than time.

We propose to use CENTURY and DECADE level displays but treat the year as a position along a sequences (generally starting from 0 up to 500 and in some cases low thousands).

Here is an example:
https://afdsi.org/test/exhibit/protein_3/index.html

As you see, we failed to replaced the CENTURY and DECADE level displays with the biological sequence.

David Huynh developed an example illustrating how to do so using:
http://static.simile.mit.edu/exhibit/api-2.0/exhibit-api.js
and
http://static.simile.mit.edu/exhibit/extensions-2.0/time/time-extension.js

The example is here:
http://people.csail.mit.edu/dfhuynh/misc/debug/ksd/protein_noBC.html
and here:
https://afdsi.org/test/exhibit/protein_2_0/index_2_0_.html

However, the example fails because the 2.0 libraries are not online.

Here is a screen shot of what the DavidH example produced, and what we want to reproduce:
https://afdsi.org/test/exhibit/protein_1/images.html

we attempted to use:
http://api.simile-widgets.org/exhibit/2.2.0/exhibit-api.js
and
http://api.simile-widgets.org/exhibit/2.2.0/extensions/time/scripts/timeline-view.js
but that attempted failed as seen here:
https://afdsi.org/test/exhibit/protein_2_2_0/index_2_2_0_.html

here is the DavidH code:

<script type='text/javascript'>
var oldLabelInterval = Timeline.GregorianDateLabeller.prototype.labelInterval;
    Timeline.GregorianDateLabeller.prototype.labelInterval = function(date, intervalUnit) {
        if (date.getUTCFullYear() < 1) {
            return { text: "", emphasized: false };
        }
        else if (date.getUTCFullYear() > 1640) {
            return { text: "", emphasized: false };
        }
        else {
            return oldLabelInterval.call(this, date, intervalUnit);
        }
    };
// override http://static.simile.mit.edu/exhibit/extensions-2.0/time/scripts/timeline-view.js
    Exhibit.TimelineView.prototype._fillInfoBubble = function(evt, elmt, theme, labeller) {
        var doc = elmt.ownerDocument;
        var title = evt.getProperty('name');
        var divTitle = doc.createElement("div");
        var textTitle = doc.createTextNode(title);
            divTitle.appendChild(textTitle);
            theme.event.bubble.titleStyler(divTitle);
            elmt.appendChild(divTitle);
        var desc = evt.getProperty('description');
        var divDesc = doc.createElement("div");
        var textDesc = doc.createTextNode(desc);
            divDesc.appendChild(textDesc);
            theme.event.bubble.bodyStyler(divDesc);
            elmt.appendChild(divDesc);
    };
</script> 

the second part of the code is successful:
Exhibit.TimelineView.prototype._fillInfoBubble = function(evt, elmt, theme, labeller)
as seen here:
https://afdsi.org/test/exhibit/protein_2/index.html

however the date substitution fails:
var oldLabelInterval = Timeline.GregorianDateLabeller.prototype.labelInterval

we are willing to write new JavaScript for Exhibit 3 that does the date-to-sequence conversion, but need to see the Exhibit 2.0 libraries to go from 2.0 to 3.0.

Alternatively, can you show us how to do it?

Thanks for advice, guidance and solutions

/jay gray

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions