Changeset 31:c999f02e4838 for source/class/pf
- Timestamp:
- Jan 3, 2008, 5:06:00 PM (17 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
source/class/pf/Application.js
r29 r31 231 231 232 232 233 function NumPrint(v )233 function NumPrint(v, prec) 234 234 { 235 235 var s; 236 237 if (!prec) { 238 prec = 3; 239 } 240 236 241 if (v == 0.0) { 237 242 s = "0"; … … 241 246 } else 242 247 if (Math.abs(v) < 1.e6 && Math.abs(v) >= 0.1) { 243 s = sprintf("%. 3f", v);248 s = sprintf("%." + prec.toString() + "f", v); 244 249 } else { 245 s = sprintf("%. 3e", v);250 s = sprintf("%." + prec.toString() + "e", v); 246 251 } 247 252 … … 1274 1279 sp.set( 1275 1280 { 1281 height : "100%", 1276 1282 left : 1, 1277 1283 right : 1, … … 1293 1299 border : "inset-thin", 1294 1300 overflow : "scroll", 1295 height : 500,1301 height : "100%", 1296 1302 width : "100%", 1297 1303 paddingLeft : 4, … … 1481 1487 1482 1488 lv.setWidth("100%"); 1483 lv.setHeight(4 00);1489 lv.setHeight(450); 1484 1490 lv.setBackgroundColor("white"); 1485 1491 lv.setBorder("dark-shadow"); … … 1490 1496 }, 1491 1497 1492 aboutCB : function(ev) 1493 { 1494 this.aboutWindow.open(); 1498 drawCB : function(ev) 1499 { 1500 var canvas = this.canvas; 1501 1502 var pname = this.guiParameter.getValue(); 1503 var vmin = this.guiMinParam.getNumValue(); 1504 var vmax = this.guiMaxParam.getNumValue(); 1505 var npoints = this.guiParamPoints.getValue(); 1506 1507 if (npoints < 2 || !pname) { 1508 return; 1509 } 1510 1511 var dimension = this.gui_compare_dim.getSelectedValue(); 1512 var scale = this.gui_compare_units.getSelectedValue(); 1513 1514 var par0; 1515 switch (pname) { 1516 case "N_e": 1517 par0 = this.e.getN(); 1518 break; 1519 case "T_e": 1520 case "T": 1521 par0 = this.e.getT(); 1522 break; 1523 case "T_i": 1524 par0 = this.i.getT(); 1525 break; 1526 case "B": 1527 par0 = this.B; 1528 break; 1529 default: 1530 return; 1531 } 1532 1533 var xdata = new Array; 1534 for (var j = 0; j < npoints; j++) { 1535 var x = par0*(vmin + (vmax - vmin)*j/(npoints - 1)); 1536 xdata.push(x); 1537 } 1538 1539 var wxmin = xdata[0]; 1540 var wxmax = xdata[xdata.length - 1]; 1541 1542 var wymin = 0; 1543 var wymax = 0; 1544 1545 var sets = new Array; 1546 var first = true; 1547 for (var i = 0; i < this.favorites.length; i++) { 1548 var fav = this.favorites[i]; 1549 var entity = fav.entity; 1550 1551 if (entity.dimension != dimension) { 1552 continue; 1553 } 1554 1555 var species = fav.species; 1556 var vname = this.getEntityFullName(entity, species); 1557 1558 var set = new Array; 1559 var ydata = new Array; 1560 for (var j = 0; j < npoints; j++) { 1561 var par = xdata[j]; 1562 1563 switch (pname) { 1564 case "N_e": 1565 this.e.setN(par); 1566 this.updatePlasmaParameters(); 1567 break; 1568 case "T_e": 1569 this.e.setT(par); 1570 break; 1571 case "T_i": 1572 this.i.setT(par); 1573 break; 1574 case "T": 1575 this.e.setT(par); 1576 this.i.setT(par); 1577 this.r.setT(par); 1578 break; 1579 case "B": 1580 this.B = par; 1581 break; 1582 } 1583 1584 var value = scale*this.evaluateEntityValue(entity, species); 1585 1586 if (first) { 1587 wymin = value; 1588 wymax = value; 1589 first = false; 1590 } else { 1591 if (value < wymin) { 1592 wymin = value; 1593 } 1594 if (value > wymax) { 1595 wymax = value; 1596 } 1597 } 1598 1599 ydata.push(value); 1600 } 1601 set.x = xdata; 1602 set.y = ydata; 1603 set.legend = vname; 1604 sets.push(set); 1605 } 1606 1607 // Restore parameter 1608 switch (pname) { 1609 case "N_e": 1610 this.e.setN(par0); 1611 this.updatePlasmaParameters(); 1612 break; 1613 case "T_e": 1614 this.e.setT(par0); 1615 break; 1616 case "T_i": 1617 this.i.setT(par0); 1618 break; 1619 case "T": 1620 this.e.setT(par0); 1621 this.i.setT(par0); 1622 this.r.setT(par0); 1623 break; 1624 case "B": 1625 this.B = par0; 1626 break; 1627 } 1628 1629 canvas.clear(); 1630 1631 canvas.setViewportCoordinates(0.15, 0.1, 0.9, 0.9); 1632 dwx = Math.abs(wxmax - wxmin); 1633 if (dwx == 0) { 1634 dwx = wxmax; 1635 } 1636 dwy = Math.abs(wymax - wymin); 1637 if (dwy == 0) { 1638 wymin = 0.0; 1639 wymax = 1.0; 1640 } 1641 canvas.setWorldCoordinates(Math.max(0, wxmin - 0.05*dwx), 1642 Math.max(0, wymin - 0.05*dwy), 1643 wxmax + 0.05*dwx, wymax + 0.05*dwy); 1644 1645 canvas.drawFrame("black"); 1646 canvas.drawTicks("x", "blue"); 1647 canvas.drawTicks("y", "blue"); 1648 1649 canvas.setColor("red"); 1650 for (var i = 0; i < sets.length; i++) { 1651 var set = sets[i]; 1652 canvas.drawPolyLineW(set.x, set.y); 1653 1654 delete set; 1655 } 1656 1657 delete sets; 1658 1659 canvas.paint(); 1495 1660 }, 1496 1661 … … 1499 1664 var page_id = this.renderTabPage("Plot", 1500 1665 "pf/image/tab-plot.png"); 1501 }, 1502 1503 1666 1667 var sp = new qx.ui.splitpane.HorizontalSplitPane("1*", 300); 1668 sp.set( 1669 { 1670 height : "100%", 1671 width : "100%", 1672 left : 1, 1673 right : 1, 1674 top : 1, 1675 bottom : 1, 1676 border : "inset-thin", 1677 showKnob : true 1678 }); 1679 page_id.add(sp); 1680 1681 var left_pane = sp.getLeftArea(); 1682 left_pane.setPaddingRight(4); 1683 var right_pane = sp.getRightArea(); 1684 right_pane.setPaddingLeft(4); 1685 1686 var canvas = new pf.ui.canvas.Plotter(); 1687 canvas.setBackgroundColor("white"); 1688 canvas.setWidth("100%"); 1689 canvas.setHeight("100%"); 1690 left_pane.add(canvas); 1691 this.canvas = canvas; 1692 1693 1694 var gl = new qx.ui.layout.GridLayout; 1695 gl.set( 1696 { 1697 left: 4, 1698 right: 4, 1699 top: 4 1700 }); 1701 1702 gl.setVerticalSpacing(4); 1703 gl.setHorizontalSpacing(6); 1704 gl.setColumnCount(2); 1705 gl.setColumnWidth(0, 150); 1706 gl.setColumnWidth(1, 100); 1707 gl.setRowCount(5); 1708 gl.setRowHeight(0, 30); 1709 gl.setRowHeight(1, 30); 1710 gl.setRowHeight(2, 30); 1711 gl.setRowHeight(3, 30); 1712 gl.setRowHeight(4, 30); 1713 right_pane.add(gl); 1714 1715 var l, e; 1716 1717 var btn = new qx.ui.form.Button("Redraw"); 1718 btn.addEventListener("execute", this.drawCB, this); 1719 btn.setTop(20); 1720 btn.setLeft(20); 1721 gl.add(btn, 0, 0); 1722 1723 l = new qx.ui.basic.Label("Parameter to vary:"); 1724 e = new pf.ui.ComboBox; 1725 e.add(new qx.ui.form.ListItem("N_e", null, "N_e")); 1726 e.add(new qx.ui.form.ListItem("T", null, "T")); 1727 e.add(new qx.ui.form.ListItem("T_e", null, "T_e")); 1728 e.add(new qx.ui.form.ListItem("T_i", null, "T_i")); 1729 e.add(new qx.ui.form.ListItem("B", null, "B")); 1730 this.guiParameter = e; 1731 gl.add(l, 0, 1); 1732 gl.add(e, 1, 1); 1733 1734 l = new qx.ui.basic.Label("Minimum scale:"); 1735 e = new pf.ui.TextField(0.3); 1736 this.guiMinParam = e; 1737 gl.add(l, 0, 2); 1738 gl.add(e, 1, 2); 1739 1740 l = new qx.ui.basic.Label("Maximum scale:"); 1741 e = new pf.ui.TextField(3.0); 1742 this.guiMaxParam = e; 1743 gl.add(l, 0, 3); 1744 gl.add(e, 1, 3); 1745 1746 l = new qx.ui.basic.Label("Number of points:"); 1747 e = new pf.ui.Spinner(2, 10, 100); 1748 this.guiParamPoints = e; 1749 gl.add(l, 0, 4); 1750 gl.add(e, 1, 4); 1751 }, 1752 1753 1754 aboutCB : function(ev) 1755 { 1756 this.aboutWindow.open(); 1757 }, 1758 1504 1759 buildMenu : function() 1505 1760 { … … 1712 1967 w.setShowMaximize(false); 1713 1968 1714 str = 'Plasma Formulary Interactive.<br/>' 1715 '$Revision$.' 1716 '<p>Written by Evgeny Stambulchik.</p>' 1717 '<p> Based onthe Qooxdoo-' + qx.core.Version +1969 str = 'Plasma Formulary Interactive.<br/>' + 1970 '$Revision$.' + 1971 '<p>Written by Evgeny Stambulchik.</p>' + 1972 '<p>Using the Qooxdoo-' + qx.core.Version + 1718 1973 ' toolkit.</p>'; 1719 1974
Note: See TracChangeset
for help on using the changeset viewer.