Moved some initialization code from Base to BaseNoGui.

This commit is contained in:
Claudio Indellicati 2014-08-21 18:43:13 +02:00 committed by Cristian Maglie
parent e83462b508
commit 1bb2da83c1
2 changed files with 66 additions and 51 deletions

View File

@ -28,14 +28,9 @@ import java.io.*;
import java.util.*;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import org.apache.commons.logging.impl.LogFactoryImpl;
import org.apache.commons.logging.impl.NoOpLog;
import cc.arduino.packages.DiscoveryManager;
import processing.app.debug.TargetBoard;
import processing.app.debug.TargetPackage;
@ -108,52 +103,17 @@ public class Base {
static final String portableSketchbookFolder = "sketchbook";
static public void main(String args[]) throws Exception {
System.setProperty(LogFactoryImpl.LOG_PROPERTY, NoOpLog.class.getCanonicalName());
Logger.getLogger("javax.jmdns").setLevel(Level.OFF);
BaseNoGui.initLogger();
initPlatform();
BaseNoGui.initPortableFolder();
String preferencesFile = null;
// Do a first pass over the commandline arguments, the rest of them
// will be processed by the Base constructor. Note that this loop
// does not look at the last element of args, to prevent crashing
// when no parameter was specified to an option. Later, Base() will
// then show an error for these.
for (int i = 0; i < args.length - 1; i++) {
if (args[i].equals("--preferences-file")) {
++i;
preferencesFile = args[i];
continue;
}
if (args[i].equals("--curdir")) {
i++;
currentDirectory = args[i];
continue;
}
}
// run static initialization that grabs all the prefs
Preferences.init(absoluteFile(preferencesFile));
try {
File versionFile = getContentFile("lib/version.txt");
if (versionFile.exists()) {
String version = PApplet.loadStrings(versionFile)[0];
if (!version.equals(VERSION_NAME) && !version.equals("${version}")) {
VERSION_NAME = version;
RELEASE = true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
// help 3rd party installers find the correct hardware path
Preferences.set("last.ide." + VERSION_NAME + ".hardwarepath", getHardwarePath());
Preferences.set("last.ide." + VERSION_NAME + ".daterun", "" + (new Date()).getTime() / 1000);
BaseNoGui.prescanParameters(args);
BaseNoGui.initVersion();
VERSION_NAME = BaseNoGui.VERSION_NAME;
RELEASE = BaseNoGui.RELEASE;
// if (System.getProperty("mrj.version") != null) {
// //String jv = System.getProperty("java.version");
@ -204,7 +164,7 @@ public class Base {
// Set the look and feel before opening the window
try {
BaseNoGui.getPlatform().setLookAndFeel();
getPlatform().setLookAndFeel();
} catch (Exception e) {
String mess = e.getMessage();
if (mess.indexOf("ch.randelshofer.quaqua.QuaquaLookAndFeel") == -1) {
@ -260,7 +220,7 @@ public class Base {
protected static enum ACTION { GUI, NOOP, VERIFY, UPLOAD, GET_PREF };
public Base(String[] args) throws Exception {
BaseNoGui.getPlatform().init(this);
getPlatform().init(this);
// Get the sketchbook path, and make sure it's set properly
String sketchbookPath = Preferences.get("sketchbook.path");
@ -1901,7 +1861,7 @@ public class Base {
} else {
try {
settingsFolder = BaseNoGui.getPlatform().getSettingsFolder();
settingsFolder = getPlatform().getSettingsFolder();
} catch (Exception e) {
showError(_("Problem getting data folder"),
_("Error getting the Arduino data folder."), e);
@ -2108,7 +2068,7 @@ public class Base {
File sketchbookFolder = null;
try {
sketchbookFolder = BaseNoGui.getPlatform().getDefaultSketchbookFolder();
sketchbookFolder = getPlatform().getDefaultSketchbookFolder();
} catch (Exception e) { }
if (sketchbookFolder == null) {
@ -2164,7 +2124,7 @@ public class Base {
*/
static public void openURL(String url) {
try {
BaseNoGui.getPlatform().openURL(url);
getPlatform().openURL(url);
} catch (Exception e) {
showWarning(_("Problem Opening URL"),

View File

@ -5,9 +5,15 @@ import static processing.app.I18n._;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.logging.impl.LogFactoryImpl;
import org.apache.commons.logging.impl.NoOpLog;
import processing.app.debug.TargetBoard;
import processing.app.debug.TargetPackage;
@ -184,6 +190,11 @@ public class BaseNoGui {
return list;
}
static public void initLogger() {
System.setProperty(LogFactoryImpl.LOG_PROPERTY, NoOpLog.class.getCanonicalName());
Logger.getLogger("javax.jmdns").setLevel(Level.OFF);
}
static public void initPackages() {
packages = new HashMap<String, TargetPackage>();
loadHardware(getHardwareFolder());
@ -219,6 +230,25 @@ public class BaseNoGui {
portableFolder = null;
}
static public void initVersion() {
try {
File versionFile = getContentFile("lib/version.txt");
if (versionFile.exists()) {
String version = PApplet.loadStrings(versionFile)[0];
if (!version.equals(VERSION_NAME) && !version.equals("${version}")) {
VERSION_NAME = version;
RELEASE = true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
// help 3rd party installers find the correct hardware path
Preferences.set("last.ide." + VERSION_NAME + ".hardwarepath", getHardwarePath());
Preferences.set("last.ide." + VERSION_NAME + ".daterun", "" + (new Date()).getTime() / 1000);
}
static protected void loadHardware(File folder) {
if (!folder.isDirectory()) return;
@ -250,6 +280,31 @@ public class BaseNoGui {
importToLibraryTable = new HashMap<String, Library>();
}
static public void prescanParameters(String args[]) {
String preferencesFile = null;
// Do a first pass over the commandline arguments, the rest of them
// will be processed by the Base constructor. Note that this loop
// does not look at the last element of args, to prevent crashing
// when no parameter was specified to an option. Later, Base() will
// then show an error for these.
for (int i = 0; i < args.length - 1; i++) {
if (args[i].equals("--preferences-file")) {
++i;
preferencesFile = args[i];
continue;
}
if (args[i].equals("--curdir")) {
i++;
currentDirectory = args[i];
continue;
}
}
// run static initialization that grabs all the prefs
Preferences.init(absoluteFile(preferencesFile));
}
/**
* Spew the contents of a String object out to a file.
*/