// -----BEGIN DISCLAIMER-----
/*******************************************************************************
 * Copyright (c) 2011, 2020 JCrypTool Team and Contributors
 * 
 * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse
 * Public License v1.0 which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *******************************************************************************/
// -----END DISCLAIMER-----
package org.jcryptool.core;

import java.util.Locale;

import org.eclipse.equinox.app.IApplication;
import org.eclipse.equinox.app.IApplicationContext;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
import org.jcryptool.core.logging.utils.LogUtil;

/**
 * This class controls all aspects of the application's execution.
 * 
 * @author Dominik Schadow
 * @version 1.0.0
 */
public class Application implements IApplication {

    /*
     * (non-Javadoc)
     * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
     */
    @Override
	public Object start(IApplicationContext context) throws Exception {
        try {
        	// Set English as default language if the operating system language is neither 
        	// German, English or French.
        	if (!Locale.getDefault().getLanguage().equals("de") &&
        			!Locale.getDefault().getLanguage().equals("en") &&
        			!Locale.getDefault().getLanguage().equals("fr")) {
              System.setProperty("osgi.nl", "en"); // fixes Platform.getNL()
              Locale.setDefault(Locale.ENGLISH);
        	}
        } catch (Exception e) {
            LogUtil.logError(CorePlugin.PLUGIN_ID, e);
        }
        
        Display display = PlatformUI.createDisplay();
        try {
            int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
            if (returnCode == PlatformUI.RETURN_RESTART) {
                return IApplication.EXIT_RESTART;
            } else {
                return IApplication.EXIT_OK;
            }
        } finally {
            display.dispose();
        }

    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.equinox.app.IApplication#stop()
     */
    @Override
	public void stop() {
        final IWorkbench workbench = PlatformUI.getWorkbench();
        if (workbench == null) {
            return;
        }
        final Display display = workbench.getDisplay();
        display.syncExec(new Runnable() {
            @Override
			public void run() {
                if (!display.isDisposed()) {
                    workbench.close();
                }
            }
        });
    }
}

@@ -1693,16 +1693,71 @@
      %09%7D%0A
+        %09System.setProperty(%22file.encoding%22, %22UTF-8%22);%0A
         

Set default workspace encoding to UTF-8