Disable globals, too buggy for next release

This commit is contained in:
skylarmt 2015-02-03 23:42:33 -07:00
parent 2fc829d2af
commit 5a57ff09e8
9 changed files with 65 additions and 115 deletions

View File

@ -219,55 +219,57 @@ public class Functions {
graphwin.drawDot(x, y); graphwin.drawDot(x, y);
} }
/*
Global variables are accessible across scripts.
*/
/**
* Set a global variable.
*
* @param name The variable name
* @param var The variable
*/
public static void global(String name, Object var) {
GLOBALS.put(name, var);
}
/** // TODO: Make globals work!
* Get a global variable. // /*
* // Global variables are accessible across scripts.
* @param name The variable name // */
* @return The variable // /**
*/ // * Set a global variable.
public static Object global(String name) { // *
Object item = GLOBALS.get(name); // * @param name The variable name
return item; // * @param var The variable
} // */
// public static void global(String name, Object var) {
// Fix for Python reserved word "global" // GLOBALS.put(name, var);
public static void setglobal(String name, Object var) { // }
global(name, var); //
} // /**
// * Get a global variable.
// Fix for Python reserved word "global" // *
public static void getglobal(String name) { // * @param name The variable name
global(name); // * @return The variable
} // */
// public static Object global(String name) {
/** // Object item = GLOBALS.get(name);
* Clear all the GLOBALS. // return item;
*/ // }
public static void clrglobals() { //
GLOBALS.clear(); // // Fix for Python reserved word "global"
} // public static void setglobal(String name, Object var) {
// global(name, var);
/** // }
* Check if the given global key is set. //
* @param name The key to check. // // Fix for Python reserved word "global"
* @return True if the key exists, else false. // public static void getglobal(String name) {
*/ // global(name);
public static boolean globalcontains(String name) { // }
return GLOBALS.containsKey(name); //
} // /**
// * Clear all the GLOBALS.
// */
// public static void clrglobals() {
// GLOBALS.clear();
// }
//
// /**
// * Check if the given global key is set.
// * @param name The key to check.
// * @return True if the key exists, else false.
// */
// public static boolean globalcontains(String name) {
// return GLOBALS.containsKey(name);
// }
/* /*
Other Other

View File

@ -215,12 +215,15 @@ public class Globals extends javax.swing.JInternalFrame {
if (keyList.getSelectedValue() != null) { if (keyList.getSelectedValue() != null) {
valBox.setEditable(true); valBox.setEditable(true);
try { try {
Object item = Functions.GLOBALS.get( Object item = Functions.GLOBALS.get(keyList.getSelectedValue());
keyList.getSelectedValue()); /*if (item.getClass().equals(sun.org.mozilla.javascript.internal.NativeArray.class)) {
if (item.getClass().equals(sun.org.mozilla.javascript.internal.NativeArray.class)) {
Object[] arr = ((sun.org.mozilla.javascript.internal.NativeArray) item).toArray(); Object[] arr = ((sun.org.mozilla.javascript.internal.NativeArray) item).toArray();
valBox.setText(Arrays.toString(arr)); valBox.setText(Arrays.toString(arr));
valBox.setEditable(false); valBox.setEditable(false);
} else */
if (item == null) {
valBox.setText("");
valBox.setEditable(true);
} else if (item.getClass().equals(org.mozilla.javascript.NativeArray.class)) { } else if (item.getClass().equals(org.mozilla.javascript.NativeArray.class)) {
Object[] arr = ((org.mozilla.javascript.NativeArray) item).toArray(); Object[] arr = ((org.mozilla.javascript.NativeArray) item).toArray();
valBox.setText(Arrays.toString(arr)); valBox.setText(Arrays.toString(arr));

View File

@ -191,12 +191,10 @@
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="displaySettingsBtn" min="-2" max="-2" attributes="0"/> <Component id="displaySettingsBtn" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/> <EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="globalsBtn" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="arrangeWindowsBtn" min="-2" pref="57" max="-2" attributes="0"/> <Component id="arrangeWindowsBtn" min="-2" pref="57" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/> <EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="helpBtn" min="-2" max="-2" attributes="0"/> <Component id="helpBtn" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/> <EmptySpace min="-2" pref="77" max="-2" attributes="0"/>
<Component id="jLabel3" pref="439" max="32767" attributes="0"/> <Component id="jLabel3" pref="439" max="32767" attributes="0"/>
</Group> </Group>
</Group> </Group>
@ -209,7 +207,6 @@
<Component id="arrangeWindowsBtn" alignment="0" max="32767" attributes="0"/> <Component id="arrangeWindowsBtn" alignment="0" max="32767" attributes="0"/>
<Component id="displaySettingsBtn" alignment="0" max="32767" attributes="0"/> <Component id="displaySettingsBtn" alignment="0" max="32767" attributes="0"/>
<Component id="helpBtn" alignment="0" max="32767" attributes="0"/> <Component id="helpBtn" alignment="0" max="32767" attributes="0"/>
<Component id="globalsBtn" alignment="1" max="32767" attributes="0"/>
</Group> </Group>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
</Group> </Group>
@ -289,26 +286,6 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="helpBtnActionPerformed"/> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="helpBtnActionPerformed"/>
</Events> </Events>
</Component> </Component>
<Component class="javax.swing.JButton" name="globalsBtn">
<Properties>
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
<Image iconType="3" name="/net/apocalypselabs/symat/images/globals.png"/>
</Property>
<Property name="text" type="java.lang.String" value="Vars"/>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
<EmptyBorder bottom="5" left="5" right="5" top="5"/>
</Border>
</Property>
<Property name="focusable" type="boolean" value="false"/>
<Property name="horizontalTextPosition" type="int" value="0"/>
<Property name="opaque" type="boolean" value="false"/>
<Property name="verticalTextPosition" type="int" value="3"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="globalsBtnActionPerformed"/>
</Events>
</Component>
</SubComponents> </SubComponents>
</Container> </Container>
<Container class="javax.swing.JPanel" name="jPanel5"> <Container class="javax.swing.JPanel" name="jPanel5">

View File

@ -325,7 +325,6 @@ public class MainGUI extends javax.swing.JFrame {
arrangeWindowsBtn = new javax.swing.JButton(); arrangeWindowsBtn = new javax.swing.JButton();
displaySettingsBtn = new javax.swing.JButton(); displaySettingsBtn = new javax.swing.JButton();
helpBtn = new javax.swing.JButton(); helpBtn = new javax.swing.JButton();
globalsBtn = new javax.swing.JButton();
jPanel5 = new javax.swing.JPanel(); jPanel5 = new javax.swing.JPanel();
wikiBtn = new javax.swing.JButton(); wikiBtn = new javax.swing.JButton();
jLabel4 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel();
@ -483,19 +482,6 @@ public class MainGUI extends javax.swing.JFrame {
} }
}); });
globalsBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/images/globals.png"))); // NOI18N
globalsBtn.setText("Vars");
globalsBtn.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
globalsBtn.setFocusable(false);
globalsBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
globalsBtn.setOpaque(false);
globalsBtn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
globalsBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
globalsBtnActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout); jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup( jPanel2Layout.setHorizontalGroup(
@ -504,12 +490,10 @@ public class MainGUI extends javax.swing.JFrame {
.addContainerGap() .addContainerGap()
.addComponent(displaySettingsBtn) .addComponent(displaySettingsBtn)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(globalsBtn)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(arrangeWindowsBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(arrangeWindowsBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(helpBtn) .addComponent(helpBtn)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGap(77, 77, 77)
.addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 439, Short.MAX_VALUE)) .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 439, Short.MAX_VALUE))
); );
jPanel2Layout.setVerticalGroup( jPanel2Layout.setVerticalGroup(
@ -519,8 +503,7 @@ public class MainGUI extends javax.swing.JFrame {
.addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(arrangeWindowsBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(arrangeWindowsBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(displaySettingsBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(displaySettingsBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(helpBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(helpBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(globalsBtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap()) .addContainerGap())
); );
@ -793,10 +776,6 @@ public class MainGUI extends javax.swing.JFrame {
loadFrame(new WebBrowser("SyMAT Wiki", "http://wiki.symatapp.com", WebBrowser.WIKI_LOGO)); loadFrame(new WebBrowser("SyMAT Wiki", "http://wiki.symatapp.com", WebBrowser.WIKI_LOGO));
}//GEN-LAST:event_wikiBtnActionPerformed }//GEN-LAST:event_wikiBtnActionPerformed
private void globalsBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_globalsBtnActionPerformed
loadFrame(new Globals());
}//GEN-LAST:event_globalsBtnActionPerformed
private void forumBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_forumBtnActionPerformed private void forumBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_forumBtnActionPerformed
loadFrame(new WebBrowser("Community Forum", "http://forum.symatapp.com/", WebBrowser.FORUM_LOGO)); loadFrame(new WebBrowser("Community Forum", "http://forum.symatapp.com/", WebBrowser.FORUM_LOGO));
}//GEN-LAST:event_forumBtnActionPerformed }//GEN-LAST:event_forumBtnActionPerformed
@ -961,7 +940,6 @@ public class MainGUI extends javax.swing.JFrame {
public static javax.swing.JButton displaySettingsBtn; public static javax.swing.JButton displaySettingsBtn;
public static javax.swing.JButton editorBtn; public static javax.swing.JButton editorBtn;
public static javax.swing.JButton forumBtn; public static javax.swing.JButton forumBtn;
public static javax.swing.JButton globalsBtn;
public static javax.swing.JButton graphBtn; public static javax.swing.JButton graphBtn;
public static javax.swing.JButton helpBtn; public static javax.swing.JButton helpBtn;
public static javax.swing.JLabel jLabel1; public static javax.swing.JLabel jLabel1;

View File

@ -30,7 +30,3 @@ def simplify(expr):
return _.simplify(expr) return _.simplify(expr)
def vpa(expr): def vpa(expr):
return _.vpa(expr) return _.vpa(expr)
def setglobal(key,val):
_.setglobal(key,val)
def getglobal(key):
return _.getglobal(key)

View File

@ -5,8 +5,8 @@
<body> <body>
<h1>Getting Started</h1> <h1>Getting Started</h1>
<p>Open a new shell by clicking the button. <p>Open a new shell by clicking the button.
<br>Try typing commands, like "2*2" or "sin[.5]". <br>Try typing commands, like "2*2" or "sin(.5)".
<br>You can make variables too, try "x=.5" then "sin[x]". <br>You can make variables too, try "x=.5" then "sin(x)".
<br><br>SyMAT keeps track of the last few commands you enter in a shell. <br><br>SyMAT keeps track of the last few commands you enter in a shell.
To run one again, use the up and down keys to navigate the history.</p> To run one again, use the up and down keys to navigate the history.</p>
</body> </body>

View File

@ -14,8 +14,6 @@
<br>&nbsp;&nbsp;&nbsp;<i>Aliases: sym</i> <br>&nbsp;&nbsp;&nbsp;<i>Aliases: sym</i>
<br><b>simplify("expr")</b> Simplifies the given expression. <br><b>simplify("expr")</b> Simplifies the given expression.
<br><b>vpa("expr")</b> Attempts to find the numerical value of "expr". <br><b>vpa("expr")</b> Attempts to find the numerical value of "expr".
<br><b>global("name",value)</b> Sets global variable "name" to value.
<br><b>global("name")</b> Gets the global variable with id "name".
<br><b>replace("text", "find", "replace")</b> Returns "text" with all occurrences of "find" changed to "replace". <br><b>replace("text", "find", "replace")</b> Returns "text" with all occurrences of "find" changed to "replace".
<br><b>subs("function", "var", "replace")</b> Replaces all occurrences of "var" with "replace" and solves. <br><b>subs("function", "var", "replace")</b> Replaces all occurrences of "var" with "replace" and solves.
Returns the answer or 0.0 if there is no numerical answer. Returns the answer or 0.0 if there is no numerical answer.

View File

@ -7,8 +7,6 @@ deg(0)|Convert a given number in radians to degrees.
subs('',"x")|Solve an equation for the second argument. subs('',"x")|Solve an equation for the second argument.
simplify('')|Simplify the given function. simplify('')|Simplify the given function.
vpa('')|Computes numerical value or simplifies. vpa('')|Computes numerical value or simplifies.
setglobal("", obj)|Set global variable with the given id.
getglobal("")|Get global variable with the given id.
plot()|Show the plot window. plot()|Show the plot window.
plot('')|Graph the given function. plot('')|Graph the given function.
plotname("")|Sets the title of the graph window. plotname("")|Sets the title of the graph window.

View File

@ -14,8 +14,6 @@ plotclr()|Reset the graph.
drawdot(x, y)|Places a dot at the given coordinates. drawdot(x, y)|Places a dot at the given coordinates.
simplify('')|Simplify the given function. simplify('')|Simplify the given function.
vpa('')|Computes numerical value or simplifies. vpa('')|Computes numerical value or simplifies.
global("", obj)|Set global variable with the given id.
global("")|Get global variable with the given id.
fabs(0)|Absolute value of number. fabs(0)|Absolute value of number.
asin(0)| asin(0)|
acos(0)| acos(0)|