diff --git a/src/net/apocalypselabs/symat/Help.java b/src/net/apocalypselabs/symat/Help.java
index 4fe3638..342be6d 100644
--- a/src/net/apocalypselabs/symat/Help.java
+++ b/src/net/apocalypselabs/symat/Help.java
@@ -30,7 +30,7 @@ package net.apocalypselabs.symat;
import java.awt.Color;
import java.io.BufferedReader;
import java.io.InputStreamReader;
-import javax.swing.UIDefaults;
+import java.util.Calendar;
/**
*
@@ -38,6 +38,9 @@ import javax.swing.UIDefaults;
*/
public class Help extends javax.swing.JInternalFrame {
+ // True if this is a manual, false if about window
+ private boolean topicOnLoad = true;
+
/**
* Creates new form Help
*/
@@ -46,49 +49,74 @@ public class Help extends javax.swing.JInternalFrame {
loadTheme();
}
+ /**
+ * Load the About window.
+ *
+ * @param about set it to whatever.
+ */
+ public Help(boolean about) {
+ initComponents();
+ setSize(450,352);
+ jSplitPane1.setDividerSize(0);
+ jSplitPane1.setDividerLocation(0.0);
+ jSplitPane1.setResizeWeight(0.0);
+ topicOnLoad = false;
+ loadTopic("about");
+ }
+
private void loadTheme() {
if (PrefStorage.getSetting("theme").equals("dark")) {
- setBackgroundOfBrowser(Color.BLACK);
- setBackgroundOfBrowser(Color.WHITE);
topicList.setBackground(Color.BLACK);
topicList.setForeground(Color.WHITE);
setBackground(Color.DARK_GRAY);
} else {
- setBackgroundOfBrowser(Color.WHITE);
- setBackgroundOfBrowser(Color.BLACK);
topicList.setBackground(Color.WHITE);
topicList.setForeground(Color.BLACK);
setBackground(Color.LIGHT_GRAY);
}
}
-
- private void setBackgroundOfBrowser(Color c) {
- /*UIDefaults defaults = new UIDefaults();
- defaults.put("EditorPane.backgroundPainter", c);
- topicBrowser.putClientProperty("Nimbus.Overrides", defaults);
- topicBrowser.putClientProperty("Nimbus.Overrides.InheritDefaults", true);
- topicBrowser.setBackground(c);*/
- }
public void loadTopic(String name) {
- try {
- String text = "";
- BufferedReader reader = new BufferedReader(
- new InputStreamReader(
- CodeRunner.class
- .getResourceAsStream("help/" + name + ".html")));
- String line;
- while ((line = reader.readLine()) != null) {
- text += line;
- }
+ if (name.equals("about")) {
+ String text = "About SyMAT"
+ + ""
+ + "About
"
+ + "This is SyMAT version "
+ + MainGUI.VERSION_NAME + " (" + (int)MainGUI.APP_CODE + ")."
+ + "
"
+ + "SyMAT is copyright © "
+ + Calendar.getInstance().get(Calendar.YEAR)
+ + " Apocalypse Laboratories. Some rights reserved."
+ + "
"
+ + "Internal help documentation is "
+ + "licensed under the Creative Commons Attribution "
+ + "license (CC-BY). You can use it in part or in whole "
+ + "for any purpose, including commercial, as long as "
+ + "you attribute Apocalypse Laboratories.
"
+ + "";
topicBrowser.setText(text);
topicBrowser.setCaretPosition(0);
- setTitle("Manual (" + topicList.getSelectedValue().toString() + ")");
- } catch (Exception e) {
- //JOptionPane.showInternalMessageDialog(MainGUI.mainPane,
- //"Error: Cannot load help topic "+name+".\n\n"+e.getMessage());
- topicBrowser.setText("Error:
Cannot get help topic \""
- + name + "\".
(" + e.getMessage() + ")
");
+ setTitle("About SyMAT");
+ } else {
+ try {
+ String text = "";
+ BufferedReader reader = new BufferedReader(
+ new InputStreamReader(
+ CodeRunner.class
+ .getResourceAsStream("help/" + name + ".html")));
+ String line;
+ while ((line = reader.readLine()) != null) {
+ text += line;
+ }
+ topicBrowser.setText(text);
+ topicBrowser.setCaretPosition(0);
+ setTitle("Manual (" + topicList.getSelectedValue().toString() + ")");
+ } catch (Exception e) {
+ //JOptionPane.showInternalMessageDialog(MainGUI.mainPane,
+ //"Error: Cannot load help topic "+name+".\n\n"+e.getMessage());
+ topicBrowser.setText("Error:
Cannot get help topic \""
+ + name + "\".
(" + e.getMessage() + ")
");
+ }
}
}
@@ -114,6 +142,9 @@ public class Help extends javax.swing.JInternalFrame {
setTitle("Manual");
setFrameIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/help.png"))); // NOI18N
addComponentListener(new java.awt.event.ComponentAdapter() {
+ public void componentResized(java.awt.event.ComponentEvent evt) {
+ formComponentResized(evt);
+ }
public void componentShown(java.awt.event.ComponentEvent evt) {
formComponentShown(evt);
}
@@ -171,13 +202,22 @@ public class Help extends javax.swing.JInternalFrame {
private void formComponentShown(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentShown
topicList.setSelectedIndex(0);
- loadTopic("welcome");
+ if (topicOnLoad) {
+ loadTopic("welcome");
+ }
}//GEN-LAST:event_formComponentShown
private void topicListMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_topicListMouseClicked
loadTheme();
}//GEN-LAST:event_topicListMouseClicked
+ private void formComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentResized
+ if (!topicOnLoad) {
+ jSplitPane1.setDividerLocation(0.0);
+ jSplitPane1.setResizeWeight(0.0);
+ }
+ }//GEN-LAST:event_formComponentResized
+
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
diff --git a/src/net/apocalypselabs/symat/MainGUI.form b/src/net/apocalypselabs/symat/MainGUI.form
index ee369c8..d37da50 100644
--- a/src/net/apocalypselabs/symat/MainGUI.form
+++ b/src/net/apocalypselabs/symat/MainGUI.form
@@ -55,9 +55,9 @@
-
-
-
+
+
+
diff --git a/src/net/apocalypselabs/symat/MainGUI.java b/src/net/apocalypselabs/symat/MainGUI.java
index a599fb1..7030375 100644
--- a/src/net/apocalypselabs/symat/MainGUI.java
+++ b/src/net/apocalypselabs/symat/MainGUI.java
@@ -46,8 +46,8 @@ import javax.swing.JInternalFrame;
public class MainGUI extends javax.swing.JFrame {
public static final String APP_NAME = "SyMAT 0.8";
- public static final double APP_CODE = 8;
- public static final String VERSION_NAME = "0.8";
+ public static final double APP_CODE = 9;
+ public static final String VERSION_NAME = "0.8.2";
public static String argfile = "";
public static boolean skipPython = false; // Skip python init on start?
public static boolean skipEditor = false; // Skip editor init on start?
@@ -80,7 +80,7 @@ public class MainGUI extends javax.swing.JFrame {
+ " Assuming local copy up-to-date.");
Debug.stacktrace(e);
}
-
+
setButtonShortcuts();
// Open shell unless prog was run with argument
@@ -108,7 +108,7 @@ public class MainGUI extends javax.swing.JFrame {
tabs.setMnemonicAt(2, KeyEvent.VK_T);
tabs.setMnemonicAt(3, KeyEvent.VK_E);
}
-
+
/**
* (Re)load display settings.
*/
@@ -182,6 +182,11 @@ public class MainGUI extends javax.swing.JFrame {
tabs.setBackground(new Color(240,240,240));
tabs.setOpaque(true);
+ tabs.addChangeListener(new javax.swing.event.ChangeListener() {
+ public void stateChanged(javax.swing.event.ChangeEvent evt) {
+ tabsStateChanged(evt);
+ }
+ });
jPanel4.setFocusable(false);
jPanel4.setLayout(null);
@@ -398,24 +403,19 @@ public class MainGUI extends javax.swing.JFrame {
.addComponent(mainPane))
);
- tabs.setEnabledAt(0, false);
-
pack();
}// //GEN-END:initComponents
private void shellBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_shellBtnActionPerformed
- Interpreter i = new Interpreter();
- loadFrame(i);
+ loadFrame(new Interpreter());
}//GEN-LAST:event_shellBtnActionPerformed
private void editorBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editorBtnActionPerformed
- CodeEditor e = new CodeEditor();
- loadFrame(e);
+ loadFrame(new CodeEditor());
}//GEN-LAST:event_editorBtnActionPerformed
private void graphBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_graphBtnActionPerformed
- Graph g = new Graph();
- loadFrame(g);
+ loadFrame(new Graph());
}//GEN-LAST:event_graphBtnActionPerformed
private void formComponentShown(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentShown
@@ -423,8 +423,7 @@ public class MainGUI extends javax.swing.JFrame {
}//GEN-LAST:event_formComponentShown
private void helpBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_helpBtnActionPerformed
- Help h = new Help();
- loadFrame(h);
+ loadFrame(new Help());
}//GEN-LAST:event_helpBtnActionPerformed
private void arrangeWindowsBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_arrangeWindowsBtnActionPerformed
@@ -432,8 +431,7 @@ public class MainGUI extends javax.swing.JFrame {
}//GEN-LAST:event_arrangeWindowsBtnActionPerformed
private void displaySettingsBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_displaySettingsBtnActionPerformed
- Display d = new Display();
- loadFrame(d);
+ loadFrame(new Display());
}//GEN-LAST:event_displaySettingsBtnActionPerformed
private void closeAllBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeAllBtnActionPerformed
@@ -446,6 +444,17 @@ public class MainGUI extends javax.swing.JFrame {
}
}//GEN-LAST:event_closeAllBtnActionPerformed
+ private void tabsStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_tabsStateChanged
+ if (tabs.getSelectedIndex() == 0) {
+ try {
+ tabs.setSelectedIndex(1);
+ } catch (Exception ex) {
+
+ }
+ loadFrame(new Help(true));
+ }
+ }//GEN-LAST:event_tabsStateChanged
+
/**
* Adds the given JInternalFrame to the mainPane. Automatically does layout
* and sets visible (if show==true).
@@ -479,7 +488,13 @@ public class MainGUI extends javax.swing.JFrame {
}
//updateDisplay();
}
-
+
+ /**
+ * Adds the given JInternalFrame to the mainPane. Automatically does layout
+ * and sets visible.
+ *
+ * @param frame The frame
+ */
public static void loadFrame(JInternalFrame frame) {
loadFrame(frame, true);
}
@@ -520,7 +535,6 @@ public class MainGUI extends javax.swing.JFrame {
//
//
-
// Command line args
for (String arg : args) {
if (arg.equals("skippython")) {
@@ -530,11 +544,11 @@ public class MainGUI extends javax.swing.JFrame {
} else if (arg.equals("quickstart")) {
skipPython = true;
skipEditor = true;
- }else {
+ } else {
argfile = args[0];
}
}
-
+
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
@Override