diff --git a/build/images/idea_CE128.png b/build/images/idea_CE128.png new file mode 100644 index 000000000000..5b04015a5588 Binary files /dev/null and b/build/images/idea_CE128.png differ diff --git a/build/images/idea_CE16.png b/build/images/idea_CE16.png new file mode 100644 index 000000000000..c0e931fc86c9 Binary files /dev/null and b/build/images/idea_CE16.png differ diff --git a/build/images/idea_CE32.png b/build/images/idea_CE32.png new file mode 100644 index 000000000000..0c94898e69fe Binary files /dev/null and b/build/images/idea_CE32.png differ diff --git a/build/images/idea_CE48.png b/build/images/idea_CE48.png new file mode 100644 index 000000000000..225733c00f1c Binary files /dev/null and b/build/images/idea_CE48.png differ diff --git a/build/scripts/dist.gant b/build/scripts/dist.gant index 6669d456d1a4..0e087c7eacb1 100644 --- a/build/scripts/dist.gant +++ b/build/scripts/dist.gant @@ -196,6 +196,7 @@ def layoutLinux(Map args, String home, Paths paths) { fileset(dir: "$home/bin") { include(name: "*.*") } fileset(dir: "$home/bin/linux") { include(name: "*.*") } fileset(dir: "$home/bin/nix") { include(name: "*.*") } + fileset(dir: "$home/build/images") } } diff --git a/images/src/META-INF/ImagesPlugin.xml b/images/src/META-INF/ImagesPlugin.xml index 8ff4e61b7bea..989297b32af5 100644 --- a/images/src/META-INF/ImagesPlugin.xml +++ b/images/src/META-INF/ImagesPlugin.xml @@ -27,7 +27,7 @@ - diff --git a/images/src/org/intellij/images/actions/EditExternallyAction.java b/images/src/org/intellij/images/actions/EditExternallyAction.java new file mode 100644 index 000000000000..795cd0ba873e --- /dev/null +++ b/images/src/org/intellij/images/actions/EditExternallyAction.java @@ -0,0 +1,124 @@ +/* + * Copyright 2000-2009 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.intellij.images.actions; + +import com.intellij.execution.ExecutionException; +import com.intellij.execution.configurations.GeneralCommandLine; +import com.intellij.openapi.actionSystem.ActionPlaces; +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.actionSystem.PlatformDataKeys; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.ui.Messages; +import com.intellij.openapi.util.SystemInfo; +import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.util.text.StringUtil; +import com.intellij.openapi.vfs.VfsUtil; +import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.util.EnvironmentUtil; +import org.intellij.images.ImagesBundle; +import org.intellij.images.fileTypes.ImageFileTypeManager; +import org.intellij.images.options.Options; +import org.intellij.images.options.OptionsManager; +import org.intellij.images.options.impl.OptionsConfigurabe; + +import java.io.File; +import java.util.Map; +import java.util.Set; + +/** + * Open image file externally. + * + * @author Alexey Efimov + */ +public final class EditExternallyAction extends AnAction { + public void actionPerformed(AnActionEvent e) { + Project project = e.getData(PlatformDataKeys.PROJECT); + VirtualFile[] files = e.getData(PlatformDataKeys.VIRTUAL_FILE_ARRAY); + Options options = OptionsManager.getInstance().getOptions(); + String executablePath = options.getExternalEditorOptions().getExecutablePath(); + if (StringUtil.isEmpty(executablePath)) { + Messages.showErrorDialog(project, + ImagesBundle.message("error.empty.external.editor.path"), + ImagesBundle.message("error.title.empty.external.editor.path")); + OptionsConfigurabe.show(project); + } + else { + if (files != null) { + Map env = EnvironmentUtil.getEnviromentProperties(); + Set varNames = env.keySet(); + for (String varName : varNames) { + if (SystemInfo.isWindows) { + executablePath = StringUtil.replace(executablePath, "%" + varName + "%", env.get(varName), true); + } + else { + executablePath = StringUtil.replace(executablePath, "${" + varName + "}", env.get(varName), false); + } + } + executablePath = FileUtil.toSystemDependentName(executablePath); + File executable = new File(executablePath); + GeneralCommandLine commandLine = new GeneralCommandLine(); + commandLine.setExePath(executable.exists() ? executable.getAbsolutePath() : executablePath); + ImageFileTypeManager typeManager = ImageFileTypeManager.getInstance(); + for (VirtualFile file : files) { + if (file.isInLocalFileSystem() && typeManager.isImage(file)) { + commandLine.addParameter(VfsUtil.virtualToIoFile(file).getAbsolutePath()); + } + } + commandLine.setWorkingDirectory(new File(executablePath).getParentFile()); + + try { + commandLine.createProcess(); + } + catch (ExecutionException ex) { + Messages.showErrorDialog(project, + ex.getLocalizedMessage(), + ImagesBundle.message("error.title.launching.external.editor")); + OptionsConfigurabe.show(project); + } + } + } + } + + public void update(AnActionEvent e) { + super.update(e); + + VirtualFile[] files = e.getData(PlatformDataKeys.VIRTUAL_FILE_ARRAY); + final boolean isEnabled = isImages(files); + if (e.getPlace().equals(ActionPlaces.PROJECT_VIEW_POPUP)) { + e.getPresentation().setVisible(isEnabled); + } + else { + e.getPresentation().setEnabled(isEnabled); + } + } + + private static boolean isImages(VirtualFile[] files) { + boolean isImagesFound = false; + if (files != null) { + ImageFileTypeManager typeManager = ImageFileTypeManager.getInstance(); + for (VirtualFile file : files) { + boolean isImage = typeManager.isImage(file); + isImagesFound |= isImage; + if (!file.isInLocalFileSystem() || !isImage) { + return false; + } + } + } + return isImagesFound; + } +} diff --git a/images/src/org/intellij/images/actions/EditExternalyAction.java b/images/src/org/intellij/images/actions/EditExternalyAction.java deleted file mode 100644 index 3399c400a95d..000000000000 --- a/images/src/org/intellij/images/actions/EditExternalyAction.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright 2000-2009 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** $Id$ */ - -package org.intellij.images.actions; - -import com.intellij.openapi.actionSystem.ActionPlaces; -import com.intellij.openapi.actionSystem.AnAction; -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.PlatformDataKeys; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.ui.Messages; -import com.intellij.openapi.util.SystemInfo; -import com.intellij.openapi.util.io.FileUtil; -import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.vfs.VfsUtil; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.util.EnvironmentUtil; -import org.intellij.images.ImagesBundle; -import org.intellij.images.fileTypes.ImageFileTypeManager; -import org.intellij.images.options.Options; -import org.intellij.images.options.OptionsManager; -import org.intellij.images.options.impl.OptionsConfigurabe; - -import java.io.File; -import java.io.IOException; -import java.util.Map; -import java.util.Set; - -/** - * Open image file externaly. - * - * @author Alexey Efimov - */ -public final class EditExternalyAction extends AnAction { - public void actionPerformed(AnActionEvent e) { - Project project = e.getData(PlatformDataKeys.PROJECT); - VirtualFile[] files = e.getData(PlatformDataKeys.VIRTUAL_FILE_ARRAY); - Options options = OptionsManager.getInstance().getOptions(); - String executablePath = options.getExternalEditorOptions().getExecutablePath(); - if (StringUtil.isEmpty(executablePath)) { - Messages.showErrorDialog(project, - ImagesBundle.message("error.empty.external.editor.path"), - ImagesBundle.message("error.title.empty.external.editor.path")); - OptionsConfigurabe.show(project); - } else { - if (files != null) { - Map env = EnvironmentUtil.getEnviromentProperties(); - Set varNames = env.keySet(); - for (String varName : varNames) { - if (SystemInfo.isWindows) { - executablePath = StringUtil.replace(executablePath, "%" + varName + "%", env.get(varName), true); - } else { - executablePath = StringUtil.replace(executablePath, "${" + varName + "}", env.get(varName), false); - } - } - executablePath = FileUtil.toSystemDependentName(executablePath); - File executable = new File(executablePath); - StringBuffer commandLine = new StringBuffer(executable.exists() ? executable.getAbsolutePath() : executablePath); - ImageFileTypeManager typeManager = ImageFileTypeManager.getInstance(); - for (VirtualFile file : files) { - if (file.isInLocalFileSystem() && typeManager.isImage(file)) { - commandLine.append(" \""); - commandLine.append(VfsUtil.virtualToIoFile(file).getAbsolutePath()); - commandLine.append('\"'); - } - } - - try { - File executableFile = new File(executablePath); - Runtime.getRuntime().exec(commandLine.toString(), null, executableFile.getParentFile()); - } catch (IOException ex) { - Messages.showErrorDialog(project, - ex.getLocalizedMessage(), - ImagesBundle.message("error.title.launching.external.editor")); - OptionsConfigurabe.show(project); - } - } - } - } - - public void update(AnActionEvent e) { - super.update(e); - - VirtualFile[] files = e.getData(PlatformDataKeys.VIRTUAL_FILE_ARRAY); - final boolean isEnabled = isImages(files); - if (e.getPlace().equals(ActionPlaces.PROJECT_VIEW_POPUP)) { - e.getPresentation().setVisible(isEnabled); - } - else { - e.getPresentation().setEnabled(isEnabled); - } - } - - private static boolean isImages(VirtualFile[] files) { - boolean isImagesFound = false; - if (files != null) { - ImageFileTypeManager typeManager = ImageFileTypeManager.getInstance(); - for (VirtualFile file : files) { - boolean isImage = typeManager.isImage(file); - isImagesFound |= isImage; - if (!file.isInLocalFileSystem() || !isImage) { - return false; - } - } - } - return isImagesFound; - } -} diff --git a/java/compiler/impl/src/com/intellij/compiler/ant/BuildPropertiesImpl.java b/java/compiler/impl/src/com/intellij/compiler/ant/BuildPropertiesImpl.java index 80dae42cb5e6..c7e1a8d20a50 100644 --- a/java/compiler/impl/src/com/intellij/compiler/ant/BuildPropertiesImpl.java +++ b/java/compiler/impl/src/com/intellij/compiler/ant/BuildPropertiesImpl.java @@ -180,7 +180,7 @@ public class BuildPropertiesImpl extends BuildProperties { } } - final Sdk projectJdk = ProjectRootManager.getInstance(project).getProjectJdk(); + final Sdk projectJdk = ProjectRootManager.getInstance(project).getProjectSdk(); add(new Property(PROPERTY_PROJECT_JDK_HOME, projectJdk != null ? propertyRef(getJdkHomeProperty(projectJdk.getName())) : ""), 1); add(new Property(PROPERTY_PROJECT_JDK_BIN, projectJdk != null ? propertyRef(getJdkBinProperty(projectJdk.getName())) : "")); add(new Property(PROPERTY_PROJECT_JDK_CLASSPATH, projectJdk != null ? getJdkPathId(projectJdk.getName()) : "")); diff --git a/java/execution/impl/src/com/intellij/execution/util/JreVersionDetector.java b/java/execution/impl/src/com/intellij/execution/util/JreVersionDetector.java index 102cb438a332..feaa6a69c22c 100644 --- a/java/execution/impl/src/com/intellij/execution/util/JreVersionDetector.java +++ b/java/execution/impl/src/com/intellij/execution/util/JreVersionDetector.java @@ -49,7 +49,7 @@ public class JreVersionDetector { return isJre50(jdk); } - final Sdk projectJdk = ProjectRootManager.getInstance(configuration.getProject()).getProjectJdk(); + final Sdk projectJdk = ProjectRootManager.getInstance(configuration.getProject()).getProjectSdk(); return isJre50(projectJdk); } } diff --git a/java/idea-ui/src/com/intellij/ide/impl/NewProjectUtil.java b/java/idea-ui/src/com/intellij/ide/impl/NewProjectUtil.java index 3a55f74021bd..d6fc7c720a39 100644 --- a/java/idea-ui/src/com/intellij/ide/impl/NewProjectUtil.java +++ b/java/idea-ui/src/com/intellij/ide/impl/NewProjectUtil.java @@ -19,6 +19,7 @@ */ package com.intellij.ide.impl; +import com.intellij.ide.GeneralSettings; import com.intellij.ide.IdeBundle; import com.intellij.ide.util.newProjectWizard.AddModuleWizard; import com.intellij.ide.util.projectWizard.ProjectBuilder; @@ -177,7 +178,7 @@ public class NewProjectUtil { if (versionString == null) return; ProjectRootManagerEx rootManager = ProjectRootManagerEx.getInstanceEx(project); - rootManager.setProjectJdk(jdk); + rootManager.setProjectSdk(jdk); LanguageLevel level = LanguageLevelUtil.getDefaultLanguageLevel(versionString); LanguageLevelProjectExtension ext = LanguageLevelProjectExtension.getInstance(project); if (level.compareTo(ext.getLanguageLevel()) < 0) { @@ -188,13 +189,16 @@ public class NewProjectUtil { public static void closePreviousProject(final Project projectToClose) { Project[] openProjects = ProjectManager.getInstance().getOpenProjects(); if (openProjects.length > 0) { - int exitCode = Messages.showDialog(IdeBundle.message("prompt.open.project.in.new.frame"), IdeBundle.message("title.new.project"), - new String[]{IdeBundle.message("button.newframe"), IdeBundle.message("button.existingframe")}, 1, 0, - Messages.getQuestionIcon()); + final GeneralSettings settings = GeneralSettings.getInstance(); + int exitCode = settings.getConfirmOpenNewProject(); + if (exitCode < 0) { + exitCode = Messages.showDialog(IdeBundle.message("prompt.open.project.in.new.frame"), IdeBundle.message("title.new.project"), + new String[]{IdeBundle.message("button.newframe"), IdeBundle.message("button.existingframe")}, 1, 0, + Messages.getQuestionIcon(), new ProjectNewWindowDoNotAskOption()); + } if (exitCode == 1) { // "No" option ProjectUtil.closeProject(projectToClose != null ? projectToClose : openProjects[openProjects.length - 1]); } } } - } diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddModuleWizard.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddModuleWizard.java index e0be57f7cafa..de335bac90a7 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddModuleWizard.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddModuleWizard.java @@ -301,7 +301,7 @@ public class AddModuleWizard extends AbstractWizard { return context.getProjectJdk(); } final Project project = context.getProject() == null ? ProjectManager.getInstance().getDefaultProject() : context.getProject(); - final Sdk projectJdk = ProjectRootManager.getInstance(project).getProjectJdk(); + final Sdk projectJdk = ProjectRootManager.getInstance(project).getProjectSdk(); if (projectJdk != null) { return projectJdk; } diff --git a/java/idea-ui/src/com/intellij/ide/util/projectWizard/JdkChooserPanel.java b/java/idea-ui/src/com/intellij/ide/util/projectWizard/JdkChooserPanel.java index 3fd85200e823..adcef1334736 100644 --- a/java/idea-ui/src/com/intellij/ide/util/projectWizard/JdkChooserPanel.java +++ b/java/idea-ui/src/com/intellij/ide/util/projectWizard/JdkChooserPanel.java @@ -223,14 +223,14 @@ public class JdkChooserPanel extends JPanel { } public static Sdk chooseAndSetJDK(final Project project) { - final Sdk projectJdk = ProjectRootManager.getInstance(project).getProjectJdk(); + final Sdk projectJdk = ProjectRootManager.getInstance(project).getProjectSdk(); final Sdk jdk = showDialog(project, ProjectBundle.message("module.libraries.target.jdk.select.title"), WindowManagerEx.getInstanceEx().getFrame(project), projectJdk); if (jdk == null) { return null; } ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() { - ProjectRootManager.getInstance(project).setProjectJdk(jdk); + ProjectRootManager.getInstance(project).setProjectSdk(jdk); } }); return jdk; diff --git a/java/idea-ui/src/com/intellij/ide/util/projectWizard/ProjectJdkForModuleStep.java b/java/idea-ui/src/com/intellij/ide/util/projectWizard/ProjectJdkForModuleStep.java index 4681a04b372f..0b562dff41a0 100644 --- a/java/idea-ui/src/com/intellij/ide/util/projectWizard/ProjectJdkForModuleStep.java +++ b/java/idea-ui/src/com/intellij/ide/util/projectWizard/ProjectJdkForModuleStep.java @@ -149,7 +149,7 @@ public class ProjectJdkForModuleStep extends ModuleWizardStep { @Nullable private static Sdk getDefaultJdk() { Project defaultProject = ProjectManagerEx.getInstanceEx().getDefaultProject(); - return ProjectRootManagerEx.getInstanceEx(defaultProject).getProjectJdk(); + return ProjectRootManagerEx.getInstanceEx(defaultProject).getProjectSdk(); } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectJdkConfigurable.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectJdkConfigurable.java index 5567ef30be8d..f03f13b0b953 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectJdkConfigurable.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectJdkConfigurable.java @@ -86,7 +86,7 @@ public class ProjectJdkConfigurable implements UnnamedConfigurable { myFreeze = true; final Sdk projectJdk = myJdksModel.getProjectSdk(); myCbProjectJdk.reloadModel(new JdkComboBox.NoneJdkComboBoxItem(), myProject); - final String sdkName = projectJdk == null ? ProjectRootManager.getInstance(myProject).getProjectJdkName() : projectJdk.getName(); + final String sdkName = projectJdk == null ? ProjectRootManager.getInstance(myProject).getProjectSdkName() : projectJdk.getName(); if (sdkName != null) { final Sdk jdk = myJdksModel.findSdk(sdkName); if (jdk != null) { @@ -135,18 +135,18 @@ public class ProjectJdkConfigurable implements UnnamedConfigurable { } public boolean isModified() { - final Sdk projectJdk = ProjectRootManager.getInstance(myProject).getProjectJdk(); + final Sdk projectJdk = ProjectRootManager.getInstance(myProject).getProjectSdk(); return !Comparing.equal(projectJdk, getSelectedProjectJdk()); } public void apply() throws ConfigurationException { - ProjectRootManager.getInstance(myProject).setProjectJdk(getSelectedProjectJdk()); + ProjectRootManager.getInstance(myProject).setProjectSdk(getSelectedProjectJdk()); } public void reset() { reloadModel(); - final String sdkName = ProjectRootManager.getInstance(myProject).getProjectJdkName(); + final String sdkName = ProjectRootManager.getInstance(myProject).getProjectSdkName(); if (sdkName != null) { final Sdk jdk = myJdksModel.findSdk(sdkName); if (jdk != null) { diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/UIRootConfigurationAccessor.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/UIRootConfigurationAccessor.java index 54ea7528ab27..859119b9cf22 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/UIRootConfigurationAccessor.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/UIRootConfigurationAccessor.java @@ -72,7 +72,7 @@ public class UIRootConfigurationAccessor extends RootConfigurationAccessor { @Nullable public String getProjectSdkName(final Project project) { - final String projectJdkName = ProjectRootManager.getInstance(project).getProjectJdkName(); + final String projectJdkName = ProjectRootManager.getInstance(project).getProjectSdkName(); final Sdk projectJdk = getProjectSdk(project); if (projectJdk != null) { return projectJdk.getName(); diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/JdkListConfigurable.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/JdkListConfigurable.java index 86b664d45b3d..ab2fc0aaca2d 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/JdkListConfigurable.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/JdkListConfigurable.java @@ -168,7 +168,7 @@ public class JdkListConfigurable extends BaseStructureConfigurable { } if (myJdksTreeModel.isModified() || modifiedJdks) myJdksTreeModel.apply(this); - myJdksTreeModel.setProjectSdk(ProjectRootManager.getInstance(myProject).getProjectJdk()); + myJdksTreeModel.setProjectSdk(ProjectRootManager.getInstance(myProject).getProjectSdk()); } public boolean isModified() { diff --git a/java/idea-ui/src/com/intellij/projectImport/ProjectOpenProcessorBase.java b/java/idea-ui/src/com/intellij/projectImport/ProjectOpenProcessorBase.java index 0959dab65992..78dcfe8985fa 100644 --- a/java/idea-ui/src/com/intellij/projectImport/ProjectOpenProcessorBase.java +++ b/java/idea-ui/src/com/intellij/projectImport/ProjectOpenProcessorBase.java @@ -124,7 +124,7 @@ public abstract class ProjectOpenProcessorBase extends ProjectOpenProcessor { wizardContext.setProjectFileDirectory(virtualFile.getParent().getPath()); Project defaultProject = ProjectManager.getInstance().getDefaultProject(); - Sdk jdk = ProjectRootManager.getInstance(defaultProject).getProjectJdk(); + Sdk jdk = ProjectRootManager.getInstance(defaultProject).getProjectSdk(); if (jdk == null) { jdk = ProjectJdkTable.getInstance().findMostRecentSdkOfType(JavaSdk.getInstance()); } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncreaseLanguageLevelFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncreaseLanguageLevelFix.java index 66553f60c997..9cf11d9e68c3 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncreaseLanguageLevelFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncreaseLanguageLevelFix.java @@ -110,7 +110,7 @@ public class IncreaseLanguageLevelFix implements IntentionAction { @Nullable private static Sdk getRelevantJdk(final Project project, @Nullable Module module) { - Sdk projectJdk = ProjectRootManager.getInstance(project).getProjectJdk(); + Sdk projectJdk = ProjectRootManager.getInstance(project).getProjectSdk(); Sdk moduleJdk = module == null ? null : ModuleRootManager.getInstance(module).getSdk(); return moduleJdk == null ? projectJdk : moduleJdk; } diff --git a/java/java-impl/src/com/intellij/codeInspection/ex/GlobalJavaInspectionContextImpl.java b/java/java-impl/src/com/intellij/codeInspection/ex/GlobalJavaInspectionContextImpl.java index d48f6da93786..c739d62cbf07 100644 --- a/java/java-impl/src/com/intellij/codeInspection/ex/GlobalJavaInspectionContextImpl.java +++ b/java/java-impl/src/com/intellij/codeInspection/ex/GlobalJavaInspectionContextImpl.java @@ -120,7 +120,7 @@ public class GlobalJavaInspectionContextImpl extends GlobalJavaInspectionContext if (isBadSdk(project, modules)) { System.err.println(InspectionsBundle.message("inspection.no.jdk.error.message")); System.err.println( - InspectionsBundle.message("offline.inspections.jdk.not.found", ProjectRootManager.getInstance(project).getProjectJdkName())); + InspectionsBundle.message("offline.inspections.jdk.not.found", ProjectRootManager.getInstance(project).getProjectSdkName())); return false; } for (Module module : modules) { @@ -152,7 +152,7 @@ public class GlobalJavaInspectionContextImpl extends GlobalJavaInspectionContext private static boolean isBadSdk(final Project project, final Module[] modules) { boolean anyModuleAcceptsSdk = false; boolean anyModuleUsesProjectSdk = false; - Sdk projectSdk = ProjectRootManager.getInstance(project).getProjectJdk(); + Sdk projectSdk = ProjectRootManager.getInstance(project).getProjectSdk(); for (Module module : modules) { if (ModuleRootManager.getInstance(module).isSdkInherited()) { anyModuleUsesProjectSdk = true; diff --git a/java/java-tests/testSrc/com/intellij/roots/InheritedJdkTest.java b/java/java-tests/testSrc/com/intellij/roots/InheritedJdkTest.java index 9f5b1ec53efc..06b4794a65ac 100644 --- a/java/java-tests/testSrc/com/intellij/roots/InheritedJdkTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/InheritedJdkTest.java @@ -34,7 +34,7 @@ public class InheritedJdkTest extends ModuleTestCase { @Override public void run() { final ProjectRootManagerEx rootManagerEx = ProjectRootManagerEx.getInstanceEx(myProject); - rootManagerEx.setProjectJdkName(jdk.getName()); + rootManagerEx.setProjectSdkName(jdk.getName()); final ModifiableRootModel rootModel = rootManager.getModifiableModel(); rootModel.inheritSdk(); rootModel.commit(); @@ -102,7 +102,7 @@ public class InheritedJdkTest extends ModuleTestCase { ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { - projectRootManager.setProjectJdk(mockJdk); + projectRootManager.setProjectSdk(mockJdk); } }); @@ -112,7 +112,7 @@ public class InheritedJdkTest extends ModuleTestCase { ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { - projectRootManager.setProjectJdkName("jdk1"); + projectRootManager.setProjectSdkName("jdk1"); } }); diff --git a/java/java-tests/testSrc/com/intellij/roots/RootsChangedTest.java b/java/java-tests/testSrc/com/intellij/roots/RootsChangedTest.java index 2fe2009ee2f8..51b728df3e6c 100644 --- a/java/java-tests/testSrc/com/intellij/roots/RootsChangedTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/RootsChangedTest.java @@ -99,7 +99,7 @@ public class RootsChangedTest extends ModuleTestCase { ProjectJdkTable.getInstance().addJdk(jdk); assertEventsCount(0); - ProjectRootManager.getInstance(myProject).setProjectJdk(jdkBBB); + ProjectRootManager.getInstance(myProject).setProjectSdk(jdkBBB); assertEventsCount(0); final ModifiableRootModel rootModelA = ModuleRootManager.getInstance(moduleA).getModifiableModel(); @@ -109,7 +109,7 @@ public class RootsChangedTest extends ModuleTestCase { ProjectRootManager.getInstance(myProject).multiCommit(new ModifiableRootModel[]{rootModelA, rootModelB}); assertEventsCount(1); - ProjectRootManager.getInstance(myProject).setProjectJdk(jdk); + ProjectRootManager.getInstance(myProject).setProjectSdk(jdk); assertEventsCount(1); final SdkModificator sdkModificator = jdk.getSdkModificator(); diff --git a/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java b/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java index 84061770853a..e5daad1340c0 100644 --- a/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java +++ b/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java @@ -56,7 +56,7 @@ public class WizardContext { public WizardContext(Project project) { myProject = project; if (myProject != null){ - myProjectJdk = ProjectRootManager.getInstance(myProject).getProjectJdk(); + myProjectJdk = ProjectRootManager.getInstance(myProject).getProjectSdk(); } } diff --git a/platform/lang-api/src/com/intellij/openapi/roots/ModuleRootModel.java b/platform/lang-api/src/com/intellij/openapi/roots/ModuleRootModel.java index 956330b4a056..ba8b609dacad 100644 --- a/platform/lang-api/src/com/intellij/openapi/roots/ModuleRootModel.java +++ b/platform/lang-api/src/com/intellij/openapi/roots/ModuleRootModel.java @@ -65,8 +65,8 @@ public interface ModuleRootModel { * Returns true if JDK for this module is inherited from a project. * * @return true if the JDK is inherited, false otherwise - * @see ProjectRootManager#getProjectJdk() - * @see ProjectRootManager#setProjectJdk(com.intellij.openapi.projectRoots.Sdk) + * @see ProjectRootManager#getProjectSdk() + * @see ProjectRootManager#setProjectSdk(com.intellij.openapi.projectRoots.Sdk) */ boolean isSdkInherited(); diff --git a/platform/lang-api/src/com/intellij/openapi/roots/ProjectRootManager.java b/platform/lang-api/src/com/intellij/openapi/roots/ProjectRootManager.java index 61349d15b38f..4021f63a481b 100644 --- a/platform/lang-api/src/com/intellij/openapi/roots/ProjectRootManager.java +++ b/platform/lang-api/src/com/intellij/openapi/roots/ProjectRootManager.java @@ -124,28 +124,28 @@ public abstract class ProjectRootManager implements ModificationTracker { * to any existing JDK instance. */ @Nullable - public abstract Sdk getProjectJdk(); + public abstract Sdk getProjectSdk(); /** * Returns the name of the JDK selected for the project. * * @return the JDK name. */ - public abstract String getProjectJdkName(); + public abstract String getProjectSdkName(); /** * Sets the JDK to be used for the project. * * @param jdk the JDK instance. */ - public abstract void setProjectJdk(@Nullable Sdk jdk); + public abstract void setProjectSdk(@Nullable Sdk jdk); /** * Sets the name of the JDK to be used for the project. * * @param name the name of the JDK. */ - public abstract void setProjectJdkName(String name); + public abstract void setProjectSdkName(String name); /** * Commits the change to the lists of roots for the specified modules. diff --git a/platform/lang-api/src/com/intellij/openapi/roots/ui/util/OrderEntryCellAppearanceUtils.java b/platform/lang-api/src/com/intellij/openapi/roots/ui/util/OrderEntryCellAppearanceUtils.java index a59c95fe9b36..37d4766a6c2a 100644 --- a/platform/lang-api/src/com/intellij/openapi/roots/ui/util/OrderEntryCellAppearanceUtils.java +++ b/platform/lang-api/src/com/intellij/openapi/roots/ui/util/OrderEntryCellAppearanceUtils.java @@ -177,14 +177,14 @@ public class OrderEntryCellAppearanceUtils { public static CellAppearance forProjectJdk(final Project project) { final ProjectRootManager projectRootManager = ProjectRootManager.getInstance(project); - final Sdk projectJdk = projectRootManager.getProjectJdk(); + final Sdk projectJdk = projectRootManager.getProjectSdk(); final CellAppearance appearance; if (projectJdk != null) { appearance = forJdk(projectJdk, false, false); } else { // probably invalid JDK - final String projectJdkName = projectRootManager.getProjectJdkName(); + final String projectJdkName = projectRootManager.getProjectSdkName(); if (projectJdkName != null) { appearance = SimpleTextCellAppearance.invalid(ProjectBundle.message("jdk.combo.box.invalid.item", projectJdkName), CellAppearanceUtils.INVALID_ICON); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionHandlerBase.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionHandlerBase.java index 109433c646cd..f1a607a6f829 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionHandlerBase.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionHandlerBase.java @@ -199,7 +199,6 @@ public class CodeCompletionHandlerBase implements CodeInsightActionHandler { LookupImpl lookup = (LookupImpl)LookupManager.getInstance(editor.getProject()).createLookup(editor, LookupElement.EMPTY_ARRAY, "", LookupArranger.DEFAULT); if (editor.isOneLineMode()) { - lookup.setForceShowAsPopup(true); lookup.setCancelOnClickOutside(true); lookup.setCancelOnOtherWindowOpen(true); lookup.setResizable(false); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/ComboEditorCompletionContributor.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/ComboEditorCompletionContributor.java index fdbc741cf588..de826e017f2e 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/ComboEditorCompletionContributor.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/ComboEditorCompletionContributor.java @@ -31,8 +31,7 @@ public class ComboEditorCompletionContributor extends CompletionContributor{ @Override public void fillCompletionVariants(final CompletionParameters parameters, final CompletionResultSet result) { - final CompletionProcess process = CompletionService.getCompletionService().getCurrentCompletion(); - if (process != null && process.isAutopopupCompletion()) { + if (parameters.getInvocationCount() == 0) { return; } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/BackspaceHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/BackspaceHandler.java index dd23bb802af0..836cbdba1b6c 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/BackspaceHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/BackspaceHandler.java @@ -38,15 +38,6 @@ public class BackspaceHandler extends EditorActionHandler { return; } - boolean toRestart = false; - final String prefix = lookup.getAdditionalPrefix(); - if (prefix.length() > 0) { - lookup.setAdditionalPrefix(prefix.substring(0, prefix.length() - 1)); - } - else { - toRestart = lookup.getLookupStart() < editor.getCaretModel().getOffset(); - } - lookup.performGuardedChange(new Runnable() { @Override public void run() { @@ -54,11 +45,13 @@ public class BackspaceHandler extends EditorActionHandler { } }); + final String prefix = lookup.getAdditionalPrefix(); if (prefix.length() > 0) { + lookup.setAdditionalPrefix(prefix.substring(0, prefix.length() - 1)); return; } - if (toRestart) { + if (lookup.getLookupStart() < editor.getCaretModel().getOffset()) { final CompletionProcess process = CompletionService.getCompletionService().getCurrentCompletion(); if (process instanceof CompletionProgressIndicator) { ((CompletionProgressIndicator)process).restartCompletion(); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java index 520d65ad1511..cfec8f4dd080 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java @@ -83,10 +83,6 @@ public class LookupImpl extends LightweightHint implements Lookup, Disposable { private final LookupCellRenderer myCellRenderer; private Boolean myPositionedAbove = null; - private CaretListener myEditorCaretListener; - private SelectionListener myEditorSelectionListener; - private EditorMouseListener myEditorMouseListener; - private final ArrayList myListeners = new ArrayList(); private boolean myShown = false; @@ -141,6 +137,8 @@ public class LookupImpl extends LightweightHint implements Lookup, Disposable { updateListHeight(model); setArranger(arranger); + + addListeners(); } public void setArranger(LookupArranger arranger) { @@ -550,13 +548,6 @@ public class LookupImpl extends LightweightHint implements Lookup, Disposable { return myLookupStartMarker.getStartOffset(); } - @Override - protected void beforeShow() { - if (isRealPopup()) { - getComponent().setBorder(null); - } - } - public void performGuardedChange(Runnable change) { assert !myChangeGuard; myChangeGuard = true; @@ -578,6 +569,18 @@ public class LookupImpl extends LightweightHint implements Lookup, Disposable { LOG.assertTrue(!myShown); myShown = true; + if (ApplicationManager.getApplication().isUnitTestMode()) return; + + getComponent().setBorder(null); + + Point p = calculatePosition(); + HintManagerImpl hintManager = HintManagerImpl.getInstanceImpl(); + hintManager.showEditorHint(this, myEditor, p, HintManagerImpl.HIDE_BY_ESCAPE | HintManagerImpl.UPDATE_BY_SCROLLING, 0, false); + + myShownStamp = System.currentTimeMillis(); + } + + private void addListeners() { myEditor.getDocument().addDocumentListener(new DocumentAdapter() { public void documentChanged(DocumentEvent e) { if (!myChangeGuard) { @@ -586,29 +589,41 @@ public class LookupImpl extends LightweightHint implements Lookup, Disposable { } }, this); - myEditorCaretListener = new CaretListener() { + final CaretListener caretListener = new CaretListener() { public void caretPositionChanged(CaretEvent e){ - caretOrSelectionChanged(); + if (!myChangeGuard) { + hide(); + } } }; - myEditorSelectionListener = new SelectionListener() { + final SelectionListener selectionListener = new SelectionListener() { public void selectionChanged(final SelectionEvent e) { - caretOrSelectionChanged(); + if (!myChangeGuard) { + hide(); + } } }; - myEditor.getCaretModel().addCaretListener(myEditorCaretListener); - myEditor.getSelectionModel().addSelectionListener(myEditorSelectionListener); - - myEditorMouseListener = new EditorMouseAdapter() { + final EditorMouseListener mouseListener = new EditorMouseAdapter() { public void mouseClicked(EditorMouseEvent e){ e.consume(); hide(); } }; - myEditor.addEditorMouseListener(myEditorMouseListener); + + myEditor.getCaretModel().addCaretListener(caretListener); + myEditor.getSelectionModel().addSelectionListener(selectionListener); + myEditor.addEditorMouseListener(mouseListener); + Disposer.register(this, new Disposable() { + @Override + public void dispose() { + myEditor.getCaretModel().removeCaretListener(caretListener); + myEditor.getSelectionModel().removeSelectionListener(selectionListener); + myEditor.removeEditorMouseListener(mouseListener); + } + }); myList.addListSelectionListener(new ListSelectionListener() { - private LookupElement oldItem = null; + private LookupElement oldItem = null; public void valueChanged(ListSelectionEvent e){ LookupElement item = getCurrentItem(); @@ -628,7 +643,7 @@ public class LookupImpl extends LightweightHint implements Lookup, Disposable { final int i = myList.locationToIndex(point); if (i >= 0) { final LookupElement selected = (LookupElement)myList.getModel().getElementAt(i); - if (selected != null && + if (selected != null && e.getClickCount() == 1 && point.x >= myList.getCellBounds(i, i).width - PopupIcons.EMPTY_ICON.getIconWidth() && ShowLookupActionsHandler.showItemActions(LookupImpl.this, selected)) { @@ -645,20 +660,6 @@ public class LookupImpl extends LightweightHint implements Lookup, Disposable { } } }); - - if (ApplicationManager.getApplication().isUnitTestMode()) return; - - Point p = calculatePosition(); - HintManagerImpl hintManager = HintManagerImpl.getInstanceImpl(); - hintManager.showEditorHint(this, myEditor, p, HintManagerImpl.HIDE_BY_ESCAPE | HintManagerImpl.UPDATE_BY_SCROLLING, 0, false); - - myShownStamp = System.currentTimeMillis(); - } - - private void caretOrSelectionChanged() { - if (!myChangeGuard) { - hide(); - } } private int calcLookupStart() { @@ -927,16 +928,7 @@ public class LookupImpl extends LightweightHint implements Lookup, Disposable { assert !myDisposed; Disposer.dispose(myProcessIcon); - if (myEditorCaretListener != null) { - myEditor.getCaretModel().removeCaretListener(myEditorCaretListener); - myEditor.getSelectionModel().removeSelectionListener(myEditorSelectionListener); - myEditorCaretListener = null; - myEditorSelectionListener = null; - } - if (myEditorMouseListener != null) { - myEditor.removeEditorMouseListener(myEditorMouseListener); - myEditorMouseListener = null; - } + myDisposed = true; } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/TypedHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/TypedHandler.java index e9c8e99a69e4..eff071ab3b50 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/TypedHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/TypedHandler.java @@ -58,7 +58,6 @@ public class TypedHandler implements TypedActionHandler { } }); if (result == CharFilter.Result.ADD_TO_PREFIX) { - lookup.setAdditionalPrefix(lookup.getAdditionalPrefix() + charTyped); Document document = editor.getDocument(); long modificationStamp = document.getModificationStamp(); @@ -67,6 +66,7 @@ public class TypedHandler implements TypedActionHandler { EditorModificationUtil.typeInStringAtCaretHonorBlockSelection(editor, String.valueOf(charTyped), true); } }); + lookup.setAdditionalPrefix(lookup.getAdditionalPrefix() + charTyped); AutoHardWrapHandler.getInstance().wrapLineIfNecessary(editor, dataContext, modificationStamp); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java index e79090729741..298b8601441d 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java @@ -125,7 +125,17 @@ public class TemplateState implements Disposable { public void beforeCommandFinished(CommandEvent event) { if (started) { - afterChangedUpdate(); + Runnable runnable = new Runnable() { + public void run() { + afterChangedUpdate(); + } + }; + final LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(myEditor); + if (lookup != null) { + lookup.performGuardedChange(runnable); + } else { + runnable.run(); + } } } }; diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/ex/PathUtilEx.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/ex/PathUtilEx.java index 3d6a84fc9589..c883b5ddfd87 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/ex/PathUtilEx.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/ex/PathUtilEx.java @@ -55,7 +55,7 @@ public class PathUtilEx { } public static Sdk chooseJdk(Project project, Collection modules) { - Sdk projectJdk = ProjectRootManager.getInstance(project).getProjectJdk(); + Sdk projectJdk = ProjectRootManager.getInstance(project).getProjectSdk(); if (projectJdk != null) { return projectJdk; } diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SdkConfigurationUtil.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SdkConfigurationUtil.java index 3a4b490bc5c4..a775bf1399e2 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SdkConfigurationUtil.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SdkConfigurationUtil.java @@ -159,7 +159,7 @@ public class SdkConfigurationUtil { public static void setDirectoryProjectSdk(final Project project, final Sdk sdk) { ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() { - ProjectRootManager.getInstance(project).setProjectJdk(sdk); + ProjectRootManager.getInstance(project).setProjectSdk(sdk); final Module[] modules = ModuleManager.getInstance(project).getModules(); if (modules.length > 0) { final ModifiableRootModel model = ModuleRootManager.getInstance(modules[0]).getModifiableModel(); @@ -171,7 +171,7 @@ public class SdkConfigurationUtil { } public static void configureDirectoryProjectSdk(final Project project, final SdkType... sdkTypes) { - Sdk existingSdk = ProjectRootManager.getInstance(project).getProjectJdk(); + Sdk existingSdk = ProjectRootManager.getInstance(project).getProjectSdk(); if (existingSdk != null && ArrayUtil.contains(existingSdk.getSdkType(), sdkTypes)) { return; } @@ -185,7 +185,7 @@ public class SdkConfigurationUtil { @Nullable public static Sdk findOrCreateSdk(final SdkType... sdkTypes) { final Project defaultProject = ProjectManager.getInstance().getDefaultProject(); - final Sdk sdk = ProjectRootManager.getInstance(defaultProject).getProjectJdk(); + final Sdk sdk = ProjectRootManager.getInstance(defaultProject).getProjectSdk(); if (sdk != null) { for (SdkType type : sdkTypes) { if (sdk.getSdkType() == type) { diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java index be03ff5ca38b..05f8becf83ca 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java @@ -89,7 +89,7 @@ public class InheritedJdkOrderEntryImpl extends LibraryOrderEntryBaseImpl implem } protected RootProvider getRootProvider() { - final Sdk projectJdk = myProjectRootManagerImpl.getProjectJdk(); + final Sdk projectJdk = myProjectRootManagerImpl.getProjectSdk(); return projectJdk == null ? null : projectJdk.getRootProvider(); } diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java index 091e451f5dd1..67425f598591 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java @@ -82,8 +82,8 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Proj private AppListener myApplicationListener; - private String myProjectJdkName; - private String myProjectJdkType; + private String myProjectSdkName; + private String myProjectSdkType; private final List myRootsChangeUpdaters = new ArrayList(); private final List myRefreshCacheUpdaters = new ArrayList(); @@ -327,28 +327,28 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Proj return VfsUtil.toVirtualFileArray(result); } - public Sdk getProjectJdk() { - if (myProjectJdkName != null) { - return ProjectJdkTable.getInstance().findJdk(myProjectJdkName, myProjectJdkType); + public Sdk getProjectSdk() { + if (myProjectSdkName != null) { + return ProjectJdkTable.getInstance().findJdk(myProjectSdkName, myProjectSdkType); } else { return null; } } - public String getProjectJdkName() { - return myProjectJdkName; + public String getProjectSdkName() { + return myProjectSdkName; } - public void setProjectJdk(Sdk projectJdk) { + public void setProjectSdk(Sdk projectSdk) { ApplicationManager.getApplication().assertWriteAccessAllowed(); - if (projectJdk != null) { - myProjectJdkName = projectJdk.getName(); - myProjectJdkType = projectJdk.getSdkType().getName(); + if (projectSdk != null) { + myProjectSdkName = projectSdk.getName(); + myProjectSdkType = projectSdk.getSdkType().getName(); } else { - myProjectJdkName = null; - myProjectJdkType = null; + myProjectSdkName = null; + myProjectSdkType = null; } mergeRootsChangesDuring(new Runnable() { public void run() { @@ -357,9 +357,9 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Proj }); } - public void setProjectJdkName(String name) { + public void setProjectSdkName(String name) { ApplicationManager.getApplication().assertWriteAccessAllowed(); - myProjectJdkName = name; + myProjectSdkName = name; mergeRootsChangesDuring(new Runnable() { public void run() { @@ -409,8 +409,8 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Proj for (ProjectExtension extension : Extensions.getExtensions(ProjectExtension.EP_NAME, myProject)) { extension.readExternal(element); } - myProjectJdkName = element.getAttributeValue(PROJECT_JDK_NAME_ATTR); - myProjectJdkType = element.getAttributeValue(PROJECT_JDK_TYPE_ATTR); + myProjectSdkName = element.getAttributeValue(PROJECT_JDK_NAME_ATTR); + myProjectSdkType = element.getAttributeValue(PROJECT_JDK_TYPE_ATTR); } public void writeExternal(Element element) throws WriteExternalException { @@ -418,11 +418,11 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Proj for (ProjectExtension extension : Extensions.getExtensions(ProjectExtension.EP_NAME, myProject)) { extension.writeExternal(element); } - if (myProjectJdkName != null) { - element.setAttribute(PROJECT_JDK_NAME_ATTR, myProjectJdkName); + if (myProjectSdkName != null) { + element.setAttribute(PROJECT_JDK_NAME_ATTR, myProjectSdkName); } - if (myProjectJdkType != null) { - element.setAttribute(PROJECT_JDK_TYPE_ATTR, myProjectJdkType); + if (myProjectSdkType != null) { + element.setAttribute(PROJECT_JDK_TYPE_ATTR, myProjectSdkType); } } @@ -946,11 +946,11 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Proj myDispatcher.getMulticaster().jdkNameChanged(jdk, previousName); } }); - String currentName = getProjectJdkName(); + String currentName = getProjectSdkName(); if (previousName != null && previousName.equals(currentName)) { // if already had jdk name and that name was the name of the jdk just changed - myProjectJdkName = jdk.getName(); - myProjectJdkType = jdk.getSdkType().getName(); + myProjectSdkName = jdk.getName(); + myProjectSdkType = jdk.getSdkType().getName(); } } diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/RootConfigurationAccessor.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/RootConfigurationAccessor.java index ab33bd5434a8..3800dc91a028 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/RootConfigurationAccessor.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/RootConfigurationAccessor.java @@ -42,11 +42,11 @@ public class RootConfigurationAccessor { } public Sdk getProjectSdk(Project project) { - return ProjectRootManager.getInstance(project).getProjectJdk(); + return ProjectRootManager.getInstance(project).getProjectSdk(); } @Nullable public String getProjectSdkName(final Project project) { - return ProjectRootManager.getInstance(project).getProjectJdkName(); + return ProjectRootManager.getInstance(project).getProjectSdkName(); } } \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java index 4171a12890e4..d128170b3db3 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java @@ -91,7 +91,7 @@ public class ProjectSdksModel implements SdkModel { //can't be } } - myProjectSdk = findSdk(ProjectRootManager.getInstance(project).getProjectJdkName()); + myProjectSdk = findSdk(ProjectRootManager.getInstance(project).getProjectSdkName()); myModified = false; myInitialized = true; } diff --git a/platform/platform-api/src/com/intellij/ui/treeStructure/Tree.java b/platform/platform-api/src/com/intellij/ui/treeStructure/Tree.java index 4a6b17238756..4cf4e129f6ab 100644 --- a/platform/platform-api/src/com/intellij/ui/treeStructure/Tree.java +++ b/platform/platform-api/src/com/intellij/ui/treeStructure/Tree.java @@ -175,8 +175,8 @@ public class Tree extends JTree implements ComponentWithEmptyText, ComponentWith TreePath[] paths = getSelectionModel().getSelectionPaths(); if (paths != null) { for (TreePath each : paths) { - Rectangle selection = getPathBounds(each); - if (g.getClipBounds().intersects(selection) || g.getClipBounds().contains(selection)) { + final Rectangle selection = getPathBounds(each); + if (selection != null && (g.getClipBounds().intersects(selection) || g.getClipBounds().contains(selection))) { if (myBusy) { Rectangle busyIconBounds = myBusyIcon.getBounds(); if (selection.contains(busyIconBounds) || selection.intersects(busyIconBounds)) { diff --git a/platform/platform-impl/src/com/intellij/ide/GeneralSettingsPanel.form b/platform/platform-impl/src/com/intellij/ide/GeneralSettingsPanel.form index 0b847b8ab594..85e7ae2e640b 100644 --- a/platform/platform-impl/src/com/intellij/ide/GeneralSettingsPanel.form +++ b/platform/platform-impl/src/com/intellij/ide/GeneralSettingsPanel.form @@ -51,7 +51,7 @@ - + diff --git a/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java b/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java index 5171776260ef..7862a170ffa7 100644 --- a/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java +++ b/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java @@ -150,16 +150,7 @@ public class ProjectUtil { } if (!forceOpenInNewFrame && openProjects.length > 0) { - final GeneralSettings settings = GeneralSettings.getInstance(); - int exitCode; - if (settings.getConfirmOpenNewProject() < 0) { - exitCode = Messages.showDialog(IdeBundle.message("prompt.open.project.in.new.frame"), IdeBundle.message("title.open.project"), - new String[]{IdeBundle.message("button.newframe"), IdeBundle.message("button.existingframe"), - CommonBundle.getCancelButtonText()}, 1, 0, Messages.getQuestionIcon(), - new ProjectNewWindowDoNotAskOption()); - } else { - exitCode = settings.getConfirmOpenNewProject(); - } + int exitCode = confirmOpenNewProject(); if (exitCode == 1) { // "No" option if (!closeProject(projectToClose != null ? projectToClose : openProjects[openProjects.length - 1])) return null; } @@ -190,6 +181,18 @@ public class ProjectUtil { return project; } + public static int confirmOpenNewProject() { + final GeneralSettings settings = GeneralSettings.getInstance(); + if (settings.getConfirmOpenNewProject() < 0) { + return Messages.showDialog(IdeBundle.message("prompt.open.project.in.new.frame"), IdeBundle.message("title.open.project"), + new String[]{IdeBundle.message("button.newframe"), IdeBundle.message("button.existingframe"), + CommonBundle.getCancelButtonText()}, 1, 0, Messages.getQuestionIcon(), + new ProjectNewWindowDoNotAskOption()); + } else { + return settings.getConfirmOpenNewProject(); + } + } + private static boolean isSameProject(String path, Project p) { final IProjectStore projectStore = ((ProjectEx)p).getStateStore(); diff --git a/platform/platform-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java b/platform/platform-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java index 46f9046ef782..dd0138cbd068 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java @@ -27,6 +27,7 @@ package com.intellij.openapi.application.ex; import com.intellij.openapi.application.ApplicationInfo; import java.awt.*; +import java.util.Calendar; import java.util.List; public abstract class ApplicationInfoEx extends ApplicationInfo { @@ -35,6 +36,8 @@ public abstract class ApplicationInfoEx extends ApplicationInfo { return (ApplicationInfoEx) getInstance(); } + public abstract Calendar getMajorReleaseBuildDate(); + public abstract String getLogoUrl(); public abstract Color getLogoTextColor(); diff --git a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java index 019003a1259d..bc33d0767684 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java @@ -51,6 +51,7 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern @NonNls private String myOpaqueIconUrl = "/icon.png"; @NonNls private String myToolWindowIconUrl = "/general/toolWindowProject.png"; private Calendar myBuildDate = null; + private Calendar myMajorReleaseBuildDate = null; private String myPackageCode = null; private boolean myShowLicensee = true; private String myWelcomeScreenCaptionUrl; @@ -81,6 +82,7 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern @NonNls private static final String ELEMENT_BUILD = "build"; @NonNls private static final String ATTRIBUTE_NUMBER = "number"; @NonNls private static final String ATTRIBUTE_DATE = "date"; + @NonNls private static final String ATTRIBUTE_MAJOR_RELEASE_DATE = "majorReleaseDate"; @NonNls private static final String ELEMENT_LOGO = "logo"; @NonNls private static final String ATTRIBUTE_URL = "url"; @NonNls private static final String ATTRIBUTE_TEXTCOLOR = "textcolor"; @@ -128,6 +130,10 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern return myBuildDate; } + public Calendar getMajorReleaseBuildDate() { + return myMajorReleaseBuildDate != null ? myMajorReleaseBuildDate : myBuildDate; + } + @Override public BuildNumber getBuild() { return BuildNumber.fromString(myBuildNumber); @@ -314,21 +320,11 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern myBuildDate = new GregorianCalendar(); } else { - int year = 0; - int month = 0; - int day = 0; - try { - year = Integer.parseInt(dateString.substring(0, 4)); - month = Integer.parseInt(dateString.substring(4, 6)); - day = Integer.parseInt(dateString.substring(6, 8)); - } - catch (Exception ex) { - //ignore - } - if (month > 0) { - month--; - } - myBuildDate = new GregorianCalendar(year, month, day); + myBuildDate = parseDate(dateString); + } + String majorReleaseDateString = buildElement.getAttributeValue(ATTRIBUTE_MAJOR_RELEASE_DATE); + if (majorReleaseDateString != null) { + myMajorReleaseBuildDate = parseDate(majorReleaseDateString); } } @@ -446,6 +442,24 @@ public class ApplicationInfoImpl extends ApplicationInfoEx implements JDOMExtern } } + private static GregorianCalendar parseDate(String dateString) { + int year = 0; + int month = 0; + int day = 0; + try { + year = Integer.parseInt(dateString.substring(0, 4)); + month = Integer.parseInt(dateString.substring(4, 6)); + day = Integer.parseInt(dateString.substring(6, 8)); + } + catch (Exception ex) { + //ignore + } + if (month > 0) { + month--; + } + return new GregorianCalendar(year, month, day); + } + public List getPluginChooserPages() { return myPluginChooserPages; } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteLineAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteLineAction.java index 185198aa17ee..9c3b94b20c0b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteLineAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteLineAction.java @@ -45,8 +45,8 @@ public class DeleteLineAction extends TextComponentEditorAction { int selectionEnd = selectionModel.getSelectionEnd(); selectionModel.removeSelection(); int lineStartOffset = document.getLineStartOffset(document.getLineNumber(selectionStart)); - int lineEndOffset = document.getLineEndOffset(document.getLineNumber(selectionEnd)); - document.deleteString(lineStartOffset, lineEndOffset); + int nextLineStartOffset = Math.min(document.getTextLength(), document.getLineStartOffset(document.getLineNumber(selectionEnd) + 1)); + document.deleteString(lineStartOffset, nextLineStartOffset); return; } deleteLineAtCaret(editor); diff --git a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java index 5eb0d324fac8..7c0201e3a10c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java @@ -214,7 +214,7 @@ public class ProjectManagerImpl extends ProjectManagerEx implements NamedJDOMExt try { ProjectImpl project = - createAndInitProject(projectName, filePath, false, isDummy, ApplicationManager.getApplication().isUnitTestMode(), + createAndInitProject(projectName, filePath, false, ApplicationManager.getApplication().isUnitTestMode(), useDefaultProjectSettings ? getDefaultProject() : null); if (LOG_PROJECT_LEAKAGE_IN_TESTS) { myProjects.put(project, null); @@ -244,11 +244,8 @@ public class ProjectManagerImpl extends ProjectManagerEx implements NamedJDOMExt return message; } - private ProjectImpl createAndInitProject(String projectName, String filePath, boolean isDefault, boolean isDummy, boolean isOptimiseTestLoadSpeed, + private ProjectImpl createAndInitProject(String projectName, String filePath, boolean isDefault, boolean isOptimiseTestLoadSpeed, @Nullable Project template) throws IOException { - if (isDummy) { - throw new UnsupportedOperationException("Dummy project is deprecated and shall not be used anymore."); - } final ProjectImpl project = isDefault ? new DefaultProject(this, filePath, isOptimiseTestLoadSpeed, projectName) : new ProjectImpl(this, filePath, isOptimiseTestLoadSpeed, projectName); @@ -299,7 +296,7 @@ public class ProjectManagerImpl extends ProjectManagerEx implements NamedJDOMExt filePath = canonicalize(filePath); ProjectImpl project = null; try { - project = createAndInitProject(null, filePath, false, false, false, null); + project = createAndInitProject(null, filePath, false, false, null); } catch (ProcessCanceledException e) { if (project != null) { @@ -332,7 +329,7 @@ public class ProjectManagerImpl extends ProjectManagerEx implements NamedJDOMExt public synchronized Project getDefaultProject() { if (myDefaultProject == null) { try { - myDefaultProject = createAndInitProject(null, null, true, false, ApplicationManager.getApplication().isUnitTestMode(), null); + myDefaultProject = createAndInitProject(null, null, true, ApplicationManager.getApplication().isUnitTestMode(), null); myDefaultProjectRootElement = null; } catch (IOException e) { diff --git a/platform/platform-impl/src/com/intellij/platform/PlatformProjectOpenProcessor.java b/platform/platform-impl/src/com/intellij/platform/PlatformProjectOpenProcessor.java index 83e9f56b4285..7c2ef3ce2d20 100644 --- a/platform/platform-impl/src/com/intellij/platform/PlatformProjectOpenProcessor.java +++ b/platform/platform-impl/src/com/intellij/platform/PlatformProjectOpenProcessor.java @@ -15,10 +15,6 @@ */ package com.intellij.platform; -import com.intellij.CommonBundle; -import com.intellij.ide.GeneralSettings; -import com.intellij.ide.IdeBundle; -import com.intellij.ide.impl.ProjectNewWindowDoNotAskOption; import com.intellij.ide.impl.ProjectUtil; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.extensions.Extensions; @@ -29,7 +25,6 @@ import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.project.ex.ProjectManagerEx; import com.intellij.openapi.project.impl.ProjectManagerImpl; import com.intellij.openapi.startup.StartupManager; -import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.Ref; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.wm.ToolWindowManager; @@ -78,17 +73,7 @@ public class PlatformProjectOpenProcessor extends ProjectOpenProcessor { Project[] openProjects = ProjectManager.getInstance().getOpenProjects(); if (!forceOpenInNewFrame && openProjects.length > 0) { - final GeneralSettings settings = GeneralSettings.getInstance(); - int exitCode; - if (settings.getConfirmOpenNewProject() < 0) { - exitCode = Messages.showDialog(IdeBundle.message("prompt.open.project.in.new.frame"), IdeBundle.message("title.open.project"), - new String[]{IdeBundle.message("button.newframe"), IdeBundle.message("button.existingframe"), - CommonBundle.getCancelButtonText()}, 1, 0, Messages.getQuestionIcon(), - new ProjectNewWindowDoNotAskOption()); - } - else { - exitCode = settings.getConfirmOpenNewProject(); - } + int exitCode = ProjectUtil.confirmOpenNewProject(); if (exitCode == 1) { // "No" option if (!ProjectUtil.closeProject(projectToClose != null ? projectToClose : openProjects[openProjects.length - 1])) return null; } diff --git a/platform/platform-resources-en/src/tips/SearchInSettings.html b/platform/platform-resources-en/src/tips/SearchInSettings.html new file mode 100644 index 000000000000..b9a158bd277a --- /dev/null +++ b/platform/platform-resources-en/src/tips/SearchInSettings.html @@ -0,0 +1,13 @@ + + + + + + +
You can quickly find a setting you need in the Settings dialog, without browsing through the numerous options. +Just type some characters that to your opinion exist in the option description, and the list of settings will reduce to the +matching ones. Select the desired entry, and see the setting that contains the entered characters highlighted: +

+
+ + diff --git a/platform/platform-resources-en/src/tips/images/issueNavigation1.png b/platform/platform-resources-en/src/tips/images/issueNavigation1.png index 9c53dccfc981..605d9acad17a 100644 Binary files a/platform/platform-resources-en/src/tips/images/issueNavigation1.png and b/platform/platform-resources-en/src/tips/images/issueNavigation1.png differ diff --git a/platform/platform-resources-en/src/tips/images/search_settings.png b/platform/platform-resources-en/src/tips/images/search_settings.png new file mode 100644 index 000000000000..a689f1452052 Binary files /dev/null and b/platform/platform-resources-en/src/tips/images/search_settings.png differ diff --git a/platform/platform-resources/src/idea/Keymap_Netbeans.xml b/platform/platform-resources/src/idea/Keymap_Netbeans.xml index 89b6cf4258de..4b643cda07ab 100644 --- a/platform/platform-resources/src/idea/Keymap_Netbeans.xml +++ b/platform/platform-resources/src/idea/Keymap_Netbeans.xml @@ -334,9 +334,6 @@ - - - diff --git a/plugins/ant/src/com/intellij/lang/ant/config/execution/PathUtilEx.java b/plugins/ant/src/com/intellij/lang/ant/config/execution/PathUtilEx.java index 163d9bd59488..6b901a54371b 100644 --- a/plugins/ant/src/com/intellij/lang/ant/config/execution/PathUtilEx.java +++ b/plugins/ant/src/com/intellij/lang/ant/config/execution/PathUtilEx.java @@ -75,7 +75,7 @@ public class PathUtilEx { } public static Sdk chooseJdk(Project project, Collection modules) { - Sdk projectJdk = ProjectRootManager.getInstance(project).getProjectJdk(); + Sdk projectJdk = ProjectRootManager.getInstance(project).getProjectSdk(); if (projectJdk != null) { return projectJdk; } diff --git a/plugins/ant/src/com/intellij/lang/ant/config/impl/AntConfigurationImpl.java b/plugins/ant/src/com/intellij/lang/ant/config/impl/AntConfigurationImpl.java index 40be821385cf..789e548f7743 100644 --- a/plugins/ant/src/com/intellij/lang/ant/config/impl/AntConfigurationImpl.java +++ b/plugins/ant/src/com/intellij/lang/ant/config/impl/AntConfigurationImpl.java @@ -94,7 +94,7 @@ public class AntConfigurationImpl extends AntConfigurationBase implements Persis public String get(final AbstractPropertyContainer container) { if (!container.hasProperty(this)) return null; AntConfiguration antConfiguration = AntConfigurationImpl.INSTANCE.get(container); - return ProjectRootManager.getInstance(antConfiguration.getProject()).getProjectJdkName(); + return ProjectRootManager.getInstance(antConfiguration.getProject()).getProjectSdkName(); } public String copy(final String jdkName) { diff --git a/plugins/ant/src/com/intellij/lang/ant/dom/AntDomProject.java b/plugins/ant/src/com/intellij/lang/ant/dom/AntDomProject.java index e2cf4a1f6e3f..0939e404de2f 100644 --- a/plugins/ant/src/com/intellij/lang/ant/dom/AntDomProject.java +++ b/plugins/ant/src/com/intellij/lang/ant/dom/AntDomProject.java @@ -168,7 +168,7 @@ public abstract class AntDomProject extends AntDomNamedElement implements Proper return ProjectJdkTable.getInstance().findJdk(jdkName); } } - return ProjectRootManager.getInstance(tag.getProject()).getProjectJdk(); + return ProjectRootManager.getInstance(tag.getProject()).getProjectSdk(); } @NotNull diff --git a/plugins/ant/src/com/intellij/lang/ant/dom/CustomAntElementsRegistry.java b/plugins/ant/src/com/intellij/lang/ant/dom/CustomAntElementsRegistry.java index 8bf4aa8f39b4..71194132edf6 100644 --- a/plugins/ant/src/com/intellij/lang/ant/dom/CustomAntElementsRegistry.java +++ b/plugins/ant/src/com/intellij/lang/ant/dom/CustomAntElementsRegistry.java @@ -283,21 +283,21 @@ public class CustomAntElementsRegistry { clazz = loader.loadClass(classname); } catch (ClassNotFoundException e) { - error = e.getMessage(); + error = "Class not found " + e.getMessage(); if (error == null) { error = ""; } clazz = null; } catch (NoClassDefFoundError e) { - error = e.getMessage(); + error = "Class definition not found " + e.getMessage(); if (error == null) { error = ""; } clazz = null; } catch (UnsupportedClassVersionError e) { - error = e.getMessage(); + error = "Unsupported class version " + e.getMessage(); if (error == null) { error = ""; } @@ -309,7 +309,7 @@ public class CustomAntElementsRegistry { private void addCustomDefinition(@NotNull AntDomNamedElement declaringTag, String customTagName, String nsUri, Class clazz, String error) { final XmlName xmlName = new XmlName(customTagName, nsUri == null? "" : nsUri); if (error != null) { - myErrors.put(xmlName, customTagName); + myErrors.put(xmlName, error); } myCustomElements.put(xmlName, clazz); myDeclarations.put(xmlName, declaringTag); diff --git a/plugins/ant/src/com/intellij/lang/ant/psi/impl/AntFileImpl.java b/plugins/ant/src/com/intellij/lang/ant/psi/impl/AntFileImpl.java index f0d1f9e7df88..c0ccc59e54b0 100644 --- a/plugins/ant/src/com/intellij/lang/ant/psi/impl/AntFileImpl.java +++ b/plugins/ant/src/com/intellij/lang/ant/psi/impl/AntFileImpl.java @@ -346,7 +346,7 @@ public class AntFileImpl extends LightPsiFileBase implements AntFile { public Sdk getTargetJdk() { final AntBuildFileImpl buildFile = (AntBuildFileImpl)getSourceElement().getCopyableUserData(AntBuildFile.ANT_BUILD_FILE_KEY); if (buildFile == null) { - return ProjectRootManager.getInstance(getProject()).getProjectJdk(); + return ProjectRootManager.getInstance(getProject()).getProjectSdk(); } String jdkName = AntBuildFileImpl.CUSTOM_JDK_NAME.get(buildFile.getAllOptions()); @@ -356,7 +356,7 @@ public class AntFileImpl extends LightPsiFileBase implements AntFile { if (jdkName != null && jdkName.length() > 0) { return ProjectJdkTable.getInstance().findJdk(jdkName); } - return ProjectRootManager.getInstance(getProject()).getProjectJdk(); + return ProjectRootManager.getInstance(getProject()).getProjectSdk(); } @Nullable diff --git a/plugins/git4idea/src/git4idea/config/GitVcsApplicationSettings.java b/plugins/git4idea/src/git4idea/config/GitVcsApplicationSettings.java index 964589350565..38af49516670 100644 --- a/plugins/git4idea/src/git4idea/config/GitVcsApplicationSettings.java +++ b/plugins/git4idea/src/git4idea/config/GitVcsApplicationSettings.java @@ -103,7 +103,7 @@ public class GitVcsApplicationSettings implements PersistentStateComponent + diff --git a/xml/impl/src/com/intellij/xml/actions/XmlSplitTagAction.java b/xml/impl/src/com/intellij/xml/actions/XmlSplitTagAction.java index dd6df1d7ae6f..2daf4c2d01f2 100644 --- a/xml/impl/src/com/intellij/xml/actions/XmlSplitTagAction.java +++ b/xml/impl/src/com/intellij/xml/actions/XmlSplitTagAction.java @@ -140,13 +140,13 @@ public class XmlSplitTagAction implements IntentionAction { final String name = xmlTag.getName(); sb.append("<").append(name); if (attrs.length() > 0) { - sb.append(' ').append(attrs.toString()); + sb.append(' ').append(attrs); } sb.append('>'); sb.append(first); sb.append("<").append(name); if (attrsWoId.length() > 0) { - sb.append(' ').append(attrsWoId.toString()); + sb.append(' ').append(attrsWoId); } sb.append('>'); sb.append(second).append("");