Skip to content
Snippets Groups Projects
index.html 2.94 KiB
Newer Older
David Sehnal's avatar
David Sehnal committed
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
        <title>Mol* Plugin Wrapper</title>
David Sehnal's avatar
David Sehnal committed
        <style>
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
            }
            #app {
                position: absolute;
David Sehnal's avatar
David Sehnal committed
                top: 100px;
                width: 600px;
                height: 600px;
                border: 1px solid #ccc;
            }

            #controls {
                position: absolute;
                width: 130px;
                top: 10px;
                left: 10px;
            }

            #controls > button {
                display: block;
                width: 100%;
            }

            #controls > hr {
                margin: 5px 0;
            }
David Sehnal's avatar
David Sehnal committed
        </style>
        <link rel="stylesheet" type="text/css" href="app.css" />
        <script type="text/javascript" src="./index.js"></script>
    </head>
    <body>
David Sehnal's avatar
David Sehnal committed
        <div id="app"></div>
        <script>            
            var pdbId = '1grm', assemblyId= '1';
David Sehnal's avatar
David Sehnal committed
            var url = 'https://www.ebi.ac.uk/pdbe/static/entry/' + pdbId + '_updated.cif';
            var format = 'cif';

            // var url = 'https://www.ebi.ac.uk/pdbe/entry-files/pdb' + pdbId + '.ent';
            // var format = 'pdb';
            // var assemblyId = 'deposited';
David Sehnal's avatar
David Sehnal committed

            BasicMolStarWrapper.init('app' /** or document.getElementById('app') */);
            BasicMolStarWrapper.setBackground(0xffffff);
            BasicMolStarWrapper.load({ url: url, format: format, assemblyId: assemblyId });
David Sehnal's avatar
David Sehnal committed
            BasicMolStarWrapper.toggleSpin();

            addControl('Toggle Spin', () => BasicMolStarWrapper.toggleSpin());

            addSeparator();

            addControl('Load Asym Unit', () => BasicMolStarWrapper.load({ url: url, format: format }));
            addControl('Load Assembly 1', () => BasicMolStarWrapper.load({ url: url, format: format, assemblyId: assemblyId }));

            addSeparator();

            addControl('Play Forward', () => BasicMolStarWrapper.animate.modelIndex.forward(8 /** maxFPS */));
            addControl('Stop', () => BasicMolStarWrapper.animate.modelIndex.stop());
            addControl('Play Backward', () => BasicMolStarWrapper.animate.modelIndex.backward(8 /** maxFPS */));

            function addControl(label, action) {
                var btn = document.createElement('button');
                btn.onclick = action;
                btn.innerText = label;
                document.getElementById('controls').appendChild(btn);
            }

            function addSeparator() {
                var hr = document.createElement('hr');
                document.getElementById('controls').appendChild(hr);
            }
David Sehnal's avatar
David Sehnal committed
        </script>
    </body>
</html>