?
@ -102,6 +102,10 @@ public class CodeCompleter {
|
|||||||
switch (fileid) {
|
switch (fileid) {
|
||||||
case "functions":
|
case "functions":
|
||||||
String[] args = line.split("\\|");
|
String[] args = line.split("\\|");
|
||||||
|
// Prefix symat to Java commands
|
||||||
|
if (lang.equals("java")) {
|
||||||
|
args[0] = "symat." + args[0];
|
||||||
|
}
|
||||||
if (args.length == 2) {
|
if (args.length == 2) {
|
||||||
provider.addCompletion(new BasicCompletion(provider, args[0], args[1]));
|
provider.addCompletion(new BasicCompletion(provider, args[0], args[1]));
|
||||||
} else if (args.length == 3) {
|
} else if (args.length == 3) {
|
||||||
|
@ -92,9 +92,11 @@ public class Editor extends javax.swing.JInternalFrame {
|
|||||||
private boolean fileChanged = false;
|
private boolean fileChanged = false;
|
||||||
|
|
||||||
private CompletionProvider jscomp = new CodeCompleter("js").getProvider();
|
private CompletionProvider jscomp = new CodeCompleter("js").getProvider();
|
||||||
|
private CompletionProvider javacomp = new CodeCompleter("java").getProvider();
|
||||||
private CompletionProvider pycomp = new CodeCompleter("py").getProvider();
|
private CompletionProvider pycomp = new CodeCompleter("py").getProvider();
|
||||||
private AutoCompletion jsac = new AutoCompletion(jscomp);
|
private AutoCompletion jsac = new AutoCompletion(jscomp);
|
||||||
private AutoCompletion pyac = new AutoCompletion(pycomp);
|
private AutoCompletion pyac = new AutoCompletion(pycomp);
|
||||||
|
private AutoCompletion javaac = new AutoCompletion(javacomp);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The JavaScript language.
|
* The JavaScript language.
|
||||||
@ -169,6 +171,9 @@ public class Editor extends javax.swing.JInternalFrame {
|
|||||||
pythonOption.setSelected(true);
|
pythonOption.setSelected(true);
|
||||||
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_PYTHON);
|
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_PYTHON);
|
||||||
} else if (lang == JAVA) {
|
} else if (lang == JAVA) {
|
||||||
|
javaac.install(codeBox);
|
||||||
|
javascriptOption.setSelected(false);
|
||||||
|
javaOption.setSelected(true);
|
||||||
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);
|
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);
|
||||||
} else {
|
} else {
|
||||||
jsac.install(codeBox);
|
jsac.install(codeBox);
|
||||||
@ -928,12 +933,14 @@ public class Editor extends javax.swing.JInternalFrame {
|
|||||||
private void javascriptOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_javascriptOptionActionPerformed
|
private void javascriptOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_javascriptOptionActionPerformed
|
||||||
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT);
|
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT);
|
||||||
pyac.uninstall();
|
pyac.uninstall();
|
||||||
|
javaac.uninstall();
|
||||||
jsac.install(codeBox);
|
jsac.install(codeBox);
|
||||||
}//GEN-LAST:event_javascriptOptionActionPerformed
|
}//GEN-LAST:event_javascriptOptionActionPerformed
|
||||||
|
|
||||||
private void pythonOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pythonOptionActionPerformed
|
private void pythonOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pythonOptionActionPerformed
|
||||||
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_PYTHON);
|
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_PYTHON);
|
||||||
jsac.uninstall();
|
jsac.uninstall();
|
||||||
|
javaac.uninstall();
|
||||||
pyac.install(codeBox);
|
pyac.install(codeBox);
|
||||||
}//GEN-LAST:event_pythonOptionActionPerformed
|
}//GEN-LAST:event_pythonOptionActionPerformed
|
||||||
|
|
||||||
@ -1010,8 +1017,9 @@ public class Editor extends javax.swing.JInternalFrame {
|
|||||||
|
|
||||||
private void javaOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_javaOptionActionPerformed
|
private void javaOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_javaOptionActionPerformed
|
||||||
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);
|
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);
|
||||||
//pyac.uninstall();
|
pyac.uninstall();
|
||||||
//jsac.install(codeBox);
|
jsac.uninstall();
|
||||||
|
javaac.install(codeBox);
|
||||||
}//GEN-LAST:event_javaOptionActionPerformed
|
}//GEN-LAST:event_javaOptionActionPerformed
|
||||||
|
|
||||||
private void createShared(String id) {
|
private void createShared(String id) {
|
||||||
@ -1057,14 +1065,15 @@ public class Editor extends javax.swing.JInternalFrame {
|
|||||||
text += line + "\n";
|
text += line + "\n";
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
text = "Error: Could not open embedded sample file.";
|
outputBox.setText("Error: Could not open embedded sample file.");
|
||||||
if (ext.startsWith("j")) {
|
// if (ext.startsWith("j")) {
|
||||||
text = "/* " + text + " */";
|
// text = "/* " + text + " */";
|
||||||
} else {
|
// } else {
|
||||||
text = "## " + text;
|
// text = "## " + text;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
openString(text, name + "." + ext, false);
|
// Open it and remove the .txt ending on Java files
|
||||||
|
openString(text, name + "." + ext.replace(".txt", ""), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -66,15 +66,16 @@
|
|||||||
<Component class="javax.swing.JList" name="topicList">
|
<Component class="javax.swing.JList" name="topicList">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="model" type="javax.swing.ListModel" editor="org.netbeans.modules.form.editors2.ListModelEditor">
|
<Property name="model" type="javax.swing.ListModel" editor="org.netbeans.modules.form.editors2.ListModelEditor">
|
||||||
<StringArray count="8">
|
<StringArray count="9">
|
||||||
<StringItem index="0" value="Welcome"/>
|
<StringItem index="0" value="Welcome"/>
|
||||||
<StringItem index="1" value="Basics"/>
|
<StringItem index="1" value="Basics"/>
|
||||||
<StringItem index="2" value="Editor"/>
|
<StringItem index="2" value="Editor"/>
|
||||||
<StringItem index="3" value="Pads"/>
|
<StringItem index="3" value="Pads"/>
|
||||||
<StringItem index="4" value="Graphing"/>
|
<StringItem index="4" value="Graphing"/>
|
||||||
<StringItem index="5" value="Tasks"/>
|
<StringItem index="5" value="Notepad"/>
|
||||||
<StringItem index="6" value="Commands"/>
|
<StringItem index="6" value="Tasks"/>
|
||||||
<StringItem index="7" value="Licenses"/>
|
<StringItem index="7" value="Commands"/>
|
||||||
|
<StringItem index="8" value="Licenses"/>
|
||||||
</StringArray>
|
</StringArray>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="selectionMode" type="int" value="0"/>
|
<Property name="selectionMode" type="int" value="0"/>
|
||||||
|
@ -127,7 +127,11 @@ public class Help extends javax.swing.JInternalFrame {
|
|||||||
setBackground(Color.LIGHT_GRAY);
|
setBackground(Color.LIGHT_GRAY);
|
||||||
styleloaded = 0;
|
styleloaded = 0;
|
||||||
}
|
}
|
||||||
loadTopic(topicList.getSelectedValue().toString().toLowerCase());
|
try {
|
||||||
|
loadTopic(topicList.getSelectedValue().toString().toLowerCase());
|
||||||
|
} catch (Exception ex) {
|
||||||
|
loadTopic("welcome");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,7 +176,7 @@ public class Help extends javax.swing.JInternalFrame {
|
|||||||
jSplitPane1.setResizeWeight(0.1);
|
jSplitPane1.setResizeWeight(0.1);
|
||||||
|
|
||||||
topicList.setModel(new javax.swing.AbstractListModel() {
|
topicList.setModel(new javax.swing.AbstractListModel() {
|
||||||
String[] strings = { "Welcome", "Basics", "Editor", "Pads", "Graphing", "Tasks", "Commands", "Licenses" };
|
String[] strings = { "Welcome", "Basics", "Editor", "Pads", "Graphing", "Notepad", "Tasks", "Commands", "Licenses" };
|
||||||
public int getSize() { return strings.length; }
|
public int getSize() { return strings.length; }
|
||||||
public Object getElementAt(int i) { return strings[i]; }
|
public Object getElementAt(int i) { return strings[i]; }
|
||||||
});
|
});
|
||||||
|
@ -339,11 +339,10 @@ public class Main extends JRibbonFrame {
|
|||||||
tries++;
|
tries++;
|
||||||
}
|
}
|
||||||
JRibbon ribbon = getRibbon();
|
JRibbon ribbon = getRibbon();
|
||||||
JRibbonBand coreband = new JRibbonBand("Core", null);
|
JRibbonBand codeband = new JRibbonBand("Code", null);
|
||||||
JRibbonBand appsband = new JRibbonBand("Apps", null);
|
JRibbonBand toolsband = new JRibbonBand("Tools", null);
|
||||||
JRibbonBand webband = new JRibbonBand("Community", null);
|
JRibbonBand webband = new JRibbonBand("Web", null);
|
||||||
JRibbonBand collabband = new JRibbonBand("Team", null);
|
JRibbonBand collabband = new JRibbonBand("Team", null);
|
||||||
//JRibbonBand getpluginband = new JRibbonBand("Install", null);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
loadPlugins();
|
loadPlugins();
|
||||||
@ -385,12 +384,10 @@ public class Main extends JRibbonFrame {
|
|||||||
WebBrowser.WIKI_LOGO));
|
WebBrowser.WIKI_LOGO));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
forumbtn.addActionListener(new ActionListener() {
|
browserbtn.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent evt) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
loadFrame(new WebBrowser("Community Forum",
|
loadFrame(new WebBrowser());
|
||||||
"http://forum.symatapp.com/",
|
|
||||||
WebBrowser.FORUM_LOGO));
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
padsbtn.addActionListener(new ActionListener() {
|
padsbtn.addActionListener(new ActionListener() {
|
||||||
@ -416,31 +413,28 @@ public class Main extends JRibbonFrame {
|
|||||||
"Write quick notes on a virtual napkin."));
|
"Write quick notes on a virtual napkin."));
|
||||||
wikibtn.setActionRichTooltip(new RichTooltip("SyMAT Wiki",
|
wikibtn.setActionRichTooltip(new RichTooltip("SyMAT Wiki",
|
||||||
"View and edit online documentation and tutorials."));
|
"View and edit online documentation and tutorials."));
|
||||||
forumbtn.setActionRichTooltip(new RichTooltip("Support Forum",
|
browserbtn.setActionRichTooltip(new RichTooltip("Web Browser",
|
||||||
"Discuss and share with the SyMAT community."));
|
"Go online and browse the web."));
|
||||||
padsbtn.setActionRichTooltip(new RichTooltip("Code Pads",
|
padsbtn.setActionRichTooltip(new RichTooltip("Code Pads",
|
||||||
"Collaborate over the Internet on projects."));
|
"Collaborate over the Internet on projects."));
|
||||||
tasksbtn.setActionRichTooltip(new RichTooltip("Task List",
|
tasksbtn.setActionRichTooltip(new RichTooltip("Task List",
|
||||||
"Manage tasks and to-do lists for projects."));
|
"Manage tasks and to-do lists for projects."));
|
||||||
|
|
||||||
coreband.addCommandButton(shellbtn, RibbonElementPriority.TOP);
|
codeband.addCommandButton(shellbtn, RibbonElementPriority.TOP);
|
||||||
coreband.addCommandButton(editorbtn, RibbonElementPriority.TOP);
|
codeband.addCommandButton(editorbtn, RibbonElementPriority.TOP);
|
||||||
|
|
||||||
appsband.addCommandButton(graphbtn, RibbonElementPriority.MEDIUM);
|
toolsband.addCommandButton(graphbtn, RibbonElementPriority.MEDIUM);
|
||||||
appsband.addCommandButton(notepadbtn, RibbonElementPriority.MEDIUM);
|
toolsband.addCommandButton(notepadbtn, RibbonElementPriority.MEDIUM);
|
||||||
|
toolsband.addCommandButton(tasksbtn, RibbonElementPriority.MEDIUM);
|
||||||
|
|
||||||
webband.addCommandButton(wikibtn, RibbonElementPriority.LOW);
|
webband.addCommandButton(padsbtn, RibbonElementPriority.TOP);
|
||||||
webband.addCommandButton(forumbtn, RibbonElementPriority.LOW);
|
webband.addCommandButton(browserbtn, RibbonElementPriority.MEDIUM);
|
||||||
|
webband.addCommandButton(wikibtn, RibbonElementPriority.MEDIUM);
|
||||||
|
|
||||||
collabband.addCommandButton(padsbtn, RibbonElementPriority.MEDIUM);
|
codeband.setResizePolicies((List) Arrays.asList(new CoreRibbonResizePolicies.None(codeband.getControlPanel()),
|
||||||
collabband.addCommandButton(tasksbtn, RibbonElementPriority.MEDIUM);
|
new IconRibbonBandResizePolicy(codeband.getControlPanel())));
|
||||||
|
toolsband.setResizePolicies((List) Arrays.asList(new CoreRibbonResizePolicies.None(toolsband.getControlPanel()),
|
||||||
coreband.setResizePolicies((List) Arrays.asList(
|
new IconRibbonBandResizePolicy(toolsband.getControlPanel())));
|
||||||
new CoreRibbonResizePolicies.None(coreband.getControlPanel()),
|
|
||||||
new IconRibbonBandResizePolicy(coreband.getControlPanel())));
|
|
||||||
appsband.setResizePolicies((List) Arrays.asList(
|
|
||||||
new CoreRibbonResizePolicies.None(appsband.getControlPanel()),
|
|
||||||
new IconRibbonBandResizePolicy(appsband.getControlPanel())));
|
|
||||||
webband.setResizePolicies((List) Arrays.asList(
|
webband.setResizePolicies((List) Arrays.asList(
|
||||||
new CoreRibbonResizePolicies.None(webband.getControlPanel()),
|
new CoreRibbonResizePolicies.None(webband.getControlPanel()),
|
||||||
new IconRibbonBandResizePolicy(webband.getControlPanel())));
|
new IconRibbonBandResizePolicy(webband.getControlPanel())));
|
||||||
@ -454,14 +448,14 @@ public class Main extends JRibbonFrame {
|
|||||||
// new CoreRibbonResizePolicies.None(appsband.getControlPanel()),
|
// new CoreRibbonResizePolicies.None(appsband.getControlPanel()),
|
||||||
// new IconRibbonBandResizePolicy(pluginband.getControlPanel())));
|
// new IconRibbonBandResizePolicy(pluginband.getControlPanel())));
|
||||||
|
|
||||||
RibbonTask hometask = new RibbonTask("Home", coreband, appsband);
|
RibbonTask hometask = new RibbonTask("Apps", codeband, toolsband, webband);
|
||||||
RibbonTask webtask = new RibbonTask("Tools", webband, collabband);
|
//RibbonTask webtask = new RibbonTask("Tools", webband, collabband);
|
||||||
RibbonTask plugintask = new RibbonTask("Plugins", pluginband);
|
RibbonTask plugintask = new RibbonTask("Plugins", pluginband);
|
||||||
|
|
||||||
loadRibbonMenu(null);
|
loadRibbonMenu(null);
|
||||||
|
|
||||||
ribbon.addTask(hometask);
|
ribbon.addTask(hometask);
|
||||||
ribbon.addTask(webtask);
|
//ribbon.addTask(webtask);
|
||||||
ribbon.addTask(plugintask);
|
ribbon.addTask(plugintask);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -559,7 +553,7 @@ public class Main extends JRibbonFrame {
|
|||||||
new ActionListener() {
|
new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent evt) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
loadFrame(new Editor());
|
loadFrame(new Editor(Editor.JAVASCRIPT));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
JCommandButton.CommandButtonKind.ACTION_ONLY);
|
JCommandButton.CommandButtonKind.ACTION_ONLY);
|
||||||
@ -570,7 +564,18 @@ public class Main extends JRibbonFrame {
|
|||||||
new ActionListener() {
|
new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent evt) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
loadFrame(new Editor(true));
|
loadFrame(new Editor(Editor.PYTHON));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
JCommandButton.CommandButtonKind.ACTION_ONLY);
|
||||||
|
RibbonApplicationMenuEntrySecondary newjavabtn
|
||||||
|
= new RibbonApplicationMenuEntrySecondary(
|
||||||
|
getTinyRibbonIcon("jaicon"),
|
||||||
|
"Java",
|
||||||
|
new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent evt) {
|
||||||
|
loadFrame(new Editor(Editor.JAVA));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
JCommandButton.CommandButtonKind.ACTION_ONLY);
|
JCommandButton.CommandButtonKind.ACTION_ONLY);
|
||||||
@ -637,7 +642,7 @@ public class Main extends JRibbonFrame {
|
|||||||
} else {
|
} else {
|
||||||
openbtn.addSecondaryMenuGroup("Recent Files", recent);
|
openbtn.addSecondaryMenuGroup("Recent Files", recent);
|
||||||
}
|
}
|
||||||
newbtn.addSecondaryMenuGroup("Code File", newjsbtn, newpybtn);
|
newbtn.addSecondaryMenuGroup("Code File", newjsbtn, newpybtn, newjavabtn);
|
||||||
newbtn.addSecondaryMenuGroup("Other", newtaskbtn);
|
newbtn.addSecondaryMenuGroup("Other", newtaskbtn);
|
||||||
|
|
||||||
RibbonApplicationMenuEntryFooter displaybtn
|
RibbonApplicationMenuEntryFooter displaybtn
|
||||||
@ -1150,8 +1155,8 @@ public class Main extends JRibbonFrame {
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static JCommandButton forumbtn
|
public static JCommandButton browserbtn
|
||||||
= new JCommandButton("Forum", getRibbonIcon("forum"));
|
= new JCommandButton("Browser", getRibbonIcon("browser"));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -85,7 +85,7 @@
|
|||||||
<Dimension value="[300, 300]"/>
|
<Dimension value="[300, 300]"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
<Dimension value="[480, 400]"/>
|
<Dimension value="[550, 391]"/>
|
||||||
</Property>
|
</Property>
|
||||||
</Properties>
|
</Properties>
|
||||||
<SyntheticProperties>
|
<SyntheticProperties>
|
||||||
@ -107,16 +107,19 @@
|
|||||||
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
||||||
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
||||||
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
||||||
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-112,0,0,1,-32"/>
|
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-121,0,0,2,38"/>
|
||||||
</AuxValues>
|
</AuxValues>
|
||||||
|
|
||||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
|
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
|
||||||
<SubComponents>
|
<SubComponents>
|
||||||
<Container class="javax.swing.JSplitPane" name="jSplitPane1">
|
<Container class="javax.swing.JSplitPane" name="jSplitPane1">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="dividerLocation" type="int" value="260"/>
|
<Property name="dividerLocation" type="int" value="200"/>
|
||||||
<Property name="orientation" type="int" value="0"/>
|
<Property name="orientation" type="int" value="0"/>
|
||||||
<Property name="resizeWeight" type="double" value="0.7"/>
|
<Property name="resizeWeight" type="double" value="0.7"/>
|
||||||
|
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[550, 375]"/>
|
||||||
|
</Property>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Constraints>
|
<Constraints>
|
||||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
|
||||||
@ -143,23 +146,66 @@
|
|||||||
|
|
||||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
|
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
|
||||||
</Container>
|
</Container>
|
||||||
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
|
<Container class="javax.swing.JPanel" name="jPanel1">
|
||||||
<AuxValues>
|
|
||||||
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
|
|
||||||
</AuxValues>
|
|
||||||
<Constraints>
|
<Constraints>
|
||||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription">
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription">
|
||||||
<JSplitPaneConstraints position="right"/>
|
<JSplitPaneConstraints position="bottom"/>
|
||||||
</Constraint>
|
</Constraint>
|
||||||
</Constraints>
|
</Constraints>
|
||||||
|
|
||||||
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace pref="437" max="32767" attributes="0"/>
|
||||||
|
<Component id="clearBtn" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Component id="jScrollPane1" alignment="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="jLabel1" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="clearBtn" alignment="0" min="-2" pref="18" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
|
||||||
|
<Component id="jScrollPane1" pref="100" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
<SubComponents>
|
<SubComponents>
|
||||||
<Component class="javax.swing.JTextArea" name="outputBox">
|
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
|
||||||
|
</AuxValues>
|
||||||
|
|
||||||
|
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JTextArea" name="outputBox">
|
||||||
|
<Properties>
|
||||||
|
<Property name="columns" type="int" value="20"/>
|
||||||
|
<Property name="rows" type="int" value="1"/>
|
||||||
|
<Property name="tabSize" type="int" value="4"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
<Component class="javax.swing.JButton" name="clearBtn">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="columns" type="int" value="20"/>
|
<Property name="text" type="java.lang.String" value="Clear"/>
|
||||||
<Property name="rows" type="int" value="1"/>
|
<Property name="toolTipText" type="java.lang.String" value=""/>
|
||||||
<Property name="tabSize" type="int" value="4"/>
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="clearBtnActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JLabel" name="jLabel1">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Output:"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
</Component>
|
</Component>
|
||||||
</SubComponents>
|
</SubComponents>
|
||||||
|
@ -219,8 +219,11 @@ public class PadEditor extends javax.swing.JInternalFrame implements RunScriptLi
|
|||||||
|
|
||||||
jSplitPane1 = new javax.swing.JSplitPane();
|
jSplitPane1 = new javax.swing.JSplitPane();
|
||||||
browserBox = new javax.swing.JPanel();
|
browserBox = new javax.swing.JPanel();
|
||||||
|
jPanel1 = new javax.swing.JPanel();
|
||||||
jScrollPane1 = new javax.swing.JScrollPane();
|
jScrollPane1 = new javax.swing.JScrollPane();
|
||||||
outputBox = new javax.swing.JTextArea();
|
outputBox = new javax.swing.JTextArea();
|
||||||
|
clearBtn = new javax.swing.JButton();
|
||||||
|
jLabel1 = new javax.swing.JLabel();
|
||||||
statusBar = new javax.swing.JToolBar();
|
statusBar = new javax.swing.JToolBar();
|
||||||
statusLbl = new javax.swing.JLabel();
|
statusLbl = new javax.swing.JLabel();
|
||||||
jMenuBar1 = new javax.swing.JMenuBar();
|
jMenuBar1 = new javax.swing.JMenuBar();
|
||||||
@ -239,7 +242,7 @@ public class PadEditor extends javax.swing.JInternalFrame implements RunScriptLi
|
|||||||
setTitle("Pad Editor");
|
setTitle("Pad Editor");
|
||||||
setFrameIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/editor.png"))); // NOI18N
|
setFrameIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/editor.png"))); // NOI18N
|
||||||
setMinimumSize(new java.awt.Dimension(300, 300));
|
setMinimumSize(new java.awt.Dimension(300, 300));
|
||||||
setPreferredSize(new java.awt.Dimension(480, 400));
|
setPreferredSize(new java.awt.Dimension(550, 391));
|
||||||
addInternalFrameListener(new javax.swing.event.InternalFrameListener() {
|
addInternalFrameListener(new javax.swing.event.InternalFrameListener() {
|
||||||
public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) {
|
public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) {
|
||||||
}
|
}
|
||||||
@ -266,9 +269,10 @@ public class PadEditor extends javax.swing.JInternalFrame implements RunScriptLi
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
jSplitPane1.setDividerLocation(260);
|
jSplitPane1.setDividerLocation(200);
|
||||||
jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
|
jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
|
||||||
jSplitPane1.setResizeWeight(0.7);
|
jSplitPane1.setResizeWeight(0.7);
|
||||||
|
jSplitPane1.setPreferredSize(new java.awt.Dimension(550, 375));
|
||||||
|
|
||||||
browserBox.setMinimumSize(new java.awt.Dimension(100, 25));
|
browserBox.setMinimumSize(new java.awt.Dimension(100, 25));
|
||||||
browserBox.addComponentListener(new java.awt.event.ComponentAdapter() {
|
browserBox.addComponentListener(new java.awt.event.ComponentAdapter() {
|
||||||
@ -284,7 +288,37 @@ public class PadEditor extends javax.swing.JInternalFrame implements RunScriptLi
|
|||||||
outputBox.setTabSize(4);
|
outputBox.setTabSize(4);
|
||||||
jScrollPane1.setViewportView(outputBox);
|
jScrollPane1.setViewportView(outputBox);
|
||||||
|
|
||||||
jSplitPane1.setRightComponent(jScrollPane1);
|
clearBtn.setText("Clear");
|
||||||
|
clearBtn.setToolTipText("");
|
||||||
|
clearBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
clearBtnActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
jLabel1.setText("Output:");
|
||||||
|
|
||||||
|
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
||||||
|
jPanel1.setLayout(jPanel1Layout);
|
||||||
|
jPanel1Layout.setHorizontalGroup(
|
||||||
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||||
|
.addComponent(jLabel1)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 437, Short.MAX_VALUE)
|
||||||
|
.addComponent(clearBtn))
|
||||||
|
.addComponent(jScrollPane1)
|
||||||
|
);
|
||||||
|
jPanel1Layout.setVerticalGroup(
|
||||||
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||||
|
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(jLabel1)
|
||||||
|
.addComponent(clearBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addGap(0, 0, 0)
|
||||||
|
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE))
|
||||||
|
);
|
||||||
|
|
||||||
|
jSplitPane1.setBottomComponent(jPanel1);
|
||||||
|
|
||||||
getContentPane().add(jSplitPane1, java.awt.BorderLayout.CENTER);
|
getContentPane().add(jSplitPane1, java.awt.BorderLayout.CENTER);
|
||||||
|
|
||||||
@ -426,21 +460,31 @@ public class PadEditor extends javax.swing.JInternalFrame implements RunScriptLi
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void javascriptOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_javascriptOptionActionPerformed
|
private void javascriptOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_javascriptOptionActionPerformed
|
||||||
|
pythonOption.setSelected(false);
|
||||||
|
javaOption.setSelected(false);
|
||||||
|
javascriptOption.setSelected(true);
|
||||||
}//GEN-LAST:event_javascriptOptionActionPerformed
|
}//GEN-LAST:event_javascriptOptionActionPerformed
|
||||||
|
|
||||||
private void pythonOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pythonOptionActionPerformed
|
private void pythonOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pythonOptionActionPerformed
|
||||||
|
pythonOption.setSelected(true);
|
||||||
|
javaOption.setSelected(false);
|
||||||
|
javascriptOption.setSelected(false);
|
||||||
}//GEN-LAST:event_pythonOptionActionPerformed
|
}//GEN-LAST:event_pythonOptionActionPerformed
|
||||||
|
|
||||||
private void javaOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_javaOptionActionPerformed
|
private void javaOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_javaOptionActionPerformed
|
||||||
|
pythonOption.setSelected(false);
|
||||||
|
javaOption.setSelected(true);
|
||||||
|
javascriptOption.setSelected(false);
|
||||||
}//GEN-LAST:event_javaOptionActionPerformed
|
}//GEN-LAST:event_javaOptionActionPerformed
|
||||||
|
|
||||||
private void browserBoxComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_browserBoxComponentResized
|
private void browserBoxComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_browserBoxComponentResized
|
||||||
resizeAll();
|
resizeAll();
|
||||||
}//GEN-LAST:event_browserBoxComponentResized
|
}//GEN-LAST:event_browserBoxComponentResized
|
||||||
|
|
||||||
|
private void clearBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clearBtnActionPerformed
|
||||||
|
outputBox.setText("");
|
||||||
|
}//GEN-LAST:event_clearBtnActionPerformed
|
||||||
|
|
||||||
private void resizeAll() {
|
private void resizeAll() {
|
||||||
Platform.runLater(new Runnable() {
|
Platform.runLater(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@ -454,8 +498,11 @@ public class PadEditor extends javax.swing.JInternalFrame implements RunScriptLi
|
|||||||
|
|
||||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||||
private javax.swing.JPanel browserBox;
|
private javax.swing.JPanel browserBox;
|
||||||
|
private javax.swing.JButton clearBtn;
|
||||||
private javax.swing.JMenu codeLangMenu;
|
private javax.swing.JMenu codeLangMenu;
|
||||||
|
private javax.swing.JLabel jLabel1;
|
||||||
private javax.swing.JMenuBar jMenuBar1;
|
private javax.swing.JMenuBar jMenuBar1;
|
||||||
|
private javax.swing.JPanel jPanel1;
|
||||||
private javax.swing.JScrollPane jScrollPane1;
|
private javax.swing.JScrollPane jScrollPane1;
|
||||||
private javax.swing.JSplitPane jSplitPane1;
|
private javax.swing.JSplitPane jSplitPane1;
|
||||||
private javax.swing.JRadioButtonMenuItem javaOption;
|
private javax.swing.JRadioButtonMenuItem javaOption;
|
||||||
|
@ -95,6 +95,7 @@ public class Update extends javax.swing.JInternalFrame {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
changelogBox.setText(html);
|
changelogBox.setText(html);
|
||||||
|
changelogBox.setCaretPosition(0);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -61,11 +61,14 @@
|
|||||||
<Property name="font" type="java.awt.Font" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
<Property name="font" type="java.awt.Font" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
||||||
<Connection code="Main.ubuntuRegular.deriveFont(16.0f)" type="code"/>
|
<Connection code="Main.ubuntuRegular.deriveFont(16.0f)" type="code"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="text" type="java.lang.String" value="<"/>
|
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||||
|
<Image iconType="3" name="/net/apocalypselabs/symat/icons/arrow-left.png"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="toolTipText" type="java.lang.String" value="Go back a page"/>
|
||||||
<Property name="focusable" type="boolean" value="false"/>
|
<Property name="focusable" type="boolean" value="false"/>
|
||||||
<Property name="horizontalTextPosition" type="int" value="0"/>
|
<Property name="horizontalTextPosition" type="int" value="0"/>
|
||||||
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
<Dimension value="[30, 21]"/>
|
<Dimension value="[50, 50]"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
<Dimension value="[30, 21]"/>
|
<Dimension value="[30, 21]"/>
|
||||||
@ -93,31 +96,69 @@
|
|||||||
<AuxValue name="JavaCodeGenerator_ListenersCodePost" type="java.lang.String" value="navBar.add(urlBox, java.awt.BorderLayout.CENTER);
/*"/>
|
<AuxValue name="JavaCodeGenerator_ListenersCodePost" type="java.lang.String" value="navBar.add(urlBox, java.awt.BorderLayout.CENTER);
/*"/>
|
||||||
</AuxValues>
|
</AuxValues>
|
||||||
</Component>
|
</Component>
|
||||||
<Component class="javax.swing.JButton" name="goBtn">
|
<Container class="javax.swing.JToolBar" name="buttonBar">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="text" type="java.lang.String" value="Go"/>
|
<Property name="floatable" type="boolean" value="false"/>
|
||||||
<Property name="focusable" type="boolean" value="false"/>
|
<Property name="rollover" type="boolean" value="true"/>
|
||||||
<Property name="horizontalTextPosition" type="int" value="0"/>
|
<Property name="borderPainted" type="boolean" value="false"/>
|
||||||
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="[30, 21]"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="[30, 21]"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="[30, 21]"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="verticalTextPosition" type="int" value="3"/>
|
|
||||||
</Properties>
|
</Properties>
|
||||||
<Events>
|
|
||||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="goBtnActionPerformed"/>
|
|
||||||
</Events>
|
|
||||||
<AuxValues>
|
<AuxValues>
|
||||||
<AuxValue name="JavaCodeGenerator_AddingCodePost" type="java.lang.String" value="*/"/>
|
<AuxValue name="JavaCodeGenerator_AddingCodePost" type="java.lang.String" value="*/"/>
|
||||||
<AuxValue name="JavaCodeGenerator_InitCodePost" type="java.lang.String" value="navBar.add(goBtn, java.awt.BorderLayout.EAST);"/>
|
<AuxValue name="JavaCodeGenerator_InitCodePost" type="java.lang.String" value="navBar.add(buttonBar, BorderLayout.EAST);"/>
|
||||||
<AuxValue name="JavaCodeGenerator_ListenersCodePost" type="java.lang.String" value="/*"/>
|
<AuxValue name="JavaCodeGenerator_LayoutCodePost" type="java.lang.String" value="/*"/>
|
||||||
|
<AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="1"/>
|
||||||
</AuxValues>
|
</AuxValues>
|
||||||
</Component>
|
|
||||||
|
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JButton" name="goBtn">
|
||||||
|
<Properties>
|
||||||
|
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||||
|
<Image iconType="3" name="/net/apocalypselabs/symat/icons/goarrow.png"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="toolTipText" type="java.lang.String" value="Navigate"/>
|
||||||
|
<Property name="horizontalTextPosition" type="int" value="0"/>
|
||||||
|
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[50, 50]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[30, 21]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[30, 30]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="verticalTextPosition" type="int" value="3"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="goBtnActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="JavaCodeGenerator_AddingCodePost" type="java.lang.String" value="*/"/>
|
||||||
|
<AuxValue name="JavaCodeGenerator_InitCodePost" type="java.lang.String" value="buttonBar.add(goBtn);"/>
|
||||||
|
<AuxValue name="JavaCodeGenerator_ListenersCodePost" type="java.lang.String" value="/*"/>
|
||||||
|
</AuxValues>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JToolBar$Separator" name="sepBar">
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JButton" name="homeBtn">
|
||||||
|
<Properties>
|
||||||
|
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||||
|
<Image iconType="3" name="/net/apocalypselabs/symat/icons/home.png"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="toolTipText" type="java.lang.String" value="Go to homepage"/>
|
||||||
|
<Property name="focusable" type="boolean" value="false"/>
|
||||||
|
<Property name="horizontalTextPosition" type="int" value="0"/>
|
||||||
|
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[50, 50]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="verticalTextPosition" type="int" value="3"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="homeBtnActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
</SubComponents>
|
</SubComponents>
|
||||||
</Container>
|
</Container>
|
||||||
<Container class="javax.swing.JPanel" name="browserBox">
|
<Container class="javax.swing.JPanel" name="browserBox">
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
package net.apocalypselabs.symat;
|
package net.apocalypselabs.symat;
|
||||||
|
|
||||||
import java.awt.BorderLayout;
|
import java.awt.BorderLayout;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
@ -76,6 +77,8 @@ import javafx.scene.web.WebEvent;
|
|||||||
import javafx.scene.web.WebView;
|
import javafx.scene.web.WebView;
|
||||||
import javafx.util.Callback;
|
import javafx.util.Callback;
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
|
import javax.swing.JButton;
|
||||||
|
import javax.swing.JComponent;
|
||||||
import javax.swing.JInternalFrame;
|
import javax.swing.JInternalFrame;
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
|
|
||||||
@ -190,27 +193,6 @@ public class WebBrowser extends javax.swing.JInternalFrame {
|
|||||||
loadURL("http://wiki.symatapp.com/");
|
loadURL("http://wiki.symatapp.com/");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public String homepage() {
|
|
||||||
try {
|
|
||||||
String text = "";
|
|
||||||
BufferedReader reader = new BufferedReader(
|
|
||||||
new InputStreamReader(
|
|
||||||
WebBrowser.class
|
|
||||||
.getResourceAsStream("resources/homepage.html")));
|
|
||||||
String line;
|
|
||||||
while ((line = reader.readLine()) != null) {
|
|
||||||
text += line;
|
|
||||||
}
|
|
||||||
return text;
|
|
||||||
} catch (IOException ex) {
|
|
||||||
return "Error: " + ex.getMessage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param title
|
* @param title
|
||||||
@ -232,15 +214,21 @@ public class WebBrowser extends javax.swing.JInternalFrame {
|
|||||||
this(title, url);
|
this(title, url);
|
||||||
switch (icon) {
|
switch (icon) {
|
||||||
case WIKI_LOGO:
|
case WIKI_LOGO:
|
||||||
|
homeBtn.setVisible(false);
|
||||||
|
sepBar.setVisible(false);
|
||||||
setFrameIcon(new ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/wiki.png")));
|
setFrameIcon(new ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/wiki.png")));
|
||||||
break;
|
break;
|
||||||
case FORUM_LOGO:
|
case FORUM_LOGO:
|
||||||
|
homeBtn.setVisible(false);
|
||||||
|
sepBar.setVisible(false);
|
||||||
setFrameIcon(new ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/forum.png")));
|
setFrameIcon(new ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/forum.png")));
|
||||||
break;
|
break;
|
||||||
case PAD_LOGO:
|
case PAD_LOGO:
|
||||||
navBar.setVisible(false);
|
navBar.setVisible(false);
|
||||||
goBtn.setEnabled(false);
|
goBtn.setEnabled(false);
|
||||||
backBtn.setEnabled(false);
|
backBtn.setEnabled(false);
|
||||||
|
homeBtn.setVisible(false);
|
||||||
|
sepBar.setVisible(false);
|
||||||
setFrameIcon(new ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/editor.png")));
|
setFrameIcon(new ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/editor.png")));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -274,14 +262,90 @@ public class WebBrowser extends javax.swing.JInternalFrame {
|
|||||||
* @param url
|
* @param url
|
||||||
*/
|
*/
|
||||||
public void loadURL(final String url) {
|
public void loadURL(final String url) {
|
||||||
Platform.runLater(new Runnable() {
|
if (url.startsWith("about:")) {
|
||||||
@Override
|
final String action = url.replace("about:", "");
|
||||||
public void run() {
|
Platform.runLater(new Runnable() {
|
||||||
webEngine.load(url);
|
@Override
|
||||||
resizeAll();
|
public void run() {
|
||||||
|
switch (action) {
|
||||||
|
case "home":
|
||||||
|
webEngine.loadContent(homepage());
|
||||||
|
break;
|
||||||
|
case "blank":
|
||||||
|
webEngine.loadContent("");
|
||||||
|
break;
|
||||||
|
case "new":
|
||||||
|
Main.loadFrame(new WebBrowser());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
webEngine.loadContent(errorpage("Invalid URL", "That isn't a valid address."));
|
||||||
|
}
|
||||||
|
resizeAll();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
urlBox.setText(url);
|
||||||
|
} else {
|
||||||
|
Platform.runLater(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
webEngine.load(url);
|
||||||
|
resizeAll();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
urlBox.setText(url);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the homepage/startpage HTML.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String homepage() {
|
||||||
|
try {
|
||||||
|
String text = "";
|
||||||
|
BufferedReader reader = new BufferedReader(
|
||||||
|
new InputStreamReader(
|
||||||
|
WebBrowser.class
|
||||||
|
.getResourceAsStream("resources/homepage.html")));
|
||||||
|
String line;
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
text += line;
|
||||||
}
|
}
|
||||||
});
|
return text;
|
||||||
urlBox.setText(url);
|
} catch (IOException ex) {
|
||||||
|
return errorpage("Error: " + ex.getMessage(), ex.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a webpage suitable for showing error messages.
|
||||||
|
*
|
||||||
|
* @param error Short error message
|
||||||
|
* @param details Error information
|
||||||
|
* @return HTML page content
|
||||||
|
*/
|
||||||
|
public String errorpage(String error, String details) {
|
||||||
|
try {
|
||||||
|
String text = "";
|
||||||
|
BufferedReader reader = new BufferedReader(
|
||||||
|
new InputStreamReader(
|
||||||
|
WebBrowser.class
|
||||||
|
.getResourceAsStream("resources/errorpage.html")));
|
||||||
|
String line;
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
text += line;
|
||||||
|
}
|
||||||
|
text = text.replaceAll("<<<ERROR>>>", error);
|
||||||
|
text = text.replaceAll("<<<DETAILS>>>", details);
|
||||||
|
return text;
|
||||||
|
} catch (IOException ex) {
|
||||||
|
return "Oh, no! Something bad happened:<br />"
|
||||||
|
+ error
|
||||||
|
+ "<br />Also, an error occured "
|
||||||
|
+ "while displaying the error page: "
|
||||||
|
+ ex.getMessage();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -318,7 +382,10 @@ public class WebBrowser extends javax.swing.JInternalFrame {
|
|||||||
navBar = new javax.swing.JToolBar();
|
navBar = new javax.swing.JToolBar();
|
||||||
backBtn = new javax.swing.JButton();
|
backBtn = new javax.swing.JButton();
|
||||||
urlBox = new javax.swing.JTextField();
|
urlBox = new javax.swing.JTextField();
|
||||||
|
buttonBar = new javax.swing.JToolBar();
|
||||||
goBtn = new javax.swing.JButton();
|
goBtn = new javax.swing.JButton();
|
||||||
|
sepBar = new javax.swing.JToolBar.Separator();
|
||||||
|
homeBtn = new javax.swing.JButton();
|
||||||
browserBox = new javax.swing.JPanel();
|
browserBox = new javax.swing.JPanel();
|
||||||
|
|
||||||
setClosable(true);
|
setClosable(true);
|
||||||
@ -360,10 +427,11 @@ public class WebBrowser extends javax.swing.JInternalFrame {
|
|||||||
navBar.setLayout(new java.awt.BorderLayout());
|
navBar.setLayout(new java.awt.BorderLayout());
|
||||||
|
|
||||||
backBtn.setFont(Main.ubuntuRegular.deriveFont(16.0f));
|
backBtn.setFont(Main.ubuntuRegular.deriveFont(16.0f));
|
||||||
backBtn.setText("<");
|
backBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/arrow-left.png"))); // NOI18N
|
||||||
|
backBtn.setToolTipText("Go back a page");
|
||||||
backBtn.setFocusable(false);
|
backBtn.setFocusable(false);
|
||||||
backBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
backBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
||||||
backBtn.setMaximumSize(new java.awt.Dimension(30, 21));
|
backBtn.setMaximumSize(new java.awt.Dimension(50, 50));
|
||||||
backBtn.setMinimumSize(new java.awt.Dimension(30, 21));
|
backBtn.setMinimumSize(new java.awt.Dimension(30, 21));
|
||||||
backBtn.setPreferredSize(new java.awt.Dimension(30, 21));
|
backBtn.setPreferredSize(new java.awt.Dimension(30, 21));
|
||||||
backBtn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
|
backBtn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
|
||||||
@ -387,21 +455,45 @@ public class WebBrowser extends javax.swing.JInternalFrame {
|
|||||||
navBar.add(urlBox);
|
navBar.add(urlBox);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
goBtn.setText("Go");
|
buttonBar.setFloatable(false);
|
||||||
goBtn.setFocusable(false);
|
buttonBar.setRollover(true);
|
||||||
|
buttonBar.setBorderPainted(false);
|
||||||
|
navBar.add(buttonBar, BorderLayout.EAST);
|
||||||
|
|
||||||
|
goBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/goarrow.png"))); // NOI18N
|
||||||
|
goBtn.setToolTipText("Navigate");
|
||||||
goBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
goBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
||||||
goBtn.setMaximumSize(new java.awt.Dimension(30, 21));
|
goBtn.setMaximumSize(new java.awt.Dimension(50, 50));
|
||||||
goBtn.setMinimumSize(new java.awt.Dimension(30, 21));
|
goBtn.setMinimumSize(new java.awt.Dimension(30, 21));
|
||||||
goBtn.setPreferredSize(new java.awt.Dimension(30, 21));
|
goBtn.setPreferredSize(new java.awt.Dimension(30, 30));
|
||||||
goBtn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
|
goBtn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
|
||||||
navBar.add(goBtn, java.awt.BorderLayout.EAST);
|
buttonBar.add(goBtn);
|
||||||
goBtn.addActionListener(new java.awt.event.ActionListener() {
|
goBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
goBtnActionPerformed(evt);
|
goBtnActionPerformed(evt);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
/*
|
/*
|
||||||
navBar.add(goBtn);
|
buttonBar.add(goBtn);
|
||||||
|
*/
|
||||||
|
buttonBar.add(sepBar);
|
||||||
|
|
||||||
|
homeBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/home.png"))); // NOI18N
|
||||||
|
homeBtn.setToolTipText("Go to homepage");
|
||||||
|
homeBtn.setFocusable(false);
|
||||||
|
homeBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
||||||
|
homeBtn.setMaximumSize(new java.awt.Dimension(50, 50));
|
||||||
|
homeBtn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
|
||||||
|
homeBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
homeBtnActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
buttonBar.add(homeBtn);
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
navBar.add(buttonBar);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
getContentPane().add(navBar, java.awt.BorderLayout.PAGE_START);
|
getContentPane().add(navBar, java.awt.BorderLayout.PAGE_START);
|
||||||
@ -437,7 +529,7 @@ public class WebBrowser extends javax.swing.JInternalFrame {
|
|||||||
if (urlBox.getText().equals("about:home")) {
|
if (urlBox.getText().equals("about:home")) {
|
||||||
loadString(homepage());
|
loadString(homepage());
|
||||||
} else {
|
} else {
|
||||||
if (!urlBox.getText().startsWith("http")) {
|
if (!urlBox.getText().startsWith("http") && !urlBox.getText().startsWith("about:")) {
|
||||||
urlBox.setText("http://" + urlBox.getText());
|
urlBox.setText("http://" + urlBox.getText());
|
||||||
}
|
}
|
||||||
loadURL(urlBox.getText());
|
loadURL(urlBox.getText());
|
||||||
@ -456,6 +548,10 @@ public class WebBrowser extends javax.swing.JInternalFrame {
|
|||||||
});
|
});
|
||||||
}//GEN-LAST:event_backBtnActionPerformed
|
}//GEN-LAST:event_backBtnActionPerformed
|
||||||
|
|
||||||
|
private void homeBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_homeBtnActionPerformed
|
||||||
|
loadURL("about:home");
|
||||||
|
}//GEN-LAST:event_homeBtnActionPerformed
|
||||||
|
|
||||||
private void resizeAll() {
|
private void resizeAll() {
|
||||||
Platform.runLater(new Runnable() {
|
Platform.runLater(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@ -466,12 +562,33 @@ public class WebBrowser extends javax.swing.JInternalFrame {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a component to the toolbar.
|
||||||
|
* @param btn The JComponent to add.
|
||||||
|
*/
|
||||||
|
public void addButton(JComponent btn) {
|
||||||
|
buttonBar.add(btn);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a button to the toolbar.
|
||||||
|
* @param btn The JButton to add.
|
||||||
|
* @param action An ActionListener to handle actions.
|
||||||
|
*/
|
||||||
|
public void addButton(JButton btn, ActionListener action) {
|
||||||
|
buttonBar.add(btn);
|
||||||
|
btn.addActionListener(action);
|
||||||
|
}
|
||||||
|
|
||||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||||
private javax.swing.JButton backBtn;
|
private javax.swing.JButton backBtn;
|
||||||
private javax.swing.JPanel browserBox;
|
private javax.swing.JPanel browserBox;
|
||||||
|
public javax.swing.JToolBar buttonBar;
|
||||||
private javax.swing.JButton goBtn;
|
private javax.swing.JButton goBtn;
|
||||||
|
private javax.swing.JButton homeBtn;
|
||||||
private javax.swing.JToolBar navBar;
|
private javax.swing.JToolBar navBar;
|
||||||
|
private javax.swing.JToolBar.Separator sepBar;
|
||||||
private javax.swing.JTextField urlBox;
|
private javax.swing.JTextField urlBox;
|
||||||
// End of variables declaration//GEN-END:variables
|
// End of variables declaration//GEN-END:variables
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
String formula = ask("Enter formula:");
|
String formula = symat.ask("Enter formula:");
|
||||||
plot(formula);
|
symat.plot(formula);
|
||||||
plotname("Cool graph!");
|
symat.plotname("Cool graph!");
|
@ -1,6 +1,9 @@
|
|||||||
public class HelloWorld {
|
public class HelloWorld {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
print("Hello world");
|
String message = "Hello World!";
|
||||||
|
int x = 5;
|
||||||
|
print(message);
|
||||||
|
symat.notify(message + " X is " + x + ".");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,162 +1,6 @@
|
|||||||
void notify(String msg) {
|
import net.apocalypselabs.symat.Functions;
|
||||||
SyMAT_Functions.notify(msg);
|
Functions symat = new Functions();
|
||||||
}
|
public static final double E = java.lang.Math.E;
|
||||||
Object ask(String msg) {
|
public static final double PI = java.lang.Math.PI;
|
||||||
return SyMAT_Functions.ask(msg);
|
public static final double SQRT1_2 = java.lang.Math.sqrt(0.5);
|
||||||
}
|
public static final double SQRT2 = java.lang.Math.sqrt(2);
|
||||||
Object factorial(int n) {
|
|
||||||
return SyMAT_Functions.factorial(n);
|
|
||||||
}
|
|
||||||
Object diff(String fun,String var) {
|
|
||||||
return SyMAT_Functions.diff(fun,var);
|
|
||||||
}
|
|
||||||
Object integrate(String fun,String var) {
|
|
||||||
return SyMAT_Functions.integrate(fun,var);
|
|
||||||
}
|
|
||||||
Object rad(double num) {
|
|
||||||
return SyMAT_Functions.rad(num);
|
|
||||||
}
|
|
||||||
Object deg(double num) {
|
|
||||||
return SyMAT_Functions.deg(num);
|
|
||||||
}
|
|
||||||
Object subs(String fun,String var) {
|
|
||||||
return SyMAT_Functions.subs(fun,var);
|
|
||||||
}
|
|
||||||
void plot(String fun) {
|
|
||||||
SyMAT_Functions.plot(fun);
|
|
||||||
}
|
|
||||||
void plot() {
|
|
||||||
SyMAT_Functions.plot();
|
|
||||||
}
|
|
||||||
void plotname(String fun) {
|
|
||||||
SyMAT_Functions.plotname(fun);
|
|
||||||
}
|
|
||||||
Object plotname() {
|
|
||||||
return SyMAT_Functions.plotname();
|
|
||||||
}
|
|
||||||
void xlim(int min, int max) {
|
|
||||||
SyMAT_Functions.xlim(min,max);
|
|
||||||
}
|
|
||||||
void plotclr() {
|
|
||||||
SyMAT_Functions.plotclr();
|
|
||||||
}
|
|
||||||
void drawdot(int x, int y) {
|
|
||||||
SyMAT_Functions.drawdot(x, y);
|
|
||||||
}
|
|
||||||
Object simplify(String expr) {
|
|
||||||
return SyMAT_Functions.simplify(expr);
|
|
||||||
}
|
|
||||||
Object vpa(String expr) {
|
|
||||||
return SyMAT_Functions.vpa(expr);
|
|
||||||
}
|
|
||||||
Object readfile(String path) {
|
|
||||||
return SyMAT_Functions.readfile(path);
|
|
||||||
}
|
|
||||||
void savefile(String data,String path) {
|
|
||||||
SyMAT_Functions.savefile(data,path);
|
|
||||||
}
|
|
||||||
Object mtimes(double[][] a, double[][] b) {
|
|
||||||
return SyMAT_Functions.mtimes(a,b);
|
|
||||||
}
|
|
||||||
Object mpower(double[][] a, int b) {
|
|
||||||
return SyMAT_Functions.mpower(a,b);
|
|
||||||
}
|
|
||||||
Object add(double a...) {
|
|
||||||
return SyMAT_Functions.add(a);
|
|
||||||
}
|
|
||||||
Object subtract(double a...) {
|
|
||||||
return SyMAT_Functions.subtract(a);
|
|
||||||
}
|
|
||||||
Object times(double a...) {
|
|
||||||
return SyMAT_Functions.times(a);
|
|
||||||
}
|
|
||||||
Object divide(double a...) {
|
|
||||||
return SyMAT_Functions.divide(a);
|
|
||||||
}
|
|
||||||
Object mod(double a...) {
|
|
||||||
return SyMAT_Functions.mod(a);
|
|
||||||
}
|
|
||||||
Object rand(int min, int max) {
|
|
||||||
return SyMAT_Functions.rand(min,max);
|
|
||||||
}
|
|
||||||
Object rand(int min) {
|
|
||||||
return SyMAT_Functions.rand(min,1);
|
|
||||||
}
|
|
||||||
Object rand() {
|
|
||||||
return SyMAT_Functions.rand(0,1);
|
|
||||||
}
|
|
||||||
Object randb() {
|
|
||||||
return SyMAT_Functions.randb();
|
|
||||||
}
|
|
||||||
void sleep(int x) {
|
|
||||||
SyMAT_Functions.sleep(x);
|
|
||||||
}
|
|
||||||
void pause(int x) {
|
|
||||||
SyMAT_Functions.pause(x);
|
|
||||||
}
|
|
||||||
Object perms(double a...) {
|
|
||||||
return SyMAT_Functions.perms(a);
|
|
||||||
}
|
|
||||||
Object md5sum(String a) {
|
|
||||||
return SyMAT_Functions.md5sum(a);
|
|
||||||
}
|
|
||||||
Object save(String a, String b) {
|
|
||||||
return SyMAT_Functions.save(a,b);
|
|
||||||
}
|
|
||||||
Object load(String a) {
|
|
||||||
return SyMAT_Functions.load(a);
|
|
||||||
}
|
|
||||||
Object powermod(String a,String b,String m) {
|
|
||||||
return SyMAT_Functions.powermod(a,b,m);
|
|
||||||
}
|
|
||||||
Object powermod(double a,double b,double m) {
|
|
||||||
return SyMAT_Functions.powermod(a,b,m);
|
|
||||||
}
|
|
||||||
Object gcd(long a,long b) {
|
|
||||||
return SyMAT_Functions.gcd(a,b);
|
|
||||||
}
|
|
||||||
Object solve(String a, String b, int c) {
|
|
||||||
return SyMAT_Functions.solve(a,b,c);
|
|
||||||
}
|
|
||||||
Object solve(String a) {
|
|
||||||
return SyMAT_Functions.solve(a,"x",0);
|
|
||||||
}
|
|
||||||
Object printa(Object a) {
|
|
||||||
return SyMAT_Functions.printa(a);
|
|
||||||
}
|
|
||||||
Object sec(double a) {
|
|
||||||
return SyMAT_Functions.sec(a);
|
|
||||||
}
|
|
||||||
Object csc(double a) {
|
|
||||||
return SyMAT_Functions.csc(a);
|
|
||||||
}
|
|
||||||
Object cot(double a) {
|
|
||||||
return SyMAT_Functions.cot(a);
|
|
||||||
}
|
|
||||||
Object asec(double a) {
|
|
||||||
return SyMAT_Functions.asec(a);
|
|
||||||
}
|
|
||||||
Object acsc(double a) {
|
|
||||||
return SyMAT_Functions.acsc(a);
|
|
||||||
}
|
|
||||||
Object acot(double a) {
|
|
||||||
return SyMAT_Functions.acot(a);
|
|
||||||
}
|
|
||||||
Object sech(double a) {
|
|
||||||
return SyMAT_Functions.sech(a);
|
|
||||||
}
|
|
||||||
Object csch(double a) {
|
|
||||||
return SyMAT_Functions.csch(a);
|
|
||||||
}
|
|
||||||
Object coth(double a) {
|
|
||||||
return SyMAT_Functions.coth(a);
|
|
||||||
}
|
|
||||||
Object filedialog() {
|
|
||||||
return SyMAT_Functions.filedialog();
|
|
||||||
}
|
|
||||||
Object textbox() {
|
|
||||||
return SyMAT_Functions.textbox();
|
|
||||||
}
|
|
||||||
Object browser() {
|
|
||||||
return SyMAT_Functions.browser();
|
|
||||||
}
|
|
@ -8,6 +8,7 @@
|
|||||||
<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.
|
||||||
|
<br><br>To see a list of special SyMAT commands, press Ctrl-Space while editing code.</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
If any part of this license is deemed unenforcable, the remainder
|
If any part of this license is deemed unenforcable, the remainder
|
||||||
of the license remains in full effect.</p>
|
of the license remains in full effect.</p>
|
||||||
<h2>This application also uses libraries from third-parties.</h2>
|
<h2>This application also uses libraries from third-parties.</h2>
|
||||||
<h3>tl;dr: Apache License, Modified BSD, GNU LGPL, Python Software License, CDDL V1.1, Mozilla Public License, Ubuntu Font License</h3>
|
<h3>tl;dr: Apache License, Modified BSD, GNU LGPL, Python Software License, CDDL V1.1, Mozilla Public License, SIL Open Font License, Ubuntu Font License</h3>
|
||||||
<p><b>Symja (parser), log4j, Java-Prettify, json-simple, java-etherpad-lite:</b></p>
|
<p><b>Symja (parser), log4j, Java-Prettify, json-simple, java-etherpad-lite:</b></p>
|
||||||
<p>Licensed under the Apache License, Version 2.0 (the "License");<br>
|
<p>Licensed under the Apache License, Version 2.0 (the "License");<br>
|
||||||
you may not use this file except in compliance with the License.<br>
|
you may not use this file except in compliance with the License.<br>
|
||||||
@ -774,6 +774,103 @@ The code released under the CDDL shall be governed by the laws of the State of C
|
|||||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br>
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br>
|
||||||
</p><br>
|
</p><br>
|
||||||
<br>
|
<br>
|
||||||
|
<p><b>Font Awesome</b></p>
|
||||||
|
<pre>Copyright (c) 2015, Dave Gandy (http://fontawesome.io),
|
||||||
|
with Reserved Font Name Font Awesome.
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
|
</pre>
|
||||||
|
<br>
|
||||||
<p><b>iTextPDF, Symja (core), BeanShell:</b></p>
|
<p><b>iTextPDF, Symja (core), BeanShell:</b></p>
|
||||||
<p> GNU LESSER GENERAL PUBLIC LICENSE<br>
|
<p> GNU LESSER GENERAL PUBLIC LICENSE<br>
|
||||||
Version 3, 29 June 2007<br>
|
Version 3, 29 June 2007<br>
|
||||||
|
11
src/net/apocalypselabs/symat/help/notepad.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Notepad</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Notepad</h1>
|
||||||
|
<p>
|
||||||
|
The Notepad is a window that automatically remembers what you type. Save reminders, code snippets, and more.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -10,7 +10,7 @@
|
|||||||
servers. Share the address SyMAT gives you, and other people can
|
servers. Share the address SyMAT gives you, and other people can
|
||||||
access the script online.
|
access the script online.
|
||||||
<br>To access a script, open Pads from the Tools tab.
|
<br>To access a script, open Pads from the Tools tab.
|
||||||
You can add, share, edit, and download pads from this window.
|
You can add, share, edit, run, and download pads from this window.
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -5,7 +5,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<h1>Task Lists</h1>
|
<h1>Task Lists</h1>
|
||||||
<p>
|
<p>
|
||||||
Create a new Task List from the SyMAT Menu or the Tools tab.
|
Create a new Task List from the SyMAT Menu or the Ribbon.
|
||||||
<br>Items can be added from the Edit menu.
|
<br>Items can be added from the Edit menu.
|
||||||
To change the values of a task item,
|
To change the values of a task item,
|
||||||
click the corresponding menu button.
|
click the corresponding menu button.
|
||||||
|
BIN
src/net/apocalypselabs/symat/icons/arrow-left.png
Normal file
After Width: | Height: | Size: 290 B |
BIN
src/net/apocalypselabs/symat/icons/arrow-right.png
Normal file
After Width: | Height: | Size: 285 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/adjust.png
Normal file
After Width: | Height: | Size: 294 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/adn.png
Normal file
After Width: | Height: | Size: 346 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/align-center.png
Normal file
After Width: | Height: | Size: 265 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/align-justify.png
Normal file
After Width: | Height: | Size: 246 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/align-left.png
Normal file
After Width: | Height: | Size: 260 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/align-right.png
Normal file
After Width: | Height: | Size: 266 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/ambulance.png
Normal file
After Width: | Height: | Size: 426 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/anchor.png
Normal file
After Width: | Height: | Size: 363 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/android.png
Normal file
After Width: | Height: | Size: 330 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/angellist.png
Normal file
After Width: | Height: | Size: 514 B |
After Width: | Height: | Size: 218 B |
After Width: | Height: | Size: 216 B |
After Width: | Height: | Size: 218 B |
After Width: | Height: | Size: 221 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/angle-down.png
Normal file
After Width: | Height: | Size: 189 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/angle-left.png
Normal file
After Width: | Height: | Size: 162 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/angle-right.png
Normal file
After Width: | Height: | Size: 163 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/angle-up.png
Normal file
After Width: | Height: | Size: 174 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/apple.png
Normal file
After Width: | Height: | Size: 317 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/archive.png
Normal file
After Width: | Height: | Size: 227 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/area-chart.png
Normal file
After Width: | Height: | Size: 301 B |
After Width: | Height: | Size: 366 B |
After Width: | Height: | Size: 335 B |
After Width: | Height: | Size: 364 B |
After Width: | Height: | Size: 357 B |
After Width: | Height: | Size: 366 B |
After Width: | Height: | Size: 373 B |
After Width: | Height: | Size: 340 B |
After Width: | Height: | Size: 351 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/arrow-down.png
Normal file
After Width: | Height: | Size: 267 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/arrow-left.png
Normal file
After Width: | Height: | Size: 290 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/arrow-right.png
Normal file
After Width: | Height: | Size: 285 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/arrow-up.png
Normal file
After Width: | Height: | Size: 246 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/arrows-alt.png
Normal file
After Width: | Height: | Size: 313 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/arrows-h.png
Normal file
After Width: | Height: | Size: 182 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/arrows-v.png
Normal file
After Width: | Height: | Size: 197 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/arrows.png
Normal file
After Width: | Height: | Size: 278 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/asterisk.png
Normal file
After Width: | Height: | Size: 292 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/at.png
Normal file
After Width: | Height: | Size: 476 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/backward.png
Normal file
After Width: | Height: | Size: 253 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/ban.png
Normal file
After Width: | Height: | Size: 395 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bar-chart.png
Normal file
After Width: | Height: | Size: 253 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/barcode.png
Normal file
After Width: | Height: | Size: 241 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bars.png
Normal file
After Width: | Height: | Size: 207 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bed.png
Normal file
After Width: | Height: | Size: 333 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/beer.png
Normal file
After Width: | Height: | Size: 295 B |
After Width: | Height: | Size: 417 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/behance.png
Normal file
After Width: | Height: | Size: 460 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bell-o.png
Normal file
After Width: | Height: | Size: 364 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bell-slash-o.png
Normal file
After Width: | Height: | Size: 479 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bell-slash.png
Normal file
After Width: | Height: | Size: 437 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bell.png
Normal file
After Width: | Height: | Size: 299 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bicycle.png
Normal file
After Width: | Height: | Size: 516 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/binoculars.png
Normal file
After Width: | Height: | Size: 321 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/birthday-cake.png
Normal file
After Width: | Height: | Size: 433 B |
After Width: | Height: | Size: 432 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bitbucket.png
Normal file
After Width: | Height: | Size: 435 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bold.png
Normal file
After Width: | Height: | Size: 421 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bolt.png
Normal file
After Width: | Height: | Size: 312 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bomb.png
Normal file
After Width: | Height: | Size: 368 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/book.png
Normal file
After Width: | Height: | Size: 408 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bookmark-o.png
Normal file
After Width: | Height: | Size: 277 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bookmark.png
Normal file
After Width: | Height: | Size: 235 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/briefcase.png
Normal file
After Width: | Height: | Size: 302 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/btc.png
Normal file
After Width: | Height: | Size: 385 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bug.png
Normal file
After Width: | Height: | Size: 351 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/building-o.png
Normal file
After Width: | Height: | Size: 372 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/building.png
Normal file
After Width: | Height: | Size: 431 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bullhorn.png
Normal file
After Width: | Height: | Size: 383 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bullseye.png
Normal file
After Width: | Height: | Size: 448 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/bus.png
Normal file
After Width: | Height: | Size: 437 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/buysellads.png
Normal file
After Width: | Height: | Size: 381 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/calculator.png
Normal file
After Width: | Height: | Size: 469 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/calendar-o.png
Normal file
After Width: | Height: | Size: 315 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/calendar.png
Normal file
After Width: | Height: | Size: 379 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/camera-retro.png
Normal file
After Width: | Height: | Size: 407 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/camera.png
Normal file
After Width: | Height: | Size: 426 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/car.png
Normal file
After Width: | Height: | Size: 412 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/caret-down.png
Normal file
After Width: | Height: | Size: 164 B |
BIN
src/net/apocalypselabs/symat/icons/fontawesome/caret-left.png
Normal file
After Width: | Height: | Size: 172 B |