Make editor "fancy", color tweaking, updater bugfix
This commit is contained in:
parent
f2313f8923
commit
ed0ff1d51a
@ -109,6 +109,9 @@
|
||||
<Property name="selected" type="boolean" value="true"/>
|
||||
<Property name="text" type="java.lang.String" value="Javascript"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="javascriptOptionActionPerformed"/>
|
||||
</Events>
|
||||
</MenuItem>
|
||||
<MenuItem class="javax.swing.JRadioButtonMenuItem" name="pythonOption">
|
||||
<Properties>
|
||||
@ -117,6 +120,9 @@
|
||||
</Property>
|
||||
<Property name="text" type="java.lang.String" value="Python"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="pythonOptionActionPerformed"/>
|
||||
</Events>
|
||||
</MenuItem>
|
||||
</SubComponents>
|
||||
</Menu>
|
||||
@ -126,9 +132,6 @@
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Run"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="runMenuActionPerformed"/>
|
||||
</Events>
|
||||
<SubComponents>
|
||||
<MenuItem class="javax.swing.JMenuItem" name="runCodeBtn">
|
||||
<Properties>
|
||||
@ -158,6 +161,9 @@
|
||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[125, 50]"/>
|
||||
</Property>
|
||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[550, 375]"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<SyntheticProperties>
|
||||
<SyntheticProperty name="menuBar" type="java.lang.String" value="jMenuBar1"/>
|
||||
@ -198,37 +204,21 @@
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="jSplitPane1" alignment="0" pref="319" max="32767" attributes="0"/>
|
||||
<Component id="jSplitPane1" alignment="0" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
</Layout>
|
||||
<SubComponents>
|
||||
<Container class="javax.swing.JSplitPane" name="jSplitPane1">
|
||||
<Properties>
|
||||
<Property name="dividerLocation" type="int" value="220"/>
|
||||
<Property name="dividerLocation" type="int" value="200"/>
|
||||
<Property name="orientation" type="int" value="0"/>
|
||||
<Property name="resizeWeight" type="double" value="0.7"/>
|
||||
</Properties>
|
||||
|
||||
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout"/>
|
||||
<SubComponents>
|
||||
<Container class="javax.swing.JScrollPane" name="scrollPane">
|
||||
<Properties>
|
||||
<Property name="opaque" type="boolean" value="false"/>
|
||||
<Property name="requestFocusEnabled" type="boolean" value="false"/>
|
||||
</Properties>
|
||||
<AuxValues>
|
||||
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new JScrollPane(codeBox)"/>
|
||||
</AuxValues>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription">
|
||||
<JSplitPaneConstraints position="top"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
|
||||
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
||||
</Container>
|
||||
<Container class="javax.swing.JPanel" name="jPanel2">
|
||||
<Container class="javax.swing.JPanel" name="outputPanel">
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription">
|
||||
<JSplitPaneConstraints position="right"/>
|
||||
@ -242,7 +232,7 @@
|
||||
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
<Component id="jScrollPane1" pref="524" max="32767" attributes="0"/>
|
||||
<Component id="jScrollPane1" pref="532" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
@ -250,7 +240,7 @@
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jScrollPane1" pref="73" max="32767" attributes="0"/>
|
||||
<Component id="jScrollPane1" pref="98" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
@ -281,6 +271,15 @@
|
||||
</Container>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
<Container class="javax.swing.JPanel" name="editPanel">
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription">
|
||||
<JSplitPaneConstraints position="left"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
|
||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
|
||||
</Container>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
</SubComponents>
|
||||
|
@ -39,17 +39,12 @@ import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTextPane;
|
||||
import javax.swing.UIDefaults;
|
||||
import javax.swing.filechooser.FileFilter;
|
||||
import javax.swing.filechooser.FileNameExtensionFilter;
|
||||
import javax.swing.text.AttributeSet;
|
||||
import javax.swing.text.SimpleAttributeSet;
|
||||
import javax.swing.text.StyleConstants;
|
||||
import javax.swing.text.StyleContext;
|
||||
import javax.swing.text.TabSet;
|
||||
import javax.swing.text.TabStop;
|
||||
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
|
||||
import org.fife.ui.rsyntaxtextarea.SyntaxConstants;
|
||||
import org.fife.ui.rsyntaxtextarea.Theme;
|
||||
import org.fife.ui.rtextarea.RTextScrollPane;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -59,8 +54,8 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
|
||||
private final JFileChooser fc = new JFileChooser();
|
||||
private boolean isSaved = false;
|
||||
private final JTextPane codeBox = new JTextPane();
|
||||
private final TextLineNumber tln;
|
||||
private RSyntaxTextArea codeBox = new RSyntaxTextArea();
|
||||
private RTextScrollPane sp;
|
||||
private String lastSaved = "";
|
||||
|
||||
/**
|
||||
@ -69,10 +64,6 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
public CodeEditor() {
|
||||
initComponents();
|
||||
|
||||
if (!PrefStorage.isset("advancedcontrols")) {
|
||||
runMenu.remove(codeLangMenu);
|
||||
}
|
||||
|
||||
FileFilter filter = new FileNameExtensionFilter("SyMAT JavaScript (.syjs)", "syjs");
|
||||
fc.setFileFilter(filter);
|
||||
fc.addChoosableFileFilter(filter);
|
||||
@ -82,6 +73,7 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
fc.addChoosableFileFilter(filter);
|
||||
filter = new FileNameExtensionFilter("Python script (.py)", "py");
|
||||
fc.addChoosableFileFilter(filter);
|
||||
|
||||
int font_size = 12;
|
||||
try {
|
||||
font_size = Integer.valueOf(PrefStorage.getSetting("editfont"));
|
||||
@ -89,41 +81,37 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
}
|
||||
codeBox.setFont(new Font(Font.MONOSPACED, Font.PLAIN, font_size));
|
||||
outputBox.setFont(new Font(Font.MONOSPACED, Font.PLAIN, font_size));
|
||||
|
||||
if (PrefStorage.getSetting("theme").equals("dark")) {
|
||||
setBackgroundOfEditor(Color.BLACK);
|
||||
codeBox.setForeground(Color.WHITE);
|
||||
outputBox.setBackground(Color.BLACK);
|
||||
outputBox.setBackground(new Color(41,49,52));
|
||||
outputBox.setForeground(Color.WHITE);
|
||||
setBackground(Color.DARK_GRAY);
|
||||
setEditorTheme("dark");
|
||||
} else {
|
||||
setBackgroundOfEditor(Color.WHITE);
|
||||
codeBox.setForeground(Color.BLACK);
|
||||
outputBox.setBackground(Color.WHITE);
|
||||
outputBox.setForeground(Color.BLACK);
|
||||
setBackground(Color.LIGHT_GRAY);
|
||||
setEditorTheme("default");
|
||||
}
|
||||
TabStop[] tabs = new TabStop[30];
|
||||
for (int i = 0; i < tabs.length; i++) {
|
||||
tabs[i] = new TabStop(15 * i, TabStop.ALIGN_RIGHT, TabStop.LEAD_NONE);
|
||||
}
|
||||
TabSet tabset = new TabSet(tabs);
|
||||
StyleContext sc = StyleContext.getDefaultStyleContext();
|
||||
AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY,
|
||||
StyleConstants.TabSet, tabset);
|
||||
codeBox.setParagraphAttributes(aset, false);
|
||||
tln = new TextLineNumber(codeBox);
|
||||
scrollPane.setRowHeaderView(tln);
|
||||
|
||||
codeBox.setCodeFoldingEnabled(true);
|
||||
codeBox.setAntiAliasingEnabled(true);
|
||||
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT);
|
||||
sp = new RTextScrollPane(codeBox);
|
||||
sp.setFoldIndicatorEnabled(true);
|
||||
editPanel.add(sp);
|
||||
sp.setVisible(true);
|
||||
codeBox.setVisible(true);
|
||||
tln.setVisible(true);
|
||||
codeBox.requestFocus();
|
||||
}
|
||||
|
||||
private void setBackgroundOfEditor(Color c) {
|
||||
UIDefaults defaults = new UIDefaults();
|
||||
defaults.put("TextPane[Enabled].backgroundPainter", c);
|
||||
codeBox.putClientProperty("Nimbus.Overrides", defaults);
|
||||
codeBox.putClientProperty("Nimbus.Overrides.InheritDefaults", true);
|
||||
codeBox.setBackground(c);
|
||||
private void setEditorTheme(String themeName) {
|
||||
try {
|
||||
Theme theme = Theme.load(CodeEditor.class
|
||||
.getResourceAsStream("resources/" + themeName + ".xml"));
|
||||
theme.apply(codeBox);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -142,11 +130,11 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
langBtnGroup = new javax.swing.ButtonGroup();
|
||||
jPanel1 = new javax.swing.JPanel();
|
||||
jSplitPane1 = new javax.swing.JSplitPane();
|
||||
scrollPane = new JScrollPane(codeBox);
|
||||
jPanel2 = new javax.swing.JPanel();
|
||||
outputPanel = new javax.swing.JPanel();
|
||||
jLabel1 = new javax.swing.JLabel();
|
||||
jScrollPane1 = new javax.swing.JScrollPane();
|
||||
outputBox = new javax.swing.JTextArea();
|
||||
editPanel = new javax.swing.JPanel();
|
||||
jMenuBar1 = new javax.swing.JMenuBar();
|
||||
fileMenu = new javax.swing.JMenu();
|
||||
openMenu = new javax.swing.JMenuItem();
|
||||
@ -176,15 +164,12 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
setTitle("Editor");
|
||||
setFrameIcon(new javax.swing.ImageIcon(getClass().getResource("/net/apocalypselabs/symat/icons/editor.png"))); // NOI18N
|
||||
setMinimumSize(new java.awt.Dimension(125, 50));
|
||||
setPreferredSize(new java.awt.Dimension(550, 375));
|
||||
|
||||
jSplitPane1.setDividerLocation(220);
|
||||
jSplitPane1.setDividerLocation(200);
|
||||
jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
|
||||
jSplitPane1.setResizeWeight(0.7);
|
||||
|
||||
scrollPane.setOpaque(false);
|
||||
scrollPane.setRequestFocusEnabled(false);
|
||||
jSplitPane1.setTopComponent(scrollPane);
|
||||
|
||||
jLabel1.setText("Output:");
|
||||
|
||||
outputBox.setEditable(false);
|
||||
@ -194,24 +179,27 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
outputBox.setWrapStyleWord(true);
|
||||
jScrollPane1.setViewportView(outputBox);
|
||||
|
||||
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
|
||||
jPanel2.setLayout(jPanel2Layout);
|
||||
jPanel2Layout.setHorizontalGroup(
|
||||
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||
javax.swing.GroupLayout outputPanelLayout = new javax.swing.GroupLayout(outputPanel);
|
||||
outputPanel.setLayout(outputPanelLayout);
|
||||
outputPanelLayout.setHorizontalGroup(
|
||||
outputPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(outputPanelLayout.createSequentialGroup()
|
||||
.addComponent(jLabel1)
|
||||
.addGap(0, 0, Short.MAX_VALUE))
|
||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 524, Short.MAX_VALUE)
|
||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel2Layout.setVerticalGroup(
|
||||
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||
outputPanelLayout.setVerticalGroup(
|
||||
outputPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(outputPanelLayout.createSequentialGroup()
|
||||
.addComponent(jLabel1)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 73, Short.MAX_VALUE))
|
||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 98, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
jSplitPane1.setRightComponent(jPanel2);
|
||||
jSplitPane1.setRightComponent(outputPanel);
|
||||
|
||||
editPanel.setLayout(new java.awt.BorderLayout());
|
||||
jSplitPane1.setLeftComponent(editPanel);
|
||||
|
||||
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
||||
jPanel1.setLayout(jPanel1Layout);
|
||||
@ -221,7 +209,7 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
);
|
||||
jPanel1Layout.setVerticalGroup(
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 319, Short.MAX_VALUE)
|
||||
.addComponent(jSplitPane1)
|
||||
);
|
||||
|
||||
fileMenu.setText("File");
|
||||
@ -280,10 +268,20 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
langBtnGroup.add(javascriptOption);
|
||||
javascriptOption.setSelected(true);
|
||||
javascriptOption.setText("Javascript");
|
||||
javascriptOption.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
javascriptOptionActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
codeLangMenu.add(javascriptOption);
|
||||
|
||||
langBtnGroup.add(pythonOption);
|
||||
pythonOption.setText("Python");
|
||||
pythonOption.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
pythonOptionActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
codeLangMenu.add(pythonOption);
|
||||
|
||||
editMenu.add(codeLangMenu);
|
||||
@ -291,11 +289,6 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
jMenuBar1.add(editMenu);
|
||||
|
||||
runMenu.setText("Run");
|
||||
runMenu.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
runMenuActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
runCodeBtn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F5, 0));
|
||||
runCodeBtn.setText("Run code");
|
||||
@ -351,9 +344,11 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
if (file.matches(".*\\.(js|mls|symt|syjs)")) {
|
||||
javascriptOption.setSelected(true);
|
||||
pythonOption.setSelected(false);
|
||||
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT);
|
||||
} else if (file.matches(".*\\.(sypy|py)")) {
|
||||
javascriptOption.setSelected(false);
|
||||
pythonOption.setSelected(true);
|
||||
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_PYTHON);
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
JOptionPane.showInternalMessageDialog(this,
|
||||
@ -395,10 +390,6 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
saveMenuActionPerformed(evt);
|
||||
}//GEN-LAST:event_saveAsMenuActionPerformed
|
||||
|
||||
private void runMenuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_runMenuActionPerformed
|
||||
|
||||
}//GEN-LAST:event_runMenuActionPerformed
|
||||
|
||||
private void runCodeBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_runCodeBtnActionPerformed
|
||||
if (javascriptOption.isSelected()) {
|
||||
new RunThread("javascript").start();
|
||||
@ -445,6 +436,14 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
MainGUI.loadFrame(ce);
|
||||
}//GEN-LAST:event_exportMenuActionPerformed
|
||||
|
||||
private void javascriptOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_javascriptOptionActionPerformed
|
||||
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT);
|
||||
}//GEN-LAST:event_javascriptOptionActionPerformed
|
||||
|
||||
private void pythonOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pythonOptionActionPerformed
|
||||
codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_PYTHON);
|
||||
}//GEN-LAST:event_pythonOptionActionPerformed
|
||||
|
||||
private void saveFile(String content, String path)
|
||||
throws IOException {
|
||||
try (PrintStream out = new PrintStream(new FileOutputStream(path))) {
|
||||
@ -483,6 +482,7 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
private javax.swing.JMenuItem clrOutputMenu;
|
||||
private javax.swing.JMenu codeLangMenu;
|
||||
private javax.swing.JMenu editMenu;
|
||||
private javax.swing.JPanel editPanel;
|
||||
private javax.swing.JMenuItem exportMenu;
|
||||
private javax.swing.JMenu fileMenu;
|
||||
private javax.swing.JLabel jLabel1;
|
||||
@ -492,18 +492,17 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
private javax.swing.JMenuBar jMenuBar2;
|
||||
private javax.swing.JMenuItem jMenuItem4;
|
||||
private javax.swing.JPanel jPanel1;
|
||||
private javax.swing.JPanel jPanel2;
|
||||
private javax.swing.JScrollPane jScrollPane1;
|
||||
private javax.swing.JSplitPane jSplitPane1;
|
||||
private javax.swing.JRadioButtonMenuItem javascriptOption;
|
||||
private javax.swing.ButtonGroup langBtnGroup;
|
||||
private javax.swing.JMenuItem openMenu;
|
||||
private javax.swing.JTextArea outputBox;
|
||||
private javax.swing.JPanel outputPanel;
|
||||
private javax.swing.JRadioButtonMenuItem pythonOption;
|
||||
private javax.swing.JMenuItem runCodeBtn;
|
||||
private javax.swing.JMenu runMenu;
|
||||
private javax.swing.JMenuItem saveAsMenu;
|
||||
private javax.swing.JMenuItem saveMenu;
|
||||
private javax.swing.JScrollPane scrollPane;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
}
|
||||
|
@ -77,9 +77,9 @@ public class Interpreter extends javax.swing.JInternalFrame {
|
||||
|
||||
// Set theme
|
||||
if (PrefStorage.getSetting("theme").equals("dark")) {
|
||||
mainBox.setBackground(Color.BLACK);
|
||||
mainBox.setBackground(new Color(41,49,52));
|
||||
mainBox.setForeground(Color.WHITE);
|
||||
inputBox.setBackground(Color.BLACK);
|
||||
inputBox.setBackground(new Color(41,49,52));
|
||||
inputBox.setForeground(Color.WHITE);
|
||||
setBackground(Color.DARK_GRAY);
|
||||
} else {
|
||||
|
@ -67,7 +67,7 @@ public class MainGUI extends javax.swing.JFrame {
|
||||
is.close();
|
||||
double version = Double.parseDouble(line.split("\\|")[0]);
|
||||
if (version > APP_CODE) {
|
||||
if (PrefStorage.getSetting("update-ignore").equals(APP_CODE + "|" + version)) {
|
||||
if (PrefStorage.getSetting("update-ignore").equals(VERSION_NAME + "|" + line.split("\\|")[1])) {
|
||||
System.out.println("An update was found, but has been ignored by the user.");
|
||||
} else {
|
||||
loadFrame(new Update(line.split("\\|")[1]));
|
||||
|
@ -156,7 +156,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.APP_CODE + "|" + latestVersion);
|
||||
PrefStorage.saveSetting("update-ignore", MainGUI.VERSION_NAME + "|" + latestVersion);
|
||||
dispose();
|
||||
}//GEN-LAST:event_jLabel5MouseClicked
|
||||
|
||||
|
78
src/net/apocalypselabs/symat/resources/dark.xml
Normal file
78
src/net/apocalypselabs/symat/resources/dark.xml
Normal file
@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE RSyntaxTheme SYSTEM "theme.dtd">
|
||||
|
||||
<!--
|
||||
Dark theme based off of Notepad++'s Obsidian theme.
|
||||
See theme.dtd and org.fife.ui.rsyntaxtextarea.Theme for more information.
|
||||
-->
|
||||
<RSyntaxTheme version="1.0">
|
||||
|
||||
<!-- Omitting baseFont will use a system-appropriate monospaced. -->
|
||||
<!--<baseFont family="..." size="13"/>-->
|
||||
|
||||
<!-- General editor colors. -->
|
||||
<background color="293134"/>
|
||||
<caret color="c1cbc2"/>
|
||||
<selection useFG="false" bg="404E51" roundedEdges="false"/>
|
||||
<currentLineHighlight color="2F393C" fade="false"/>
|
||||
<marginLine fg="394448"/>
|
||||
<markAllHighlight color="6b8189"/> <!-- TODO: Fix me -->
|
||||
<markOccurrencesHighlight color="5b7179" border="false"/>
|
||||
<matchedBracket fg="6A8088" bg="6b8189" highlightBoth="false" animate="true"/>
|
||||
<hyperlinks fg="a082bd"/>
|
||||
<secondaryLanguages>
|
||||
<language index="1" bg="334455"/>
|
||||
<language index="2" bg="223322"/>
|
||||
<language index="3" bg="ffe0f0"/>
|
||||
</secondaryLanguages>
|
||||
|
||||
<!-- Gutter styling. -->
|
||||
<gutterBorder color="81969A"/>
|
||||
<lineNumbers fg="81969A"/>
|
||||
<foldIndicator fg="6A8088" iconBg="2f383c"/>
|
||||
<iconRowHeader activeLineRange="3399ff"/>
|
||||
|
||||
<!-- Syntax tokens. -->
|
||||
<tokenStyles>
|
||||
<style token="IDENTIFIER" fg="E0E2E4"/>
|
||||
<style token="RESERVED_WORD" fg="93C763" bold="true"/>
|
||||
<style token="RESERVED_WORD_2" fg="93C763" bold="true"/>
|
||||
<style token="ANNOTATION" fg="E8E2B7"/>
|
||||
<style token="COMMENT_DOCUMENTATION" fg="6C788C"/>
|
||||
<style token="COMMENT_EOL" fg="66747B"/>
|
||||
<style token="COMMENT_MULTILINE" fg="66747B"/>
|
||||
<style token="COMMENT_KEYWORD" fg="ae9fbf"/>
|
||||
<style token="COMMENT_MARKUP" fg="ae9fbf"/>
|
||||
<style token="FUNCTION" fg="E0E2E4"/>
|
||||
<style token="DATA_TYPE" fg="678CB1" bold="true"/>
|
||||
<style token="LITERAL_BOOLEAN" fg="93C763" bold="true"/>
|
||||
<style token="LITERAL_NUMBER_DECIMAL_INT" fg="FFCD22"/>
|
||||
<style token="LITERAL_NUMBER_FLOAT" fg="FFCD22"/>
|
||||
<style token="LITERAL_NUMBER_HEXADECIMAL" fg="FFCD22"/>
|
||||
<style token="LITERAL_STRING_DOUBLE_QUOTE" fg="EC7600"/>
|
||||
<style token="LITERAL_CHAR" fg="EC7600"/>
|
||||
<style token="LITERAL_BACKQUOTE" fg="EC7600"/>
|
||||
<style token="MARKUP_TAG_DELIMITER" fg="678CB1"/>
|
||||
<style token="MARKUP_TAG_NAME" fg="ABBFD3" bold="true"/>
|
||||
<style token="MARKUP_TAG_ATTRIBUTE" fg="B3B689"/>
|
||||
<style token="MARKUP_TAG_ATTRIBUTE_VALUE" fg="e1e2cf"/>
|
||||
<style token="MARKUP_COMMENT" fg="66747B"/>
|
||||
<style token="MARKUP_DTD" fg="A082BD"/>
|
||||
<style token="MARKUP_PROCESSING_INSTRUCTION" fg="A082BD"/>
|
||||
<style token="MARKUP_CDATA" fg="d5e6f0"/>
|
||||
<style token="MARKUP_CDATA_DELIMITER" fg="ae9fbf"/>
|
||||
<style token="MARKUP_ENTITY_REFERENCE" fg="678CB1"/>
|
||||
<style token="OPERATOR" fg="E8E2B7"/>
|
||||
<style token="PREPROCESSOR" fg="A082BD"/>
|
||||
<style token="REGEX" fg="d39745"/>
|
||||
<style token="SEPARATOR" fg="E8E2B7"/>
|
||||
<style token="VARIABLE" fg="ae9fbf" bold="true"/>
|
||||
<style token="WHITESPACE" fg="E0E2E4"/>
|
||||
|
||||
<style token="ERROR_IDENTIFIER" fg="E0E2E4" bg="04790e"/>
|
||||
<style token="ERROR_NUMBER_FORMAT" fg="E0E2E4" bg="04790e"/>
|
||||
<style token="ERROR_STRING_DOUBLE" fg="E0E2E4" bg="04790e"/>
|
||||
<style token="ERROR_CHAR" fg="E0E2E4" bg="04790e"/>
|
||||
</tokenStyles>
|
||||
|
||||
</RSyntaxTheme>
|
78
src/net/apocalypselabs/symat/resources/default.xml
Normal file
78
src/net/apocalypselabs/symat/resources/default.xml
Normal file
@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE RSyntaxTheme SYSTEM "theme.dtd">
|
||||
|
||||
<!--
|
||||
RSyntaxTextArea's default theme.
|
||||
See theme.dtd and org.fife.ui.rsyntaxtextarea.Theme for more information.
|
||||
-->
|
||||
<RSyntaxTheme version="1.0">
|
||||
|
||||
<!-- Omitting baseFont will use a system-appropriate monospaced. -->
|
||||
<!--<baseFont family="..." size="13"/>-->
|
||||
|
||||
<!-- General editor colors. -->
|
||||
<background color="ffffff"/>
|
||||
<caret color="ff0000"/>
|
||||
<selection fg="default" useFG="false" bg="c8c8ff"/>
|
||||
<currentLineHighlight color="ffffaa" fade="false"/>
|
||||
<marginLine fg="b0b4b9"/>
|
||||
<markAllHighlight color="6b8189"/> <!-- TODO: Fix me -->
|
||||
<markOccurrencesHighlight color="d4d4d4" border="false"/>
|
||||
<matchedBracket fg="000080" bg="eaeaff" highlightBoth="false" animate="true"/>
|
||||
<hyperlinks fg="0000ff"/>
|
||||
<secondaryLanguages>
|
||||
<language index="1" bg="fff0cc"/>
|
||||
<language index="2" bg="dafeda"/>
|
||||
<language index="3" bg="ffe0f0"/>
|
||||
</secondaryLanguages>
|
||||
|
||||
<!-- Gutter styling. -->
|
||||
<gutterBorder color="dddddd"/>
|
||||
<lineNumbers fg="787878"/>
|
||||
<foldIndicator fg="808080" iconBg="ffffff"/>
|
||||
<iconRowHeader activeLineRange="3399ff"/>
|
||||
|
||||
<!-- Syntax tokens. -->
|
||||
<tokenStyles>
|
||||
<style token="IDENTIFIER" fg="000000"/>
|
||||
<style token="RESERVED_WORD" fg="0000ff" bold="true"/>
|
||||
<style token="RESERVED_WORD_2" fg="0000ff" bold="true"/>
|
||||
<style token="ANNOTATION" fg="808080"/>
|
||||
<style token="COMMENT_DOCUMENTATION" fg="a40000" italic="true"/>
|
||||
<style token="COMMENT_EOL" fg="008000" italic="true"/>
|
||||
<style token="COMMENT_MULTILINE" fg="008000" italic="true"/>
|
||||
<style token="COMMENT_KEYWORD" fg="ff9900" bold="true"/>
|
||||
<style token="COMMENT_MARKUP" fg="808080"/>
|
||||
<style token="DATA_TYPE" fg="008080" bold="true"/>
|
||||
<style token="FUNCTION" fg="ad8000"/>
|
||||
<style token="LITERAL_BOOLEAN" fg="0000ff" bold="true"/>
|
||||
<style token="LITERAL_NUMBER_DECIMAL_INT" fg="6400C8"/>
|
||||
<style token="LITERAL_NUMBER_FLOAT" fg="6400C8"/>
|
||||
<style token="LITERAL_NUMBER_HEXADECIMAL" fg="6400C8"/>
|
||||
<style token="LITERAL_STRING_DOUBLE_QUOTE" fg="DC009C"/>
|
||||
<style token="LITERAL_CHAR" fg="DC009C"/>
|
||||
<style token="LITERAL_BACKQUOTE" fg="DC009C"/>
|
||||
<style token="MARKUP_TAG_DELIMITER" fg="ff0000"/>
|
||||
<style token="MARKUP_TAG_NAME" fg="0000ff"/>
|
||||
<style token="MARKUP_TAG_ATTRIBUTE" fg="3f7f7f"/>
|
||||
<style token="MARKUP_TAG_ATTRIBUTE_VALUE" fg="DC009C"/>
|
||||
<style token="MARKUP_COMMENT" fg="006000" italic="true"/>
|
||||
<style token="MARKUP_DTD" fg="ad8000"/>
|
||||
<style token="MARKUP_PROCESSING_INSTRUCTION" fg="808080"/>
|
||||
<style token="MARKUP_CDATA" fg="cc6600"/>
|
||||
<style token="MARKUP_CDATA_DELIMITER" fg="008080"/>
|
||||
<style token="MARKUP_ENTITY_REFERENCE" fg="008000"/>
|
||||
<style token="OPERATOR" fg="804040"/>
|
||||
<style token="PREPROCESSOR" fg="808080"/>
|
||||
<style token="REGEX" fg="008040"/>
|
||||
<style token="SEPARATOR" fg="ff0000"/>
|
||||
<style token="VARIABLE" fg="ee8800" bold="true"/>
|
||||
<style token="WHITESPACE" fg="000000"/>
|
||||
|
||||
<style token="ERROR_IDENTIFIER" fg="000000" bg="ffcccc"/>
|
||||
<style token="ERROR_NUMBER_FORMAT" fg="000000" bg="ffcccc"/>
|
||||
<style token="ERROR_STRING_DOUBLE" fg="000000" bg="ffcccc"/>
|
||||
<style token="ERROR_CHAR" fg="000000" bg="ffcccc"/>
|
||||
</tokenStyles>
|
||||
|
||||
</RSyntaxTheme>
|
Loading…
x
Reference in New Issue
Block a user