private void execute() {
        if (!settings.console) {
            settings.generateDefaultStructures = true;

            eobConverterForm = new EobConverterForm();
            final JFrame settingsFrame = new JFrame("Eye of the Beholder Converter " + CONVERTER_VERSION);
            settingsFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            settingsFrame.add(eobConverterForm.getMainPanel());

            eobConverterForm.getSrcPathField().setText(settings.srcPath);
            eobConverterForm.getDstPathField().setText(settings.dstPath);
            eobConverterForm.getExtChangesPathField().setText(settings.extChangesPath);
            eobConverterForm.getDebugModeCheckBox().setSelected(settings.debug);
            eobConverterForm.getScriptDebugModeCheckBox().setSelected(settings.scriptDebug);
            eobConverterForm.getDebugWallCheckBox().setSelected(settings.debugWalls);
            eobConverterForm.getItemNameField().setText(settings.showOnlyItemName);
            eobConverterForm.getFromLevelField().setText(settings.from.toString());
            eobConverterForm.getToLevelField().setText(settings.to.toString());
            eobConverterForm.getGenerateDefaultStructuresCheckBox().setSelected(settings.generateDefaultStructures);
            eobConverterForm.getCreateLevelInSeparateCheckBox().setSelected(settings.createFilePerLevel);
            eobConverterForm.getWriteUnpackedInfFilesCheckBox().setSelected(settings.writeUnpackedInf);
            eobConverterForm.getExportEobScriptsCheckBox().setSelected(settings.exportEobScripts);
            eobConverterForm.getAddEobScriptIntoLuaCheckBox().setSelected(settings.addEobScriptIntoLua);
            eobConverterForm.getPrintItemTypesCheckBox().setSelected(settings.showItemTypes);
            eobConverterForm.getPrintItemsCheckBox().setSelected(settings.showItems);
            eobConverterForm.getPrintLevelInfoCheckBox().setSelected(settings.showLevelInfo);
            eobConverterForm.getConvertButton().addActionListener(new AbstractAction() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    eobConverterForm.getOutput().setText("");
                    fillSettings();
                    convert();
                }
            });
            eobConverterForm.getSrcPathChooser().addActionListener(new AbstractAction() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    JFileChooser fileChooser = new JFileChooser(eobConverterForm.getSrcPathField().getText());
                    fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
                    if (fileChooser.showOpenDialog(settingsFrame) == JFileChooser.APPROVE_OPTION) {
                        eobConverterForm.getSrcPathField().setText(fileChooser.getSelectedFile().getPath());
                    }
                }
            });
            eobConverterForm.getDstPathChooser().addActionListener(new AbstractAction() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    JFileChooser fileChooser = new JFileChooser(eobConverterForm.getDstPathField().getText());
                    fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
                    if (fileChooser.showOpenDialog(settingsFrame) == JFileChooser.APPROVE_OPTION) {
                        eobConverterForm.getDstPathField().setText(fileChooser.getSelectedFile().getPath());
                    }
                }
            });
            eobConverterForm.getExtChangesPathChooser().addActionListener(new AbstractAction() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    JFileChooser fileChooser = new JFileChooser(eobConverterForm.getExtChangesPathField().getText());
                    fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
                    if (fileChooser.showOpenDialog(settingsFrame) == JFileChooser.APPROVE_OPTION) {
                        eobConverterForm.getExtChangesPathField().setText(fileChooser.getSelectedFile().getPath());
                    }
                }
            });
            EobLogger.output = eobConverterForm.getOutput();

            settingsFrame.setMinimumSize(new Dimension(600, 600));
            settingsFrame.pack();
            settingsFrame.setLocationRelativeTo(null);
            settingsFrame.setVisible(true);
        } else {
            convert();
        }
    }