Changeset 212:99534b6c5b50


Ignore:
Timestamp:
Feb 15, 2011, 12:39:32 PM (13 years ago)
Author:
fnevgeny
Branch:
default
Phase:
public
Message:

Implemented support for 2-species entities.

Location:
source
Files:
6 added
1 edited

Legend:

Unmodified
Added
Removed
  • source/class/pf/Application.js

    r209 r212  
    315315    // Add to the list of favorites
    316316    var fav = new Object;
    317     fav.entity  = leaf.getUserData("entity");
    318     fav.species = leaf.getUserData("species");
    319     fav.color   = this.nextColor();
     317    fav.entity = leaf.getUserData("entity");
     318    fav.s1     = leaf.getUserData("s1");
     319    fav.s2     = leaf.getUserData("s2");
     320    fav.color  = this.nextColor();
    320321    this.favorites.push(fav);
    321322   
     
    339340    leaf.setTextColor(this.leafColor);
    340341
    341     var entity  = leaf.getUserData("entity");
    342     var species = leaf.getUserData("species");
     342    var entity = leaf.getUserData("entity");
     343    var s1     = leaf.getUserData("s1");
     344    var s2     = leaf.getUserData("s2");
    343345
    344346    // Remove from the list of favorites
    345347    for (var k = 0; k < this.favorites.length; k++) {
    346348        var fav = this.favorites[k];
    347         if (fav.entity  == entity && fav.species == species) {
     349        if (fav.entity  == entity && fav.s1 == s1 && fav.s2 == s2) {
    348350            this.favorites.splice(k, 1);
    349351            break;
     
    454456       
    455457
    456         getEntityFullName : function (entity, species)
     458        getSpeciesName : function(species) {
     459            var name;
     460           
     461            switch (species.id) {
     462            case "e":
     463                name = "electrons";
     464                break;
     465            case "i":
     466                name = "ions";
     467                break;
     468            case "r":
     469                name = "radiators";
     470                break;
     471            default:
     472                name = null;
     473                break;
     474            }
     475           
     476            return name;
     477        },
     478       
     479        getEntityFullName : function(entity, s1, s2)
    457480        {
    458481            var name = entity.name;
    459             if (entity.nspecies == 1) {
     482            switch (entity.nspecies) {
     483            case 2:
     484                name += " (" + this.getSpeciesName(s1) + "/" +
     485                               this.getSpeciesName(s2) + ")";
     486                break;
     487            case 1:
    460488                var prepos = entity.prepos;
    461489                if (!prepos) {
    462490                    prepos = "of";
    463491                }
    464                 name += " " + prepos + " ";
    465                 switch (species.id) {
    466                 case "e":
    467                     name += "electrons";
    468                     break;
    469                 case "i":
    470                     name += "ions";
    471                     break;
    472                 case "r":
    473                     name += "radiators";
    474                     break;
    475                 }
     492                name += " " + prepos + " " + this.getSpeciesName(s1);
     493                break;
     494            default:
     495                break;
    476496            }
    477497           
     
    479499        },
    480500       
    481         evaluateEntityValue : function(entity, species)
     501        evaluateEntityValue : function(entity, s1, s2)
    482502        {
    483503            var formula;
    484             if (entity.nspecies == 1) {
    485                 var species_str = "this.plasma." + species.id;
    486                 formula = entity.formula.replace(/\%s1/g, species_str);
    487             } else {
     504            switch (entity.nspecies) {
     505            case 1:
     506                var s1_str = "this.plasma." + s1.id;
     507                formula = entity.formula.replace(/\%s1/g, s1_str);
     508                break;
     509            case 2:
     510                var s1_str = "this.plasma." + s1.id;
     511                var s2_str = "this.plasma." + s2.id;
     512                formula = entity.formula.replace(/\%s1/g, s1_str);
     513                formula = formula.replace(/\%s2/g, s2_str);
     514                break;
     515            default:
    488516                formula = entity.formula;
     517                break;
    489518            }
    490519            var v = eval(formula);
     
    502531            }
    503532           
    504             var entity  = leaf.getUserData("entity");
    505             var species = leaf.getUserData("species");
     533            var entity = leaf.getUserData("entity");
     534            var s1     = leaf.getUserData("s1");
     535            var s2     = leaf.getUserData("s2");
    506536           
    507537            var name, section, value;
    508538            if (entity) {
    509                 var v     = this.evaluateEntityValue(entity, species);
     539                var v     = this.evaluateEntityValue(entity, s1, s2);
    510540                var scale = this.gui_entity_units.getSelectedValue();
    511541               
    512                 name    = this.getEntityFullName(entity, species);
     542                name    = this.getEntityFullName(entity, s1, s2);
    513543                section = entity.section;
    514544                value   = v*scale
     
    538568        isFavorite : function(leaf)
    539569        {
    540             var entity  = leaf.getUserData("entity");
    541             var species = leaf.getUserData("species");
     570            var entity = leaf.getUserData("entity");
     571            var s1     = leaf.getUserData("s1");
     572            var s2     = leaf.getUserData("s2");
    542573
    543574            for (var k = 0; k < this.favorites.length; k++) {
    544575                var fav = this.favorites[k];
    545                 if (fav.entity  == entity && fav.species == species) {
     576                if (fav.entity  == entity && fav.s1 == s1 && fav.s2 == s2) {
    546577                    return true;
    547578                    break;
     
    552583        },
    553584       
    554         addEntityLeaf : function(entity, species)
     585        addEntityLeaf : function(entity, s1, s2)
    555586        {
    556587            var icon;
    557             if (species) {
    558                 icon = "pf/image/" + species.id + "_small.png";
     588           
     589            if (s1 && s2) {
     590                icon = "pf/image/" + s1.id + s2.id + "_small.png";
     591            } else
     592            if (s1) {
     593                icon = "pf/image/" + s1.id + "_small.png";
    559594            } else {
    560595                icon = "pf/image/all_small.png";
     
    564599            leaf.setIcon(icon);
    565600            leaf.addListener("contextmenu", treeMenuCB, this);
     601
    566602            leaf.setUserData("entity", entity);
    567 
    568             if (species) {
    569                 leaf.setUserData("species", species);
    570             }
     603            leaf.setUserData("s1", s1);
     604            leaf.setUserData("s2", s2);
    571605
    572606            if (this.isFavorite(leaf)) {
     
    657691                    for (var j = 0; j < sa.length; j++) {
    658692                        var s = sa[j];
    659                         leaf = this.addEntityLeaf(entity, s);
     693                        leaf = this.addEntityLeaf(entity, s, null);
    660694                        folder.add(leaf);
    661695                    }
    662696                    break;
     697                case 2:
     698                    for (var j = 0; j < sa.length; j++) {
     699                        var s1 = sa[j];
     700                        for (var k = j; k < sa.length; k++) {
     701                            var s2 = sa[k];
     702                            leaf = this.addEntityLeaf(entity, s1, s2);
     703                            folder.add(leaf);
     704                        }
     705                    }
     706                    break;
    663707                default:
    664                     leaf = this.addEntityLeaf(entity, null);
     708                    leaf = this.addEntityLeaf(entity, null, null);
    665709                    folder.add(leaf);
    666710                    break;
     
    719763                }
    720764               
    721                 var species = fav.species;
     765                var s1 = fav.s1;
     766                var s2 = fav.s2;
    722767
    723768                var icon;
    724                 if (species) {
    725                     icon = "pf/image/" + species.id + "_small.png";
     769                if (s1 && s2) {
     770                    icon = "pf/image/" + s1.id + s2.id + "_small.png";
     771                } else
     772                if (s1) {
     773                    icon = "pf/image/" + s1.id + "_small.png";
    726774                } else {
    727775                    icon = "pf/image/all_small.png";
    728776                }
    729                 var name = this.getEntityFullName(entity, species);
    730                 var value = scale*this.evaluateEntityValue(entity, species);
     777                var name = this.getEntityFullName(entity, s1, s2);
     778                var value = scale*this.evaluateEntityValue(entity, s1, s2);
    731779
    732780                rowData.push([icon, name, entity.section,
     
    760808                }
    761809               
    762                 var species = fav.species;
    763 
    764                 var name  = this.getEntityFullName(entity, species);
     810                var s1    = fav.s1;
     811                var s2    = fav.s2;
     812
     813                var name  = this.getEntityFullName(entity, s1, s2);
    765814                var color = fav.color;
    766815
     
    13501399                }
    13511400               
    1352                 var species = fav.species;
    1353                 var vname = this.getEntityFullName(entity, species);
     1401                var s1    = fav.s1;
     1402                var s2    = fav.s2;
     1403                var vname = this.getEntityFullName(entity, s1, s2);
    13541404
    13551405                var set   = new Object;
     
    13861436                    }
    13871437                   
    1388                     var value = scale*this.evaluateEntityValue(entity, species);
     1438                    var value = scale*this.evaluateEntityValue(entity, s1, s2);
    13891439                   
    13901440                    if (first) {
     
    20682118                var sfav = new Object;
    20692119                sfav.entity_id  = fav.entity.id;
    2070                 if (fav.species) {
    2071                     sfav.species_id = fav.species.id;
     2120                if (fav.s1) {
     2121                    sfav.s1_id = fav.s1.id;
    20722122                } else {
    2073                     sfav.species_id = null;
     2123                    sfav.s1_id = null;
     2124                }
     2125                if (fav.s2) {
     2126                    sfav.s2_id = fav.s2.id;
     2127                } else {
     2128                    sfav.s2_id = null;
    20742129                }
    20752130                sfav.color      = fav.color;
     
    20982153                    var fav  = new Object;
    20992154                    fav.entity = this.getEntityById(sfav.entity_id);
     2155                    // old format
    21002156                    if (sfav.species_id) {
    2101                         fav.species = this.getSpeciesById(sfav.species_id);
     2157                        fav.s1 = this.getSpeciesById(sfav.species_id);
     2158                    } else
     2159                    if (sfav.s1_id) {
     2160                        fav.s1 = this.getSpeciesById(sfav.s1_id);
     2161                    }
     2162
     2163                    if (sfav.s2_id) {
     2164                        fav.s2 = this.getSpeciesById(sfav.s2_id);
    21022165                    }
    21032166                    fav.color = sfav.color;
Note: See TracChangeset for help on using the changeset viewer.