enmi12/glossaire/graph/js/gexfjs.js
author ymh <ymh.work@gmail.com>
Mon, 08 Sep 2025 19:44:41 +0200
changeset 23 417f20492bf7
parent 0 d970ebf37754
permissions -rwxr-xr-x
Update Docker configuration and plugin versions - Upgrade MariaDB from 10.6 to 11 with auto-upgrade support - Add WordPress debug environment variable to FPM container - Update PHP-FPM Dockerfile base image - Update Include Mastodon Feed plugin with bug fixes and improvements - Update Portfolio plugin (v2.58) with latest translations and demo data enhancements - Remove old README.md from Mastodon Feed plugin 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
/* Copyright (c) 2011 Raphaël Velt
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
 * Licensed under the MIT License
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * Translations by :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 *    Vicenzo Cosenza (Italian)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 *    Eduardo Ramos Ibáñez (Spanish)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 *    Jaakko Salonen (Finnish)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 *    Zeynep Akata (Turkish)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 *    Σωτήρης Φραγκίσκος (Greek)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 * */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
// Namespace
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
var GexfJS = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    lensRadius : 200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    lensGamma : 0.5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    graphZone : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
        width : 0,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
        height : 0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    oldGraphZone : {},
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
    params : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
        centreX : 400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
        centreY : 350,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
        activeNode : -1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
        currentNode : -1
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    oldParams : {},
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    minZoom : -3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    maxZoom : 10,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    overviewWidth : 200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
    overviewHeight : 175,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
    baseWidth : 800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
    baseHeight : 700,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
    overviewScale : .25,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    totalScroll : 0,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
    autoCompletePosition : 0,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
    i18n : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
        "el" : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
            "search" : "Αναζήτηση Κόμβων",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
            "nodeAttr" : "Χαρακτηριστικά",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
            "nodes" : "Κόμβοι",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
            "inLinks" : "Εισερχόμενοι δεσμοί από",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
            "outLinks" : "Εξερχόμενοι δεσμοί προς",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
            "undirLinks" : "Ακατεύθυντοι δεσμοί με",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
            "lensOn" : "Ενεργοποίηση φακού",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
            "lensOff" : "Απενεργοποίηση φακού",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
            "edgeOn" : "Εμφάνιση ακμών",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
            "edgeOff" : "Απόκρυψη ακμών",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
            "zoomIn" : "Μεγέθυνση",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
            "zoomOut" : "Σμίκρυνση",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
            "browserErr" : 'Ο περιηγητής σας δεν μπορεί να εμφανίσει σωστά αυτή τη σελίδα.<br />Σας προτείνουμε να χρησιμοποιήσετε την τελευταία έκδοση του <a href="http://www.mozilla.com/" target="_blank">Firefox</a> ή του <a href="http://www.google.com/chrome/" target="_blank">Chrome</a>'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
        },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        "en" : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
            "search" : "Search nodes",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
            "nodeAttr" : "Attributes",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
            "nodes" : "Nodes",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
            "inLinks" : "Inbound Links from :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
            "outLinks" : "Outbound Links to :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
            "undirLinks" : "Undirected links with :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
            "lensOn" : "Activate lens mode",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
            "lensOff" : "Deactivate lens mode",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
            "edgeOn" : "Show edges",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
            "edgeOff" : "Hide edges",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
            "zoomIn" : "Zoom In",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
            "zoomOut" : "Zoom Out",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
            "browserErr" : 'Your browser cannot properly display this page.<br />We recommend you use the latest <a href="http://www.mozilla.com/" target="_blank">Firefox</a> or <a href="http://www.google.com/chrome/" target="_blank">Chrome</a> version'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
        },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
        "es" : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
            "search" : "Buscar un nodo",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
            "nodeAttr" : "Atributos",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
            "nodes" : "Nodos",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
            "inLinks" : "Aristas entrantes desde :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
            "outLinks" : "Aristas salientes hacia :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
            "undirLinks" : "Aristas no dirigidas con :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
            "lensOn" : "Activar el modo lupa",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
            "lensOff" : "Desactivar el modo lupa",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
            "edgeOn" : "Mostrar aristas",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
            "edgeOff" : "Ocultar aristas",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
            "zoomIn" : "Acercar",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
            "zoomOut" : "Alejar",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
            "browserErr" : 'Tu navegador no es capaz de mostrar esta p&aacute;gina correctamente.<br />Le recomendamos utilizar la &uacute;ltima versi&oacute;n de <a href="http://www.mozilla.com/" target="_blank">Firefox</a> o <a href="http://www.google.com/chrome/" target="_blank">Chrome</a>',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
            "modularity_class" : "Clase de modularidad",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
            "degree" : "Grado",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
            "indegree" : "Grado de entrada",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
            "outdegree" : "Grado de salida",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
            "weighted degree" : "Grado ponderado",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
            "weighted indegree" : "Grado de entrada ponderado",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
            "weighted outdegree" : "Grado de salida ponderado",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
            "closnesscentrality" : "Cercan&iacute;a",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
            "betweenesscentrality" : "Intermediaci&oacute;n",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
            "authority" : "Puntuaci&oacute;n de autoridad (HITS)",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
            "hub" : "Puntuaci&oacute; de hub (HITS)",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
            "pageranks" : "Puntuaci&oacute; de PageRank"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
        },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
        "fi" : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
            "search" : "Etsi solmuja",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
            "nodeAttr" : "Attribuutit",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
            "nodes" : "Solmut",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
            "inLinks" : "Lähtevät yhteydet :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
            "outLinks" : "Tulevat yhteydet :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
            "undirLinks" : "Yhteydet :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
            "lensOn" : "Ota linssitila käyttöön",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
            "lensOff" : "Poista linssitila käytöstä",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
            "edgeOn" : "Näytä kaikki yhteydet",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
            "edgeOff" : "Näytä vain valitun solmun yhteydet",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
            "zoomIn" : "Suurenna",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
            "zoomOut" : "Pienennä",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
            "browserErr" : 'Selaimesi ei voi näyttää tätä sivua.<br />Suosittelemme käyttämään uusinta versiota <a href="http://www.mozilla.com/" target="_blank">Firefox</a>- tai <a href="http://www.google.com/chrome/" target="_blank">Chrome</a>-selaimesta'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
        },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
        "fr" : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
            "search" : "Rechercher un n&oelig;ud",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
            "nodeAttr" : "Attributs",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
            "nodes" : "N&oelig;uds",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
            "inLinks" : "Liens entrants depuis :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
            "outLinks" : "Liens sortants vers :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
            "undirLinks" : "Liens non-dirigés avec :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
            "lensOn" : "Activer le mode loupe",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
            "lensOff" : "Désactiver le mode loupe",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
            "edgeOn" : "Afficher les sommets",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
            "edgeOff" : "Cacher les sommets",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
            "zoomIn" : "S'approcher",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
            "zoomOut" : "S'éloigner",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
            "browserErr" : 'Votre navigateur n\'est malheureusement pas compatible avec les fonctionnalités de ce site<br />Nous vous suggérons d\'utiliser une version récente de <a href="http://www.mozilla.com/" target="_blank">Firefox</a> ou <a href="http://www.google.com/chrome/" target="_blank">Chrome</a>',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
            "modularity_class" : "Classe de modularité",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
            "degree" : "Degr&eacute;",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
            "indegree" : "&frac12; degr&eacute; int&eacute;rieur",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
            "outdegree" : "&frac12; degr&eacute; ext&eacute;rieur",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
            "weighted degree" : "Degr&eacute; pond&eacute;r&eacute;",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
            "weighted indegree" : "&frac12; degr&eacute; int&eacute;rieur pond&eacute;r&eacute;",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
            "weighted outdegree" : "&frac12; degr&eacute; ext&eacute;rieur pond&eacute;r&eacute;",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
            "closnesscentrality" : "Centralit&eacute; de proximit&eacute;",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
            "betweenesscentrality" : "Centralit&eacute; d'interm&eacute;diarit&eacute;",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
            "authority" : "Score d'autorit&eacute; (HITS)",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
            "hub" : "Score de hub (HITS)",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
            "pageranks" : "Score de PageRank"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
        },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
        "it" : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
            "search" : "Cerca i nodi",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
            "nodeAttr" : "Attributi",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
            "nodes" : "Nodi",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
            "inLinks" : "Link in entrata da :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
            "outLinks" : "Link in uscita verso :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
            "undirLinks" : "Link non direzionati con :",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
            "lensOn" : "Attiva la lente d'ingrandimento",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
            "lensOff" : "Disattiva la lente d'ingrandimento",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
            "edgeOn" : "Mostra gli spigoli",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
            "edgeOff" : "Nascondi gli spigoli",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
            "zoomIn" : "Zoom in avanti",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
            "zoomOut" : "Zoom indietro",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
            "browserErr" : 'Il tuo browser non pu&ograve; visualizzare correttamente questa pagina.<br />Ti raccomandiamo l\'uso dell\'ultima versione di  <a href="http://www.mozilla.com/" target="_blank">Firefox</a> o <a href="http://www.google.com/chrome/" target="_blank">Chrome</a>'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
        },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
        "tr" : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
            "search" : "Düğüm ara",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
            "nodeAttr" : "Özellikler",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
            "nodes" : "Düğümler",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
            "inLinks" : "Gelen bağlantılar",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
            "outLinks" : "Giden bağlantılar",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
            "undirLinks" : "Yönsüz bağlantılar",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
            "lensOn" : "Merceği etkinleştir",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
            "lensOff" : "Merceği etkisizleştir",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
            "edgeOn" : "Kenar çizgilerini göster",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
            "edgeOff" : "Kenar çizgilerini gizle",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
            "zoomIn" : "Yaklaştır",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
            "zoomOut" : "Uzaklaştır",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
            "browserErr" : "Tarayıcınız sayfayı doğru bir biçimde görüntüleyemiyor.<br />En son Firefox veya Chrome sürümünü kullanmanızı tavsiye ederiz."
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
    lang : "en"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
function strLang(_str) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
    var _l = GexfJS.i18n[GexfJS.lang];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
    return ( _l[_str] ? _l[_str] : ( GexfJS.i18n["en"][_str] ? GexfJS.i18n["en"][_str] : _str.replace("_"," ") ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
function replaceURLWithHyperlinks(text) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
    if (GexfJS.params.replaceUrls) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
        var _urlExp = /(\b(https?:\/\/)?[-A-Z0-9]+\.[-A-Z0-9.:]+(\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*)?)/ig,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
            _protocolExp = /^https?:\/\//i;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
        return text.replace(_urlExp, function(_found) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
            return '<a href="'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
                + ( _protocolExp.test(_found) ? '' : 'http://' )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
                + _found + '" target="_blank">'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
                + _found.replace(_protocolExp,'')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
                + "</a>";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
        });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
    return text;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
function displayNode(_nodeIndex, _recentre) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
    GexfJS.params.currentNode = _nodeIndex;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
    if (_nodeIndex != -1) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
        var _d = GexfJS.graph.nodeList[_nodeIndex],
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
            _b = _d.coords.base,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
            _str = '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
            _cG = $("#leftcolumn");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
            _cG.animate({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
                "left" : "0px"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
            }, function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
                $("#aUnfold").attr("class","leftarrow");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
                $("#zonecentre").css({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
                    left: _cG.width() + "px"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
                });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
            });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
        _str += '<h3><div class="largepill" style="background: ' + _d.color.base +'"></div>' + _d.label + '</h3>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
        _str += '<h4>' + strLang("nodeAttr") + '</h4>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
        _str += '<ul><li><b>id</b> : ' + _d.id + '</li>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
        for (var i in _d.attributes) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
            _str += '<li><b>' + strLang(i) + '</b> : ' + replaceURLWithHyperlinks( _d.attributes[i] ) + '</li>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
        _str += '</ul><h4>' + ( GexfJS.graph.directed ? strLang("inLinks") : strLang("undirLinks") ) + '</h4><ul>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
        for (var i in GexfJS.graph.edgeList) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
            var _e = GexfJS.graph.edgeList[i]
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
            if ( _e.target == _nodeIndex ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
                var _n = GexfJS.graph.nodeList[_e.source];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
                _str += '<li><div class="smallpill" style="background: ' + _n.color.base +'"></div><a href="#" onmouseover="GexfJS.params.activeNode = ' + _e.source + '" onclick="displayNode(' + _e.source + ', true); return false;">' + _n.label + '</a>' + ( GexfJS.params.showEdgeWeight && _e.weight ? ' [' + _e.weight + ']' : '') + '</li>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
        if (GexfJS.graph.directed) _str += '</ul><h4>' + strLang("outLinks") + '</h4><ul>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
        for (var i in GexfJS.graph.edgeList) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
            var _e = GexfJS.graph.edgeList[i]
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
            if ( _e.source == _nodeIndex ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
                var _n = GexfJS.graph.nodeList[_e.target];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
                _str += '<li><div class="smallpill" style="background: ' + _n.color.base +'"></div><a href="#" onmouseover="GexfJS.params.activeNode = ' + _e.target + '" onclick="displayNode(' + _e.target + ', true); return false;">' + _n.label + '</a>' + ( GexfJS.params.showEdgeWeight && _e.weight ? ' [' + _e.weight + ']' : '') + '</li>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
        _str += '</ul><p></p>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
        $("#leftcontent").html(_str);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
        if (_recentre) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
            GexfJS.params.centreX = _b.x;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
            GexfJS.params.centreY = _b.y;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
        $("#searchinput")
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
            .val(_d.label)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
            .removeClass('grey');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
function updateWorkspaceBounds() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
    var _elZC = $("#zonecentre");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
    var _top = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
        top : $("#titlebar").height() + "px"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
    _elZC.css(_top);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
    $("#leftcolumn").css(_top);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
    GexfJS.graphZone.width = _elZC.width();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
    GexfJS.graphZone.height = _elZC.height();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
    GexfJS.areParamsIdentical = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
    for (var i in GexfJS.graphZone) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
        GexfJS.areParamsIdentical = GexfJS.areParamsIdentical && ( GexfJS.graphZone[i] == GexfJS.oldGraphZone[i] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
    if (!GexfJS.areParamsIdentical) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
    $("#carte")
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
        .attr({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
            width : GexfJS.graphZone.width,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
            height : GexfJS.graphZone.height
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
        })
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
        .css({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
            width : GexfJS.graphZone.width + "px",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
            height : GexfJS.graphZone.height + "px"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
        });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
        for (var i in GexfJS.graphZone) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
            GexfJS.oldGraphZone[i] = GexfJS.graphZone[i];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
function startMove(evt) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
    evt.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
    GexfJS.dragOn = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
    GexfJS.lastMouse = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
        x : evt.pageX,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
        y : evt.pageY
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
    GexfJS.mouseHasMoved = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
function endMove(evt) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
    document.body.style.cursor = "default";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
    GexfJS.dragOn = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
    GexfJS.mouseHasMoved = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
function onGraphClick(evt) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
    if (!GexfJS.mouseHasMoved) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
        displayNode(GexfJS.params.activeNode);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
    endMove();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
function changeGraphPosition(evt, echelle) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
    document.body.style.cursor = "move";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
    var _coord = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
        x : evt.pageX,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
        y : evt.pageY
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
    };
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
    GexfJS.params.centreX += ( GexfJS.lastMouse.x - _coord.x ) / echelle;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
    GexfJS.params.centreY += ( GexfJS.lastMouse.y - _coord.y ) / echelle;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
    GexfJS.lastMouse = _coord;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
function onGraphMove(evt) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
    evt.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
    if (!GexfJS.graph) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
        return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
    GexfJS.mousePosition = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
        x : evt.pageX - $(this).offset().left,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
        y : evt.pageY - $(this).offset().top
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
    if (GexfJS.dragOn) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
        changeGraphPosition(evt,GexfJS.echelleGenerale);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
        GexfJS.mouseHasMoved = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
    } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
        GexfJS.params.activeNode = getNodeFromPos(GexfJS.mousePosition);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
        document.body.style.cursor = ( GexfJS.params.activeNode != -1 ? "pointer" : "default" );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
function onOverviewMove(evt) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
    if (GexfJS.dragOn) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
        changeGraphPosition(evt,-GexfJS.overviewScale);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
function onGraphScroll(evt, delta) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
    GexfJS.totalScroll += delta;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
    if (Math.abs(GexfJS.totalScroll) >= 1) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
        if (GexfJS.totalScroll < 0) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
            if (GexfJS.params.zoomLevel > GexfJS.minZoom) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
                GexfJS.params.zoomLevel--;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
                var _el = $(this),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
                    _off = $(this).offset(),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
                    _deltaX = evt.pageX - _el.width() / 2 - _off.left,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
                    _deltaY = evt.pageY - _el.height() / 2 - _off.top;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
                GexfJS.params.centreX -= ( Math.SQRT2 - 1 ) * _deltaX / GexfJS.echelleGenerale;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
                GexfJS.params.centreY -= ( Math.SQRT2 - 1 ) * _deltaY / GexfJS.echelleGenerale;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
                $("#zoomSlider").slider("value",GexfJS.params.zoomLevel);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
        } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
            if (GexfJS.params.zoomLevel < GexfJS.maxZoom) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
                GexfJS.params.zoomLevel++;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
                GexfJS.echelleGenerale = Math.pow( Math.SQRT2, GexfJS.params.zoomLevel );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
                var _el = $(this),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
                    _off = $(this).offset(),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
                    _deltaX = evt.pageX - _el.width() / 2 - _off.left,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
                    _deltaY = evt.pageY - _el.height() / 2 - _off.top;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
                GexfJS.params.centreX += ( Math.SQRT2 - 1 ) * _deltaX / GexfJS.echelleGenerale;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
                GexfJS.params.centreY += ( Math.SQRT2 - 1 ) * _deltaY / GexfJS.echelleGenerale;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
                $("#zoomSlider").slider("value",GexfJS.params.zoomLevel);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
        GexfJS.totalScroll = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
function initializeMap() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
    clearInterval(GexfJS.timeRefresh);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
    GexfJS.oldParams = {};
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
    GexfJS.ctxGraphe.clearRect(0, 0, GexfJS.graphZone.width, GexfJS.graphZone.height);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
    $("#zoomSlider").slider({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
        orientation: "vertical",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
        value: GexfJS.params.zoomLevel,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
        min: GexfJS.minZoom,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
        max: GexfJS.maxZoom,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
        range: "min",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
        step: 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
        slide: function( event, ui ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
            GexfJS.params.zoomLevel = ui.value;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
    });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
    $("#overviewzone").css({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
        width : GexfJS.overviewWidth + "px",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
        height : GexfJS.overviewHeight + "px"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
    });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
    $("#overview").attr({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
        width : GexfJS.overviewWidth,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
        height : GexfJS.overviewHeight
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
    });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
    GexfJS.timeRefresh = setInterval(traceMap,60);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
    GexfJS.graph = null;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
    loadGraph();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
function loadGraph() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
    $.ajax({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
        url: ( document.location.hash.length > 1 ? document.location.hash.substr(1) : GexfJS.params.graphFile ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
        dataType: "xml",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
        success: function(data) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
            var _s = new Date();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
            var _g = $(data).find("graph"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
                _nodes = _g.children().filter("nodes").children(),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   398
                _edges = _g.children().filter("edges").children();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
            GexfJS.graph = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
                directed : ( _g.attr("defaultedgetype") == "directed" ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   401
                source : data,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   402
                nodeList : [],
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   403
                nodeIndexById : [],
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   404
                nodeIndexByLabel : [],
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   405
                edgeList : []
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   406
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   407
            var _xmin = 1e9, _xmax = -1e9, _ymin = 1e9, _ymax = -1e9; _marge = 30;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
            $(_nodes).each(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   409
                var _n = $(this),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   410
                _pos = _n.find("viz\\:position,position"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   411
                _x = _pos.attr("x"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   412
                _y = _pos.attr("y");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   413
                _xmin = Math.min(_x, _xmin);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   414
                _xmax = Math.max(_x, _xmax);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
                _ymin = Math.min(_y, _ymin);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
                _ymax = Math.max(_y, _ymax);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   417
            });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   418
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   419
            var _echelle = Math.min( ( GexfJS.baseWidth - _marge ) / ( _xmax - _xmin ) , ( GexfJS.baseHeight - _marge ) / ( _ymax - _ymin ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   420
            var _deltax = ( GexfJS.baseWidth - _echelle * ( _xmin + _xmax ) ) / 2;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   421
            var _deltay = ( GexfJS.baseHeight - _echelle * ( _ymin + _ymax ) ) / 2;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   422
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   423
            GexfJS.ctxMini.clearRect(0, 0, GexfJS.overviewWidth, GexfJS.overviewHeight);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   424
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   425
            $(_nodes).each( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   426
                var _n = $(this),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   427
                    _id = _n.attr("id"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   428
                    _label = _n.attr("label") || _id,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   429
                    _d = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   430
                        id: _id,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   431
                        label: _label
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   432
                    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   433
                    _pos = _n.find("viz\\:position,position"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   434
                    _x = _pos.attr("x"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   435
                    _y = _pos.attr("y"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   436
                    _size = _n.find("viz\\:size,size").attr("value"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   437
                    _col = _n.find("viz\\:color,color"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   438
                    _r = _col.attr("r"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   439
                    _g = _col.attr("g"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   440
                    _b = _col.attr("b"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   441
                    _attr = _n.find("attvalue");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   442
                _d.coords = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   443
                    base : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   444
                        x : _deltax + _echelle * _x,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   445
                        y : _deltay - _echelle * _y,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   446
                        r : _echelle * _size
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   447
                    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   448
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   449
                _d.color = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   450
                    rgb : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   451
                        r : _r,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   452
                        g : _g,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   453
                        b : _b
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   454
                    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   455
                    base : "rgba(" + _r + "," + _g + "," + _b + ",.7)",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   456
                    gris : "rgba(" + Math.floor(84 + .33 * _r) + "," + Math.floor(84 + .33 * _g) + "," + Math.floor(84 + .33 * _b) + ",.5)"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   457
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   458
                _d.attributes = [];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   459
                $(_attr).each(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   460
                    var _a = $(this),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   461
                        _for = _a.attr("for");                    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   462
                    _d.attributes[ _for ? _for : 'attribute_' + _a.attr("id") ] = _a.attr("value");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   463
                });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   464
                GexfJS.graph.nodeIndexById.push(_id);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   465
                GexfJS.graph.nodeIndexByLabel.push(_label.toLowerCase());
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   466
                GexfJS.graph.nodeList.push(_d);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   467
                GexfJS.ctxMini.fillStyle = _d.color.base;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   468
                GexfJS.ctxMini.beginPath();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   469
                GexfJS.ctxMini.arc( _d.coords.base.x * GexfJS.overviewScale , _d.coords.base.y * GexfJS.overviewScale , _d.coords.base.r * GexfJS.overviewScale + 1 , 0 , Math.PI*2 , true );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   470
                GexfJS.ctxMini.closePath();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   471
                GexfJS.ctxMini.fill();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   472
            });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   473
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   474
            $(_edges).each(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   475
                var _e = $(this),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   476
                    _sid = _e.attr("source"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   477
                    _six = GexfJS.graph.nodeIndexById.indexOf(_sid);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   478
                    _tid = _e.attr("target"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   479
                    _tix = GexfJS.graph.nodeIndexById.indexOf(_tid);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   480
                    _w = _e.find('attvalue[for="weight"]').attr('value') || _e.attr('weight');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   481
                    _col = _e.find("viz\\:color,color");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   482
                if (_col.length) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   483
                    var _r = _col.attr("r"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   484
                        _g = _col.attr("g"),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   485
                        _b = _col.attr("b");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   486
                } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   487
                    var _scol = GexfJS.graph.nodeList[_six].color.rgb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   488
                    if (GexfJS.graph.directed) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   489
                        var _r = _scol.r,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   490
                            _g = _scol.g,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   491
                            _b = _scol.b;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   492
                    } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   493
                        var _tcol = GexfJS.graph.nodeList[_tix].color.rgb,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   494
                            _r = Math.floor( .5 * _scol.r + .5 * _tcol.r ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   495
                            _g = Math.floor( .5 * _scol.g + .5 * _tcol.g ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   496
                            _b = Math.floor( .5 * _scol.b + .5 * _tcol.b );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   497
                    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   498
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   499
                GexfJS.graph.edgeList.push({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   500
                    source : _six,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   501
                    target : _tix,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   502
                    width : Math.max( GexfJS.params.minEdgeWidth, Math.min( GexfJS.params.maxEdgeWidth, ( _w || 1 ) ) ) * _echelle,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   503
                    weight : parseFloat(_w || 0),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   504
                    color : "rgba(" + _r + "," + _g + "," + _b + ",.7)"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   505
                });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   506
            });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   507
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   508
            GexfJS.imageMini = GexfJS.ctxMini.getImageData(0, 0, GexfJS.overviewWidth, GexfJS.overviewHeight);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   509
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   510
        //changeNiveau(0);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   511
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   512
    });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   513
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   514
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   515
function getNodeFromPos( _coords ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   516
    for (var i = GexfJS.graph.nodeList.length - 1; i >= 0; i--) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   517
        var _d = GexfJS.graph.nodeList[i];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   518
        if (_d.visible && _d.withinFrame) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   519
            var _c = _d.coords.actual;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   520
                _r = Math.sqrt( Math.pow( _c.x - _coords.x , 2) + Math.pow( _c.y - _coords.y , 2 ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   521
            if ( _r < _c.r ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   522
                return i;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   523
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   524
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   525
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   526
    return -1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   527
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   528
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   529
function calcCoord(x, y, coord) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   530
    var _r = Math.sqrt( Math.pow( coord.x - x , 2 ) + Math.pow( coord.y - y , 2 ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   531
    if ( _r < GexfJS.lensRadius ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   532
        var _cos = ( coord.x - x ) / _r;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   533
        var _sin = ( coord.y - y ) / _r;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   534
        var _newr = GexfJS.lensRadius * Math.pow( _r / GexfJS.lensRadius, GexfJS.lensGamma );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   535
        var _coeff = ( GexfJS.lensGamma * Math.pow( ( _r + 1 ) / GexfJS.lensRadius, GexfJS.lensGamma - 1 ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   536
        return {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   537
            "x" : x + _newr * _cos,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   538
            "y" : y + _newr * _sin,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   539
            "r" : _coeff * coord.r
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   540
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   541
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   542
    else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   543
        return coord;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   544
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   545
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   546
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   547
function traceArc(contexte, source, target) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   548
    contexte.beginPath();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   549
    contexte.moveTo(source.x, source.y);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   550
    if (GexfJS.params.curvedEdges) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   551
        if ( ( source.x == target.x ) && ( source.y == target.y ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   552
            var x3 = source.x + 2.8 * source.r;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   553
            var y3 = source.y - source.r;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   554
            var x4 = source.x;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   555
            var y4 = source.y + 2.8 * source.r;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   556
            contexte.bezierCurveTo(x3,y3,x4,y4,source.x + 1,source.y);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   557
        } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   558
            var x3 = .3 * target.y - .3 * source.y + .8 * source.x + .2 * target.x;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   559
            var y3 = .8 * source.y + .2 * target.y - .3 * target.x + .3 * source.x;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   560
            var x4 = .3 * target.y - .3 * source.y + .2 * source.x + .8 * target.x;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   561
            var y4 = .2 * source.y + .8 * target.y - .3 * target.x + .3 * source.x;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   562
            contexte.bezierCurveTo(x3,y3,x4,y4,target.x,target.y);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   563
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   564
    } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   565
        contexte.lineTo(target.x,target.y);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   566
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   567
    contexte.stroke();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   568
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   569
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   570
function traceMap() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   571
    updateWorkspaceBounds();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   572
    if (!GexfJS.graph) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   573
        return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   574
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   575
    var _identical = GexfJS.areParamsIdentical;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   576
    GexfJS.params.mousePosition = ( GexfJS.params.useLens ? ( GexfJS.mousePosition ? ( GexfJS.mousePosition.x + "," + GexfJS.mousePosition.y ) : "out" ) : null );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   577
    for (var i in GexfJS.params) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   578
        _identical = _identical && ( GexfJS.params[i] == GexfJS.oldParams[i] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   579
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   580
    if (_identical) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   581
        return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   582
    } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   583
        for (var i in GexfJS.params) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   584
            GexfJS.oldParams[i] = GexfJS.params[i];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   585
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   586
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   587
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   588
    GexfJS.echelleGenerale = Math.pow( Math.SQRT2, GexfJS.params.zoomLevel );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   589
    GexfJS.decalageX = ( GexfJS.graphZone.width / 2 ) - ( GexfJS.params.centreX * GexfJS.echelleGenerale );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   590
    GexfJS.decalageY = ( GexfJS.graphZone.height / 2 ) - ( GexfJS.params.centreY * GexfJS.echelleGenerale );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   591
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   592
    var _sizeFactor = GexfJS.echelleGenerale * Math.pow(GexfJS.echelleGenerale, -.15),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   593
        _edgeSizeFactor = _sizeFactor * GexfJS.params.edgeWidthFactor,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   594
        _nodeSizeFactor = _sizeFactor * GexfJS.params.nodeSizeFactor,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   595
        _textSizeFactor = 1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   596
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   597
    GexfJS.ctxGraphe.clearRect(0, 0, GexfJS.graphZone.width, GexfJS.graphZone.height);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   598
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   599
    if (GexfJS.params.useLens && GexfJS.mousePosition) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   600
        GexfJS.ctxGraphe.fillStyle = "rgba(220,220,250,0.4)";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   601
        GexfJS.ctxGraphe.beginPath();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   602
        GexfJS.ctxGraphe.arc( GexfJS.mousePosition.x , GexfJS.mousePosition.y , GexfJS.lensRadius , 0 , Math.PI*2 , true );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   603
        GexfJS.ctxGraphe.closePath();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   604
        GexfJS.ctxGraphe.fill();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   605
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   606
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   607
    var _centralNode = ( ( GexfJS.params.activeNode != -1 ) ? GexfJS.params.activeNode : GexfJS.params.currentNode );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   608
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   609
    for (var i in GexfJS.graph.nodeList) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   610
        var _d = GexfJS.graph.nodeList[i];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   611
        _d.coords.actual = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   612
            x : GexfJS.echelleGenerale * _d.coords.base.x + GexfJS.decalageX,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   613
            y : GexfJS.echelleGenerale * _d.coords.base.y + GexfJS.decalageY,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   614
            r : _nodeSizeFactor * _d.coords.base.r 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   615
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   616
        _d.withinFrame = ( ( _d.coords.actual.x + _d.coords.actual.r > 0 ) && ( _d.coords.actual.x - _d.coords.actual.r < GexfJS.graphZone.width ) && ( _d.coords.actual.y + _d.coords.actual.r > 0) && (_d.coords.actual.y - _d.coords.actual.r < GexfJS.graphZone.height) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   617
        _d.visible = ( GexfJS.params.currentNode == -1 || i == _centralNode || GexfJS.params.showEdges );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   618
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   619
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   620
    var _tagsMisEnValeur = [];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   621
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   622
    if ( _centralNode != -1 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   623
        _tagsMisEnValeur = [ _centralNode ];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   624
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   625
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   626
    var _displayEdges = ( GexfJS.params.showEdges && GexfJS.params.currentNode == -1 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   627
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   628
    for (var i in GexfJS.graph.edgeList) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   629
        var _d = GexfJS.graph.edgeList[i],
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   630
            _six = _d.source,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   631
            _tix = _d.target,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   632
            _ds = GexfJS.graph.nodeList[_six],
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   633
            _dt = GexfJS.graph.nodeList[_tix];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   634
        var _isLinked = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   635
        if (_centralNode != -1) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   636
            if (_six == _centralNode) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   637
                _tagsMisEnValeur.push(_tix);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   638
                _coulTag = _dt.color.base;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   639
                _isLinked = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   640
                _dt.visible = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   641
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   642
            if (_tix == _centralNode) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   643
                _tagsMisEnValeur.push(_six);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   644
                _coulTag = _ds.color.base;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   645
                _isLinked = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   646
                _ds.visible = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   647
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   648
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   649
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   650
        if ( ( _isLinked || _displayEdges ) && ( _ds.withinFrame || _dt.withinFrame ) &&  _ds.visible && _dt.visible ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   651
            GexfJS.ctxGraphe.lineWidth = _edgeSizeFactor * _d.width;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   652
            var _coords = ( ( GexfJS.params.useLens && GexfJS.mousePosition ) ? calcCoord( GexfJS.mousePosition.x , GexfJS.mousePosition.y , _ds.coords.actual ) : _ds.coords.actual );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   653
            _coordt = ( (GexfJS.params.useLens && GexfJS.mousePosition) ? calcCoord( GexfJS.mousePosition.x , GexfJS.mousePosition.y , _dt.coords.actual ) : _dt.coords.actual );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   654
            GexfJS.ctxGraphe.strokeStyle = ( _isLinked ? _d.color : "rgba(100,100,100,0.2)" );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   655
            traceArc(GexfJS.ctxGraphe, _coords, _coordt);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   656
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   657
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   658
    GexfJS.ctxGraphe.lineWidth = 4;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   659
    GexfJS.ctxGraphe.strokeStyle = "rgba(0,100,0,0.8)";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   660
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   661
    if (_centralNode != -1) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   662
        var _dnc = GexfJS.graph.nodeList[_centralNode];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   663
        _dnc.coords.real = ( (GexfJS.params.useLens && GexfJS.mousePosition ) ? calcCoord( GexfJS.mousePosition.x , GexfJS.mousePosition.y , _dnc.coords.actual ) : _dnc.coords.actual );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   664
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   665
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   666
    for (var i in GexfJS.graph.nodeList) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   667
        var _d = GexfJS.graph.nodeList[i];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   668
        if (_d.visible && _d.withinFrame) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   669
            if (i != _centralNode) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   670
                _d.coords.real = ( ( GexfJS.params.useLens && GexfJS.mousePosition ) ? calcCoord( GexfJS.mousePosition.x , GexfJS.mousePosition.y , _d.coords.actual ) : _d.coords.actual );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   671
                _d.isTag = ( _tagsMisEnValeur.indexOf(parseInt(i)) != -1 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   672
                GexfJS.ctxGraphe.beginPath();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   673
                GexfJS.ctxGraphe.fillStyle = ( ( _tagsMisEnValeur.length && !_d.isTag ) ? _d.color.gris : _d.color.base );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   674
                GexfJS.ctxGraphe.arc( _d.coords.real.x , _d.coords.real.y , _d.coords.real.r , 0 , Math.PI*2 , true );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   675
                GexfJS.ctxGraphe.closePath();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   676
                GexfJS.ctxGraphe.fill();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   677
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   678
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   679
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   680
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   681
    for (var i in GexfJS.graph.nodeList) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   682
        var _d = GexfJS.graph.nodeList[i];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   683
        if (_d.visible && _d.withinFrame) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   684
            if (i != _centralNode) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   685
                var _fs = _d.coords.real.r * _textSizeFactor;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   686
                if (_d.isTag) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   687
                    if (_centralNode != -1) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   688
                        var _dist = Math.sqrt( Math.pow( _d.coords.real.x - _dnc.coords.real.x, 2 ) + Math.pow( _d.coords.real.y - _dnc.coords.real.y, 2 ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   689
                        if (_dist > 80) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   690
                            _fs = Math.max(GexfJS.params.textDisplayThreshold + 2, _fs);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   691
                        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   692
                    } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   693
                        _fs = Math.max(GexfJS.params.textDisplayThreshold + 2, _fs);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   694
                    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   695
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   696
                if (_fs > GexfJS.params.textDisplayThreshold) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   697
                    GexfJS.ctxGraphe.fillStyle = ( ( i != GexfJS.params.activeNode ) && _tagsMisEnValeur.length && ( ( !_d.isTag ) || ( _centralNode != -1 ) ) ? "rgba(60,60,60,0.7)" : "rgb(0,0,0)" );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   698
                    GexfJS.ctxGraphe.font = Math.floor( _fs )+"px Arial";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   699
                    GexfJS.ctxGraphe.textAlign = "center";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   700
                    GexfJS.ctxGraphe.textBaseline = "middle";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   701
                    GexfJS.ctxGraphe.fillText(_d.label, _d.coords.real.x, _d.coords.real.y);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   702
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   703
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   704
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   705
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   706
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   707
    if (_centralNode != -1) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   708
        GexfJS.ctxGraphe.fillStyle = _dnc.color.base;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   709
        GexfJS.ctxGraphe.beginPath();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   710
        GexfJS.ctxGraphe.arc( _dnc.coords.real.x , _dnc.coords.real.y , _dnc.coords.real.r , 0 , Math.PI*2 , true );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   711
        GexfJS.ctxGraphe.closePath();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   712
        GexfJS.ctxGraphe.fill();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   713
        GexfJS.ctxGraphe.stroke();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   714
        var _fs = Math.max(GexfJS.params.textDisplayThreshold + 2, _dnc.coords.real.r * _textSizeFactor) + 2;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   715
        GexfJS.ctxGraphe.font = "bold " + Math.floor( _fs )+"px Arial";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   716
        GexfJS.ctxGraphe.textAlign = "center";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   717
        GexfJS.ctxGraphe.textBaseline = "middle";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   718
        GexfJS.ctxGraphe.fillStyle = "rgba(255,255,250,0.8)";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   719
        GexfJS.ctxGraphe.fillText(_dnc.label, _dnc.coords.real.x - 2, _dnc.coords.real.y);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   720
        GexfJS.ctxGraphe.fillText(_dnc.label, _dnc.coords.real.x + 2, _dnc.coords.real.y);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   721
        GexfJS.ctxGraphe.fillText(_dnc.label, _dnc.coords.real.x, _dnc.coords.real.y - 2);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   722
        GexfJS.ctxGraphe.fillText(_dnc.label, _dnc.coords.real.x, _dnc.coords.real.y + 2);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   723
        GexfJS.ctxGraphe.fillStyle = "rgb(0,0,0)";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   724
        GexfJS.ctxGraphe.fillText(_dnc.label, _dnc.coords.real.x, _dnc.coords.real.y);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   725
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   726
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   727
    GexfJS.ctxMini.putImageData(GexfJS.imageMini, 0, 0);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   728
    var _r = GexfJS.overviewScale / GexfJS.echelleGenerale,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   729
        _x = - _r * GexfJS.decalageX,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   730
        _y = - _r * GexfJS.decalageY,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   731
        _w = _r * GexfJS.graphZone.width,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   732
        _h = _r * GexfJS.graphZone.height;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   733
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   734
    GexfJS.ctxMini.strokeStyle = "rgb(220,0,0)";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   735
    GexfJS.ctxMini.lineWidth = 3;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   736
    GexfJS.ctxMini.fillStyle = "rgba(120,120,120,0.2)";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   737
    GexfJS.ctxMini.beginPath();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   738
    GexfJS.ctxMini.fillRect( _x, _y, _w, _h );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   739
    GexfJS.ctxMini.strokeRect( _x, _y, _w, _h );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   740
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   741
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   742
function hoverAC() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   743
    $("#autocomplete li").removeClass("hover");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   744
    $("#liac_"+GexfJS.autoCompletePosition).addClass("hover");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   745
    GexfJS.params.activeNode = GexfJS.graph.nodeIndexByLabel.indexOf( $("#liac_"+GexfJS.autoCompletePosition).text().toLowerCase() );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   746
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   747
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   748
function changePosAC(_n) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   749
    GexfJS.autoCompletePosition = _n;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   750
    hoverAC();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   751
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   752
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   753
function updateAutoComplete(_sender) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   754
    var _val = $(_sender).val().toLowerCase();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   755
    var _ac = $("#autocomplete");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   756
    if (_val != GexfJS.dernierAC || _ac.html() == "") {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   757
        GexfJS.dernierAC = _val;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   758
        var _strAC = "<div><h4>" + strLang("nodes") + "</h4><ul>";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   759
        var _n = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   760
        for (var i in GexfJS.graph.nodeIndexByLabel) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   761
            var _l = GexfJS.graph.nodeIndexByLabel[i];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   762
            if (_l.search(_val) != -1) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   763
                _strAC += '<li id="liac_' + _n + '" onmouseover="changePosAC(' + _n + ')"><a href="#" onclick="displayNode(\'' + i + '\', true); return false;"><span>' + GexfJS.graph.nodeList[i].label + '</span></a>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   764
                _n++;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   765
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   766
            if (_n >= 20) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   767
                break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   768
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   769
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   770
        GexfJS.autoCompletePosition = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   771
        _ac.html(_strAC + "</ul></div>");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   772
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   773
    hoverAC();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   774
    _ac.show();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   775
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   776
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   777
function updateButtonStates() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   778
    $("#lensButton").attr("class",GexfJS.params.useLens?"":"off")
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   779
        .attr("title", strLang( GexfJS.params.showEdges ? "lensOff" : "lensOn" ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   780
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   781
    $("#edgesButton").attr("class",GexfJS.params.showEdges?"":"off")
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   782
        .attr("title", strLang( GexfJS.params.showEdges ? "edgeOff" : "edgeOn" ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   783
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   784
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   785
function setParams(paramlist) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   786
    for (var i in paramlist) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   787
        GexfJS.params[i] = paramlist[i];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   788
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   789
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   790
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   791
$(document).ready(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   792
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   793
    var lang = (
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   794
        typeof GexfJS.params.language != "undefined" && GexfJS.params.language
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   795
        ? GexfJS.params.language
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   796
        : (
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   797
            navigator.language
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   798
            ? navigator.language.substr(0,2).toLowerCase()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   799
            : (
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   800
                navigator.userLanguage
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   801
                ? navigator.userLanguage.substr(0,2).toLowerCase()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   802
                : "en"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   803
            )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   804
        )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   805
    );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   806
    GexfJS.lang = (GexfJS.i18n[lang] ? lang : "en");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   807
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   808
    if ( !document.createElement('canvas').getContext ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   809
        $("#bulle").html('<p><b>' + strLang("browserErr") + '</b></p>');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   810
        return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   811
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   812
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   813
    updateButtonStates();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   814
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   815
    GexfJS.ctxGraphe = document.getElementById('carte').getContext('2d');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   816
    GexfJS.ctxMini = document.getElementById('overview').getContext('2d');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   817
    updateWorkspaceBounds();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   818
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   819
    initializeMap();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   820
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   821
    window.onhashchange = initializeMap;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   822
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   823
    $("#searchinput")
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   824
        .focus(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   825
            if ( $(this).is('.grey') ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   826
                $(this).val('').removeClass('grey');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   827
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   828
        })
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   829
        .keyup(function(evt) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   830
            updateAutoComplete(this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   831
        }).keydown(function(evt){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   832
            var _l = $("#autocomplete li").length;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   833
            switch (evt.keyCode) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   834
                case 40 :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   835
                    if (GexfJS.autoCompletePosition < _l - 1) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   836
                        GexfJS.autoCompletePosition++;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   837
                    } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   838
                        GexfJS.autoCompletePosition = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   839
                    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   840
                break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   841
                case 38 :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   842
                    if (GexfJS.autoCompletePosition > 0) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   843
                        GexfJS.autoCompletePosition--;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   844
                    } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   845
                        GexfJS.autoCompletePosition = _l - 1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   846
                    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   847
                break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   848
                case 27 :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   849
                    $("#autocomplete").slideUp();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   850
                break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   851
                case 13 :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   852
                    if ($("#autocomplete").is(":visible")) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   853
                        var _liac = $("#liac_"+GexfJS.autoCompletePosition);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   854
                        if (_liac.length) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   855
                            $(this).val(_liac.find("span").text());
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   856
                        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   857
                    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   858
                break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   859
                default :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   860
                    GexfJS.autoCompletePosition = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   861
                break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   862
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   863
            updateAutoComplete(this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   864
            if (evt.keyCode == 38 || evt.keyCode == 40) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   865
                return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   866
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   867
        });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   868
    $("#recherche").submit(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   869
        if (GexfJS.graph) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   870
            displayNode( GexfJS.graph.nodeIndexByLabel.indexOf($("#searchinput").val().toLowerCase()), true);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   871
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   872
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   873
    });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   874
    $("#carte")
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   875
        .mousemove(onGraphMove)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   876
        .click(onGraphClick)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   877
        .mousedown(startMove)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   878
        .mouseout(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   879
            GexfJS.mousePosition = null;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   880
            endMove();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   881
        })
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   882
        .mousewheel(onGraphScroll);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   883
    $("#overview")
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   884
        .mousemove(onOverviewMove)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   885
        .mousedown(startMove)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   886
        .mouseup(endMove)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   887
        .mouseout(endMove)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   888
        .mousewheel(onGraphScroll);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   889
    $("#zoomMinusButton").click(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   890
        GexfJS.params.zoomLevel = Math.max( GexfJS.minZoom, GexfJS.params.zoomLevel - 1);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   891
        $("#zoomSlider").slider("value",GexfJS.params.zoomLevel);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   892
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   893
    })
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   894
        .attr("title", strLang("zoomOut"));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   895
    $("#zoomPlusButton").click(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   896
        GexfJS.params.zoomLevel = Math.min( GexfJS.maxZoom, GexfJS.params.zoomLevel + 1);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   897
        $("#zoomSlider").slider("value",GexfJS.params.zoomLevel);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   898
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   899
    })
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   900
        .attr("title", strLang("zoomIn"));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   901
    $(document).click(function(evt) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   902
        $("#autocomplete").slideUp();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   903
    });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   904
    $("#autocomplete").css({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   905
        top: ( $("#searchinput").offset().top + $("#searchinput").outerHeight() ) + "px",
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   906
        left: $("#searchinput").offset().left + "px"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   907
    });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   908
    $("#lensButton").click(function () {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   909
        GexfJS.params.useLens = !GexfJS.params.useLens;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   910
        updateButtonStates();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   911
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   912
    });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   913
    $("#edgesButton").click(function () {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   914
        GexfJS.params.showEdges = !GexfJS.params.showEdges;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   915
        updateButtonStates();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   916
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   917
    });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   918
    $("#aUnfold").click(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   919
        var _cG = $("#leftcolumn");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   920
        if (_cG.offset().left < 0) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   921
            _cG.animate({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   922
                "left" : "0px"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   923
            }, function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   924
                $("#aUnfold").attr("class","leftarrow");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   925
                $("#zonecentre").css({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   926
                    left: _cG.width() + "px"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   927
                });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   928
            });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   929
        } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   930
            _cG.animate({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   931
                "left" : "-" + _cG.width() + "px"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   932
            }, function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   933
                $("#aUnfold").attr("class","rightarrow");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   934
                $("#zonecentre").css({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   935
                    left: "0"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   936
                });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   937
            });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   938
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   939
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   940
    });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   941
});