diff --git a/java/src/processing/mode/java/Commander.java b/java/src/processing/mode/java/Commander.java index be938d88c..9a193b83a 100644 --- a/java/src/processing/mode/java/Commander.java +++ b/java/src/processing/mode/java/Commander.java @@ -29,6 +29,7 @@ import java.io.PrintStream; import java.io.UnsupportedEncodingException; import processing.app.Base; +import processing.app.Platform; import processing.app.Preferences; import processing.app.RunnerListener; import processing.app.Sketch; @@ -77,7 +78,7 @@ public class Commander implements RunnerListener { // Do this early so that error messages go to the console Base.setCommandLine(); // init the platform so that prefs and other native code is ready to go - Base.initPlatform(); + Platform.init(); // make sure a full JDK is installed //Base.initRequirements(); @@ -145,7 +146,7 @@ public class Commander implements RunnerListener { } else if (arg.startsWith(platformArg)) { // complainAndQuit("The --platform option has been removed from Processing 2.1.", false); String platformStr = arg.substring(platformArg.length()); - platform = Base.getPlatformIndex(platformStr); + platform = Platform.getIndex(platformStr); if (platform == -1) { complainAndQuit(platformStr + " should instead be " + "'windows', 'macosx', or 'linux'.", true); @@ -249,7 +250,7 @@ public class Commander implements RunnerListener { // JavaMode javaMode = // new JavaMode(null, Base.getContentFile("modes/java")); JavaMode javaMode = (JavaMode) - ModeContribution.load(null, Base.getContentFile("modes/java"), + ModeContribution.load(null, Platform.getContentFile("modes/java"), "processing.mode.java.JavaMode").getMode(); try { sketch = new Sketch(pdePath, javaMode); @@ -280,8 +281,7 @@ public class Commander implements RunnerListener { JavaBuild build = new JavaBuild(sketch); build.build(true); if (build != null) { - - String variant = Base.getVariant(); + String variant = Platform.getVariant(); success = build.exportApplication(outputFolder, platform, variant, embedJava); } } diff --git a/java/src/processing/mode/java/JavaBuild.java b/java/src/processing/mode/java/JavaBuild.java index 3950a6831..9ce5d7588 100644 --- a/java/src/processing/mode/java/JavaBuild.java +++ b/java/src/processing/mode/java/JavaBuild.java @@ -786,7 +786,7 @@ public class JavaBuild { File folder = null; for (String platformName : PConstants.platformNames) { - int platform = Base.getPlatformIndex(platformName); + int platform = Platform.getIndex(platformName); // Can only embed Java on the native platform boolean embedJava = (platform == PApplet.platform) && @@ -796,18 +796,18 @@ public class JavaBuild { if (Library.hasMultipleArch(platform, importedLibraries)) { // export the 32-bit version folder = new File(sketch.getFolder(), "application." + platformName + "32"); - if (!exportApplication(folder, platform, "32", embedJava && Base.getNativeBits() == 32 && "x86".equals(Base.getNativeArch()))) { + if (!exportApplication(folder, platform, "32", embedJava && Platform.getNativeBits() == 32 && "x86".equals(Platform.getNativeArch()))) { return false; } // export the 64-bit version folder = new File(sketch.getFolder(), "application." + platformName + "64"); - if (!exportApplication(folder, platform, "64", embedJava && Base.getNativeBits() == 64 && "x86".equals(Base.getNativeArch()))) { + if (!exportApplication(folder, platform, "64", embedJava && Platform.getNativeBits() == 64 && "x86".equals(Platform.getNativeArch()))) { return false; } if (platform == PConstants.LINUX) { // export the armv6hf version as well folder = new File(sketch.getFolder(), "application.linux-armv6hf"); - if (!exportApplication(folder, platform, "armv6hf", embedJava && Base.getNativeBits() == 32 && "arm".equals(Base.getNativeArch()))) { + if (!exportApplication(folder, platform, "armv6hf", embedJava && Platform.getNativeBits() == 32 && "arm".equals(Platform.getNativeArch()))) { return false; } } @@ -891,10 +891,10 @@ public class JavaBuild { if (exportPlatform == PConstants.MACOSX) { dotAppFolder = new File(destFolder, sketch.getName() + ".app"); - File contentsOrig = new File(Base.getJavaHome(), "../../../../.."); + File contentsOrig = new File(Platform.getJavaHome(), "../../../../.."); if (embedJava) { - File jdkFolder = new File(Base.getJavaHome(), "../../.."); + File jdkFolder = new File(Platform.getJavaHome(), "../../.."); String jdkFolderName = jdkFolder.getCanonicalFile().getName(); jvmRuntime = "JVMRuntime\n " + jdkFolderName + ""; jdkPath = new File(dotAppFolder, "Contents/PlugIns/" + jdkFolderName).getAbsolutePath(); @@ -958,12 +958,12 @@ public class JavaBuild { */ } else if (exportPlatform == PConstants.LINUX) { if (embedJava) { - Util.copyDirNative(Base.getJavaHome(), new File(destFolder, "java")); + Util.copyDirNative(Platform.getJavaHome(), new File(destFolder, "java")); } } else if (exportPlatform == PConstants.WINDOWS) { if (embedJava) { - Util.copyDir(Base.getJavaHome(), new File(destFolder, "java")); + Util.copyDir(Platform.getJavaHome(), new File(destFolder, "java")); } } @@ -1183,7 +1183,7 @@ public class JavaBuild { pw.close(); // attempt to code sign if the Xcode tools appear to be installed - if (Base.isMacOS() && new File("/usr/bin/codesign_allocate").exists()) { + if (Platform.isMacOS() && new File("/usr/bin/codesign_allocate").exists()) { if (embedJava) { ProcessHelper.ffs("codesign", "--force", "--sign", "-", jdkPath); } @@ -1297,7 +1297,7 @@ public class JavaBuild { String shellPath = shellScript.getAbsolutePath(); // will work on osx or *nix, but just dies on windows, oh well.. - if (!Base.isWindows()) { + if (!Platform.isWindows()) { Runtime.getRuntime().exec(new String[] { "chmod", "+x", shellPath }); } } @@ -1439,7 +1439,7 @@ public class JavaBuild { String[] dataFiles = Util.listFiles(sketch.getDataFolder(), false); int offset = sketch.getFolder().getAbsolutePath().length() + 1; for (String path : dataFiles) { - if (Base.isWindows()) { + if (Platform.isWindows()) { path = path.replace('\\', '/'); } //File dataFile = new File(dataFiles[i]); diff --git a/java/src/processing/mode/java/JavaEditor.java b/java/src/processing/mode/java/JavaEditor.java index 0a5e05fc7..2c83d83c7 100644 --- a/java/src/processing/mode/java/JavaEditor.java +++ b/java/src/processing/mode/java/JavaEditor.java @@ -344,7 +344,7 @@ public class JavaEditor extends Editor { JMenuItem item; // macosx already has its own about menu - if (!Base.isMacOS()) { + if (!Platform.isMacOS()) { item = new JMenuItem(Language.text("menu.help.about")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { @@ -497,7 +497,7 @@ public class JavaEditor extends Editor { item = new JMenuItem(Language.text("menu.help.getting_started")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Base.openURL(Language.text("menu.help.getting_started.url")); + Platform.openURL(Language.text("menu.help.getting_started.url")); } }); menu.add(item); @@ -505,7 +505,7 @@ public class JavaEditor extends Editor { item = new JMenuItem(Language.text("menu.help.troubleshooting")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Base.openURL(Language.text("menu.help.troubleshooting.url")); + Platform.openURL(Language.text("menu.help.troubleshooting.url")); } }); menu.add(item); @@ -513,7 +513,7 @@ public class JavaEditor extends Editor { item = new JMenuItem(Language.text("menu.help.faq")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Base.openURL(Language.text("menu.help.faq.url")); + Platform.openURL(Language.text("menu.help.faq.url")); } }); menu.add(item); @@ -521,7 +521,7 @@ public class JavaEditor extends Editor { item = new JMenuItem(Language.text("menu.help.foundation")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Base.openURL(Language.text("menu.help.foundation.url")); + Platform.openURL(Language.text("menu.help.foundation.url")); } }); menu.add(item); @@ -529,7 +529,7 @@ public class JavaEditor extends Editor { item = new JMenuItem(Language.text("menu.help.visit")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Base.openURL(Language.text("menu.help.visit.url")); + Platform.openURL(Language.text("menu.help.visit.url")); } }); menu.add(item); @@ -664,7 +664,7 @@ public class JavaEditor extends Editor { statusNotice(Language.text("export.notice.exporting")); try { if (exportApplicationPrompt()) { - Base.openFolder(sketch.getFolder()); + Platform.openFolder(sketch.getFolder()); statusNotice(Language.text("export.notice.exporting.done")); } else { // error message will already be visible @@ -738,7 +738,7 @@ public class JavaEditor extends Editor { }); // Only possible to export OS X applications on OS X - if (!Base.isMacOS()) { + if (!Platform.isMacOS()) { // Make sure they don't have a previous 'true' setting for this Preferences.setBoolean(EXPORT_MACOSX, false); } @@ -749,7 +749,7 @@ public class JavaEditor extends Editor { updateExportButton(); } }); - if (!Base.isMacOS()) { + if (!Platform.isMacOS()) { macosxButton.setEnabled(false); macosxButton.setToolTipText(Language.text("export.tooltip.macosx")); } @@ -866,12 +866,12 @@ public class JavaEditor extends Editor { embedPanel.setLayout(new BoxLayout(embedPanel, BoxLayout.Y_AXIS)); String platformName = null; - if (Base.isMacOS()) { + if (Platform.isMacOS()) { platformName = "Mac OS X"; - } else if (Base.isWindows()) { - platformName = "Windows (" + Base.getNativeBits() + "-bit)"; - } else if (Base.isLinux()) { - platformName = "Linux (" + Base.getNativeBits() + "-bit)"; + } else if (Platform.isWindows()) { + platformName = "Windows (" + Platform.getNativeBits() + "-bit)"; + } else if (Platform.isLinux()) { + platformName = "Linux (" + Platform.getNativeBits() + "-bit)"; } boolean embed = Preferences.getBoolean("export.application.embed_java"); @@ -893,7 +893,7 @@ public class JavaEditor extends Editor { final JLabel warningLabel = new JLabel(embed ? embedWarning : nopeWarning); warningLabel.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent event) { - Base.openURL("http://java.com/download"); + Platform.openURL("http://java.com/download"); } }); warningLabel.setBorder(new EmptyBorder(3, 13 + indent, 3, 13)); @@ -921,7 +921,7 @@ public class JavaEditor extends Editor { // - if (Base.isMacOS()) { + if (Platform.isMacOS()) { JPanel signPanel = new JPanel(); signPanel.setLayout(new BoxLayout(signPanel, BoxLayout.Y_AXIS)); signPanel.setBorder(new TitledBorder(Language.text("export.code_signing"))); @@ -972,7 +972,7 @@ public class JavaEditor extends Editor { area.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent event) { - Base.openURL("https://developer.apple.com/developer-id/"); + Platform.openURL("https://developer.apple.com/developer-id/"); } }); diff --git a/java/src/processing/mode/java/JavaMode.java b/java/src/processing/mode/java/JavaMode.java index 9f88cbdbd..57f0566e8 100644 --- a/java/src/processing/mode/java/JavaMode.java +++ b/java/src/processing/mode/java/JavaMode.java @@ -107,7 +107,7 @@ public class JavaMode extends Mode { public Library getCoreLibrary() { if (coreLibrary == null) { - File coreFolder = Base.getContentFile("core"); + File coreFolder = Platform.getContentFile("core"); coreLibrary = new Library(coreFolder); // try { // coreLibrary = getLibrary("processing.core"); diff --git a/java/src/processing/mode/java/pdex/ASTGenerator.java b/java/src/processing/mode/java/pdex/ASTGenerator.java index 2c04dd1c1..a8ca1485d 100644 --- a/java/src/processing/mode/java/pdex/ASTGenerator.java +++ b/java/src/processing/mode/java/pdex/ASTGenerator.java @@ -108,6 +108,7 @@ import org.jsoup.select.Elements; import processing.app.Base; import processing.app.Library; +import processing.app.Platform; import processing.app.SketchCode; import processing.app.Util; import processing.app.syntax.JEditTextArea; @@ -326,7 +327,7 @@ public class ASTGenerator { classPath = factory.createFromPath(tehPath.toString()); log("Classpath created " + (classPath != null)); log("Sketch classpath jars loaded."); - if (Base.isMacOS()) { + if (Platform.isMacOS()) { File f = new File(System.getProperty("java.home") + File.separator + "bundle" + File.separator + "Classes" + File.separator + "classes.jar"); log(f.getAbsolutePath() + " | classes.jar found?" diff --git a/java/src/processing/mode/java/pdex/JavaTextArea.java b/java/src/processing/mode/java/pdex/JavaTextArea.java index 10c1d4811..41fa42ab0 100644 --- a/java/src/processing/mode/java/pdex/JavaTextArea.java +++ b/java/src/processing/mode/java/pdex/JavaTextArea.java @@ -37,6 +37,7 @@ import javax.swing.SwingWorker; import processing.app.Base; import processing.app.Mode; +import processing.app.Platform; import processing.app.syntax.JEditTextArea; import processing.app.syntax.PdeTextAreaDefaults; import processing.app.syntax.TextAreaDefaults; @@ -234,7 +235,7 @@ public class JavaTextArea extends JEditTextArea { if (evt.getID() == KeyEvent.KEY_TYPED) { processCompletionKeys(evt); - } else if (Base.isMacOS() && evt.getID() == KeyEvent.KEY_RELEASED) { + } else if (Platform.isMacOS() && evt.getID() == KeyEvent.KEY_RELEASED) { processControlSpace(evt); } } @@ -279,7 +280,7 @@ public class JavaTextArea extends JEditTextArea { Base.log("Typing: " + fetchPhrase(event)); } } else if (keyChar == ' ') { // Trigger on Ctrl-Space - if (!Base.isMacOS() && JavaMode.codeCompletionsEnabled && + if (!Platform.isMacOS() && JavaMode.codeCompletionsEnabled && (event.isControlDown() || event.isMetaDown())) { SwingWorker worker = new SwingWorker() { protected Object doInBackground() throws Exception { diff --git a/java/src/processing/mode/java/pdex/JavaTextAreaPainter.java b/java/src/processing/mode/java/pdex/JavaTextAreaPainter.java index cc8ea8b27..455c58485 100644 --- a/java/src/processing/mode/java/pdex/JavaTextAreaPainter.java +++ b/java/src/processing/mode/java/pdex/JavaTextAreaPainter.java @@ -48,6 +48,7 @@ import javax.swing.text.Segment; import javax.swing.text.Utilities; import processing.app.Base; +import processing.app.Platform; import processing.app.SketchCode; import processing.app.syntax.SyntaxDocument; import processing.app.syntax.TextAreaDefaults; @@ -102,7 +103,7 @@ public class JavaTextAreaPainter extends TextAreaPainter public void mouseClicked(MouseEvent evt) { if (!getEditor().hasJavaTabs()) { // Ctrl + Click disabled for java tabs if (evt.getButton() == MouseEvent.BUTTON1) { - if ((evt.isControlDown() && !Base.isMacOS()) || evt.isMetaDown()) { + if ((evt.isControlDown() && !Platform.isMacOS()) || evt.isMetaDown()) { handleCtrlClick(evt); } } diff --git a/java/src/processing/mode/java/runner/Runner.java b/java/src/processing/mode/java/runner/Runner.java index 2e910b93a..307d26174 100644 --- a/java/src/processing/mode/java/runner/Runner.java +++ b/java/src/processing/mode/java/runner/Runner.java @@ -89,14 +89,14 @@ public class Runner implements MessageConsumer { } // Make sure all the imported libraries will actually run with this setup. - int bits = Base.getNativeBits(); - String variant = Base.getVariant(); + int bits = Platform.getNativeBits(); + String variant = Platform.getVariant(); for (Library library : build.getImportedLibraries()) { if (!library.supportsArch(PApplet.platform, variant)) { sketchErr.println(library.getName() + " does not run on this architecture: " + variant); int opposite = (bits == 32) ? 64 : 32; - if (Base.isMacOS()) { + if (Platform.isMacOS()) { //if (library.supportsArch(PConstants.MACOSX, opposite)) { // should always be true throw new SketchException("To use " + library.getName() + ", " + "switch to " + opposite + "-bit mode in Preferences."); @@ -167,7 +167,7 @@ public class Runner implements MessageConsumer { String jdwpArg = "-agentlib:jdwp=transport=dt_socket,address=" + portStr + ",server=y,suspend=y"; // Everyone works the same under Java 7 (also on OS X) - String[] commandArgs = new String[] { Base.getJavaPath(), jdwpArg }; + String[] commandArgs = new String[] { Platform.getJavaPath(), jdwpArg }; commandArgs = PApplet.concat(commandArgs, vmParams); commandArgs = PApplet.concat(commandArgs, sketchParams); @@ -256,7 +256,7 @@ public class Runner implements MessageConsumer { params.add("-Xmx" + Preferences.get("run.options.memory.maximum") + "m"); } - if (Base.isMacOS()) { + if (Platform.isMacOS()) { params.add("-Xdock:name=" + build.getSketchClassName()); // params.add("-Dcom.apple.mrj.application.apple.menu.about.name=" + // sketch.getMainClassName()); @@ -670,7 +670,7 @@ public class Runner implements MessageConsumer { listener.statusError("A library used by this sketch is not installed properly."); err.println("A library relies on native code that's not available."); err.println("Or only works properly when the sketch is run as a " + - ((Base.getNativeBits() == 32) ? "64-bit" : "32-bit") + " application."); + ((Platform.getNativeBits() == 32) ? "64-bit" : "32-bit") + " application."); } else if (exceptionClass.equals("java.lang.StackOverflowError")) { listener.statusError("StackOverflowError: This sketch is attempting too much recursion.");