チェンジセット 258 : SPARQLBuilderWWW

差分発生行の前後
無視リスト:
更新日時:
2015/10/08 17:57:53 (9 年 前)
更新者:
lenz
ログメッセージ:

クラス選択用新GUIのテスト実装

機能としては完了、組み込みや化粧のし直しが必要

パス:
SPARQLBuilderWWW/web
ファイル:
3 変更

凡例:

変更なし
追加
削除
  • SPARQLBuilderWWW/web/classselect.css

    r253 r258  
    22 
    33div.wrap { 
    4         width: 100%; 
    5         height: 800px; 
     4        position: absolute; 
     5        top: 0px; 
     6        bottom: 0px; 
     7        left: 0px; 
     8        right: 0px; 
     9        background-color: rgba(0,0,0,0.8); 
     10} 
     11 
     12div.classselect { 
     13        position: absolute; 
     14        top: 0px; 
     15        bottom: 0px; 
     16        left: 0px; 
     17        right: 0px; 
     18        margin: auto; 
     19        width: 90%; 
     20        height: 90%; 
    621        overflow: hidden; 
     22        background: #fafafa; 
    723} 
    824 
     
    1127        width: 50%; 
    1228        height: 100%; 
     29        padding: 5px 0px; 
    1330} 
    1431 
     
    1734        width: 50%; 
    1835        height: 100%; 
     36        padding: 5px 0px; 
    1937} 
    2038 
    2139div.startclass, div.endclass { 
    22         padding: 5px; 
     40        padding: 5px 0px; 
     41} 
     42 
     43#searchstarttext, #searchendtext { 
     44        width: 100%; 
     45} 
     46 
     47span.startclassuri:hover { 
     48        cursor: pointer; 
     49 
     50        -moz-border-radius: 10px; 
     51        -webkit-border-radius: 10px; 
     52        border-radius: 10px; 
     53        padding: 3px; 
     54 
     55        background-color: hsl(40, 50%, 75%); 
     56} 
     57 
     58span.endclassuri:hover { 
     59        cursor: pointer; 
     60 
     61        -moz-border-radius: 10px; 
     62        -webkit-border-radius: 10px; 
     63        border-radius: 10px; 
     64        padding: 3px; 
     65 
     66        background-color: hsl(150, 50%, 75%); 
     67} 
     68 
     69span.selectedstart { 
     70        cursor: pointer; 
     71 
     72        -moz-border-radius: 10px; 
     73        -webkit-border-radius: 10px; 
     74        border-radius: 10px; 
     75        padding: 2px; 
     76        border: 2px hsl(40, 50%, 50%) solid; 
     77 
     78        background-color: hsl(40, 50%, 75%); 
     79} 
     80 
     81span.selectedend { 
     82        cursor: pointer; 
     83 
     84        -moz-border-radius: 10px; 
     85        -webkit-border-radius: 10px; 
     86        border-radius: 10px; 
     87        padding: 2px; 
     88 
     89        border: 2px hsl(150, 50%, 50%) solid; 
     90 
     91        background-color: hsl(150, 50%, 75%); 
    2392} 
    2493 
  • SPARQLBuilderWWW/web/classselect.html

    r253 r258  
    99        <body> 
    1010                <div class="wrap"> 
    11                         <div class="left"> 
    12                                 <div> 
    13                                         <input id="searchstart" type="text"> 
     11                        <div class="classselect"> 
     12                                <div class="left"> 
     13                                        <div class="searchstart"> 
     14                                                Search startclass<br> 
     15                                                <input id="searchstarttext" type="text"> 
     16                                        </div> 
     17                                        <div class="startclass"> 
     18                                                <img src="images/ajax-loader.gif"> 
     19                                        </div> 
    1420                                </div> 
    15                                 <div class="startclass"> 
    16                                         <img src="images/ajax-loader.gif"> 
    17                                 </div> 
    18                         </div> 
    19                         <div class="right"> 
    20                                 <div> 
    21                                         <input id="searchend" type="text"> 
    22                                 </div> 
    23                                 <div class="endclass"> 
     21                                <div class="right"> 
     22                                        <div class="searchend"> 
     23                                                Search endclass<br> 
     24                                                <input id="searchendtext" type="text"> 
     25                                        </div> 
     26                                        <div class="endclass"> 
     27                                        </div> 
    2428                                </div> 
    2529                        </div> 
  • SPARQLBuilderWWW/web/classselect.js

    r253 r258  
     1 
     2// 繝壹�繧ク隱ュ縺ソ霎シ縺ソ螳御コ�ャ。隨ャ 
    13$(function(){ 
    24 
     5        // 繧ッ繝ゥ繧ケ驕ク謚樒畑div縺ョ繧ケ繧ッ繝ュ繝シ繝ォ險ュ螳� 
    36        scrolldiv(); 
    47 
     8        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ隱ュ縺ソ霎シ縺ソ 
    59        loadStartClass(); 
    610 
    7  
    8         $('#searchstart').keypress(function(e) { 
     11        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ繝サ繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョ讀懃エ「逕ィ繝�く繧ケ繝医�繝�け繧ケ縺昴l縺槭l縺ォ縺、縺�※ 
     12        // 繧ュ繝シ縺梧款縺輔l縺溘→縺� 
     13        $('#searchstarttext, #searchendtext').keypress(function(e) { 
     14                // 繧ィ繝ウ繧ソ繝シ繧ュ繝シ縺縺」縺溘ifalse繧定ソ斐☆�医ユ繧ュ繧ケ繝医�繝�け繧ケ縺ョ繝�ヵ繧ゥ繝ォ繝域ゥ溯�繧偵く繝」繝ウ繧サ繝ォ�� 
    915                if ( e.which == 13 ) { 
    1016                        return false; 
    1117                } 
    1218        }); 
    13         $('#searchstart').keyup(function(e) { 
     19        // 繧ュ繝シ縺梧款縺輔l縲�屬縺輔l縺滓凾�磯屬縺輔l縺滓凾繧偵う繝吶Φ繝医ワ繝ウ繝峨Λ縺ォ縺励↑縺�→縺昴�譎ょ�蜉帙@縺滓枚蟄励′蜿肴丐縺輔l縺ェ縺�シ� 
     20        $('#searchstarttext, #searchendtext').keyup(function(e) { 
     21                // 讀懃エ「繧定。後≧ 
    1422                search(); 
    1523        }); 
    16         $('#searchend').keypress(function(e) { 
    17                 if ( e.which == 13 ) { 
    18                         return false; 
    19                 } 
    20         }); 
    21         $('#searchend').keyup(function(e) { 
    22                 search(); 
    23         }); 
    2424}); 
    2525 
     26// 繧ッ繝ゥ繧ケ驕ク謚樒畑div縺ョ繧ケ繧ッ繝ュ繝シ繝ォ險ュ螳� 
    2627function scrolldiv(){ 
    27         if(($('div.startclass').height() + $('#searchstart').height()) > $('div.left').height()){ 
    28                 $('div.left').css('overflow-y', 'scroll'); 
    29         }else{ 
    30                 $('div.left').css('overflow-y', 'hidden'); 
    31         } 
    32         if(($('div.endclass').height() + $('#searchend').height()) > $('div.right').height()){ 
    33                 $('div.right').css('overflow-y', 'scroll'); 
    34         }else{ 
    35                 $('div.right').css('overflow-y', 'hidden'); 
    36         } 
    37 } 
    38  
     28        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ荳€隕ァ縺ョ繝��繝悶Ν縺ィ繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ讀懃エ「逕ィ繝�く繧ケ繝医�繝�け繧ケ谺��鬮倥&縺ョ蜷郁ィ医′謖�ョ壽ク医∩縺ョ蟾ヲ繧ォ繝ゥ繝縺ョ鬮倥&繧医j螟ァ縺阪¢繧後� 
     29        if(($('div.startclass table').height() + $('div.searchstart').height()) > $('div.left').height()){ 
     30                // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ荳€隕ァ逕ィdiv縺ョ邵ヲ繧ケ繧ッ繝ュ繝シ繝ォ險ュ螳壹r繧ェ繝ウ縺ォ 
     31                $('div.startclass').css('overflow-y', 'scroll'); 
     32                // 鬮倥&繧貞キヲ繧ォ繝ゥ繝縺九i讀懃エ「逕ィ繝�く繧ケ繝医�繝�け繧ケ谺�→20px��addingテ��牙シ輔>縺溷€、縺ォ縺吶k 
     33                $('div.startclass').css('height', ($('div.left').height() - $('div.searchstart').height() - 20) + 'px'); 
     34        // 蟆上&縺代l縺ー 
     35        }else{ 
     36                // 邵ヲ繧ケ繧ッ繝ュ繝シ繝ォ繧偵が繝� 
     37                $('div.startclass').css('overflow-y', 'hidden'); 
     38        } 
     39        // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ォ縺、縺�※蜷梧ァ倥�蜃ヲ逅� 
     40        if(($('div.endclass table').height() + $('div.searchend').height()) > $('div.right').height()){ 
     41                $('div.endclass').css('overflow-y', 'scroll'); 
     42                $('div.endclass').css('height', ($('div.right').height() - $('div.searchend').height() - 20) + 'px'); 
     43        }else{ 
     44                $('div.endclass').css('overflow-y', 'hidden'); 
     45        } 
     46} 
     47 
     48// 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ隱ュ縺ソ霎シ縺ソ 
    3949function loadStartClass(){ 
     50        // SPARQL Builder縺ョ繧ケ繧ソ繝シ繝医け繝ゥ繧ケ荳€隕ァ蜿門セ礼畑API繧「繝峨Ξ繧ケ繧剃ス懈��域圻螳壹〒迚ケ螳壹お繝ウ繝峨�繧、繝ウ繝医r繧サ繝�ヨ�� 
    4051        var url = "http://www.sparqlbuilder.org/api/clist?ep=" + encodeURIComponent("http://www.ebi.ac.uk/rdf/services/reactome/sparql"); 
     52        // AJAX髢句ァ� 
    4153        $.ajax({ 
     54                // 繝。繧ス繝�ラ繧ソ繧、繝暦シ壹ご繝�ヨ 
    4255                type : "GET", 
     56                // URL�壼�縺サ縺ゥ繧サ繝�ヨ縺励◆繧ゅ� 
    4357                url : url, 
     58                // 蜿門セ玲�蜉溘@縺溘i 
    4459                success : function(data) { 
     60                        // 蟶ー縺」縺ヲ縺阪◆邨先棡繧谷SON縺ォ繝代�繧ケ縺怜叙蠕� 
    4561                        var list = eval(data); 
     62                        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ荳€隕ァ驛ィ蛻�r遨コ縺ォ 
    4663                        $('div.startclass').empty(); 
    4764 
     65                        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ繝��繝悶Ν繧剃ス懈� 
    4866                        var startclasstable = $('<table>'); 
    4967 
     68                        // 蜿門セ励@縺溘け繝ゥ繧ケ繝ェ繧ケ繝医�謨ー縺縺醍ケー繧願ソ斐@縺ェ縺後i 
    5069                        for (var i = 0; i < list.length; ++i) { 
     70                                // 蛻励r霑ス蜉 
    5171                                startclasstable.append('<tr><td class="startclasscell"><span class="endpointuri" title="http://www.ebi.ac.uk/rdf/services/reactome/sparql"></span><span class="startclassuri" title="' + list[i]['uri'] + '">' + list[i]['label'] + ' (' + list[i]['number'] + ')' + '</span></td></tr>'); 
    5272                        } 
    5373 
     74                        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ荳€隕ァ縺ォ霑ス蜉 
    5475                        $('div.startclass').append(startclasstable); 
    5576 
     77                        // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョ繝ェ繧ッ繧ィ繧ケ繝域ゥ溯�繧呈怏蜉ケ蛹� 
    5678                        requestEndClass(); 
     79                        // 繧ッ繝ゥ繧ケ驕ク謚樒畑div縺ョ繧ケ繧ッ繝ュ繝シ繝ォ險ュ螳� 
    5780                        scrolldiv(); 
    5881                } 
     
    6083} 
    6184 
     85// 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョ繝ェ繧ッ繧ィ繧ケ繝域ゥ溯�繧呈怏蜉ケ蛹� 
    6286function requestEndClass(){ 
    63         $('.startclasscell').each(function(){ 
     87        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ逕ィ縺ョ蜷ФRI縺ォ縺、縺�※ 
     88        $('.startclassuri').each(function(){ 
     89                // 迴セ蝨ィ縺ョ繧ッ繝ェ繝�け繧、繝吶Φ繝医r蜑企勁�亥、夐㍾蛹門ッセ遲厄シ� 
    6490                $(this).unbind('click'); 
     91                // 繧ッ繝ェ繝�け繧、繝吶Φ繝医�霑ス蜉 
    6592                $(this).click(function(){ 
     93 
     94                        // 驕ク謚樊ク医∩繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ繧ッ繝ゥ繧ケ縺後≠繧後�髯、蜴サ 
     95                        $('.selectedstart').each(function(){ 
     96                                $(this).removeClass('selectedstart'); 
     97                        }); 
     98                        // 繧ッ繝ェ繝�け縺輔l縺溯ヲ∫エ縺ォ驕ク謚樊ク医∩繧ケ繧ソ繝シ繝医け繝ゥ繧ケ繧定ソス蜉 
     99                        $(this).addClass('selectedstart'); 
     100 
     101                        // 繧ィ繝ウ繝峨け繝ゥ繧ケ荳€隕ァ驛ィ蛻�r遨コ縺ォ 
    66102                        $('.endclass').empty(); 
     103                        // AJAX繝ュ繝シ繝�ぅ繝ウ繧ー逕サ蜒上r霑ス蜉 
    67104                        $('.endclass').append('<img src="images/ajax-loader.gif">'); 
    68                         var ep = $(this).children('.endpointuri').attr('title'); 
    69                         var sc = $(this).children('.startclassuri').attr('title'); 
     105 
     106                        // 繧ッ繝ェ繝�け縺輔l縺溘け繝ゥ繧ケ縺ョ繧ィ繝ウ繝峨�繧、繝ウ繝医r蜿門セ� 
     107                        var ep = $(this).parent().children('.endpointuri').attr('title'); 
     108                        // 繧ッ繝ェ繝�け縺輔l縺溘け繝ゥ繧ケ縺ョURI繧貞叙蠕� 
     109                        var sc = $(this).attr('title'); 
     110                        // SPARQL Builder縺ョ繧ィ繝ウ繝峨け繝ゥ繧ケ荳€隕ァ蜿門セ礼畑API繧「繝峨Ξ繧ケ繧剃ス懈� 
    70111                        var url = "http://www.sparqlbuilder.org/api/clist?ep=" + encodeURIComponent(ep) + '&class=' + encodeURIComponent(sc); 
     112                        // AJAX髢句ァ� 
    71113                        $.ajax({ 
     114                                // 繝。繧ス繝�ラ繧ソ繧、繝暦シ壹ご繝�ヨ 
    72115                                type : "GET", 
     116                                // URL�壼�縺サ縺ゥ繧サ繝�ヨ縺励◆繧ゅ� 
    73117                                url : url, 
     118                                // 蜿門セ玲�蜉溘@縺溘i 
    74119                                success : function(data) { 
     120                                        // 蟶ー縺」縺ヲ縺阪◆邨先棡繧谷SON縺ォ繝代�繧ケ縺怜叙蠕� 
    75121                                        var list = eval(data); 
     122                                        // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョ荳€隕ァ驛ィ蛻�r遨コ縺ォ 
    76123                                        $('.endclass').empty(); 
     124 
     125                                        // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョ繝��繝悶Ν繧剃ス懈� 
    77126                                        var endclasstable = $('<table>'); 
    78127 
     128                                        // 蜿門セ励@縺溘け繝ゥ繧ケ繝ェ繧ケ繝医�謨ー縺縺醍ケー繧願ソ斐@縺ェ縺後i 
    79129                                        for (var i = 0; i < list.length; ++i) { 
     130                                                // 蛻励r霑ス蜉 
    80131                                                endclasstable.append('<tr><td class="endclasscell"><span class="endpointuri" title="' + ep + '"></span><span class="startclassuri" title="' + sc + '"></span><span class="endclassuri" title="' + list[i]['uri'] + '">' + list[i]['label'] + ' (' + list[i]['number'] + ')' + '</span></td></tr>'); 
    81132                                        } 
    82133 
     134                                        // 繧ィ繝ウ繝峨け繝ゥ繧ケ荳€隕ァ縺ォ霑ス蜉 
    83135                                        $('.endclass').append(endclasstable); 
    84136 
     137                                        // SPARQL Builder縺ョ繝ェ繧ッ繧ィ繧ケ繝域ゥ溯�繧呈怏蜉ケ蛹� 
    85138                                        requestSPARQLBuilder(); 
     139                                        // 繧ッ繝ゥ繧ケ驕ク謚樒畑div縺ョ繧ケ繧ッ繝ュ繝シ繝ォ險ュ螳� 
     140                                        scrolldiv(); 
    86141                                } 
    87142                        }); 
     
    90145} 
    91146 
     147// SPARQL Builder縺ョ繝ェ繧ッ繧ィ繧ケ繝域ゥ溯�繧呈怏蜉ケ蛹� 
    92148function requestSPARQLBuilder(){ 
    93         $('.endclasscell').each(function(){ 
     149 
     150        // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ョURI縺昴l縺槭l縺ォ縺、縺�※ 
     151        $('.endclassuri').each(function(){ 
     152                // 繧ッ繝ェ繝�け繧、繝吶Φ繝医�蜑企勁�亥、夐㍾蛹門撫鬘悟ッセ遲厄シ� 
    94153                $(this).unbind('click'); 
     154                // 繧ッ繝ェ繝�け繧、繝吶Φ繝医�霑ス蜉 
    95155                $(this).click(function(){ 
    96                         var ep = $(this).children('.endpointuri').attr('title'); 
    97                         var sc = $(this).children('.startclassuri').attr('title'); 
    98                         var ec = $(this).children('.endclassuri').attr('title'); 
     156 
     157                        // 驕ク謚樊ク医∩繧ィ繝ウ繝峨け繝ゥ繧ケ繧帝勁蜴サ 
     158                        $('.selectedend').each(function(){ 
     159                                $(this).removeClass('selectedend'); 
     160                        }); 
     161                        // 莉雁屓縺ョ隕∫エ繧帝∈謚樊ク医∩繧ィ繝ウ繝峨け繝ゥ繧ケ縺ォ縺吶k 
     162                        $(this).addClass('selectedend'); 
     163 
     164                        // 繧ィ繝ウ繝峨�繧、繝ウ繝�RL繝サ繧ケ繧ソ繝シ繝医け繝ゥ繧ケURI繝サ繧ィ繝ウ繝峨け繝ゥ繧ケURI繧貞叙蠕� 
     165                        var ep = $(this).parent().children('.endpointuri').attr('title'); 
     166                        var sc = $(this).parent().children('.startclassuri').attr('title'); 
     167                        var ec = $(this).attr('title'); 
     168 
     169                        // SPARQL Builder縺ョ蜻シ縺ウ蜃コ縺礼畑URL繧剃ス懈� 
    99170                        var url = "http://www.sparqlbuilder.org/?ep=" + encodeURIComponent(ep) + '&st=' + encodeURIComponent(sc) + '&en=' + encodeURIComponent(ec); 
    100171 
     172                        // 荳翫〒菴懈�縺励◆URL繧呈眠縺励>繧ヲ繧」繝ウ繝峨え縺ァ髢九¥ 
    101173                        window.open(url); 
    102174                }); 
     
    104176} 
    105177 
     178// URI縺ョ讀懃エ「 
    106179function search(){ 
    107         if($('#searchstart').val() == ''){ 
     180        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ逕ィ讀懃エ「谺��蛟、縺檎ゥコ縺ェ繧� 
     181        if($('#searchstarttext').val() == ''){ 
     182                // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ繝弱�繝偵ャ繝医け繝ゥ繧ケ繧貞炎髯、 
    108183                $('.startclasscell').parent().removeClass('nohit'); 
    109         }else{ 
    110                 var keyword = $('#searchstart').val().toLowerCase(); 
     184        // 遨コ縺ァ縺ェ縺代l縺ー 
     185        }else{ 
     186                // 蜈・蜉帙&繧後◆蛟、繧貞ー乗枚蟄励↓縺励※蜿門セ� 
     187                var keyword = $('#searchstarttext').val().toLowerCase(); 
     188                // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ荳€隕ァ縺昴l縺槭l縺ォ縺、縺�※ 
    111189                $('.startclasscell').each(function(){ 
     190                        // 繧ケ繧ソ繝シ繝医け繝ゥ繧ケ縺ョ陦ィ遉コ蜷埼Κ蛻�r蟆乗枚蟄励↓縺励※蜿門セ� 
    112191                        var label = $(this).children('.startclassuri').text().toLowerCase(); 
     192                        // 蜿門セ励@縺滓枚蟄怜�縺ォ讀懃エ「繝ッ繝シ繝峨′蜷ォ縺セ繧後※縺�k縺九メ繧ァ繝�け�井ク。譁ケ蟆乗枚蟄励↓螟画鋤貂医∩縺ェ縺ョ縺ァ螟ァ譁�ュ怜ー乗枚蟄励r蝠上o縺ェ縺�シ� 
    113193                        if(label.indexOf(keyword) != -1){ 
     194                                // 蜷ォ縺セ繧後※縺�l縺ー繝弱�繝偵ャ繝医け繝ゥ繧ケ繧帝勁蜴サ 
    114195                                $(this).parent().removeClass('nohit'); 
    115196                        }else{ 
     197                                // 蜷ォ縺セ繧後※縺�↑縺代l縺ー繝弱�繝偵ャ繝医け繝ゥ繧ケ繧定ソス蜉�磯撼陦ィ遉コ縺ォ縺ェ繧具シ� 
    116198                                $(this).parent().addClass('nohit'); 
    117199                        } 
    118200                }); 
    119201        } 
    120         if($('#searchend').val() == ''){ 
     202        // 繧ィ繝ウ繝峨け繝ゥ繧ケ縺ォ縺、縺�※蜷梧ァ倥�蜃ヲ逅� 
     203        if($('#searchendtext').val() == ''){ 
    121204                $('.endclasscell').parent().removeClass('nohit'); 
    122205        }else{ 
    123                 var keyword = $('#searchend').val().toLowerCase(); 
     206                var keyword = $('#searchendtext').val().toLowerCase(); 
    124207                $('.endclasscell').each(function(){ 
    125208                        var label = $(this).children('.endclassuri').text().toLowerCase(); 
     
    132215        } 
    133216 
     217        // 30ms蠕�▲縺ヲ縺九i繧ケ繧ッ繝ュ繝シ繝ォ蜀阪そ繝�ヨ�域緒逕サ螟画峩縺ォ縺九°繧区凾髢薙r閠���� 
    134218        setTimeout('scrolldiv()',30); 
    135219}