From b57c1927e25144a3233e5fe468416818506d0647 Mon Sep 17 00:00:00 2001
From: skylarmt
Date: Wed, 25 Feb 2015 19:04:22 -0700
Subject: [PATCH] Refactor MainGUI to Main
---
src/net/apocalypselabs/symat/CodeEditor.java | 10 ++---
src/net/apocalypselabs/symat/Display.java | 2 +-
src/net/apocalypselabs/symat/FileUtils.java | 2 +-
src/net/apocalypselabs/symat/Functions.java | 8 ++--
src/net/apocalypselabs/symat/Graph.java | 2 +-
src/net/apocalypselabs/symat/Help.java | 4 +-
src/net/apocalypselabs/symat/Interpreter.java | 4 +-
src/net/apocalypselabs/symat/License.java | 18 ++++-----
.../symat/{MainGUI.form => Main.form} | 8 ++--
.../symat/{MainGUI.java => Main.java} | 36 +++++++++---------
src/net/apocalypselabs/symat/Pads.java | 6 +--
.../apocalypselabs/symat/SplashScreen.form | 12 +++---
.../apocalypselabs/symat/SplashScreen.java | 28 +++++++-------
src/net/apocalypselabs/symat/Update.form | 4 +-
src/net/apocalypselabs/symat/Update.java | 4 +-
src/net/apocalypselabs/symat/WebBrowser.java | 2 +-
.../symat/images/symat-hex-logo.png | Bin 413507 -> 194087 bytes
17 files changed, 76 insertions(+), 74 deletions(-)
rename src/net/apocalypselabs/symat/{MainGUI.form => Main.form} (99%)
rename src/net/apocalypselabs/symat/{MainGUI.java => Main.java} (98%)
diff --git a/src/net/apocalypselabs/symat/CodeEditor.java b/src/net/apocalypselabs/symat/CodeEditor.java
index af756ee..14e0e64 100644
--- a/src/net/apocalypselabs/symat/CodeEditor.java
+++ b/src/net/apocalypselabs/symat/CodeEditor.java
@@ -517,9 +517,9 @@ public class CodeEditor extends javax.swing.JInternalFrame {
openString(FileUtils.readFile(f.getAbsolutePath()),
f.getAbsolutePath(), true);
} catch (IOException ex) {
- JOptionPane.showInternalMessageDialog(MainGUI.mainPane,
+ JOptionPane.showInternalMessageDialog(Main.mainPane,
"Error: Cannot load file: " + ex.getMessage());
- MainGUI.loadRecentFiles();
+ Main.loadRecentFiles();
}
}
@@ -674,8 +674,8 @@ public class CodeEditor extends javax.swing.JInternalFrame {
try {
int minNum = Integer.parseInt(min);
int maxNum = Integer.parseInt(max);
- if (!(minNum <= MainGUI.APP_CODE
- && maxNum >= MainGUI.APP_CODE)) {
+ if (!(minNum <= Main.APP_CODE
+ && maxNum >= Main.APP_CODE)) {
JOptionPane.showInternalMessageDialog(this, "This script "
+ "cannot be run on this version of SyMAT.");
return false;
@@ -730,7 +730,7 @@ public class CodeEditor extends javax.swing.JInternalFrame {
if (pythonOption.isSelected()) {
lang = "python";
}
- MainGUI.loadFrame(new CodeExport(codeBox.getText(), lang));
+ Main.loadFrame(new CodeExport(codeBox.getText(), lang));
}//GEN-LAST:event_exportMenuActionPerformed
private void javascriptOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_javascriptOptionActionPerformed
diff --git a/src/net/apocalypselabs/symat/Display.java b/src/net/apocalypselabs/symat/Display.java
index 7310940..b5b6ddc 100644
--- a/src/net/apocalypselabs/symat/Display.java
+++ b/src/net/apocalypselabs/symat/Display.java
@@ -187,7 +187,7 @@ public class Display extends javax.swing.JInternalFrame {
PrefStorage.saveSetting("showrecent", "no");
}
PrefStorage.save();
- MainGUI.updateDisplay();
+ Main.updateDisplay();
dispose();
}//GEN-LAST:event_saveBtnActionPerformed
diff --git a/src/net/apocalypselabs/symat/FileUtils.java b/src/net/apocalypselabs/symat/FileUtils.java
index 4609faf..bc798be 100644
--- a/src/net/apocalypselabs/symat/FileUtils.java
+++ b/src/net/apocalypselabs/symat/FileUtils.java
@@ -106,7 +106,7 @@ public class FileUtils {
out.print(content);
}
if (addToRecent) {
- MainGUI.addRecentFile((new File(path)).getAbsolutePath());
+ Main.addRecentFile((new File(path)).getAbsolutePath());
}
}
diff --git a/src/net/apocalypselabs/symat/Functions.java b/src/net/apocalypselabs/symat/Functions.java
index 6bb7c50..3683a2c 100644
--- a/src/net/apocalypselabs/symat/Functions.java
+++ b/src/net/apocalypselabs/symat/Functions.java
@@ -58,7 +58,7 @@ import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
-import static net.apocalypselabs.symat.MainGUI.API_URL;
+import static net.apocalypselabs.symat.Main.API_URL;
import org.matheclipse.core.eval.EvalUtilities;
import org.matheclipse.core.interfaces.IExpr;
import org.matheclipse.parser.client.math.MathException;
@@ -81,11 +81,11 @@ public class Functions {
Useful interactions
*/
public void notify(Object message) {
- JOptionPane.showInternalMessageDialog(MainGUI.mainPane, message.toString());
+ JOptionPane.showInternalMessageDialog(Main.mainPane, message.toString());
}
public String ask(String question) {
- return JOptionPane.showInternalInputDialog(MainGUI.mainPane, question);
+ return JOptionPane.showInternalInputDialog(Main.mainPane, question);
}
/*
@@ -370,6 +370,6 @@ public class Functions {
*/
public Functions() {
- MainGUI.loadFrame(graphwin, false);
+ Main.loadFrame(graphwin, false);
}
}
diff --git a/src/net/apocalypselabs/symat/Graph.java b/src/net/apocalypselabs/symat/Graph.java
index 701a98b..6208032 100644
--- a/src/net/apocalypselabs/symat/Graph.java
+++ b/src/net/apocalypselabs/symat/Graph.java
@@ -402,7 +402,7 @@ public class Graph extends javax.swing.JInternalFrame {
}//GEN-LAST:event_clrGraphBtnActionPerformed
private void exportBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exportBtnActionPerformed
- int result = fc.showSaveDialog(MainGUI.mainPane);
+ int result = fc.showSaveDialog(Main.mainPane);
if (result == JFileChooser.APPROVE_OPTION) {
File file = new File(addSaveExt(fc.getSelectedFile().toString()));
try {
diff --git a/src/net/apocalypselabs/symat/Help.java b/src/net/apocalypselabs/symat/Help.java
index 96646f3..5079ace 100644
--- a/src/net/apocalypselabs/symat/Help.java
+++ b/src/net/apocalypselabs/symat/Help.java
@@ -237,7 +237,7 @@ public class Help extends javax.swing.JInternalFrame {
+ "Scripts and commands can be written in "
+ "JavaScript or Python.
"
+ "This is SyMAT version "
- + MainGUI.VERSION_NAME + " (" + (int) MainGUI.APP_CODE + ")."
+ + Main.VERSION_NAME + " (" + (int) Main.APP_CODE + ")."
+ "
"
+ "SyMAT is copyright © "
+ Calendar.getInstance().get(Calendar.YEAR)
@@ -266,7 +266,7 @@ public class Help extends javax.swing.JInternalFrame {
}
setText(text, "Manual (" + topicList.getSelectedValue().toString() + ")");
} catch (Exception e) {
- //JOptionPane.showInternalMessageDialog(MainGUI.mainPane,
+ //JOptionPane.showInternalMessageDialog(Main.mainPane,
//"Error: Cannot load help topic "+name+".\n\n"+e.getMessage());
setText("
Error:
Cannot get help topic \""
+ name + "\".
(" + e.getMessage() + ")
", "Manual");
diff --git a/src/net/apocalypselabs/symat/Interpreter.java b/src/net/apocalypselabs/symat/Interpreter.java
index ebd93e1..b3c702e 100644
--- a/src/net/apocalypselabs/symat/Interpreter.java
+++ b/src/net/apocalypselabs/symat/Interpreter.java
@@ -362,14 +362,14 @@ public class Interpreter extends javax.swing.JInternalFrame {
private void javascriptMenuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_javascriptMenuActionPerformed
if (!lang.equals("javascript")) {
- MainGUI.loadFrame(new Interpreter("javascript"));
+ Main.loadFrame(new Interpreter("javascript"));
dispose();
}
}//GEN-LAST:event_javascriptMenuActionPerformed
private void pythonMenuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pythonMenuActionPerformed
if (!lang.equals("python")) {
- MainGUI.loadFrame(new Interpreter("python"));
+ Main.loadFrame(new Interpreter("python"));
dispose();
}
}//GEN-LAST:event_pythonMenuActionPerformed
diff --git a/src/net/apocalypselabs/symat/License.java b/src/net/apocalypselabs/symat/License.java
index 51004a0..99c9b48 100644
--- a/src/net/apocalypselabs/symat/License.java
+++ b/src/net/apocalypselabs/symat/License.java
@@ -56,7 +56,7 @@ import java.net.URL;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JOptionPane;
-import static net.apocalypselabs.symat.MainGUI.API_URL;
+import static net.apocalypselabs.symat.Main.API_URL;
/**
*
@@ -223,7 +223,7 @@ public class License extends javax.swing.JInternalFrame {
private void openShop() {
if (Desktop.isDesktopSupported()) {
try {
- Desktop.getDesktop().browse(new URI(MainGUI.API_URL + "shoplink.php"));
+ Desktop.getDesktop().browse(new URI(Main.API_URL + "shoplink.php"));
} catch (IOException | URISyntaxException ex) {
JOptionPane.showInternalMessageDialog(this, "Please go to symatapp.com to purchase a license.");
}
@@ -306,7 +306,7 @@ public class License extends javax.swing.JInternalFrame {
}
public void exit() {
- MainGUI.updateNamemark(); // Make sure it displays trial or not
+ Main.updateNamemark(); // Make sure it displays trial or not
dispose();
}
@@ -356,16 +356,16 @@ public class License extends javax.swing.JInternalFrame {
private void success(String type) {
PrefStorage.saveSetting("license", email);
PrefStorage.saveSetting("licensetype", type);
- JOptionPane.showInternalMessageDialog(MainGUI.mainPane,
+ JOptionPane.showInternalMessageDialog(Main.mainPane,
"Thank you for activating SyMAT!",
"Success",
JOptionPane.INFORMATION_MESSAGE);
- MainGUI.licenseRestrict(false);
+ Main.licenseRestrict(false);
exit();
}
private void fail() {
- JOptionPane.showInternalMessageDialog(MainGUI.mainPane,
+ JOptionPane.showInternalMessageDialog(Main.mainPane,
"There is not a valid license for that email address.",
"Activation failure",
JOptionPane.ERROR_MESSAGE);
@@ -373,7 +373,7 @@ public class License extends javax.swing.JInternalFrame {
private void email() {
try {
- String code = JOptionPane.showInternalInputDialog(MainGUI.mainPane,
+ String code = JOptionPane.showInternalInputDialog(Main.mainPane,
"A code has been emailed to you. "
+ "Enter it below to verify.",
"Almost done!",
@@ -390,7 +390,7 @@ public class License extends javax.swing.JInternalFrame {
if (code.equals(line)) {
success("domain");
} else {
- JOptionPane.showInternalMessageDialog(MainGUI.mainPane,
+ JOptionPane.showInternalMessageDialog(Main.mainPane,
"Code invalid.",
"Error",
JOptionPane.ERROR_MESSAGE);
@@ -401,7 +401,7 @@ public class License extends javax.swing.JInternalFrame {
}
private void ioerror() {
- JOptionPane.showMessageDialog(MainGUI.mainPane,
+ JOptionPane.showMessageDialog(Main.mainPane,
"An error occured while verifying your license. "
+ "Ensure you have an Internet connection and "
+ "try again later.",
diff --git a/src/net/apocalypselabs/symat/MainGUI.form b/src/net/apocalypselabs/symat/Main.form
similarity index 99%
rename from src/net/apocalypselabs/symat/MainGUI.form
rename to src/net/apocalypselabs/symat/Main.form
index 3559b1a..565cc43 100644
--- a/src/net/apocalypselabs/symat/MainGUI.form
+++ b/src/net/apocalypselabs/symat/Main.form
@@ -162,7 +162,7 @@
-
+
@@ -221,7 +221,7 @@
-
+
@@ -378,7 +378,7 @@
-
+
@@ -483,7 +483,7 @@
-
+
diff --git a/src/net/apocalypselabs/symat/MainGUI.java b/src/net/apocalypselabs/symat/Main.java
similarity index 98%
rename from src/net/apocalypselabs/symat/MainGUI.java
rename to src/net/apocalypselabs/symat/Main.java
index 099e956..7d3d19f 100644
--- a/src/net/apocalypselabs/symat/MainGUI.java
+++ b/src/net/apocalypselabs/symat/Main.java
@@ -73,21 +73,21 @@ import javax.swing.UIManager;
/**
* This class is like the Force: A light theme, a dark theme, and it binds the
* app together. Also like duct tape, but that's not as cool.
- *
- * Contains a bunch of important variables and constants that are used all over.
- *
- * There should be only one MainGUI per app instance, the important things are
- * static.
+
+ Contains a bunch of important variables and constants that are used all over.
+
+ There should be only one Main per app instance, the important things are
+ static.
*
* @author Skylar Ittner
*/
-public class MainGUI extends javax.swing.JFrame {
+public class Main extends javax.swing.JFrame {
// TODO: Add more code comments and stuff in case anybody else reads this
/**
* Version name, as it should be displayed.
*/
- public static final String VERSION_NAME = "1.4";
+ public static final String VERSION_NAME = "1.5";
/**
* Program name, with version name
*/
@@ -95,7 +95,7 @@ public class MainGUI extends javax.swing.JFrame {
/**
* Version number, for updates and //needs in scripts
*/
- public static final double APP_CODE = 16;
+ public static final double APP_CODE = 17;
/**
* Base URL for building API calls
*/
@@ -123,7 +123,7 @@ public class MainGUI extends javax.swing.JFrame {
* Creates the main app window and does some quick things that aren't
* threaded in SplashScreen.
*/
- public MainGUI() {
+ public Main() {
initComponents();
// Set icon
@@ -136,7 +136,7 @@ public class MainGUI extends javax.swing.JFrame {
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent we) {
- int p = JOptionPane.showConfirmDialog(MainGUI.mainPane,
+ int p = JOptionPane.showConfirmDialog(Main.mainPane,
"Are you sure you want to exit SyMAT?",
"Exit SyMAT",
JOptionPane.YES_NO_OPTION,
@@ -454,7 +454,7 @@ public class MainGUI extends javax.swing.JFrame {
}
});
- namemark1.setFont(MainGUI.ubuntuRegular.deriveFont(11.0F));
+ namemark1.setFont(Main.ubuntuRegular.deriveFont(11.0F));
namemark1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
namemark1.setText(namemark());
namemark1.setFocusable(false);
@@ -488,7 +488,7 @@ public class MainGUI extends javax.swing.JFrame {
jPanel2.setOpaque(false);
- namemark2.setFont(MainGUI.ubuntuRegular.deriveFont(11.0F));
+ namemark2.setFont(Main.ubuntuRegular.deriveFont(11.0F));
namemark2.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
namemark2.setText(namemark());
namemark2.setFocusable(false);
@@ -591,7 +591,7 @@ public class MainGUI extends javax.swing.JFrame {
}
});
- namemark3.setFont(MainGUI.ubuntuRegular.deriveFont(11.0F));
+ namemark3.setFont(Main.ubuntuRegular.deriveFont(11.0F));
namemark3.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
namemark3.setText(namemark());
namemark3.setFocusable(false);
@@ -654,7 +654,7 @@ public class MainGUI extends javax.swing.JFrame {
mainPane.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
mainPane.setOpaque(false);
- jLabel2.setFont(MainGUI.ubuntuRegular.deriveFont(48.0F));
+ jLabel2.setFont(Main.ubuntuRegular.deriveFont(48.0F));
jLabel2.setForeground(new java.awt.Color(153, 153, 153));
jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel2.setText("SyMAT");
@@ -959,14 +959,16 @@ public class MainGUI extends javax.swing.JFrame {
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException e) {
- java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, e);
+ java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, e);
}
//
//
+ //
+ //
try {
// Ubuntu font for prettifying
- ubuntuRegular = Font.createFont(Font.TRUETYPE_FONT, MainGUI.class.
+ ubuntuRegular = Font.createFont(Font.TRUETYPE_FONT, Main.class.
getResourceAsStream("/Ubuntu-R.ttf"));
} catch (FontFormatException | IOException ex) {
ubuntuRegular = Font.getFont(Font.SANS_SERIF);
@@ -980,7 +982,7 @@ public class MainGUI extends javax.swing.JFrame {
String[] sizes = {"16", "32", "48", "64", "128", "256"};
for (String s : sizes) {
symatlogo.add(new ImageIcon(
- MainGUI.class.getResource("logo-filled" + s + ".png")).getImage());
+ Main.class.getResource("logo-filled" + s + ".png")).getImage());
}
// Command line args
diff --git a/src/net/apocalypselabs/symat/Pads.java b/src/net/apocalypselabs/symat/Pads.java
index 7a6fd29..0aa432c 100644
--- a/src/net/apocalypselabs/symat/Pads.java
+++ b/src/net/apocalypselabs/symat/Pads.java
@@ -237,7 +237,7 @@ public class Pads extends javax.swing.JInternalFrame {
} catch (Exception ex) {
Debug.stacktrace(ex);
JOptionPane.showInternalMessageDialog(
- MainGUI.mainPane,
+ Main.mainPane,
"Could not sync pad contents: " + ex.getMessage(),
"Error",
JOptionPane.ERROR_MESSAGE);
@@ -273,7 +273,7 @@ public class Pads extends javax.swing.JInternalFrame {
} else {
theme += "default";
}
- MainGUI.loadFrame(new WebBrowser("Pad " + pad,
+ Main.loadFrame(new WebBrowser("Pad " + pad,
PADS_URL + "/p/" + pad + theme,
WebBrowser.PAD_LOGO));
}
@@ -484,7 +484,7 @@ public class Pads extends javax.swing.JInternalFrame {
}//GEN-LAST:event_purgeBtnActionPerformed
private void saveBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveBtnActionPerformed
- MainGUI.loadFrame(new CodeEditor(getPad(getSelectedPad()), true));
+ Main.loadFrame(new CodeEditor(getPad(getSelectedPad()), true));
updateList();
}//GEN-LAST:event_saveBtnActionPerformed
diff --git a/src/net/apocalypselabs/symat/SplashScreen.form b/src/net/apocalypselabs/symat/SplashScreen.form
index 07f2ff1..5cdb59f 100644
--- a/src/net/apocalypselabs/symat/SplashScreen.form
+++ b/src/net/apocalypselabs/symat/SplashScreen.form
@@ -57,7 +57,7 @@
-
+
@@ -75,11 +75,11 @@
-
+
-
+
@@ -106,7 +106,7 @@
-
+
@@ -123,7 +123,7 @@
-
+
@@ -140,4 +140,4 @@
-
+
\ No newline at end of file
diff --git a/src/net/apocalypselabs/symat/SplashScreen.java b/src/net/apocalypselabs/symat/SplashScreen.java
index 6d05d8c..ab25dde 100644
--- a/src/net/apocalypselabs/symat/SplashScreen.java
+++ b/src/net/apocalypselabs/symat/SplashScreen.java
@@ -52,9 +52,9 @@ import java.io.InputStreamReader;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.SwingUtilities;
-import static net.apocalypselabs.symat.MainGUI.API_URL;
-import static net.apocalypselabs.symat.MainGUI.APP_CODE;
-import static net.apocalypselabs.symat.MainGUI.VERSION_NAME;
+import static net.apocalypselabs.symat.Main.API_URL;
+import static net.apocalypselabs.symat.Main.APP_CODE;
+import static net.apocalypselabs.symat.Main.VERSION_NAME;
/**
*
@@ -68,7 +68,7 @@ public class SplashScreen extends javax.swing.JFrame {
public SplashScreen() {
initComponents();
setBackground(new Color(0, 0, 0, 0));
- setIconImages(MainGUI.symatlogo);
+ setIconImages(Main.symatlogo);
setLocationRelativeTo(null);
}
@@ -103,7 +103,7 @@ public class SplashScreen extends javax.swing.JFrame {
jLayeredPane1.setBackground(new java.awt.Color(255, 255, 255));
- dispLabel.setFont(MainGUI.ubuntuRegular.deriveFont(22.0F));
+ dispLabel.setFont(Main.ubuntuRegular.deriveFont(22.0F));
dispLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
dispLabel.setText("Loading...");
dispLabel.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
@@ -111,9 +111,9 @@ public class SplashScreen extends javax.swing.JFrame {
jLayeredPane1.add(dispLabel);
dispLabel.setBounds(250, 250, 350, 80);
- jLabel1.setFont(MainGUI.ubuntuRegular.deriveFont(20.0F));
+ jLabel1.setFont(Main.ubuntuRegular.deriveFont(20.0F));
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
- jLabel1.setText("v. "+MainGUI.VERSION_NAME);
+ jLabel1.setText("v. "+Main.VERSION_NAME);
jLayeredPane1.add(jLabel1);
jLabel1.setBounds(520, 70, 80, 30);
jLayeredPane1.setLayer(jLabel1, javax.swing.JLayeredPane.POPUP_LAYER);
@@ -122,14 +122,14 @@ public class SplashScreen extends javax.swing.JFrame {
jLayeredPane1.add(jLabel2);
jLabel2.setBounds(0, 0, 700, 470);
- jLabel3.setFont(MainGUI.ubuntuRegular.deriveFont(12.0F));
+ jLabel3.setFont(Main.ubuntuRegular.deriveFont(12.0F));
jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel3.setText("Apocalypse
Laboratories
");
jLayeredPane1.add(jLabel3);
jLabel3.setBounds(50, 420, 120, 40);
jLayeredPane1.setLayer(jLabel3, javax.swing.JLayeredPane.POPUP_LAYER);
- jLabel4.setFont(MainGUI.ubuntuRegular.deriveFont(12.0F));
+ jLabel4.setFont(Main.ubuntuRegular.deriveFont(12.0F));
jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel4.setText("symatapp.com");
jLayeredPane1.add(jLabel4);
@@ -153,7 +153,7 @@ public class SplashScreen extends javax.swing.JFrame {
@Override
public void run() {
setProgress("Starting up...");
- if (!MainGUI.skipPython) {
+ if (!Main.skipPython) {
// Python laggggsss when used for first time, this fixes the wait later.
System.out.println("Warming up Python engine, to skip run with argument 'skippython'");
setProgress("Initializing code engine...");
@@ -164,7 +164,7 @@ public class SplashScreen extends javax.swing.JFrame {
}
}
- if (!MainGUI.skipEditor) {
+ if (!Main.skipEditor) {
System.out.println("Preparing editor, to skip run with argument 'skipeditor'");
setProgress("Preparing editor...");
// Get editor going too
@@ -175,7 +175,7 @@ public class SplashScreen extends javax.swing.JFrame {
checkUpdates();
setProgress("Loading main interface...");
- MainGUI main = new MainGUI();
+ Main main = new Main();
setProgress("Done!");
dispose();
}
@@ -199,8 +199,8 @@ public class SplashScreen extends javax.swing.JFrame {
+ "but has been ignored by the user.");
} else {
Debug.println("Update available.");
- MainGUI.updateString = line.split("\\|")[1];
- MainGUI.updateAvailable = true;
+ Main.updateString = line.split("\\|")[1];
+ Main.updateAvailable = true;
}
} else {
Debug.println("No updates found.");
diff --git a/src/net/apocalypselabs/symat/Update.form b/src/net/apocalypselabs/symat/Update.form
index 480f25b..2a49dbe 100644
--- a/src/net/apocalypselabs/symat/Update.form
+++ b/src/net/apocalypselabs/symat/Update.form
@@ -106,7 +106,7 @@
-
+
@@ -133,4 +133,4 @@
-
+
\ No newline at end of file
diff --git a/src/net/apocalypselabs/symat/Update.java b/src/net/apocalypselabs/symat/Update.java
index 69f9491..df06d1c 100644
--- a/src/net/apocalypselabs/symat/Update.java
+++ b/src/net/apocalypselabs/symat/Update.java
@@ -104,7 +104,7 @@ public class Update extends javax.swing.JInternalFrame {
jLabel4.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
- jLabel4.setText("Your version: "+MainGUI.VERSION_NAME);
+ jLabel4.setText("Your version: "+Main.VERSION_NAME);
jButton1.setBackground(new java.awt.Color(51, 153, 255));
jButton1.setFont(new java.awt.Font("Tahoma", 3, 18)); // NOI18N
@@ -174,7 +174,7 @@ public class Update extends javax.swing.JInternalFrame {
}//GEN-LAST:event_jButton1ActionPerformed
private void jLabel5MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel5MouseClicked
- PrefStorage.saveSetting("update-ignore", MainGUI.VERSION_NAME + "|" + latestVersion);
+ PrefStorage.saveSetting("update-ignore", Main.VERSION_NAME + "|" + latestVersion);
dispose();
}//GEN-LAST:event_jLabel5MouseClicked
diff --git a/src/net/apocalypselabs/symat/WebBrowser.java b/src/net/apocalypselabs/symat/WebBrowser.java
index 2e5a2d0..1345e0b 100644
--- a/src/net/apocalypselabs/symat/WebBrowser.java
+++ b/src/net/apocalypselabs/symat/WebBrowser.java
@@ -90,7 +90,7 @@ public class WebBrowser extends javax.swing.JInternalFrame {
children.add(browser);
jfxPanel.setScene(scene);
webEngine = browser.getEngine();
- webEngine.setUserAgent("SyMAT " + MainGUI.VERSION_NAME);
+ webEngine.setUserAgent("SyMAT " + Main.VERSION_NAME);
webEngine.loadContent("Loading...
");
}
});
diff --git a/src/net/apocalypselabs/symat/images/symat-hex-logo.png b/src/net/apocalypselabs/symat/images/symat-hex-logo.png
index 4306c812c60bb7f0da1f604bee4842c9cfb232c5..d0a81501919866d457dc161c6142831e1d09baaf 100644
GIT binary patch
literal 194087
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