Search in sources :

Example 51 with HeadlessException

use of java.awt.HeadlessException in project Wurst-MC-1.12 by Wurst-Imperium.

the class AltManagerScreen method actionPerformed.

@Override
public void actionPerformed(GuiButton button) {
    if (!button.enabled)
        return;
    if (button.id == 0) {
        // "Use" button
        Alt alt = altList.getSelectedAlt();
        if (alt.isCracked()) {
            LoginManager.changeCrackedName(alt.getEmail());
            mc.displayGuiScreen(prevScreen);
        } else {
            String reply = LoginManager.login(alt.getEmail(), alt.getPassword());
            if (reply.isEmpty()) {
                mc.displayGuiScreen(prevScreen);
                alt.setChecked(mc.session.getUsername());
                ConfigFiles.ALTS.save();
            } else
                errorTimer = 8;
        }
    } else if (button.id == 1)
        // "Direct Login" button
        mc.displayGuiScreen(new DirectLoginScreen(this));
    else if (button.id == 2)
        // "Add" button
        mc.displayGuiScreen(new AddAltScreen(this));
    else if (button.id == 3) {
        // "Star" button
        Alt alt = altList.getSelectedAlt();
        alt.setStarred(!alt.isStarred());
        GuiAltList.sortAlts();
        ConfigFiles.ALTS.save();
    } else if (button.id == 4) {
        // "Edit" button
        Alt alt = altList.getSelectedAlt();
        mc.displayGuiScreen(new EditAltScreen(this, alt));
    } else if (button.id == 5)
        // "Delete" button
        mc.displayGuiScreen(new GuiYesNo(this, "Are you sure you want to remove this alt?", "\"" + altList.getSelectedAlt().getNameOrEmail() + "\" will be lost forever! (A long time!)", "Delete", "Cancel", 1));
    else if (button.id == 6)
        // "Cancel" button
        mc.displayGuiScreen(prevScreen);
    else if (button.id == 7)
        // "Import Alts" button
        new Thread(() -> {
            JFileChooser fileChooser = new JFileChooser(WurstFolders.MAIN.toFile()) {

                @Override
                protected JDialog createDialog(Component parent) throws HeadlessException {
                    JDialog dialog = super.createDialog(parent);
                    dialog.setAlwaysOnTop(true);
                    return dialog;
                }
            };
            fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
            fileChooser.setAcceptAllFileFilterUsed(false);
            fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("TXT file (username:password)", "txt"));
            if (fileChooser.showOpenDialog(FrameHook.getFrame()) == JFileChooser.APPROVE_OPTION)
                try {
                    File file = fileChooser.getSelectedFile();
                    BufferedReader load = new BufferedReader(new FileReader(file));
                    for (String line = ""; (line = load.readLine()) != null; ) {
                        String[] data = line.split(":");
                        if (data.length != 2)
                            continue;
                        GuiAltList.alts.add(new Alt(data[0], data[1], null));
                    }
                    load.close();
                    GuiAltList.sortAlts();
                    ConfigFiles.ALTS.save();
                } catch (IOException e) {
                    e.printStackTrace();
                    MiscUtils.simpleError(e, fileChooser);
                }
        }).start();
}
Also used : GuiYesNo(net.minecraft.client.gui.GuiYesNo) HeadlessException(java.awt.HeadlessException) Alt(net.wurstclient.altmanager.Alt) IOException(java.io.IOException) FileNameExtensionFilter(javax.swing.filechooser.FileNameExtensionFilter) JFileChooser(javax.swing.JFileChooser) BufferedReader(java.io.BufferedReader) FileReader(java.io.FileReader) Component(java.awt.Component) File(java.io.File) JDialog(javax.swing.JDialog)

Example 52 with HeadlessException

use of java.awt.HeadlessException in project CommandHelper by EngineHub.

the class Main method main.

@SuppressWarnings("ResultOfObjectAllocationIgnored")
public static void main(String[] args) throws Exception {
    try {
        Implementation.setServerType(Implementation.Type.SHELL);
        CHLog.initialize(MethodScriptFileLocations.getDefault().getJarDirectory());
        Prefs.init(MethodScriptFileLocations.getDefault().getPreferencesFile());
        Prefs.SetColors();
        if (Prefs.UseColors()) {
            // Use jansi to enable output to color properly, even on windows.
            org.fusesource.jansi.AnsiConsole.systemInstall();
        }
        ClassDiscovery cd = ClassDiscovery.getDefaultInstance();
        cd.addDiscoveryLocation(ClassDiscovery.GetClassContainer(Main.class));
        ClassDiscoveryCache cdcCache = new ClassDiscoveryCache(MethodScriptFileLocations.getDefault().getCacheDirectory());
        cd.setClassDiscoveryCache(cdcCache);
        cd.addAllJarsInFolder(MethodScriptFileLocations.getDefault().getExtensionsDirectory());
        ExtensionManager.AddDiscoveryLocation(MethodScriptFileLocations.getDefault().getExtensionsDirectory());
        ExtensionManager.Cache(MethodScriptFileLocations.getDefault().getExtensionCacheDirectory());
        ExtensionManager.Initialize(cd);
        ExtensionManager.Startup();
        if (args.length == 0) {
            args = new String[] { "--help" };
        }
        // I'm not sure why this is in Main, but if this breaks something, it needs to be put back.
        // However, if it is put back, then it needs to be figured out why this causes the terminal
        // to lose focus on mac.
        // AnnotationChecks.checkForceImplementation();
        ArgumentParser mode;
        ArgumentParser.ArgumentParserResults parsedArgs;
        try {
            ArgumentSuite.ArgumentSuiteResults results = ARGUMENT_SUITE.match(args, "help");
            mode = results.getMode();
            parsedArgs = results.getResults();
        } catch (ArgumentParser.ResultUseException | ArgumentParser.ValidationException e) {
            StreamUtils.GetSystemOut().println(TermColors.RED + e.getMessage() + TermColors.RESET);
            mode = helpMode;
            parsedArgs = null;
        }
        if (mode == helpMode) {
            String modeForHelp = null;
            if (parsedArgs != null) {
                modeForHelp = parsedArgs.getStringArgument();
            }
            modeForHelp = ARGUMENT_SUITE.getModeFromAlias(modeForHelp);
            if (modeForHelp == null) {
                // Display the general help
                StreamUtils.GetSystemOut().println(ARGUMENT_SUITE.getBuiltDescription());
                System.exit(0);
                return;
            } else {
                // Display the help for this mode
                StreamUtils.GetSystemOut().println(ARGUMENT_SUITE.getModeFromName(modeForHelp).getBuiltDescription());
                return;
            }
        }
        // if it were, the help command would have run.
        assert parsedArgs != null;
        if (mode == managerMode) {
            Manager.start();
            System.exit(0);
        } else if (mode == coreFunctionsMode) {
            List<String> core = new ArrayList<>();
            for (api.Platforms platform : api.Platforms.values()) {
                for (FunctionBase f : FunctionList.getFunctionList(platform)) {
                    if (f.isCore()) {
                        core.add(f.getName());
                    }
                }
            }
            Collections.sort(core);
            StreamUtils.GetSystemOut().println(StringUtils.Join(core, ", "));
            System.exit(0);
        } else if (mode == interpreterMode) {
            new Interpreter(parsedArgs.getStringListArgument(), parsedArgs.getStringArgument("location-----"));
            System.exit(0);
        } else if (mode == installCmdlineMode) {
            Interpreter.install();
            System.exit(0);
        } else if (mode == uninstallCmdlineMode) {
            Interpreter.uninstall();
            System.exit(0);
        } else if (mode == docgenMode) {
            DocGenUI.main(args);
            System.exit(0);
        } else if (mode == mslpMode) {
            String mslp = parsedArgs.getStringArgument();
            if (mslp.isEmpty()) {
                StreamUtils.GetSystemOut().println("Usage: --mslp path/to/folder");
                System.exit(0);
            }
            MSLPMaker.start(mslp);
            System.exit(0);
        } else if (mode == versionMode) {
            StreamUtils.GetSystemOut().println("You are running " + Implementation.GetServerType().getBranding() + " version " + loadSelfVersion());
            System.exit(0);
        } else if (mode == copyrightMode) {
            StreamUtils.GetSystemOut().println("The MIT License (MIT)\n" + "\n" + "Copyright (c) 2012-2017 Methodscript Contributors\n" + "\n" + "Permission is hereby granted, free of charge, to any person obtaining a copy of \n" + "this software and associated documentation files (the \"Software\"), to deal in \n" + "the Software without restriction, including without limitation the rights to \n" + "use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of \n" + "the Software, and to permit persons to whom the Software is furnished to do so, \n" + "subject to the following conditions:\n" + "\n" + "The above copyright notice and this permission notice shall be included in all \n" + "copies or substantial portions of the Software.\n" + "\n" + "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \n" + "IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS \n" + "FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR \n" + "COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER \n" + "IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN \n" + "CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.");
            System.exit(0);
        } else if (mode == printDBMode) {
            ConnectionMixinFactory.ConnectionMixinOptions options = new ConnectionMixinFactory.ConnectionMixinOptions();
            options.setWorkingDirectory(MethodScriptFileLocations.getDefault().getConfigDirectory());
            PersistenceNetwork pn = new PersistenceNetwork(MethodScriptFileLocations.getDefault().getPersistenceConfig(), new URI("sqlite://" + MethodScriptFileLocations.getDefault().getDefaultPersistenceDBFile().getCanonicalPath().replace('\\', '/')), options);
            Map<String[], String> values = pn.getNamespace(new String[] {});
            for (String[] s : values.keySet()) {
                StreamUtils.GetSystemOut().println(StringUtils.Join(s, ".") + "=" + values.get(s));
            }
            System.exit(0);
        } else if (mode == docsMode) {
            DocGen.MarkupType docs;
            try {
                docs = DocGen.MarkupType.valueOf(parsedArgs.getStringArgument().toUpperCase());
            } catch (IllegalArgumentException e) {
                StreamUtils.GetSystemOut().println("The type of documentation must be one of the following: " + StringUtils.Join(DocGen.MarkupType.values(), ", ", ", or "));
                System.exit(1);
                return;
            }
            // Documentation generator
            StreamUtils.GetSystemErr().print("Creating " + docs + " documentation...");
            DocGen.functions(docs, api.Platforms.INTERPRETER_JAVA, true);
            StreamUtils.GetSystemErr().println("Done.");
            System.exit(0);
        } else if (mode == examplesMode) {
            ExampleLocalPackageInstaller.run(MethodScriptFileLocations.getDefault().getJarDirectory(), parsedArgs.getStringArgument());
        } else if (mode == verifyMode) {
            String file = parsedArgs.getStringArgument();
            if ("".equals(file)) {
                StreamUtils.GetSystemErr().println("File parameter is required.");
                System.exit(1);
            }
            File f = new File(file);
            String script = FileUtil.read(f);
            try {
                try {
                    MethodScriptCompiler.compile(MethodScriptCompiler.lex(script, f, file.endsWith("ms")));
                } catch (ConfigCompileException ex) {
                    Set<ConfigCompileException> s = new HashSet<>(1);
                    s.add(ex);
                    throw new ConfigCompileGroupException(s);
                }
            } catch (ConfigCompileGroupException ex) {
                List<Map<String, Object>> err = new ArrayList<>();
                for (ConfigCompileException e : ex.getList()) {
                    Map<String, Object> error = new HashMap<>();
                    error.put("msg", e.getMessage());
                    error.put("file", e.getFile().getAbsolutePath());
                    error.put("line", e.getLineNum());
                    error.put("col", e.getColumn());
                    // TODO: Need to track target length for this
                    error.put("len", 0);
                    err.add(error);
                }
                String serr = JSONValue.toJSONString(err);
                StreamUtils.GetSystemOut().println(serr);
            }
        } else if (mode == apiMode) {
            String function = parsedArgs.getStringArgument();
            if ("".equals(function)) {
                StreamUtils.GetSystemErr().println("Usage: java -jar CommandHelper.jar --api <function name>");
                System.exit(1);
            }
            FunctionBase f;
            try {
                f = FunctionList.getFunction(function, Target.UNKNOWN);
            } catch (ConfigCompileException e) {
                StreamUtils.GetSystemErr().println("The function '" + function + "' was not found.");
                System.exit(1);
                throw new Error();
            }
            DocGen.DocInfo di = new DocGen.DocInfo(f.docs());
            String ret = di.ret.replaceAll("</?[a-z].*?>", "");
            String args2 = di.args.replaceAll("</?[a-z].*?>", "");
            String desc = (di.desc + (di.extendedDesc != null ? "\n\n" + di.extendedDesc : "")).replaceAll("</?[a-z].*?>", "");
            StreamUtils.GetSystemOut().println(StringUtils.Join(new String[] { function, "Returns " + ret, "Expects " + args2, desc }, " // "));
            System.exit(0);
        } else if (mode == syntaxMode) {
            // TODO: Maybe load extensions here?
            List<String> syntax = parsedArgs.getStringListArgument();
            String type = (syntax.size() >= 1 ? syntax.get(0) : null);
            String theme = (syntax.size() >= 2 ? syntax.get(1) : null);
            StreamUtils.GetSystemOut().println(SyntaxHighlighters.generate(type, theme));
            System.exit(0);
        } else if (mode == optimizerTestMode) {
            String path = parsedArgs.getStringArgument();
            File source = new File(path);
            String plain = FileUtil.read(source);
            Security.setSecurityEnabled(false);
            String optimized;
            try {
                try {
                    optimized = OptimizationUtilities.optimize(plain, source);
                } catch (ConfigCompileException ex) {
                    Set<ConfigCompileException> group = new HashSet<>();
                    group.add(ex);
                    throw new ConfigCompileGroupException(group);
                }
            } catch (ConfigCompileGroupException ex) {
                ConfigRuntimeException.HandleUncaughtException(ex, null);
                System.exit(1);
                return;
            }
            StreamUtils.GetSystemOut().println(optimized);
            System.exit(0);
        } else if (mode == cmdlineMode) {
            // We actually can't use the parsedArgs, because there may be cmdline switches in
            // the arguments that we want to ignore here, but otherwise pass through. parsedArgs
            // will prevent us from seeing those, however.
            List<String> allArgs = new ArrayList<>(Arrays.asList(args));
            // The 0th arg is the cmdline verb though, so remove that.
            allArgs.remove(0);
            if (allArgs.isEmpty()) {
                StreamUtils.GetSystemErr().println("Usage: path/to/file.ms [arg1 arg2]");
                System.exit(1);
            }
            String fileName = allArgs.get(0);
            allArgs.remove(0);
            try {
                Interpreter.startWithTTY(fileName, allArgs);
            } catch (Profiles.InvalidProfileException ex) {
                StreamUtils.GetSystemErr().println("Invalid profile file at " + MethodScriptFileLocations.getDefault().getProfilesFile() + ": " + ex.getMessage());
                System.exit(1);
            }
            StaticLayer.GetConvertor().runShutdownHooks();
            System.exit(0);
        } else if (mode == extensionDocsMode) {
            String inputJarS = parsedArgs.getStringArgument("input-jar");
            String outputFileS = parsedArgs.getStringArgument("output-file");
            if (inputJarS == null) {
                StreamUtils.GetSystemOut().println("Usage: --input-jar extension-docs path/to/extension.jar [--output-file path/to/output.md]\n\tIf the output is blank, it is printed to stdout.");
                System.exit(1);
            }
            File inputJar = new File(inputJarS);
            OutputStream outputFile = StreamUtils.GetSystemOut();
            if (outputFileS != null) {
                outputFile = new FileOutputStream(new File(outputFileS));
            }
            ExtensionDocGen.generate(inputJar, outputFile);
        } else if (mode == docExportMode) {
            String extensionDirS = parsedArgs.getStringArgument("extension-dir");
            String outputFileS = parsedArgs.getStringArgument("output-file");
            OutputStream outputFile = StreamUtils.GetSystemOut();
            if (outputFileS != null) {
                outputFile = new FileOutputStream(new File(outputFileS));
            }
            Implementation.forceServerType(Implementation.Type.BUKKIT);
            File extensionDir = new File(extensionDirS);
            if (extensionDir.exists()) {
                // to stderr.
                for (File f : extensionDir.listFiles()) {
                    if (f.getName().endsWith(".jar")) {
                        cd.addDiscoveryLocation(f.toURI().toURL());
                    }
                }
            } else {
                StreamUtils.GetSystemErr().println("Extension directory specificed doesn't exist: " + extensionDirS + ". Continuing anyways.");
            }
            new DocGenExportTool(cd, outputFile).export();
        } else if (mode == profilerSummaryMode) {
            String input = parsedArgs.getStringArgument();
            if ("".equals(input)) {
                StreamUtils.GetSystemErr().println(TermColors.RED + "No input file specified! Run `help profiler-summary' for usage." + TermColors.RESET);
                System.exit(1);
            }
            double ignorePercentage = parsedArgs.getNumberArgument("ignore-percentage");
            ProfilerSummary summary = new ProfilerSummary(new FileInputStream(input));
            try {
                summary.setIgnorePercentage(ignorePercentage);
            } catch (IllegalArgumentException ex) {
                StreamUtils.GetSystemErr().println(TermColors.RED + ex.getMessage() + TermColors.RESET);
                System.exit(1);
            }
            StreamUtils.GetSystemOut().println(summary.getAnalysis());
            System.exit(0);
        } else if (mode == rsaKeyGenMode) {
            String outputFileString = parsedArgs.getStringArgument('o');
            File privOutputFile = new File(outputFileString);
            File pubOutputFile = new File(outputFileString + ".pub");
            String label = parsedArgs.getStringArgument('l');
            if (privOutputFile.exists() || pubOutputFile.exists()) {
                StreamUtils.GetSystemErr().println("Either the public key or private key file already exists. This utility will not overwrite any existing files.");
                System.exit(1);
            }
            RSAEncrypt enc = RSAEncrypt.generateKey(label);
            FileUtil.write(enc.getPrivateKey(), privOutputFile);
            FileUtil.write(enc.getPublicKey(), pubOutputFile);
            System.exit(0);
        } else if (mode == pnViewerMode) {
            if (parsedArgs.isFlagSet("server")) {
                if (parsedArgs.getNumberArgument("port") == null) {
                    StreamUtils.GetSystemErr().println("When running as a server, port is required.");
                    System.exit(1);
                }
                int port = parsedArgs.getNumberArgument("port").intValue();
                if (port > 65535 || port < 1) {
                    StreamUtils.GetSystemErr().println("Port must be between 1 and 65535.");
                    System.exit(1);
                }
                String password = parsedArgs.getStringArgument("password");
                if ("".equals(password)) {
                    ConsoleReader reader = null;
                    try {
                        reader = new ConsoleReader();
                        reader.setExpandEvents(false);
                        Character cha = new Character((char) 0);
                        password = reader.readLine("Enter password: ", cha);
                    } finally {
                        if (reader != null) {
                            reader.shutdown();
                        }
                    }
                }
                if (password == null) {
                    StreamUtils.GetSystemErr().println("Warning! Running server with no password, anyone will be able to connect!");
                    password = "";
                }
                try {
                    PNViewer.startServer(port, password);
                } catch (IOException ex) {
                    StreamUtils.GetSystemErr().println(ex.getMessage());
                    System.exit(1);
                }
            } else {
                try {
                    PNViewer.main(parsedArgs.getStringListArgument().toArray(ArrayUtils.EMPTY_STRING_ARRAY));
                } catch (HeadlessException ex) {
                    StreamUtils.GetSystemErr().println("The Persistence Network Viewer may not be run from a headless environment.");
                    System.exit(1);
                }
            }
        } else if (mode == uiMode) {
            if (parsedArgs.isFlagSet("in-shell")) {
                // Actually launch the GUI
                UILauncher.main(args);
            } else {
                // Relaunch the jar in a new process with the --run flag set,
                // so that the process will be in its own subshell
                CommandExecutor ce = new CommandExecutor("java -jar " + ClassDiscovery.GetClassContainer(Main.class).getPath() + " " + StringUtils.Join(args, " ") + " --in-shell");
                ce.start();
                System.exit(0);
            }
        } else if (mode == siteDeploy) {
            boolean clearLocalCache = parsedArgs.isFlagSet("clear-local-cache");
            if (clearLocalCache) {
                PersistenceNetwork p = SiteDeploy.getPersistenceNetwork();
                if (p == null) {
                    System.out.println("Cannot get reference to persistence network");
                    System.exit(1);
                    return;
                }
                DaemonManager dm = new DaemonManager();
                p.clearKey(dm, new String[] { "site_deploy", "local_cache" });
                dm.waitForThreads();
                System.out.println("Local cache cleared");
                System.exit(0);
            }
            boolean generatePrefs = parsedArgs.isFlagSet("generate-prefs");
            boolean useLocalCache = parsedArgs.isFlagSet("use-local-cache");
            boolean doValidation = parsedArgs.isFlagSet("do-validation");
            String configString = parsedArgs.getStringArgument("config");
            if ("".equals(configString)) {
                System.err.println("Config file missing, check command and try again");
                System.exit(1);
            }
            File config = new File(configString);
            SiteDeploy.run(generatePrefs, useLocalCache, config, "", doValidation);
        } else if (mode == newMode) {
            String li = OSUtils.GetLineEnding();
            for (String file : parsedArgs.getStringListArgument()) {
                File f = new File(file);
                if (f.exists() && !parsedArgs.isFlagSet('f')) {
                    System.out.println(file + " already exists, refusing to create");
                    continue;
                }
                f.createNewFile();
                f.setExecutable(true);
                FileUtil.write("#!/usr/bin/env /usr/local/bin/mscript" + li + "<!" + li + "\tstrict;" + li + "\tname: " + f.getName() + ";" + li + "\tauthor: " + StaticLayer.GetConvertor().GetUser(null) + ";" + li + "\tcreated: " + new Scheduling.simple_date().exec(Target.UNKNOWN, null, new CString("yyyy-MM-dd", Target.UNKNOWN)).val() + ";" + li + "\tdescription: " + ";" + li + ">" + li + li, f, true);
            }
        } else {
            throw new Error("Should not have gotten here");
        }
    } catch (NoClassDefFoundError error) {
        StreamUtils.GetSystemErr().println(getNoClassDefFoundErrorMessage(error));
    }
}
Also used : DocGenExportTool(com.laytonsmith.tools.docgen.DocGenExportTool) OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) ArrayList(java.util.ArrayList) CommandExecutor(com.laytonsmith.PureUtilities.CommandExecutor) CString(com.laytonsmith.core.constructs.CString) PersistenceNetwork(com.laytonsmith.persistence.PersistenceNetwork) ArgumentSuite(com.laytonsmith.PureUtilities.ArgumentSuite) ConnectionMixinFactory(com.laytonsmith.persistence.io.ConnectionMixinFactory) FunctionList(com.laytonsmith.core.functions.FunctionList) List(java.util.List) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) ProfilerSummary(com.laytonsmith.tools.ProfilerSummary) ClassDiscovery(com.laytonsmith.PureUtilities.ClassLoading.ClassDiscovery) FileInputStream(java.io.FileInputStream) FileOutputStream(java.io.FileOutputStream) Map(java.util.Map) HashMap(java.util.HashMap) File(java.io.File) ClassDiscoveryCache(com.laytonsmith.PureUtilities.ClassLoading.ClassDiscoveryCache) Set(java.util.Set) HashSet(java.util.HashSet) HeadlessException(java.awt.HeadlessException) FunctionBase(com.laytonsmith.core.functions.FunctionBase) DocGen(com.laytonsmith.tools.docgen.DocGen) ExtensionDocGen(com.laytonsmith.tools.docgen.ExtensionDocGen) ArgumentParser(com.laytonsmith.PureUtilities.ArgumentParser) URI(java.net.URI) ConfigCompileException(com.laytonsmith.core.exceptions.ConfigCompileException) CString(com.laytonsmith.core.constructs.CString) Interpreter(com.laytonsmith.tools.Interpreter) ConsoleReader(jline.console.ConsoleReader) DaemonManager(com.laytonsmith.PureUtilities.DaemonManager) RSAEncrypt(com.laytonsmith.PureUtilities.Common.RSAEncrypt) IOException(java.io.IOException) ConfigCompileGroupException(com.laytonsmith.core.exceptions.ConfigCompileGroupException)

Example 53 with HeadlessException

use of java.awt.HeadlessException in project Schillsaver by Valkryst.

the class JobController method selectOutputFolder.

/**
 * Open a file chooser for the user to select an output directory for
 * the job.
 */
private void selectOutputFolder() {
    final JFileChooser fileChooser = new JFileChooser();
    fileChooser.setDragEnabled(false);
    fileChooser.setMultiSelectionEnabled(false);
    fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    fileChooser.setDialogTitle("Directory Selection");
    fileChooser.setCurrentDirectory(new File(System.getProperty("user.home")));
    fileChooser.setApproveButtonText("Accept");
    try {
        int returnVal = fileChooser.showOpenDialog(null);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            view.getTextField_outputFolder().setText(fileChooser.getSelectedFile().getPath() + "/");
        }
    } catch (final HeadlessException e) {
        LogManager.getLogger().error(e);
        AlertManager.showErrorAndWait("There was an issue selecting an output folder.\nSee the log file for more information.");
    }
}
Also used : JFileChooser(javax.swing.JFileChooser) HeadlessException(java.awt.HeadlessException) File(java.io.File)

Example 54 with HeadlessException

use of java.awt.HeadlessException in project h2database by h2database.

the class TestTools method testConsole.

private void testConsole() throws Exception {
    String old = System.getProperty(SysProperties.H2_BROWSER);
    Console c = new Console();
    c.setOut(new PrintStream(new ByteArrayOutputStream()));
    try {
        // start including browser
        lastUrl = "-";
        System.setProperty(SysProperties.H2_BROWSER, "call:" + TestTools.class.getName() + ".openBrowser");
        c.runTool("-web", "-webPort", "9002", "-tool", "-browser", "-tcp", "-tcpPort", "9003", "-pg", "-pgPort", "9004");
        assertContains(lastUrl, ":9002");
        shutdownConsole(c);
        // check if starting the browser works
        c.runTool("-web", "-webPort", "9002", "-tool");
        lastUrl = "-";
        c.actionPerformed(new ActionEvent(this, 0, "console"));
        assertContains(lastUrl, ":9002");
        lastUrl = "-";
        // double-click prevention is 100 ms
        Thread.sleep(200);
        try {
            MouseEvent me = new MouseEvent(new Button(), 0, 0, 0, 0, 0, 0, false, MouseEvent.BUTTON1);
            c.mouseClicked(me);
            assertContains(lastUrl, ":9002");
            lastUrl = "-";
            // no delay - ignore because it looks like a double click
            c.mouseClicked(me);
            assertEquals("-", lastUrl);
            // open the window
            c.actionPerformed(new ActionEvent(this, 0, "status"));
            c.actionPerformed(new ActionEvent(this, 0, "exit"));
            // check if the service was stopped
            c.runTool("-webPort", "9002");
        } catch (HeadlessException e) {
        // ignore
        }
        shutdownConsole(c);
        // trying to use the same port for two services should fail,
        // but also stop the first service
        createClassProxy(c.getClass());
        assertThrows(ErrorCode.EXCEPTION_OPENING_PORT_2, c).runTool("-web", "-webPort", "9002", "-tcp", "-tcpPort", "9002");
        c.runTool("-web", "-webPort", "9002");
    } finally {
        if (old != null) {
            System.setProperty(SysProperties.H2_BROWSER, old);
        } else {
            System.clearProperty(SysProperties.H2_BROWSER);
        }
        shutdownConsole(c);
    }
}
Also used : PrintStream(java.io.PrintStream) MouseEvent(java.awt.event.MouseEvent) HeadlessException(java.awt.HeadlessException) Button(java.awt.Button) ActionEvent(java.awt.event.ActionEvent) Console(org.h2.tools.Console) ByteArrayOutputStream(java.io.ByteArrayOutputStream)

Example 55 with HeadlessException

use of java.awt.HeadlessException in project org.alloytools.alloy by AlloyTools.

the class OurDialog method askFile.

public static File askFile(boolean isOpen, String dir, final String[] exts, final String description) {
    if (dir == null)
        dir = Util.getCurrentDirectory();
    if (!(new File(dir).isDirectory()))
        dir = System.getProperty("user.home");
    dir = Util.canon(dir);
    String ans;
    if (useAWT) {
        // this window is
        Frame parent = new Frame("Alloy File Dialog");
        // unused and not
        // shown; needed by
        // FileDialog and
        // nothing more
        FileDialog open = new FileDialog(parent, isOpen ? "Open..." : "Save...");
        open.setAlwaysOnTop(true);
        open.setMode(isOpen ? FileDialog.LOAD : FileDialog.SAVE);
        open.setDirectory(dir);
        if (exts != null && exts.length > 0)
            open.setFilenameFilter(new FilenameFilter() {

                @Override
                public boolean accept(File dir, String name) {
                    for (String ext : exts) {
                        if (name.toLowerCase(Locale.US).endsWith(ext))
                            return true;
                    }
                    return false;
                }
            });
        // This method blocks until the user either
        open.setVisible(true);
        // chooses something or cancels the dialog.
        parent.dispose();
        if (open.getFile() == null)
            return null;
        else
            ans = open.getDirectory() + File.separatorChar + open.getFile();
    } else {
        try {
            JFileChooser open = new JFileChooser(dir) {

                private static final long serialVersionUID = 0;

                @Override
                public JDialog createDialog(Component parent) throws HeadlessException {
                    JDialog dialog = super.createDialog(null);
                    dialog.setAlwaysOnTop(true);
                    return dialog;
                }
            };
            open.setDialogTitle(isOpen ? "Open..." : "Save...");
            open.setApproveButtonText(isOpen ? "Open" : "Save");
            open.setDialogType(isOpen ? JFileChooser.OPEN_DIALOG : JFileChooser.SAVE_DIALOG);
            if (exts != null && exts.length > 0)
                open.setFileFilter(new FileFilter() {

                    @Override
                    public boolean accept(File file) {
                        for (String ext : exts) {
                            boolean result = !file.isFile() || file.getPath().toLowerCase(Locale.US).endsWith(ext);
                            if (result)
                                return true;
                        }
                        return false;
                    }

                    @Override
                    public String getDescription() {
                        return description;
                    }
                });
            if (open.showDialog(null, null) != JFileChooser.APPROVE_OPTION || open.getSelectedFile() == null)
                return null;
            ans = open.getSelectedFile().getPath();
        } catch (Exception ex) {
            // Some combination of Windows version and JDK version will
            // trigger this failure.
            // In such a case, we'll fall back to using the "AWT" file open
            // dialog
            useAWT = true;
            return askFile(isOpen, dir, exts, description);
        }
    }
    if (!isOpen) {
        int lastSlash = ans.lastIndexOf(File.separatorChar);
        int lastDot = (lastSlash >= 0) ? ans.indexOf('.', lastSlash) : ans.indexOf('.');
        if (lastDot < 0 && exts != null && exts.length > 0)
            ans = ans + exts[0];
    }
    return new File(Util.canon(ans));
}
Also used : FilenameFilter(java.io.FilenameFilter) JFrame(javax.swing.JFrame) Frame(java.awt.Frame) JFileChooser(javax.swing.JFileChooser) JComponent(javax.swing.JComponent) Component(java.awt.Component) FileFilter(javax.swing.filechooser.FileFilter) File(java.io.File) FileDialog(java.awt.FileDialog) JDialog(javax.swing.JDialog) HeadlessException(java.awt.HeadlessException)

Aggregations

HeadlessException (java.awt.HeadlessException)63 IOException (java.io.IOException)19 File (java.io.File)16 Point (java.awt.Point)8 GraphicsConfiguration (java.awt.GraphicsConfiguration)7 BufferedImage (java.awt.image.BufferedImage)7 Dimension (java.awt.Dimension)6 Rectangle (java.awt.Rectangle)6 ActionEvent (java.awt.event.ActionEvent)5 PrintService (javax.print.PrintService)5 StreamPrintService (javax.print.StreamPrintService)5 JFrame (javax.swing.JFrame)5 GraphicsDevice (java.awt.GraphicsDevice)4 GraphicsEnvironment (java.awt.GraphicsEnvironment)4 PrinterException (java.awt.print.PrinterException)4 DialogTypeSelection (javax.print.attribute.standard.DialogTypeSelection)4 ImageIcon (javax.swing.ImageIcon)4 JFileChooser (javax.swing.JFileChooser)4 Frame (java.awt.Frame)3 Graphics (java.awt.Graphics)3