1 package de.lathanda.eos;
3 import java.io.BufferedReader;
5 import java.io.FileInputStream;
6 import java.io.InputStreamReader;
7 import java.util.Locale;
9 import javax.swing.JOptionPane;
10 import javax.swing.UIManager;
11 import javax.swing.UIManager.LookAndFeelInfo;
12 import javax.swing.UnsupportedLookAndFeelException;
14 import de.lathanda.eos.baseparser.AbstractProgram;
15 import de.lathanda.eos.baseparser.Program;
16 import de.lathanda.eos.common.gui.GuiConfiguration;
17 import de.lathanda.eos.common.gui.Messages;
18 import de.lathanda.eos.config.Language;
19 import de.lathanda.eos.gui.MainWindow;
20 import de.lathanda.eos.interpreter.parser.de.EosParserFactory;
44 public static void main(String args[]) {
46 for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
47 if (
"Nimbus".equals(info.getName())) {
48 UIManager.setLookAndFeel(info.getClassName());
51 }
catch (Throwable t) {
54 Runtime.getRuntime().addShutdownHook(
new Stop());
69 private static void loadLanguage() {
72 for(var config : langs) {
73 if (config.getID().equals(
id)) {
78 if (!langs.isEmpty()) {
79 var lc = langs.iterator().next();
80 lc.apply(Language.def);
81 GuiConfiguration.def.setLanguage(lc.getID());
83 JOptionPane.showMessageDialog(
null,
"No languagedefinition found. Cannot start!",
"Fatal Error", JOptionPane.ERROR_MESSAGE);
96 private static void apply(String[] args) {
97 for (
int an = 0; an < args.length; an++) {
98 if (args[an].startsWith(
"/") || args[an].startsWith(
"-")) {
99 for (
int i = 1; i < args[an].length(); i++) {
100 switch (args[an].charAt(i)) {
105 allowProperties =
false;
108 Locale.setDefault(Locale.ENGLISH);
111 Locale.setDefault(Locale.GERMAN);
116 file =
new File(args[an]);
141 private static File file =
null;
145 private static Mode mode = Mode.EDITOR;
149 private static boolean allowProperties =
true;
154 private static void editorStart() {
155 if (!allowProperties) {
156 Language.def.setLockProperties(
true);
158 MainWindow mainWindow =
new MainWindow();
160 mainWindow.load(file);
162 mainWindow.setVisible(
true);
163 mainWindow.startCompiler();
169 private static void programStart() {
175 StringBuilder src =
new StringBuilder();
176 String path = file.getParent();
178 BufferedReader br =
new BufferedReader(
new InputStreamReader(
new FileInputStream(file),
"Utf-8"));
180 src.append(br.readLine());
185 AbstractProgram program =
new Program(
187 new EosParserFactory(),
188 Language.def.getDefaultWindowName(),
189 Language.def.isLockProperties()
193 program.getMachine().skip();
194 }
catch (Exception e) {
195 JOptionPane.showMessageDialog(
null, Messages.getString(
"Export.Error.Title"), e.getLocalizedMessage(),
196 JOptionPane.ERROR_MESSAGE);
static void main(String args[])
static final GuiConfiguration def
Collection< LanguageConfig > getAvailableLanguageConfigs()