Add global variable functionality and UI
This commit is contained in:
parent
0489464d34
commit
42d4208850
BIN
lib/beautyeye_lnf.jar
Normal file
BIN
lib/beautyeye_lnf.jar
Normal file
Binary file not shown.
BIN
lib/json-simple-1.1.1.jar
Normal file
BIN
lib/json-simple-1.1.1.jar
Normal file
Binary file not shown.
BIN
lib/seaglasslookandfeel-0.2.jar
Normal file
BIN
lib/seaglasslookandfeel-0.2.jar
Normal file
Binary file not shown.
@ -13,13 +13,13 @@
|
||||
<Image iconType="3" name="/net/apocalypselabs/symat/icons/settings.png"/>
|
||||
</Property>
|
||||
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[170, 190]"/>
|
||||
<Dimension value="[170, 188]"/>
|
||||
</Property>
|
||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[170, 190]"/>
|
||||
<Dimension value="[170, 188]"/>
|
||||
</Property>
|
||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[170, 190]"/>
|
||||
<Dimension value="[170, 188]"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<SyntheticProperties>
|
||||
@ -58,12 +58,11 @@
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="jPanel1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="saveBtn" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace pref="29" max="32767" attributes="0"/>
|
||||
<EmptySpace pref="41" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
@ -88,7 +87,7 @@
|
||||
<Component id="themeLight" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="themeDark" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace pref="67" max="32767" attributes="0"/>
|
||||
<EmptySpace pref="43" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
@ -97,7 +96,7 @@
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="themeLight" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="themeDark" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="32767" attributes="0"/>
|
||||
</Group>
|
||||
@ -111,7 +110,7 @@
|
||||
<ComponentRef name="themeGroup"/>
|
||||
</Property>
|
||||
<Property name="selected" type="boolean" value="true"/>
|
||||
<Property name="text" type="java.lang.String" value="Light"/>
|
||||
<Property name="text" type="java.lang.String" value="Daylight"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JRadioButton" name="themeDark">
|
||||
@ -119,7 +118,7 @@
|
||||
<Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
|
||||
<ComponentRef name="themeGroup"/>
|
||||
</Property>
|
||||
<Property name="text" type="java.lang.String" value="Dark"/>
|
||||
<Property name="text" type="java.lang.String" value="NightDark"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
|
@ -45,8 +45,6 @@
|
||||
*/
|
||||
package net.apocalypselabs.symat;
|
||||
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Skylar
|
||||
@ -79,9 +77,9 @@ public class Display extends javax.swing.JInternalFrame {
|
||||
setIconifiable(true);
|
||||
setTitle("Theme");
|
||||
setFrameIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/settings.png"))); // NOI18N
|
||||
setMaximumSize(new java.awt.Dimension(170, 190));
|
||||
setMinimumSize(new java.awt.Dimension(170, 190));
|
||||
setPreferredSize(new java.awt.Dimension(170, 190));
|
||||
setMaximumSize(new java.awt.Dimension(170, 188));
|
||||
setMinimumSize(new java.awt.Dimension(170, 188));
|
||||
setPreferredSize(new java.awt.Dimension(170, 188));
|
||||
addComponentListener(new java.awt.event.ComponentAdapter() {
|
||||
public void componentShown(java.awt.event.ComponentEvent evt) {
|
||||
formComponentShown(evt);
|
||||
@ -93,10 +91,10 @@ public class Display extends javax.swing.JInternalFrame {
|
||||
|
||||
themeGroup.add(themeLight);
|
||||
themeLight.setSelected(true);
|
||||
themeLight.setText("Light");
|
||||
themeLight.setText("Daylight");
|
||||
|
||||
themeGroup.add(themeDark);
|
||||
themeDark.setText("Dark");
|
||||
themeDark.setText("NightDark");
|
||||
|
||||
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
||||
jPanel1.setLayout(jPanel1Layout);
|
||||
@ -107,14 +105,14 @@ public class Display extends javax.swing.JInternalFrame {
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(themeLight)
|
||||
.addComponent(themeDark))
|
||||
.addContainerGap(67, Short.MAX_VALUE))
|
||||
.addContainerGap(43, Short.MAX_VALUE))
|
||||
);
|
||||
jPanel1Layout.setVerticalGroup(
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(themeLight)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(themeDark)
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
@ -142,11 +140,10 @@ public class Display extends javax.swing.JInternalFrame {
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(saveBtn)
|
||||
.addContainerGap(29, Short.MAX_VALUE))
|
||||
.addContainerGap(41, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
pack();
|
||||
@ -172,13 +169,7 @@ public class Display extends javax.swing.JInternalFrame {
|
||||
} else {
|
||||
PrefStorage.saveSetting("theme", "light");
|
||||
}
|
||||
if (!PrefStorage.save()) {
|
||||
// Something dun goofed...
|
||||
JOptionPane.showInternalMessageDialog(this,
|
||||
"Error: Problem occured while saving settings. "
|
||||
+ "This error is outside the control of "
|
||||
+ "the application.");
|
||||
}
|
||||
PrefStorage.save();
|
||||
MainGUI.updateDisplay();
|
||||
dispose();
|
||||
}//GEN-LAST:event_saveBtnActionPerformed
|
||||
|
@ -46,6 +46,7 @@
|
||||
package net.apocalypselabs.symat;
|
||||
|
||||
import static java.lang.Math.*;
|
||||
import java.util.HashMap;
|
||||
import javax.swing.JOptionPane;
|
||||
import org.matheclipse.core.eval.EvalUtilities;
|
||||
import org.matheclipse.parser.client.math.MathException;
|
||||
@ -59,6 +60,8 @@ import org.matheclipse.parser.client.math.MathException;
|
||||
*/
|
||||
public class Functions {
|
||||
|
||||
public static final HashMap<String, Object> GLOBALS = new HashMap<>();
|
||||
|
||||
private final EvalUtilities util = new EvalUtilities(true, true);
|
||||
Graph graphwin = new Graph(true);
|
||||
|
||||
@ -203,6 +206,45 @@ public class Functions {
|
||||
graphwin.drawDot(x, y);
|
||||
}
|
||||
|
||||
/*
|
||||
Global variables are accessible across scripts.
|
||||
*/
|
||||
/**
|
||||
* Set a global variable.
|
||||
*
|
||||
* @param name The variable name
|
||||
* @param var The variable
|
||||
*/
|
||||
public static void global(String name, Object var) {
|
||||
GLOBALS.put(name, var);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a global variable.
|
||||
*
|
||||
* @param name The variable name
|
||||
* @return The variable
|
||||
*/
|
||||
public static Object global(String name) {
|
||||
return GLOBALS.get(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear all the GLOBALS.
|
||||
*/
|
||||
public static void clrglobals() {
|
||||
GLOBALS.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the given global key is set.
|
||||
* @param name The key to check.
|
||||
* @return True if the key exists, else false.
|
||||
*/
|
||||
public static boolean globalcontains(String name) {
|
||||
return GLOBALS.containsKey(name);
|
||||
}
|
||||
|
||||
/*
|
||||
Other
|
||||
*/
|
||||
|
200
src/net/apocalypselabs/symat/Globals.form
Normal file
200
src/net/apocalypselabs/symat/Globals.form
Normal file
@ -0,0 +1,200 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JInternalFrameFormInfo">
|
||||
<Properties>
|
||||
<Property name="closable" type="boolean" value="true"/>
|
||||
<Property name="iconifiable" type="boolean" value="true"/>
|
||||
<Property name="maximizable" type="boolean" value="true"/>
|
||||
<Property name="resizable" type="boolean" value="true"/>
|
||||
<Property name="title" type="java.lang.String" value="Global Variables"/>
|
||||
<Property name="frameIcon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||
<Image iconType="3" name="/net/apocalypselabs/symat/icons/globals.png"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<SyntheticProperties>
|
||||
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
|
||||
</SyntheticProperties>
|
||||
<Events>
|
||||
<EventHandler event="componentShown" listener="java.awt.event.ComponentListener" parameters="java.awt.event.ComponentEvent" handler="formComponentShown"/>
|
||||
</Events>
|
||||
<AuxValues>
|
||||
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
|
||||
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
|
||||
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
||||
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
||||
</AuxValues>
|
||||
|
||||
<Layout>
|
||||
<DimensionLayout dim="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="jPanel1" max="32767" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="jPanel2" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="addBtn" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="remBtn" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="refreshBtn" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="1" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="3" attributes="0">
|
||||
<Component id="addBtn" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="remBtn" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="refreshBtn" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace type="separate" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="jPanel1" max="32767" attributes="0"/>
|
||||
<Component id="jPanel2" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
</Layout>
|
||||
<SubComponents>
|
||||
<Component class="javax.swing.JButton" name="addBtn">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Add"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="addBtnActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Container class="javax.swing.JPanel" name="jPanel1">
|
||||
<Properties>
|
||||
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
|
||||
<TitledBorder title="Variables"/>
|
||||
</Border>
|
||||
</Property>
|
||||
</Properties>
|
||||
|
||||
<Layout>
|
||||
<DimensionLayout dim="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jScrollPane1" pref="109" max="32767" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="1" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jScrollPane1" pref="208" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
</Layout>
|
||||
<SubComponents>
|
||||
<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.JList" name="keyList">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.ListModel" editor="org.netbeans.modules.form.editors2.ListModelEditor">
|
||||
<StringArray count="0"/>
|
||||
</Property>
|
||||
<Property name="selectionMode" type="int" value="0"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="valueChanged" listener="javax.swing.event.ListSelectionListener" parameters="javax.swing.event.ListSelectionEvent" handler="keyListValueChanged"/>
|
||||
</Events>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
<Component class="javax.swing.JButton" name="remBtn">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Remove"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="remBtnActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Container class="javax.swing.JPanel" name="jPanel2">
|
||||
<Properties>
|
||||
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
|
||||
<TitledBorder title="Value"/>
|
||||
</Border>
|
||||
</Property>
|
||||
</Properties>
|
||||
|
||||
<Layout>
|
||||
<DimensionLayout dim="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jScrollPane2" pref="202" max="32767" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="1" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jScrollPane2" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
</Layout>
|
||||
<SubComponents>
|
||||
<Container class="javax.swing.JScrollPane" name="jScrollPane2">
|
||||
<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="valBox">
|
||||
<Properties>
|
||||
<Property name="editable" type="boolean" value="false"/>
|
||||
<Property name="columns" type="int" value="1"/>
|
||||
<Property name="rows" type="int" value="1"/>
|
||||
<Property name="tabSize" type="int" value="4"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
<Component class="javax.swing.JButton" name="refreshBtn">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Refresh"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="refreshBtnActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Form>
|
271
src/net/apocalypselabs/symat/Globals.java
Normal file
271
src/net/apocalypselabs/symat/Globals.java
Normal file
@ -0,0 +1,271 @@
|
||||
/*
|
||||
* CODE LICENSE =====================
|
||||
* Copyright (c) 2015, Apocalypse Laboratories
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation and/or
|
||||
* other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the copyright holder nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software without
|
||||
* specific prior written permission.
|
||||
*
|
||||
* 4. You adhere to the Media License detailed below. If you do not, this license
|
||||
* is automatically revoked and you must purge all copies of the software you
|
||||
* possess, in source or binary form.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* MEDIA LICENSE ====================
|
||||
* All images and other graphical files (the "graphics") included with this
|
||||
* software are copyright (c) 2015 Apocalypse Laboratories. You may not distribute
|
||||
* the graphics or any program, source code repository, or other digital storage
|
||||
* media containing them without written permission from Apocalypse Laboratories.
|
||||
* This ban on distribution only applies to publicly available systems.
|
||||
* A password-protected network file share, USB drive, or other storage scheme that
|
||||
* cannot be easily accessed by the public is generally allowed. If in doubt,
|
||||
* contact Apocalypse Laboratories. If Apocalypse Laboratories allows or denies
|
||||
* you permission, that decision is considered final and binding.
|
||||
*/
|
||||
package net.apocalypselabs.symat;
|
||||
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Skylar
|
||||
*/
|
||||
public class Globals extends javax.swing.JInternalFrame {
|
||||
|
||||
private int hashCode;
|
||||
|
||||
/**
|
||||
* Creates new form Globals
|
||||
*/
|
||||
public Globals() {
|
||||
initComponents();
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called from within the constructor to initialize the form.
|
||||
* WARNING: Do NOT modify this code. The content of this method is always
|
||||
* regenerated by the Form Editor.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
private void initComponents() {
|
||||
|
||||
addBtn = new javax.swing.JButton();
|
||||
jPanel1 = new javax.swing.JPanel();
|
||||
jScrollPane1 = new javax.swing.JScrollPane();
|
||||
keyList = new javax.swing.JList();
|
||||
remBtn = new javax.swing.JButton();
|
||||
jPanel2 = new javax.swing.JPanel();
|
||||
jScrollPane2 = new javax.swing.JScrollPane();
|
||||
valBox = new javax.swing.JTextArea();
|
||||
refreshBtn = new javax.swing.JButton();
|
||||
|
||||
setClosable(true);
|
||||
setIconifiable(true);
|
||||
setMaximizable(true);
|
||||
setResizable(true);
|
||||
setTitle("Global Variables");
|
||||
setFrameIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/globals.png"))); // NOI18N
|
||||
addComponentListener(new java.awt.event.ComponentAdapter() {
|
||||
public void componentShown(java.awt.event.ComponentEvent evt) {
|
||||
formComponentShown(evt);
|
||||
}
|
||||
});
|
||||
|
||||
addBtn.setText("Add");
|
||||
addBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
addBtnActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Variables"));
|
||||
|
||||
keyList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
|
||||
keyList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
|
||||
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
|
||||
keyListValueChanged(evt);
|
||||
}
|
||||
});
|
||||
jScrollPane1.setViewportView(keyList);
|
||||
|
||||
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
||||
jPanel1.setLayout(jPanel1Layout);
|
||||
jPanel1Layout.setHorizontalGroup(
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 109, Short.MAX_VALUE)
|
||||
.addContainerGap())
|
||||
);
|
||||
jPanel1Layout.setVerticalGroup(
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 208, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
remBtn.setText("Remove");
|
||||
remBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
remBtnActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Value"));
|
||||
|
||||
valBox.setEditable(false);
|
||||
valBox.setColumns(1);
|
||||
valBox.setRows(1);
|
||||
valBox.setTabSize(4);
|
||||
jScrollPane2.setViewportView(valBox);
|
||||
|
||||
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
|
||||
jPanel2.setLayout(jPanel2Layout);
|
||||
jPanel2Layout.setHorizontalGroup(
|
||||
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 202, Short.MAX_VALUE)
|
||||
.addContainerGap())
|
||||
);
|
||||
jPanel2Layout.setVerticalGroup(
|
||||
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(jScrollPane2))
|
||||
);
|
||||
|
||||
refreshBtn.setText("Refresh");
|
||||
refreshBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
refreshBtnActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
|
||||
getContentPane().setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addComponent(addBtn)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(remBtn)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(refreshBtn)
|
||||
.addGap(0, 0, Short.MAX_VALUE)))
|
||||
.addContainerGap())
|
||||
);
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(addBtn)
|
||||
.addComponent(remBtn)
|
||||
.addComponent(refreshBtn))
|
||||
.addGap(18, 18, 18)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
pack();
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
private void keyListValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_keyListValueChanged
|
||||
if (keyList.getSelectedValue() != null) {
|
||||
try {
|
||||
valBox.setText(Functions.GLOBALS.get(
|
||||
keyList.getSelectedValue().toString()).toString());
|
||||
} catch (Exception ex) {
|
||||
valBox.setText("Error. Note some datatypes "
|
||||
+ "cannot be displayed here.");
|
||||
}
|
||||
}
|
||||
}//GEN-LAST:event_keyListValueChanged
|
||||
|
||||
private void addBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addBtnActionPerformed
|
||||
String name = JOptionPane.showInternalInputDialog(this,
|
||||
"New variable name:",
|
||||
"New global",
|
||||
JOptionPane.PLAIN_MESSAGE);
|
||||
if (name != null) {
|
||||
if (!name.equals("")) {
|
||||
Functions.GLOBALS.put(name, null);
|
||||
refreshList();
|
||||
}
|
||||
}
|
||||
}//GEN-LAST:event_addBtnActionPerformed
|
||||
|
||||
private void formComponentShown(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentShown
|
||||
refreshList();
|
||||
}//GEN-LAST:event_formComponentShown
|
||||
|
||||
private void remBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_remBtnActionPerformed
|
||||
if (keyList.getSelectedValue() != null) {
|
||||
int choice = JOptionPane.showInternalConfirmDialog(this,
|
||||
"Delete variable '"
|
||||
+ keyList.getSelectedValue().toString() + "'?",
|
||||
"Delete?",
|
||||
JOptionPane.YES_NO_OPTION);
|
||||
if (choice == JOptionPane.YES_OPTION) {
|
||||
Functions.GLOBALS.remove(keyList.getSelectedValue().toString());
|
||||
refreshList();
|
||||
}
|
||||
}
|
||||
}//GEN-LAST:event_remBtnActionPerformed
|
||||
|
||||
private void refreshBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_refreshBtnActionPerformed
|
||||
refreshList();
|
||||
}//GEN-LAST:event_refreshBtnActionPerformed
|
||||
|
||||
private void refreshList() {
|
||||
if (Functions.GLOBALS.hashCode() != hashCode) {
|
||||
keyList.setListData(Functions.GLOBALS.keySet().toArray());
|
||||
hashCode = Functions.GLOBALS.hashCode();
|
||||
valBox.setText("");
|
||||
}
|
||||
}
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JButton addBtn;
|
||||
private javax.swing.JPanel jPanel1;
|
||||
private javax.swing.JPanel jPanel2;
|
||||
private javax.swing.JScrollPane jScrollPane1;
|
||||
private javax.swing.JScrollPane jScrollPane2;
|
||||
private javax.swing.JList keyList;
|
||||
private javax.swing.JButton refreshBtn;
|
||||
private javax.swing.JButton remBtn;
|
||||
private javax.swing.JTextArea valBox;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
}
|
@ -62,8 +62,8 @@
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
||||
<JTabbedPaneConstraints tabName="Apps">
|
||||
<Property name="tabTitle" type="java.lang.String" value="Apps"/>
|
||||
<JTabbedPaneConstraints tabName="Home">
|
||||
<Property name="tabTitle" type="java.lang.String" value="Home"/>
|
||||
</JTabbedPaneConstraints>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
@ -76,26 +76,24 @@
|
||||
<Component id="shellBtn" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="editorBtn" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace min="-2" pref="12" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="graphBtn" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace min="-2" pref="11" max="-2" attributes="0"/>
|
||||
<Component id="helpBtn" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace pref="124" max="32767" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="globalsBtn" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace pref="127" max="32767" attributes="0"/>
|
||||
<Component id="jLabel1" min="-2" pref="300" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" attributes="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="shellBtn" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="editorBtn" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="graphBtn" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="103" alignment="0" groupAlignment="1" max="-2" attributes="0">
|
||||
<Component id="jLabel1" max="32767" attributes="0"/>
|
||||
<Component id="helpBtn" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Group type="103" groupAlignment="1" max="-2" attributes="0">
|
||||
<Component id="jLabel1" alignment="0" max="32767" attributes="0"/>
|
||||
<Component id="shellBtn" alignment="0" max="32767" attributes="0"/>
|
||||
<Component id="editorBtn" alignment="0" max="32767" attributes="0"/>
|
||||
<Component id="graphBtn" alignment="0" max="32767" attributes="0"/>
|
||||
<Component id="globalsBtn" alignment="0" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace max="32767" attributes="0"/>
|
||||
</Group>
|
||||
@ -175,12 +173,12 @@
|
||||
<Property name="focusable" type="boolean" value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JButton" name="helpBtn">
|
||||
<Component class="javax.swing.JButton" name="globalsBtn">
|
||||
<Properties>
|
||||
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||
<Image iconType="3" name="/net/apocalypselabs/symat/images/help.png"/>
|
||||
<Image iconType="3" name="/net/apocalypselabs/symat/images/globals.png"/>
|
||||
</Property>
|
||||
<Property name="text" type="java.lang.String" value="Manual"/>
|
||||
<Property name="text" type="java.lang.String" value="Vars"/>
|
||||
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||
<Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
|
||||
<EmptyBorder bottom="5" left="5" right="5" top="5"/>
|
||||
@ -192,7 +190,7 @@
|
||||
<Property name="verticalTextPosition" type="int" value="3"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="helpBtnActionPerformed"/>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="globalsBtnActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
@ -203,8 +201,8 @@
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
||||
<JTabbedPaneConstraints tabName="Window">
|
||||
<Property name="tabTitle" type="java.lang.String" value="Window"/>
|
||||
<JTabbedPaneConstraints tabName="Apps">
|
||||
<Property name="tabTitle" type="java.lang.String" value="Apps"/>
|
||||
</JTabbedPaneConstraints>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
@ -216,22 +214,22 @@
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="displaySettingsBtn" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="arrangeWindowsBtn" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="arrangeWindowsBtn" min="-2" pref="57" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="closeAllBtn" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jLabel3" pref="490" max="32767" attributes="0"/>
|
||||
<Component id="helpBtn" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace min="-2" pref="77" max="-2" attributes="0"/>
|
||||
<Component id="jLabel3" pref="417" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" attributes="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="jLabel3" min="-2" pref="65" max="-2" attributes="0"/>
|
||||
<Component id="arrangeWindowsBtn" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="closeAllBtn" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="displaySettingsBtn" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="102" alignment="1" attributes="0">
|
||||
<Group type="103" groupAlignment="1" attributes="0">
|
||||
<Component id="jLabel3" alignment="0" max="32767" attributes="0"/>
|
||||
<Component id="arrangeWindowsBtn" alignment="0" max="32767" attributes="0"/>
|
||||
<Component id="displaySettingsBtn" alignment="0" max="32767" attributes="0"/>
|
||||
<Component id="helpBtn" alignment="0" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
</Group>
|
||||
@ -256,7 +254,7 @@
|
||||
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||
<Image iconType="3" name="/net/apocalypselabs/symat/images/cascade.png"/>
|
||||
</Property>
|
||||
<Property name="text" type="java.lang.String" value="Cascade"/>
|
||||
<Property name="text" type="java.lang.String" value="Arrange"/>
|
||||
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||
<Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
|
||||
<EmptyBorder bottom="5" left="5" right="5" top="5"/>
|
||||
@ -271,26 +269,6 @@
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="arrangeWindowsBtnActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Component class="javax.swing.JButton" name="closeAllBtn">
|
||||
<Properties>
|
||||
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||
<Image iconType="3" name="/net/apocalypselabs/symat/images/closeall.png"/>
|
||||
</Property>
|
||||
<Property name="text" type="java.lang.String" value="Close All"/>
|
||||
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||
<Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
|
||||
<EmptyBorder bottom="5" left="5" right="5" top="5"/>
|
||||
</Border>
|
||||
</Property>
|
||||
<Property name="focusable" type="boolean" value="false"/>
|
||||
<Property name="horizontalTextPosition" type="int" value="0"/>
|
||||
<Property name="opaque" type="boolean" value="false"/>
|
||||
<Property name="verticalTextPosition" type="int" value="3"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="closeAllBtnActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Component class="javax.swing.JButton" name="displaySettingsBtn">
|
||||
<Properties>
|
||||
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||
@ -311,6 +289,26 @@
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="displaySettingsBtnActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Component class="javax.swing.JButton" name="helpBtn">
|
||||
<Properties>
|
||||
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||
<Image iconType="3" name="/net/apocalypselabs/symat/images/help.png"/>
|
||||
</Property>
|
||||
<Property name="text" type="java.lang.String" value="Manual"/>
|
||||
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||
<Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
|
||||
<EmptyBorder bottom="5" left="5" right="5" top="5"/>
|
||||
</Border>
|
||||
</Property>
|
||||
<Property name="focusable" type="boolean" value="false"/>
|
||||
<Property name="horizontalTextPosition" type="int" value="0"/>
|
||||
<Property name="opaque" type="boolean" value="false"/>
|
||||
<Property name="verticalTextPosition" type="int" value="3"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="helpBtnActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
<Container class="javax.swing.JPanel" name="jPanel5">
|
||||
@ -340,9 +338,9 @@
|
||||
<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="wikiBtn" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="jLabel4" alignment="0" min="-2" pref="65" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="1" max="-2" attributes="0">
|
||||
<Component id="jLabel4" alignment="0" max="32767" attributes="0"/>
|
||||
<Component id="wikiBtn" alignment="0" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace max="32767" attributes="0"/>
|
||||
</Group>
|
||||
|
@ -53,7 +53,6 @@ import java.awt.Graphics;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.beans.PropertyVetoException;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Calendar;
|
||||
@ -73,9 +72,9 @@ import javax.swing.UIManager;
|
||||
public class MainGUI extends javax.swing.JFrame {
|
||||
|
||||
// TODO: Add more code comments and stuff in case anybody else reads this
|
||||
public static final String APP_NAME = "SyMAT 1.1";
|
||||
public static final double APP_CODE = 13;
|
||||
public static final String VERSION_NAME = "1.1";
|
||||
public static final String APP_NAME = "SyMAT 1.2";
|
||||
public static final double APP_CODE = 14;
|
||||
public static final String VERSION_NAME = "1.2";
|
||||
public static final String API_URL = "https://apis.symatapp.com/";
|
||||
public static String argfile = "";
|
||||
public static boolean skipPython = false; // Skip python init on start?
|
||||
@ -122,7 +121,7 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
|
||||
// Disable community tab
|
||||
tabs.remove(2);
|
||||
|
||||
|
||||
// Open initial windows
|
||||
boolean loaded = false;
|
||||
if (!argfile.equals("")) {
|
||||
@ -314,12 +313,12 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
editorBtn = new javax.swing.JButton();
|
||||
graphBtn = new javax.swing.JButton();
|
||||
jLabel1 = new javax.swing.JLabel();
|
||||
helpBtn = new javax.swing.JButton();
|
||||
globalsBtn = new javax.swing.JButton();
|
||||
jPanel2 = new javax.swing.JPanel();
|
||||
jLabel3 = new javax.swing.JLabel();
|
||||
arrangeWindowsBtn = new javax.swing.JButton();
|
||||
closeAllBtn = new javax.swing.JButton();
|
||||
displaySettingsBtn = new javax.swing.JButton();
|
||||
helpBtn = new javax.swing.JButton();
|
||||
jPanel5 = new javax.swing.JPanel();
|
||||
wikiBtn = new javax.swing.JButton();
|
||||
jLabel4 = new javax.swing.JLabel();
|
||||
@ -402,16 +401,16 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
jLabel1.setText(namemark());
|
||||
jLabel1.setFocusable(false);
|
||||
|
||||
helpBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/images/help.png"))); // NOI18N
|
||||
helpBtn.setText("Manual");
|
||||
helpBtn.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
|
||||
helpBtn.setFocusable(false);
|
||||
helpBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
||||
helpBtn.setOpaque(false);
|
||||
helpBtn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
|
||||
helpBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||
globalsBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/images/globals.png"))); // NOI18N
|
||||
globalsBtn.setText("Vars");
|
||||
globalsBtn.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
|
||||
globalsBtn.setFocusable(false);
|
||||
globalsBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
||||
globalsBtn.setOpaque(false);
|
||||
globalsBtn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
|
||||
globalsBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
helpBtnActionPerformed(evt);
|
||||
globalsBtnActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
@ -424,27 +423,26 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
.addComponent(shellBtn)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(editorBtn)
|
||||
.addGap(12, 12, 12)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(graphBtn)
|
||||
.addGap(11, 11, 11)
|
||||
.addComponent(helpBtn)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 124, Short.MAX_VALUE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(globalsBtn)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 127, Short.MAX_VALUE)
|
||||
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
);
|
||||
jPanel4Layout.setVerticalGroup(
|
||||
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(shellBtn)
|
||||
.addComponent(editorBtn)
|
||||
.addComponent(graphBtn)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
||||
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(helpBtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
||||
.addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(shellBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(editorBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(graphBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(globalsBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
tabs.addTab("Apps", jPanel4);
|
||||
tabs.addTab("Home", jPanel4);
|
||||
|
||||
jPanel2.setOpaque(false);
|
||||
|
||||
@ -454,7 +452,7 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
jLabel3.setFocusable(false);
|
||||
|
||||
arrangeWindowsBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/images/cascade.png"))); // NOI18N
|
||||
arrangeWindowsBtn.setText("Cascade");
|
||||
arrangeWindowsBtn.setText("Arrange");
|
||||
arrangeWindowsBtn.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
|
||||
arrangeWindowsBtn.setFocusable(false);
|
||||
arrangeWindowsBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
||||
@ -466,19 +464,6 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
}
|
||||
});
|
||||
|
||||
closeAllBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/images/closeall.png"))); // NOI18N
|
||||
closeAllBtn.setText("Close All");
|
||||
closeAllBtn.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
|
||||
closeAllBtn.setFocusable(false);
|
||||
closeAllBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
||||
closeAllBtn.setOpaque(false);
|
||||
closeAllBtn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
|
||||
closeAllBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
closeAllBtnActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
displaySettingsBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/images/display.png"))); // NOI18N
|
||||
displaySettingsBtn.setText("Theme");
|
||||
displaySettingsBtn.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
|
||||
@ -492,6 +477,19 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
}
|
||||
});
|
||||
|
||||
helpBtn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/images/help.png"))); // NOI18N
|
||||
helpBtn.setText("Manual");
|
||||
helpBtn.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
|
||||
helpBtn.setFocusable(false);
|
||||
helpBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
||||
helpBtn.setOpaque(false);
|
||||
helpBtn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
|
||||
helpBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
helpBtnActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
|
||||
jPanel2.setLayout(jPanel2Layout);
|
||||
jPanel2Layout.setHorizontalGroup(
|
||||
@ -500,24 +498,24 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
.addContainerGap()
|
||||
.addComponent(displaySettingsBtn)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(arrangeWindowsBtn)
|
||||
.addComponent(arrangeWindowsBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(closeAllBtn)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 490, Short.MAX_VALUE))
|
||||
.addComponent(helpBtn)
|
||||
.addGap(77, 77, 77)
|
||||
.addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 417, Short.MAX_VALUE))
|
||||
);
|
||||
jPanel2Layout.setVerticalGroup(
|
||||
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(arrangeWindowsBtn)
|
||||
.addComponent(closeAllBtn)
|
||||
.addComponent(displaySettingsBtn))
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(arrangeWindowsBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(displaySettingsBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(helpBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
tabs.addTab("Window", jPanel2);
|
||||
tabs.addTab("Apps", jPanel2);
|
||||
|
||||
jPanel5.setFocusable(false);
|
||||
jPanel5.setOpaque(false);
|
||||
@ -553,9 +551,9 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
jPanel5Layout.setVerticalGroup(
|
||||
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel5Layout.createSequentialGroup()
|
||||
.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(wikiBtn)
|
||||
.addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
||||
.addComponent(jLabel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(wikiBtn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
@ -689,16 +687,6 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
loadFrame(new Display());
|
||||
}//GEN-LAST:event_displaySettingsBtnActionPerformed
|
||||
|
||||
private void closeAllBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeAllBtnActionPerformed
|
||||
for (JInternalFrame ji : mainPane.getAllFrames()) {
|
||||
try {
|
||||
ji.setClosed(true);
|
||||
} catch (PropertyVetoException ex) {
|
||||
ji.dispose();
|
||||
}
|
||||
}
|
||||
}//GEN-LAST:event_closeAllBtnActionPerformed
|
||||
|
||||
private void arrangeWindowsBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_arrangeWindowsBtnActionPerformed
|
||||
cascade();
|
||||
}//GEN-LAST:event_arrangeWindowsBtnActionPerformed
|
||||
@ -771,6 +759,10 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
//loadFrame(new Wiki());
|
||||
}//GEN-LAST:event_wikiBtnActionPerformed
|
||||
|
||||
private void globalsBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_globalsBtnActionPerformed
|
||||
loadFrame(new Globals());
|
||||
}//GEN-LAST:event_globalsBtnActionPerformed
|
||||
|
||||
/*
|
||||
End the button handlers.
|
||||
*/
|
||||
@ -851,6 +843,7 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
|
||||
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
|
||||
*/
|
||||
|
||||
try {
|
||||
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
|
||||
if ("Nimbus".equals(info.getName())) {
|
||||
@ -858,16 +851,24 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
|
||||
java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
|
||||
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException e) {
|
||||
java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, e);
|
||||
}
|
||||
|
||||
if (PrefStorage.getSetting("theme").equals("glass")) {
|
||||
try {
|
||||
UIManager.setLookAndFeel("com.seaglasslookandfeel.SeaGlassLookAndFeel");
|
||||
} catch (Exception ex) {
|
||||
|
||||
}
|
||||
}
|
||||
//</editor-fold>
|
||||
//</editor-fold>
|
||||
|
||||
try {
|
||||
// Ubuntu font for prettifying
|
||||
ubuntuRegular = Font.createFont(Font.TRUETYPE_FONT,MainGUI.class.
|
||||
getResourceAsStream("/ubuntu.ttf"));
|
||||
ubuntuRegular = Font.createFont(Font.TRUETYPE_FONT, MainGUI.class.
|
||||
getResourceAsStream("/ubuntu.ttf"));
|
||||
} catch (FontFormatException | IOException ex) {
|
||||
ubuntuRegular = Font.getFont(Font.SANS_SERIF);
|
||||
System.err.println("Error loading fonts: " + ex.getMessage());
|
||||
@ -909,9 +910,9 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
public static javax.swing.JButton arrangeWindowsBtn;
|
||||
public static javax.swing.JButton closeAllBtn;
|
||||
public static javax.swing.JButton displaySettingsBtn;
|
||||
public static javax.swing.JButton editorBtn;
|
||||
public static javax.swing.JButton globalsBtn;
|
||||
public static javax.swing.JButton graphBtn;
|
||||
public static javax.swing.JButton helpBtn;
|
||||
public static javax.swing.JLabel jLabel1;
|
||||
|
BIN
src/net/apocalypselabs/symat/icons/globals.png
Normal file
BIN
src/net/apocalypselabs/symat/icons/globals.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 570 B |
BIN
src/net/apocalypselabs/symat/images/globals.png
Normal file
BIN
src/net/apocalypselabs/symat/images/globals.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
Loading…
x
Reference in New Issue
Block a user