Changeset 26:40e499850288


Ignore:
Timestamp:
Dec 31, 2007, 3:38:33 PM (17 years ago)
Author:
fnevgeny
Branch:
default
Phase:
public
Message:

Added semi-functional menu system.

Location:
source
Files:
9 added
1 edited

Legend:

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

    r25 r26  
    383383}
    384384
     385function viewMenuCB(ev)
     386{
     387    var explorer_is_seen;
     388   
     389    if (this.entity_tree.isSeeable()) {
     390        explorer_is_seen = true;
     391    } else {
     392        explorer_is_seen = false;
     393    }
     394   
     395    this.showSectionsButton.setEnabled(explorer_is_seen);
     396    this.showSpeciesButton.setEnabled(explorer_is_seen);
     397}
     398
     399function editMenuCB(ev)
     400{
     401    var explorer_is_seen;
     402   
     403    if (this.entity_tree.isSeeable()) {
     404        explorer_is_seen = true;
     405    } else {
     406        explorer_is_seen = false;
     407    }
     408
     409    var tree = this.entity_tree;
     410    var leaf = tree.getSelectedElement();
     411
     412    if (leaf && explorer_is_seen) {
     413        if (this.isFavorite(leaf)) {
     414            this.editMenuButtonAddToFav.setEnabled(false);
     415            this.editMenuButtonRemFromFav.setEnabled(true);
     416        } else {
     417            this.editMenuButtonAddToFav.setEnabled(true);
     418            this.editMenuButtonRemFromFav.setEnabled(false);
     419        }
     420    } else {
     421        this.editMenuButtonAddToFav.setEnabled(false);
     422        this.editMenuButtonRemFromFav.setEnabled(false);
     423    }
     424}
     425
    385426function treeMenuCB(ev)
    386427{
     
    397438                if (this.isFavorite(leaf)) {
    398439                    this.treeMenuButtonAddToFav.setEnabled(false);
    399                     this.treeMenuButtonRemoveFromFav.setEnabled(true);
     440                    this.treeMenuButtonRemFromFav.setEnabled(true);
    400441                } else {
    401442                    this.treeMenuButtonAddToFav.setEnabled(true);
    402                     this.treeMenuButtonRemoveFromFav.setEnabled(false);
     443                    this.treeMenuButtonRemFromFav.setEnabled(false);
    403444                }
    404 
    405                 menu.setUserData("leaf", leaf);
    406445            } else {
    407446                this.treeMenuButtonAddToFav.setEnabled(false);
    408                 this.treeMenuButtonRemoveFromFav.setEnabled(false);
    409                 menu.setUserData("leaf", null);
     447                this.treeMenuButtonRemFromFav.setEnabled(false);
    410448            }
    411449           
     
    453491function addToFavCB(ev)
    454492{
    455     var leaf = this.treeMenu.getUserData("leaf");
     493    var tree = this.entity_tree;
     494    var leaf = tree.getSelectedElement();
     495
     496    if (!leaf) {
     497        return;
     498    }
     499
    456500    leaf.setTextColor("red");
    457501
    458502    // Add to the list of favorites
    459503    var fav = new Array;
    460     fav.entity = leaf.getUserData("entity");
     504    fav.entity  = leaf.getUserData("entity");
    461505    fav.species = leaf.getUserData("species");
    462506    this.favorites.push(fav);
     
    468512function removeFromFavCB(ev)
    469513{
    470     var leaf = this.treeMenu.getUserData("leaf");
     514    var tree = this.entity_tree;
     515    var leaf = tree.getSelectedElement();
     516
     517    if (!leaf) {
     518        return;
     519    }
    471520    leaf.setTextColor("black");
    472521
     
    767816        {
    768817            var tree = this.entity_tree;
    769             var e = tree.getSelectedElement();
    770            
    771             if (!e) {
     818            var leaf = tree.getSelectedElement();
     819           
     820            if (!leaf) {
    772821                return;
    773822            }
    774823           
    775             var entity = e.getUserData("entity");
    776             var species = e.getUserData("species");
     824            var entity  = leaf.getUserData("entity");
     825            var species = leaf.getUserData("species");
    777826           
    778827            var name = this.getEntityFullName(entity, species);
     
    861910
    862911                        leaf = new qx.ui.tree.TreeFile(entity.name, icon);
    863                         leaf.addEventListener("click", clickEntityCB, this);
     912                        leaf.addEventListener("changeSelected", clickEntityCB, this);
    864913                        leaf.addEventListener("contextmenu", treeMenuCB, this);
    865914                        leaf.setUserData("entity", entity);
     
    876925                    leaf = new qx.ui.tree.TreeFile(entity.name,
    877926                        "pf/image/all_small.png");
    878                     leaf.addEventListener("click", clickEntityCB, this);
     927                    leaf.addEventListener("changeSelected", clickEntityCB, this);
    879928                    leaf.addEventListener("contextmenu", treeMenuCB, this);
    880929                    leaf.setUserData("entity", entity);
     
    12431292                border          : "inset-thin",
    12441293                overflow        : "scroll",
    1245                 height          : 530,
     1294                height          : 500,
    12461295                width           : "100%",
    12471296                paddingLeft     : 4,
    12481297                paddingTop      : 4
    12491298            });
    1250             tree.addEventListener("contextmenu", treeMenuCB, this);
     1299            // tree.addEventListener("contextmenu", treeMenuCB, this);
    12511300            left_pane.add(tree);
    12521301           
     
    12931342            var button;
    12941343           
    1295             var subMenu1 = new qx.ui.menu.Menu;
    1296             button = new qx.ui.menu.CheckBox("Fundamental",
    1297                 null, this.showFundamental);
    1298             button.addEventListener("execute", showFundamentalCB, this);
    1299             subMenu1.add(button);
    1300             button = new qx.ui.menu.CheckBox("Spectroscopy",
    1301                 null, this.showSpectroscopy);
    1302             button.addEventListener("execute", showSpectroscopyCB, this);
    1303             subMenu1.add(button);
    1304             this.treeMenu.add(new qx.ui.menu.Button("Show sections",
    1305                 null, null, subMenu1));
    1306            
    1307             this.treeMenu.add(new qx.ui.menu.Separator);
    1308 
    1309             var subMenu2 = new qx.ui.menu.Menu;
    1310             button = new qx.ui.menu.CheckBox("Electrons",
    1311                 null, this.showElectrons)
    1312             button.addEventListener("execute", showElectronsCB, this);
    1313             subMenu2.add(button);
    1314             button = new qx.ui.menu.CheckBox("Ions",
    1315                 null, this.showIons)
    1316             button.addEventListener("execute", showIonsCB, this);
    1317             subMenu2.add(button);
    1318             button = new qx.ui.menu.CheckBox("Radiators",
    1319                 null, this.showRadiators)
    1320             button.addEventListener("execute", showRadiatorsCB, this);
    1321             subMenu2.add(button);
    1322             this.treeMenu.add(new qx.ui.menu.Button("Show species",
    1323                 null, null, subMenu2));
    1324            
    1325             this.treeMenu.add(new qx.ui.menu.Separator);
    1326 
    1327             button = new qx.ui.menu.Button("Add to favorites");
     1344            button = new qx.ui.menu.Button("Add to Favorites",
     1345                "pf/image/favorite-add.png");
    13281346            button.addEventListener("execute", addToFavCB, this);
    13291347            this.treeMenu.add(button);
    13301348            this.treeMenuButtonAddToFav = button;
    1331             button = new qx.ui.menu.Button("Remove from favorites");
     1349            button = new qx.ui.menu.Button("Remove from Favorites",
     1350                "pf/image/favorite-delete.png");
    13321351            button.addEventListener("execute", removeFromFavCB, this);
    13331352            this.treeMenu.add(button);
    1334             this.treeMenuButtonRemoveFromFav = button;
     1353            this.treeMenuButtonRemFromFav = button;
    13351354           
    13361355            var doc = qx.ui.core.ClientDocument.getInstance();
    1337             doc.add(this.treeMenu, subMenu1, subMenu2);
     1356            doc.add(this.treeMenu);
    13381357
    13391358
     
    14701489        },
    14711490       
     1491        aboutCB : function(ev)
     1492        {
     1493            this.aboutWindow.open();
     1494        },
     1495       
    14721496        renderPlotTab : function()
    14731497        {
     
    14751499                "pf/image/tab-plot.png");
    14761500        },
    1477        
     1501
     1502
     1503        buildMenu : function()
     1504        {
     1505            var menubar = this.menubar;
     1506            var doc = qx.ui.core.ClientDocument.getInstance();
     1507           
     1508            var submenu, btn;
     1509
     1510            var bg = "#efebec";
     1511           
     1512            submenu = new qx.ui.menu.Menu;
     1513            submenu.setBackgroundColor(bg);
     1514            doc.add(submenu);
     1515            btn = new qx.ui.menu.Button("Open...", "pf/image/open.png");
     1516            btn.addEventListener("execute", function (ev) {
     1517                alert("Not implemented yet")}, this);
     1518            submenu.add(btn);
     1519            btn = new qx.ui.menu.Button("Save...", "pf/image/save.png");
     1520            btn.addEventListener("execute", function (ev) {
     1521                alert("Not implemented yet")}, this);
     1522            submenu.add(btn);
     1523            submenu.add(new qx.ui.menu.Separator);
     1524            btn = new qx.ui.menu.Button("Exit", "pf/image/exit.png");
     1525            btn.addEventListener("execute", function (ev) {
     1526                window.close()}, this);
     1527            submenu.add(btn);
     1528               
     1529            btn = new qx.ui.menubar.Button("File", submenu);
     1530            btn.set({ paddingLeft : 7, paddingRight : 7 });
     1531            menubar.add(btn);
     1532
     1533
     1534            submenu = new qx.ui.menu.Menu;
     1535            submenu.setBackgroundColor(bg);
     1536            submenu.addEventListener("beforeAppear", editMenuCB, this);
     1537            doc.add(submenu);
     1538            btn = new qx.ui.menu.Button("Add to Favorites",
     1539                "pf/image/favorite-add.png");
     1540            btn.addEventListener("execute", addToFavCB, this);
     1541            this.editMenuButtonAddToFav = btn;
     1542            submenu.add(btn);
     1543            btn = new qx.ui.menu.Button("Remove from Favorites",
     1544                "pf/image/favorite-delete.png");
     1545            btn.addEventListener("execute", removeFromFavCB, this);
     1546            this.editMenuButtonRemFromFav = btn;
     1547            submenu.add(btn);
     1548            submenu.add(new qx.ui.menu.Separator);
     1549            btn = new qx.ui.menu.Button("Preferences",
     1550                "pf/image/preferences.png");
     1551            btn.addEventListener("execute", function (ev) {
     1552                alert("Not implemented yet")}, this);
     1553            submenu.add(btn);
     1554
     1555            btn = new qx.ui.menubar.Button("Edit", submenu);
     1556            btn.set({ paddingLeft : 7, paddingRight : 7 });
     1557            menubar.add(btn);
     1558
     1559
     1560            submenu = new qx.ui.menu.Menu;
     1561            submenu.setBackgroundColor(bg);
     1562            submenu.addEventListener("beforeAppear", viewMenuCB, this);
     1563
     1564            var subMenu1 = new qx.ui.menu.Menu;
     1565            subMenu1.setBackgroundColor(bg);
     1566            button = new qx.ui.menu.CheckBox("Fundamental",
     1567                null, this.showFundamental);
     1568            button.addEventListener("execute", showFundamentalCB, this);
     1569            subMenu1.add(button);
     1570            button = new qx.ui.menu.CheckBox("Spectroscopy",
     1571                null, this.showSpectroscopy);
     1572            button.addEventListener("execute", showSpectroscopyCB, this);
     1573            subMenu1.add(button);
     1574            this.showSectionsButton = new qx.ui.menu.Button("Show Sections",
     1575                null, null, subMenu1);
     1576            submenu.add(this.showSectionsButton);
     1577           
     1578            submenu.add(new qx.ui.menu.Separator);
     1579
     1580            var subMenu2 = new qx.ui.menu.Menu;
     1581            subMenu2.setBackgroundColor(bg);
     1582            button = new qx.ui.menu.CheckBox("Electrons",
     1583                null, this.showElectrons)
     1584            button.addEventListener("execute", showElectronsCB, this);
     1585            subMenu2.add(button);
     1586            button = new qx.ui.menu.CheckBox("Ions",
     1587                null, this.showIons)
     1588            button.addEventListener("execute", showIonsCB, this);
     1589            subMenu2.add(button);
     1590            button = new qx.ui.menu.CheckBox("Radiators",
     1591                null, this.showRadiators)
     1592            button.addEventListener("execute", showRadiatorsCB, this);
     1593            subMenu2.add(button);
     1594            this.showSpeciesButton = new qx.ui.menu.Button("Show Species",
     1595                null, null, subMenu2);
     1596            submenu.add(this.showSpeciesButton);
     1597           
     1598            doc.add(submenu, subMenu1, subMenu2);
     1599
     1600            btn = new qx.ui.menubar.Button("View", submenu);
     1601            btn.set({ paddingLeft : 7, paddingRight : 7 });
     1602            menubar.add(btn);
     1603
     1604
     1605            submenu = new qx.ui.menu.Menu;
     1606            submenu.setBackgroundColor(bg);
     1607            doc.add(submenu);
     1608            btn = new qx.ui.menu.Button("Help Contents",
     1609                "pf/image/help.png");
     1610            btn.addEventListener("execute", function (ev) {
     1611                alert("Not implemented yet")}, this);
     1612            submenu.add(btn);
     1613            btn = new qx.ui.menu.Button("NRL Plasma Formulary",
     1614                "pf/image/nrl.png");
     1615            btn.addEventListener("execute", function (ev) {
     1616                    var w = new qx.client.NativeWindow("http://wwwppd.nrl.navy.mil/nrlformulary/");
     1617                    w.setDimension(800, 600);
     1618                    w.open();
     1619                }, this);
     1620            submenu.add(btn);
     1621            submenu.add(new qx.ui.menu.Separator);
     1622            btn = new qx.ui.menu.Button("About Plasma Formulary",
     1623                "pf/image/about.png");
     1624            btn.addEventListener("execute", this.aboutCB, this);
     1625            submenu.add(btn);
     1626
     1627            btn = new qx.ui.menubar.Button("Help", submenu);
     1628            btn.set({ paddingLeft : 7, paddingRight : 7 });
     1629            menubar.add(btn);
     1630        },
     1631
    14781632        /**
    14791633         * TODOC
     
    14911645                qx.core.Setting.get("pf.resourceUri"));
    14921646
     1647            this.doc = qx.ui.core.ClientDocument.getInstance();
     1648           
    14931649            // Defaults
    14941650           
     
    15181674            this.bl_top.addToDocument();
    15191675
    1520 
    1521             // The toolbar
    1522             var tb = new qx.ui.toolbar.ToolBar;
    1523             this.bl_top.add(tb);
    1524 
    1525             // ... and the buttons themselves
    1526 
    1527             var sep = new qx.ui.toolbar.Separator;
    1528             tb.add(sep);
    1529 
    1530             var btn = new qx.ui.toolbar.Button("About...");
    1531             tb.add(btn);
    1532             // btn.addEventListener("execute", this.aboutCB, this);
    1533 
     1676            // The menubar
     1677            this.menubar = new qx.ui.menubar.MenuBar;
     1678            this.bl_top.add(this.menubar);
     1679           
     1680            // The menu items
     1681            this.buildMenu();
     1682           
    15341683            var tf1 = new qx.ui.pageview.tabview.TabView;
    15351684            tf1.set({ width : '100%', height : 'auto' });
     
    15531702            // The "Plot" tab
    15541703            this.renderPlotTab();
     1704
     1705            // "About..." dialog
     1706            var w = new qx.ui.window.Window("About Plasma Formulary",
     1707                "pf/image/about.png");
     1708            w.setSpace(200, "auto", 100, "auto");
     1709            w.setModal(true);
     1710            w.setShowMinimize(false);
     1711            w.setShowMaximize(false);
     1712           
     1713            str = 'Plasma Formulary Interactive.<br/>'         +
     1714                  '$Revision$.'                         +
     1715                  '<p>Written by Evgeny Stambulchik.</p>'      +
     1716                  '<p>Based on the Qooxdoo-' + qx.core.Version +
     1717                  ' toolkit.</p>';
     1718
     1719            var a = new qx.ui.basic.Atom(str);
     1720            a.set({ top: 4, left: 4 });
     1721            w.add(a);
     1722
     1723            this.doc.add(w);
     1724            this.aboutWindow = w;
     1725           
     1726
     1727
    15551728        },
    15561729   
Note: See TracChangeset for help on using the changeset viewer.