11/* ******************************************************************************
2- * Copyright 2000-2014 JetBrains s.r.o.
2+ * Copyright 2000-2016 JetBrains s.r.o.
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
1414 * limitations under the License.
1515 *
1616 *******************************************************************************/
17- package org.jetbrains.kotlin.ui.launch ;
17+ package org.jetbrains.kotlin.ui.launch
1818
19- import org.eclipse.core.resources.IProject;
20- import org.eclipse.core.runtime.CoreException;
21- import org.eclipse.jface.dialogs.MessageDialogWithToggle;
22- import org.eclipse.swt.widgets.Display;
23- import org.jetbrains.annotations.NotNull;
24- import org.jetbrains.kotlin.core.log.KotlinLogger;
25- import org.jetbrains.kotlin.core.utils.ProjectUtils;
26- import org.jetbrains.kotlin.eclipse.ui.utils.ProjectScopedPreferenceUtils;
27- import org.osgi.service.prefs.BackingStoreException;
19+ import org.eclipse.core.resources.IProject
20+ import org.eclipse.jface.dialogs.MessageDialogWithToggle
21+ import org.eclipse.swt.widgets.Display
22+ import org.jetbrains.kotlin.core.utils.ProjectUtils
23+ import org.jetbrains.kotlin.eclipse.ui.utils.ProjectScopedPreferenceUtils
2824
29- public class KotlinRuntimeConfigurationSuggestor implements Runnable {
30-
31- private static final String SUGGESTION = " the Kotlin runtime library" ;
32- private static final String MESSAGE_DIALOG_TITLE = String .format(" Add %s" , SUGGESTION );
33- private static final String MESSAGE_DIALOG_TEXT_FORMAT = " Would you like to add %s to the project \' %s\' ?" ;
34-
35- private static final String MESSAGE_DIALOG_TOOGLE_TEXT = " Don't ask again for this project" ;
36-
37- private static final String PREFERENCE_KEY = " suggest.Configure.Runtime" ;
38-
39- @NotNull
40- private final IProject project;
41-
42- protected KotlinRuntimeConfigurationSuggestor (@NotNull IProject project) {
43- this .project = project;
25+ class KotlinRuntimeConfigurationSuggestor (private val project : IProject ) : Runnable {
26+ companion object {
27+ private val SUGGESTION = " the Kotlin runtime library"
28+ private val MESSAGE_DIALOG_TITLE = " Add $SUGGESTION "
29+ private val MESSAGE_DIALOG_TEXT_FORMAT = " Would you like to add %s to the project \' %s\' ?"
30+ private val MESSAGE_DIALOG_TOOGLE_TEXT = " Don't ask again for this project"
31+ private val PREFERENCE_KEY = " suggest.Configure.Runtime"
32+
33+ @JvmStatic fun suggestForProject (project : IProject ) {
34+ Display .getDefault().asyncExec(KotlinRuntimeConfigurationSuggestor (project))
35+ }
4436 }
45-
46- @Override
47- public final void run () {
48- try {
49- if (! ProjectUtils .hasKotlinRuntime(project)) {
50- if (ProjectScopedPreferenceUtils .getBooleanPreference(project, PREFERENCE_KEY , true )) {
51- MessageDialogWithToggle dialogWithToogle = MessageDialogWithToggle .openYesNoQuestion(
52- Display .getDefault().getActiveShell(),
53- MESSAGE_DIALOG_TITLE ,
54- String .format(MESSAGE_DIALOG_TEXT_FORMAT , SUGGESTION , project.getName()),
55- MESSAGE_DIALOG_TOOGLE_TEXT ,
56- false ,
57- null ,
58- null );
59-
60- if (dialogWithToogle.getReturnCode() == 2 ) {
61- ProjectUtils .addKotlinRuntime(project);
62- }
63- if (dialogWithToogle.getToggleState()) {
64- ProjectScopedPreferenceUtils .putBooleanPreference(project, PREFERENCE_KEY , false );
65- }
66- }
37+
38+ override fun run () {
39+ if (ProjectUtils .hasKotlinRuntime(project)) return
40+
41+ if (ProjectScopedPreferenceUtils .getBooleanPreference(project, PREFERENCE_KEY , true )) {
42+ val dialogWithToogle = MessageDialogWithToggle .openYesNoQuestion(
43+ Display .getDefault().getActiveShell(),
44+ MESSAGE_DIALOG_TITLE ,
45+ String .format(MESSAGE_DIALOG_TEXT_FORMAT , SUGGESTION , project.getName()),
46+ MESSAGE_DIALOG_TOOGLE_TEXT ,
47+ false ,
48+ null ,
49+ null )
50+ if (dialogWithToogle.returnCode == 2 ) {
51+ ProjectUtils .addKotlinRuntime(project)
52+ }
53+
54+ if (dialogWithToogle.getToggleState()) {
55+ ProjectScopedPreferenceUtils .putBooleanPreference(project, PREFERENCE_KEY , false )
6756 }
68- } catch (CoreException | BackingStoreException e) {
69- KotlinLogger .logAndThrow(e);
7057 }
7158 }
72-
73- public static void suggestForProject(@NotNull IProject project) {
74- Display .getDefault().asyncExec(new KotlinRuntimeConfigurationSuggestor (project));
75- }
76- }
59+ }
0 commit comments