Changes in / [20:ab086b192f80:30:e1d0ed7a5346]
- Location:
- source
- Files:
-
- 16 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
source/class/pf/Application.js
r20 r29 17 17 18 18 var plasma_entities = new Array( 19 { 20 name : "Plasma frequency", 21 dimension : "frequency", 22 nspecies : 1, 23 section : "fundamental", 24 formula : "%s1.getPlasmaFrequency()" 25 }, 19 26 { 20 27 name : "Gyrofrequency", … … 23 30 section : "fundamental", 24 31 formula : "%s1.getGyroFrequency(this.B)" 25 },26 {27 name : "Plasma frequency",28 dimension : "frequency",29 nspecies : 1,30 section : "fundamental",31 formula : "%s1.getPlasmaFrequency()"32 32 }, 33 33 … … 379 379 if (isFinite(v)) { 380 380 this.B = v; 381 this.updateGUI(); 382 } 383 } 384 385 function 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 399 function 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); 381 423 } 382 424 } … … 396 438 if (this.isFavorite(leaf)) { 397 439 this.treeMenuButtonAddToFav.setEnabled(false); 398 this.treeMenuButtonRem oveFromFav.setEnabled(true);440 this.treeMenuButtonRemFromFav.setEnabled(true); 399 441 } else { 400 442 this.treeMenuButtonAddToFav.setEnabled(true); 401 this.treeMenuButtonRem oveFromFav.setEnabled(false);443 this.treeMenuButtonRemFromFav.setEnabled(false); 402 444 } 403 404 menu.setUserData("leaf", leaf);405 445 } else { 406 446 this.treeMenuButtonAddToFav.setEnabled(false); 407 this.treeMenuButtonRemoveFromFav.setEnabled(false); 408 menu.setUserData("leaf", null); 447 this.treeMenuButtonRemFromFav.setEnabled(false); 409 448 } 410 449 … … 452 491 function addToFavCB(ev) 453 492 { 454 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 455 500 leaf.setTextColor("red"); 456 501 457 502 // Add to the list of favorites 458 503 var fav = new Array; 459 fav.entity = leaf.getUserData("entity");504 fav.entity = leaf.getUserData("entity"); 460 505 fav.species = leaf.getUserData("species"); 461 506 this.favorites.push(fav); 507 508 // Update the list of favorites 509 this.updateFavoritesListView(); 462 510 } 463 511 464 512 function removeFromFavCB(ev) 465 513 { 466 var leaf = this.treeMenu.getUserData("leaf"); 514 var tree = this.entity_tree; 515 var leaf = tree.getSelectedElement(); 516 517 if (!leaf) { 518 return; 519 } 467 520 leaf.setTextColor("black"); 468 521 … … 470 523 var species = leaf.getUserData("species"); 471 524 525 // Remove from the list of favorites 472 526 for (var k = 0; k < this.favorites.length; k++) { 473 527 var fav = this.favorites[k]; … … 478 532 } 479 533 534 // Update the list of favorites 535 this.updateFavoritesListView(); 480 536 } 481 537 … … 485 541 var entity = e.getUserData("entity"); 486 542 487 // keep the old value of the units 488 var combo = this.gui_entity_units; 489 490 var old_dimension = combo.getUserData("dimension"); 491 if (old_dimension != entity.dimension) { 492 var list = combo.getList(); 493 494 // clear everything 495 list.removeAll(); 496 497 var selected; 498 499 switch (entity.dimension) { 500 case "frequency": 501 combo.addNumItem("Rad/s", 2*Math.PI); 502 selected = combo.addNumItem("Hz", 1.0); 503 break; 504 case "length": 505 combo.addNumItem("A", 1.0e8); 506 combo.addNumItem("nm", 1.0e7); 507 selected = combo.addNumItem("cm", 1.0); 508 combo.addNumItem("m", 1.0e-2); 509 break; 510 case "velocity": 511 selected = combo.addNumItem("cm/s", 1.0); 512 combo.addNumItem("m/s", 1.0e-2); 513 combo.addNumItem("v/c", 1.0/3e10); 514 break; 515 case "energy": 516 selected = combo.addNumItem("cm^-1", 1.0); 517 combo.addNumItem("eV", 1.0/8065.5); 518 combo.addNumItem("erg", 1.9864e-16); 519 break; 520 case "efield": 521 combo.addNumItem("V/m", 1.0e2); 522 selected = combo.addNumItem("V/cm", 1.0); 523 combo.addNumItem("StatV/cm", 1.0/300); 524 combo.addNumItem("MV/cm", 1.0e-6); 525 break; 526 case "none": 527 selected = combo.addNumItem("---", 1.0); 528 break; 529 default: 530 selected = combo.addNumItem("???", 1.0); 531 break; 532 } 533 534 if (selected) { 535 combo.setSelected(selected); 536 } 537 } 538 539 combo.setUserData("dimension", entity.dimension); 543 this.gui_entity_units.update(entity.dimension); 540 544 541 545 this.updateEntityValue(); … … 615 619 this.gui_T_r.setNumValue(this.r.getT()); 616 620 this.gui_Zcore.setValue(this.r.getQ() + 1); 621 622 // Update the currently selecte entity 623 this.updateEntityValue(); 624 625 // Update the list of favorites 626 this.updateFavoritesListView(); 617 627 }, 618 628 … … 769 779 }, 770 780 771 updateEntityValue : function(entity, species) 772 { 773 var tree = this.entity_tree; 774 var e = tree.getSelectedElement(); 775 776 if (!e) { 777 return; 778 } 779 780 var entity = e.getUserData("entity"); 781 var species = e.getUserData("species"); 782 781 getEntityFullName : function (entity, species) 782 { 783 783 var name = entity.name; 784 784 if (entity.nspecies == 1) { … … 795 795 } 796 796 } 797 this.gui_entity_name.setValue(name); 798 799 this.gui_entity_section.setValue(entity.section); 800 797 798 return name; 799 }, 800 801 evaluateEntityValue : function(entity, species) 802 { 801 803 var formula; 802 804 if (entity.nspecies == 1) { … … 806 808 formula = entity.formula; 807 809 } 810 var v = eval(formula); 811 812 return v; 813 }, 814 815 updateEntityValue : function() 816 { 817 var tree = this.entity_tree; 818 var leaf = tree.getSelectedElement(); 819 820 if (!leaf) { 821 return; 822 } 823 824 var entity = leaf.getUserData("entity"); 825 var species = leaf.getUserData("species"); 826 827 var name = this.getEntityFullName(entity, species); 828 this.gui_entity_name.setValue(name); 829 830 this.gui_entity_section.setValue(entity.section); 831 832 var v = this.evaluateEntityValue(entity, species); 808 833 809 834 var scale = this.gui_entity_units.getSelected().getValue(); 810 835 811 var v = eval(formula);812 836 this.gui_entity_value.setNumValue(v*scale); 813 837 }, … … 886 910 887 911 leaf = new qx.ui.tree.TreeFile(entity.name, icon); 888 leaf.addEventListener("c lick", clickEntityCB, this);889 leaf.addEventListener(" mouseup", treeMenuCB, this);912 leaf.addEventListener("changeSelected", clickEntityCB, this); 913 leaf.addEventListener("contextmenu", treeMenuCB, this); 890 914 leaf.setUserData("entity", entity); 891 915 leaf.setUserData("species", s); … … 901 925 leaf = new qx.ui.tree.TreeFile(entity.name, 902 926 "pf/image/all_small.png"); 903 leaf.addEventListener("c lick", clickEntityCB, this);904 leaf.addEventListener(" mouseup", treeMenuCB, this);927 leaf.addEventListener("changeSelected", clickEntityCB, this); 928 leaf.addEventListener("contextmenu", treeMenuCB, this); 905 929 leaf.setUserData("entity", entity); 906 930 … … 947 971 }, 948 972 949 /** 950 * TODOC 951 * 952 * @type member 953 * @param e {Event} TODOC 954 * @return {void} 955 */ 956 main : function(e) 957 { 958 this.base(arguments); 959 960 // Define alias for custom resource path 961 qx.io.Alias.getInstance().add("pf", 962 qx.core.Setting.get("pf.resourceUri")); 963 964 // Defaults 965 966 this.r = new pf.base.Species("r", 1.0, 0, 0, 1.0, null); 967 this.e = new pf.base.Species("e", (1.0/1836.2), -1, 1e16, 1.0, this.r); 968 this.i = new pf.base.Species("i", 1.0, +1, 1e16, 1.0, this.r); 969 970 this.P_r = 0; 971 972 this.B = 0; 973 974 this.n_u = 2; 975 this.n_l = 1; 976 977 if (this.updatePlasmaParameters() != true) { 978 alert("Error!"); 979 } 980 981 // Favorites 982 this.favorites = new Array; 983 984 // Top-level container 985 this.bl_top = new qx.ui.layout.VerticalBoxLayout("vertical"); 986 this.bl_top.setWidth("100%"); 987 this.bl_top.setHeight("auto"); 988 989 this.bl_top.addToDocument(); 990 991 992 // The toolbar 993 var tb = new qx.ui.toolbar.ToolBar; 994 this.bl_top.add(tb); 995 996 // ... and the buttons themselves 997 998 var sep = new qx.ui.toolbar.Separator; 999 tb.add(sep); 1000 1001 var btn = new qx.ui.toolbar.Button("About..."); 1002 tb.add(btn); 1003 // btn.addEventListener("execute", this.aboutCB, this); 1004 1005 var tf1 = new qx.ui.pageview.tabview.TabView; 1006 this.bl_top.add(tf1); 1007 1008 this.tabbar = tf1.getBar(); 1009 this.tabpane = tf1.getPane(); 1010 this.tabpane.setPadding(0, 0, 0, 0); 1011 973 974 updateFavoritesListView : function() 975 { 976 var lv = this.favoritesListView; 977 var rowData = lv.getData(); 978 rowData.length = 0; 979 980 var dimension = this.gui_compare_dim.getSelectedValue(); 981 982 var scale = this.gui_compare_units.getSelectedValue(); 983 984 for (var i = 0; i < this.favorites.length; i++) { 985 var fav = this.favorites[i]; 986 var entity = fav.entity; 987 988 if (entity.dimension != dimension) { 989 continue; 990 } 991 992 var species = fav.species; 993 994 var icon; 995 if (species) { 996 icon = "pf/image/" + species.id + "_small.png"; 997 } else { 998 icon = "pf/image/all_small.png"; 999 } 1000 var name = this.getEntityFullName(entity, species); 1001 var value = scale*this.evaluateEntityValue(entity, species); 1002 1003 rowData.push({ s_icon : {icon : icon, 1004 iconWidth : 16, 1005 iconHeight : 16 }, 1006 name : {text : name }, 1007 section : {text : entity.section }, 1008 value : {text : NumPrint(value)} 1009 }); 1010 } 1011 1012 lv.updateSort(); 1013 lv.update(); 1014 }, 1015 1016 1017 renderTabPage : function(label, icon, checked) 1018 { 1012 1019 var tab_id, page_id; 1013 var fr, gl; 1014 var l, e; 1015 1016 var tab_id = new qx.ui.pageview.tabview.Button("Parameters", 1017 "pf/image/tab-parameters.png"); 1020 1021 tab_id = new qx.ui.pageview.tabview.Button(label, icon); 1018 1022 this.tabbar.add(tab_id); 1019 1023 page_id = new qx.ui.pageview.tabview.Page(tab_id); … … 1023 1027 this.tabpane.add(page_id); 1024 1028 1029 if (checked) { 1030 tab_id.setChecked(true); 1031 } 1032 1033 return page_id; 1034 }, 1035 1036 renderParametersTab : function() 1037 { 1038 var page_id = this.renderTabPage("Parameters", 1039 "pf/image/tab-parameters.png", true); 1040 1041 var fr, gl; 1042 1025 1043 fr = new qx.ui.groupbox.GroupBox("Electrons", 1026 1044 "pf/image/e_small.png"); … … 1041 1059 1042 1060 fr.add(gl); 1061 1062 var l, e; 1043 1063 1044 1064 // N_e … … 1176 1196 1177 1197 1178 fr = new qx.ui.groupbox.GroupBox("Fields"); 1198 fr = new qx.ui.groupbox.GroupBox("Fields", 1199 "pf/image/field_small.png"); 1179 1200 fr.setDimension("auto", "auto"); 1180 1201 fr.setBackgroundColor("#ffffdd"); … … 1243 1264 gl.add(e, 1, 2); 1244 1265 e.addEventListener("change", changeN_l, this); 1245 1246 tab_id.setChecked(true); 1247 1248 1249 tab_id = new qx.ui.pageview.tabview.Button("Explorer",1266 }, 1267 1268 renderExplorerTab : function() 1269 { 1270 var page_id = this.renderTabPage("Explorer", 1250 1271 "pf/image/tab-explorer.png"); 1251 this.tabbar.add(tab_id);1252 page_id = new qx.ui.pageview.tabview.Page(tab_id);1253 page_id.setHeight("auto");1254 page_id.setPadding(10, 10, 10, 10);1255 page_id.setBackgroundColor("white");1256 this.tabpane.add(page_id);1257 1258 var pageLayout = new qx.ui.layout.CanvasLayout;1259 pageLayout.set(1260 {1261 width: "100%",1262 height: 600,1263 backgroundColor: "grey"1264 });1265 page_id.add(pageLayout);1266 1272 1267 1273 var sp = new qx.ui.splitpane.HorizontalSplitPane(300, "1*"); … … 1276 1282 showKnob : true 1277 1283 }); 1278 page Layout.add(sp);1284 page_id.add(sp); 1279 1285 1280 1286 var left_pane = sp.getLeftArea(); … … 1287 1293 border : "inset-thin", 1288 1294 overflow : "scroll", 1289 height : "100%",1295 height : 500, 1290 1296 width : "100%", 1291 1297 paddingLeft : 4, 1292 1298 paddingTop : 4 1293 1299 }); 1294 tree.addEventListener("mouseup", treeMenuCB, this);1300 // tree.addEventListener("contextmenu", treeMenuCB, this); 1295 1301 left_pane.add(tree); 1296 1302 … … 1337 1343 var button; 1338 1344 1345 button = new qx.ui.menu.Button("Add to Favorites", 1346 "pf/image/favorite-add.png"); 1347 button.addEventListener("execute", addToFavCB, this); 1348 this.treeMenu.add(button); 1349 this.treeMenuButtonAddToFav = button; 1350 button = new qx.ui.menu.Button("Remove from Favorites", 1351 "pf/image/favorite-delete.png"); 1352 button.addEventListener("execute", removeFromFavCB, this); 1353 this.treeMenu.add(button); 1354 this.treeMenuButtonRemFromFav = button; 1355 1356 var doc = qx.ui.core.ClientDocument.getInstance(); 1357 doc.add(this.treeMenu); 1358 1359 1360 var gl = new qx.ui.layout.GridLayout; 1361 gl.set( 1362 { 1363 left: 4, 1364 right: 4, 1365 top: 4 1366 }); 1367 1368 gl.setVerticalSpacing(4); 1369 gl.setHorizontalSpacing(6); 1370 gl.setColumnCount(3); 1371 gl.setColumnWidth(0, "15%"); 1372 gl.setColumnWidth(1, "60%"); 1373 gl.setColumnWidth(2, "20%"); 1374 gl.setRowCount(3); 1375 gl.setRowHeight(0, 30); 1376 gl.setRowHeight(1, 30); 1377 gl.setRowHeight(2, 30); 1378 1379 var l, e; 1380 1381 l = new qx.ui.basic.Label("Name:"); 1382 gl.add(l, 0, 0); 1383 e = new qx.ui.form.TextField(); 1384 e.setReadOnly(true); 1385 this.gui_entity_name = e; 1386 gl.add(e, 1, 0); 1387 1388 l = new qx.ui.basic.Label("Value:"); 1389 gl.add(l, 0, 1); 1390 e = new pf.ui.TextField(""); 1391 e.setReadOnly(true); 1392 gl.add(e, 1, 1); 1393 this.gui_entity_value = e; 1394 1395 e = new pf.UnitSelector(); 1396 e.addEventListener("changeSelected", changeUnitsCB, this); 1397 gl.add(e, 2, 1); 1398 this.gui_entity_units = e; 1399 1400 l = new qx.ui.basic.Label("Section:"); 1401 gl.add(l, 0, 2); 1402 e = new qx.ui.form.TextField(); 1403 e.setReadOnly(true); 1404 this.gui_entity_section = e; 1405 gl.add(e, 1, 2); 1406 1407 right_pane.add(gl); 1408 }, 1409 1410 renderCompareTab : function() 1411 { 1412 var page_id = this.renderTabPage("Compare", 1413 "pf/image/tab-compare.png"); 1414 1415 var bl = new qx.ui.layout.VerticalBoxLayout("vertical"); 1416 bl.setWidth("100%"); 1417 bl.setHeight("100%"); 1418 bl.setSpacing(10); 1419 page_id.add(bl); 1420 1421 var rc = new qx.ui.layout.HorizontalBoxLayout; 1422 rc.setWidth("100%"); 1423 rc.setHeight("auto"); 1424 rc.setSpacing(10); 1425 bl.add(rc); 1426 1427 var l, e; 1428 l = new qx.ui.basic.Label("Dimension:"); 1429 e = new pf.ui.ComboBox; 1430 e.add(new qx.ui.form.ListItem("Frequency", null, "frequency")); 1431 e.add(new qx.ui.form.ListItem("Length", null, "length")); 1432 e.add(new qx.ui.form.ListItem("Velocity", null, "velocity")); 1433 e.add(new qx.ui.form.ListItem("Energy", null, "energy")); 1434 e.add(new qx.ui.form.ListItem("Electric field", null, "efield")); 1435 e.add(new qx.ui.form.ListItem("None", null, "none")); 1436 e.addEventListener("changeSelected", function(ev) { 1437 var dimension = this.gui_compare_dim.getSelectedValue(); 1438 this.gui_compare_units.update(dimension); 1439 this.updateFavoritesListView(); 1440 }, this); 1441 rc.add(l, e); 1442 this.gui_compare_dim = e; 1443 1444 l = new qx.ui.basic.Label("Units:"); 1445 e = new pf.UnitSelector; 1446 e.addEventListener("changeSelected", function(ev) { 1447 this.updateFavoritesListView(); 1448 }, this); 1449 rc.add(l, e); 1450 this.gui_compare_units = e; 1451 1452 var lc = 1453 { 1454 s_icon : { label : "", 1455 width : 24, 1456 type : "iconHtml", 1457 align : "center", 1458 sortable : false }, 1459 name : { label : "Name", 1460 width : 300, 1461 type : "text", 1462 align : "left", 1463 sortable : true, 1464 sortProp : "text" }, 1465 section : { label : "Section", 1466 width : 120, 1467 type : "text", 1468 align : "left", 1469 sortable : true, 1470 sortProp : "text" }, 1471 value : { label : "Value", 1472 width : 120, 1473 type : "text", 1474 align : "right", 1475 sortable : true, 1476 sortProp : "text", 1477 sortMethod : qx.util.Compare.byFloatString } 1478 }; 1479 1480 var lv = new qx.ui.listview.ListView(new Array, lc); 1481 1482 lv.setWidth("100%"); 1483 lv.setHeight(400); 1484 lv.setBackgroundColor("white"); 1485 lv.setBorder("dark-shadow"); 1486 1487 bl.add(lv); 1488 1489 this.favoritesListView = lv; 1490 }, 1491 1492 aboutCB : function(ev) 1493 { 1494 this.aboutWindow.open(); 1495 }, 1496 1497 renderPlotTab : function() 1498 { 1499 var page_id = this.renderTabPage("Plot", 1500 "pf/image/tab-plot.png"); 1501 }, 1502 1503 1504 buildMenu : function() 1505 { 1506 var menubar = this.menubar; 1507 var doc = qx.ui.core.ClientDocument.getInstance(); 1508 1509 var submenu, btn; 1510 1511 var bg = "#efebec"; 1512 1513 submenu = new qx.ui.menu.Menu; 1514 submenu.setBackgroundColor(bg); 1515 doc.add(submenu); 1516 btn = new qx.ui.menu.Button("Open...", "pf/image/open.png"); 1517 btn.addEventListener("execute", function (ev) { 1518 alert("Not implemented yet")}, this); 1519 submenu.add(btn); 1520 btn = new qx.ui.menu.Button("Save...", "pf/image/save.png"); 1521 btn.addEventListener("execute", function (ev) { 1522 alert("Not implemented yet")}, this); 1523 submenu.add(btn); 1524 submenu.add(new qx.ui.menu.Separator); 1525 btn = new qx.ui.menu.Button("Exit", "pf/image/exit.png"); 1526 btn.addEventListener("execute", function (ev) { 1527 window.close()}, this); 1528 submenu.add(btn); 1529 1530 btn = new qx.ui.menubar.Button("File", submenu); 1531 btn.set({ paddingLeft : 7, paddingRight : 7 }); 1532 menubar.add(btn); 1533 1534 1535 submenu = new qx.ui.menu.Menu; 1536 submenu.setBackgroundColor(bg); 1537 submenu.addEventListener("beforeAppear", editMenuCB, this); 1538 doc.add(submenu); 1539 btn = new qx.ui.menu.Button("Add to Favorites", 1540 "pf/image/favorite-add.png"); 1541 btn.addEventListener("execute", addToFavCB, this); 1542 this.editMenuButtonAddToFav = btn; 1543 submenu.add(btn); 1544 btn = new qx.ui.menu.Button("Remove from Favorites", 1545 "pf/image/favorite-delete.png"); 1546 btn.addEventListener("execute", removeFromFavCB, this); 1547 this.editMenuButtonRemFromFav = btn; 1548 submenu.add(btn); 1549 submenu.add(new qx.ui.menu.Separator); 1550 btn = new qx.ui.menu.Button("Preferences", 1551 "pf/image/preferences.png"); 1552 btn.addEventListener("execute", function (ev) { 1553 alert("Not implemented yet")}, this); 1554 submenu.add(btn); 1555 1556 btn = new qx.ui.menubar.Button("Edit", submenu); 1557 btn.set({ paddingLeft : 7, paddingRight : 7 }); 1558 menubar.add(btn); 1559 1560 1561 submenu = new qx.ui.menu.Menu; 1562 submenu.setBackgroundColor(bg); 1563 submenu.addEventListener("beforeAppear", viewMenuCB, this); 1564 1339 1565 var subMenu1 = new qx.ui.menu.Menu; 1566 subMenu1.setBackgroundColor(bg); 1340 1567 button = new qx.ui.menu.CheckBox("Fundamental", 1341 1568 null, this.showFundamental); … … 1346 1573 button.addEventListener("execute", showSpectroscopyCB, this); 1347 1574 subMenu1.add(button); 1348 this.treeMenu.add(new qx.ui.menu.Button("Show sections", 1349 null, null, subMenu1)); 1350 1351 this.treeMenu.add(new qx.ui.menu.Separator); 1575 this.showSectionsButton = new qx.ui.menu.Button("Show Sections", 1576 null, null, subMenu1); 1577 submenu.add(this.showSectionsButton); 1578 1579 submenu.add(new qx.ui.menu.Separator); 1352 1580 1353 1581 var subMenu2 = new qx.ui.menu.Menu; 1582 subMenu2.setBackgroundColor(bg); 1354 1583 button = new qx.ui.menu.CheckBox("Electrons", 1355 1584 null, this.showElectrons) … … 1364 1593 button.addEventListener("execute", showRadiatorsCB, this); 1365 1594 subMenu2.add(button); 1366 this.treeMenu.add(new qx.ui.menu.Button("Show species", 1367 null, null, subMenu2)); 1368 1369 this.treeMenu.add(new qx.ui.menu.Separator); 1370 1371 button = new qx.ui.menu.Button("Add to favorites"); 1372 button.addEventListener("execute", addToFavCB, this); 1373 this.treeMenu.add(button); 1374 this.treeMenuButtonAddToFav = button; 1375 button = new qx.ui.menu.Button("Remove from favorites"); 1376 button.addEventListener("execute", removeFromFavCB, this); 1377 this.treeMenu.add(button); 1378 this.treeMenuButtonRemoveFromFav = button; 1379 1380 var doc = qx.ui.core.ClientDocument.getInstance(); 1381 doc.add(this.treeMenu, subMenu1, subMenu2); 1382 1383 1384 gl = new qx.ui.layout.GridLayout; 1385 gl.set( 1386 { 1387 left: 4, 1388 right: 4, 1389 top: 4 1390 }); 1391 1392 gl.setVerticalSpacing(4); 1393 gl.setHorizontalSpacing(6); 1394 gl.setColumnCount(3); 1395 gl.setColumnWidth(0, "15%"); 1396 gl.setColumnWidth(1, "60%"); 1397 gl.setColumnWidth(2, "20%"); 1398 gl.setRowCount(3); 1399 gl.setRowHeight(0, 30); 1400 gl.setRowHeight(1, 30); 1401 gl.setRowHeight(2, 30); 1402 1403 l = new qx.ui.basic.Label("Name:"); 1404 gl.add(l, 0, 0); 1405 e = new qx.ui.form.TextField(); 1406 e.setReadOnly(true); 1407 this.gui_entity_name = e; 1408 gl.add(e, 1, 0); 1409 1410 l = new qx.ui.basic.Label("Value:"); 1411 gl.add(l, 0, 1); 1412 e = new pf.ui.TextField(""); 1413 e.setReadOnly(true); 1414 gl.add(e, 1, 1); 1415 this.gui_entity_value = e; 1416 1417 e = new pf.ui.ComboBox(); 1418 e.addEventListener("changeSelected", changeUnitsCB, this); 1419 gl.add(e, 2, 1); 1420 this.gui_entity_units = e; 1421 1422 l = new qx.ui.basic.Label("Section:"); 1423 gl.add(l, 0, 2); 1424 e = new qx.ui.form.TextField(); 1425 e.setReadOnly(true); 1426 this.gui_entity_section = e; 1427 gl.add(e, 1, 2); 1428 1429 right_pane.add(gl); 1595 this.showSpeciesButton = new qx.ui.menu.Button("Show Species", 1596 null, null, subMenu2); 1597 submenu.add(this.showSpeciesButton); 1598 1599 doc.add(submenu, subMenu1, subMenu2); 1600 1601 btn = new qx.ui.menubar.Button("View", submenu); 1602 btn.set({ paddingLeft : 7, paddingRight : 7 }); 1603 menubar.add(btn); 1604 1605 1606 submenu = new qx.ui.menu.Menu; 1607 submenu.setBackgroundColor(bg); 1608 doc.add(submenu); 1609 btn = new qx.ui.menu.Button("Help Contents", 1610 "pf/image/help.png"); 1611 btn.addEventListener("execute", function (ev) { 1612 alert("Not implemented yet")}, this); 1613 submenu.add(btn); 1614 btn = new qx.ui.menu.Button("NRL Plasma Formulary", 1615 "pf/image/nrl.png"); 1616 btn.addEventListener("execute", function (ev) { 1617 var w = new qx.client.NativeWindow("http://wwwppd.nrl.navy.mil/nrlformulary/"); 1618 w.setDimension(800, 600); 1619 w.open(); 1620 }, this); 1621 submenu.add(btn); 1622 submenu.add(new qx.ui.menu.Separator); 1623 btn = new qx.ui.menu.Button("About Plasma Formulary", 1624 "pf/image/about.png"); 1625 btn.addEventListener("execute", this.aboutCB, this); 1626 submenu.add(btn); 1627 1628 btn = new qx.ui.menubar.Button("Help", submenu); 1629 btn.set({ paddingLeft : 7, paddingRight : 7 }); 1630 menubar.add(btn); 1631 }, 1632 1633 /** 1634 * TODOC 1635 * 1636 * @type member 1637 * @param e {Event} TODOC 1638 * @return {void} 1639 */ 1640 main : function(e) 1641 { 1642 this.base(arguments); 1643 1644 // Define alias for custom resource path 1645 qx.io.Alias.getInstance().add("pf", 1646 qx.core.Setting.get("pf.resourceUri")); 1647 1648 this.doc = qx.ui.core.ClientDocument.getInstance(); 1649 1650 // Defaults 1651 1652 this.r = new pf.base.Species("r", 1.0, 0, 0, 1.0, null); 1653 this.e = new pf.base.Species("e", (1.0/1836.2), -1, 1e16, 1.0, this.r); 1654 this.i = new pf.base.Species("i", 1.0, +1, 1e16, 1.0, this.r); 1655 1656 this.P_r = 0; 1657 1658 this.B = 0; 1659 1660 this.n_u = 2; 1661 this.n_l = 1; 1662 1663 if (this.updatePlasmaParameters() != true) { 1664 alert("Error!"); 1665 } 1666 1667 // Favorites 1668 this.favorites = new Array; 1669 1670 // Top-level container 1671 this.bl_top = new qx.ui.layout.VerticalBoxLayout("vertical"); 1672 this.bl_top.setWidth("100%"); 1673 this.bl_top.setHeight("100%"); 1674 1675 this.bl_top.addToDocument(); 1676 1677 // The menubar 1678 this.menubar = new qx.ui.menubar.MenuBar; 1679 this.bl_top.add(this.menubar); 1680 1681 // The menu items 1682 this.buildMenu(); 1683 1684 var tf1 = new qx.ui.pageview.tabview.TabView; 1685 tf1.set({ width : '100%', height : 'auto' }); 1686 1687 this.bl_top.add(tf1); 1688 1689 this.tabbar = tf1.getBar(); 1690 this.tabpane = tf1.getPane(); 1691 this.tabpane.setHeight('auto'); 1692 this.tabpane.setPadding(0, 0, 0, 0); 1693 1694 // The "Parameters" tab 1695 this.renderParametersTab(); 1696 1697 // The "Explorer" tab 1698 this.renderExplorerTab(); 1699 1700 // The "Compare" tab 1701 this.renderCompareTab(); 1702 1703 // The "Plot" tab 1704 this.renderPlotTab(); 1705 1706 // "About..." dialog 1707 var w = new qx.ui.window.Window("About Plasma Formulary", 1708 "pf/image/about.png"); 1709 w.setSpace(200, "auto", 100, "auto"); 1710 w.setModal(true); 1711 w.setShowMinimize(false); 1712 w.setShowMaximize(false); 1713 1714 str = 'Plasma Formulary Interactive.<br/>' + 1715 '$Revision$.' + 1716 '<p>Written by Evgeny Stambulchik.</p>' + 1717 '<p>Based on the Qooxdoo-' + qx.core.Version + 1718 ' toolkit.</p>'; 1719 1720 var a = new qx.ui.basic.Atom(str); 1721 a.set({ top: 4, left: 4 }); 1722 w.add(a); 1723 1724 this.doc.add(w); 1725 this.aboutWindow = w; 1726 1727 1728 1430 1729 }, 1431 1730 -
source/class/pf/base/Species.js
r5 r28 123 123 getAlfvenVelocity: function(B) 124 124 { 125 return 2.18e15*B/Math.sqrt(this._m*this._n); 125 if (B == 0) { 126 return 0; 127 } else { 128 return 2.18e15*B/Math.sqrt(this._m*this._n); 129 } 126 130 }, 127 131 -
source/class/pf/ui/ComboBox.js
r12 r23 11 11 12 12 return item; 13 }, 14 15 getSelectedValue: function() 16 { 17 var item = this.getSelected(); 18 if (item) { 19 return item.getValue(); 20 } else { 21 return null; 22 } 13 23 } 14 24 } -
source/index.html
r19 r30 5 5 <script type="text/javascript" src="script/pf.js"></script> 6 6 <script type="text/javascript" src="sprintf.js"></script> 7 <script type="text/javascript" src="wz_jsgraphics.js"></script> 7 8 <script type="text/javascript"> 8 9 qx.log.Logger.ROOT_LOGGER.setMinLevel(qx.log.Logger.LEVEL_WARN);
Note: See TracChangeset
for help on using the changeset viewer.