*/
package com.intellij.idea;
+import com.intellij.ide.customize.CustomizeIDEWizardDialog;
+import com.intellij.ide.plugins.PluginManagerCore;
+import com.intellij.ide.startupWizard.StartupWizard;
import com.intellij.openapi.application.ApplicationInfo;
import com.intellij.openapi.application.ApplicationNamesInfo;
import com.intellij.openapi.application.ConfigImportHelper;
import com.intellij.openapi.application.PathManager;
+import com.intellij.openapi.application.ex.ApplicationInfoEx;
import com.intellij.openapi.application.impl.ApplicationInfoImpl;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.ui.AppUIUtil;
import com.intellij.util.Consumer;
import com.intellij.util.EnvironmentUtil;
+import com.intellij.util.PlatformUtils;
import com.intellij.util.lang.UrlClassLoader;
import com.sun.jna.Native;
import org.jetbrains.annotations.NonNls;
ourLock.setActivateListener(consumer);
}
- interface AppStarter {
- void start(boolean newConfigFolder);
- }
-
public synchronized static int getAcquiredPort() {
return ourLock.getAcquiredPort();
}
+ interface AppStarter {
+ void start(boolean newConfigFolder);
+ }
+
static void prepareAndStart(String[] args, AppStarter appStarter) {
boolean newConfigFolder = false;
log.info("JVM Args: " + StringUtil.join(arguments, " "));
}
}
+
+ static void runStartupWizard() {
+ ApplicationInfoEx appInfo = ApplicationInfoImpl.getShadowInstance();
+
+ String stepsProvider = appInfo.getCustomizeIDEWizardStepsProvider();
+ if (stepsProvider != null) {
+ CustomizeIDEWizardDialog.showCustomSteps(stepsProvider);
+ PluginManagerCore.invalidatePlugins();
+ return;
+ }
+
+ if (PlatformUtils.isIntelliJ()) {
+ new CustomizeIDEWizardDialog().show();
+ PluginManagerCore.invalidatePlugins();
+ return;
+ }
+
+ List<ApplicationInfoEx.PluginChooserPage> pages = appInfo.getPluginChooserPages();
+ if (!pages.isEmpty()) {
+ StartupWizard startupWizard = new StartupWizard(pages);
+ startupWizard.setCancelText("Skip");
+ startupWizard.show();
+ PluginManagerCore.invalidatePlugins();
+ }
+ }
}
package com.intellij.idea;
import com.intellij.ide.plugins.PluginManager;
+import com.intellij.openapi.application.ConfigImportHelper;
import com.intellij.util.PlatformUtils;
import javax.swing.*;
StartupUtil.prepareAndStart(args, new StartupUtil.AppStarter() {
@Override
- public void start(boolean newConfigFolder) {
+ public void start(final boolean newConfigFolder) {
//noinspection SSBasedInspection
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
PluginManager.installExceptionHandler();
+
+ if (newConfigFolder && !Boolean.getBoolean(ConfigImportHelper.CONFIG_IMPORTED_IN_CURRENT_SESSION_KEY)) {
+ StartupUtil.runStartupWizard();
+ }
+
final IdeaApplication app = new IdeaApplication(args);
//noinspection SSBasedInspection
SwingUtilities.invokeLater(new Runnable() {