-<?xml version="1.0" encoding="UTF-8"?>\r
-<VisualStudioProject\r
- ProjectType="Visual C++"\r
- Version="9,00"\r
- Name="breakgen"\r
- ProjectGUID="{AE14C87F-E99B-4363-BE34-917FAF98258F}"\r
- RootNamespace="breakgen"\r
- Keyword="Win32Proj"\r
- TargetFrameworkVersion="0"\r
- >\r
- <Platforms>\r
- <Platform\r
- Name="Win32"\r
- />\r
- <Platform\r
- Name="x64"\r
- />\r
- </Platforms>\r
- <ToolFiles>\r
- </ToolFiles>\r
- <Configurations>\r
- <Configuration\r
- Name="Debug|Win32"\r
- OutputDirectory="Debug"\r
- IntermediateDirectory="Debug"\r
- ConfigurationType="2"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- Optimization="0"\r
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;"\r
- MinimalRebuild="true"\r
- BasicRuntimeChecks="3"\r
- RuntimeLibrary="3"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="4"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- LinkIncremental="2"\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|Win32"\r
- OutputDirectory="Release"\r
- IntermediateDirectory="Release"\r
- ConfigurationType="2"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories="C:\Java\jdk1.6.0_14\include;C:\Java\jdk1.6.0_14\include\win32"\r
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;"\r
- RuntimeLibrary="0"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- LinkIncremental="2"\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- OptimizeReferences="2"\r
- EnableCOMDATFolding="2"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Debug|x64"\r
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- TargetEnvironment="3"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- Optimization="0"\r
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;"\r
- MinimalRebuild="true"\r
- BasicRuntimeChecks="3"\r
- RuntimeLibrary="3"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- LinkIncremental="2"\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- TargetMachine="17"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|x64"\r
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- TargetEnvironment="3"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories="C:\Java\jdk1.6.0_14\include;C:\Java\jdk1.6.0_14\include\win32"\r
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;"\r
- RuntimeLibrary="0"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- LinkIncremental="2"\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- OptimizeReferences="2"\r
- EnableCOMDATFolding="2"\r
- TargetMachine="17"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- </Configurations>\r
- <References>\r
- </References>\r
- <Files>\r
- <Filter\r
- Name="Header Files"\r
- Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
- >\r
- </Filter>\r
- <Filter\r
- Name="Resource Files"\r
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"\r
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
- >\r
- </Filter>\r
- <Filter\r
- Name="Source Files"\r
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
- >\r
- <File\r
- RelativePath=".\AppMain.c"\r
- >\r
- </File>\r
- </Filter>\r
- </Files>\r
- <Globals>\r
- </Globals>\r
-</VisualStudioProject>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="breakgen"
+ ProjectGUID="{AE14C87F-E99B-4363-BE34-917FAF98258F}"
+ RootNamespace="breakgen"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="2"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="C:\Java\jdk1.6.0_14\include;C:\Java\jdk1.6.0_14\include\win32"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="2"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="2"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="C:\Java\jdk1.6.0_14\include;C:\Java\jdk1.6.0_14\include\win32"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="2"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\AppMain.c"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
-/*\r
- * Copyright 2000-2009 JetBrains s.r.o.\r
- *\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-/*\r
- * Created by IntelliJ IDEA.\r
- * User: yole\r
- * Date: 28.11.2006\r
- * Time: 14:15:18\r
- */\r
-package com.intellij.openapi.vcs.changes.ui;\r
-\r
-import com.intellij.openapi.actionSystem.*;\r
-import com.intellij.openapi.application.ApplicationManager;\r
-import com.intellij.openapi.application.ModalityState;\r
-import com.intellij.openapi.project.Project;\r
-import com.intellij.openapi.ui.DialogWrapper;\r
-import com.intellij.openapi.util.Comparing;\r
-import com.intellij.openapi.util.IconLoader;\r
-import com.intellij.openapi.vcs.AbstractVcs;\r
-import com.intellij.openapi.vcs.VcsBundle;\r
-import com.intellij.openapi.vcs.changes.*;\r
-import com.intellij.openapi.vcs.changes.actions.MoveChangesToAnotherListAction;\r
-import com.intellij.openapi.vcs.changes.actions.RollbackDialogAction;\r
-import com.intellij.ui.ColoredListCellRenderer;\r
-import com.intellij.ui.SimpleTextAttributes;\r
-import com.intellij.util.EventDispatcher;\r
-import org.jetbrains.annotations.NotNull;\r
-import org.jetbrains.annotations.Nullable;\r
-\r
-import javax.swing.*;\r
-import java.awt.*;\r
-import java.awt.event.ItemEvent;\r
-import java.awt.event.ItemListener;\r
-import java.util.*;\r
-import java.util.List;\r
-\r
-public class MultipleChangeListBrowser extends ChangesBrowser {\r
- private final ChangeListChooser myChangeListChooser;\r
- private final ChangeListListener myChangeListListener = new MyChangeListListener();\r
- private final boolean myShowingAllChangeLists;\r
- private final EventDispatcher<SelectedListChangeListener> myDispatcher = EventDispatcher.create(SelectedListChangeListener.class);\r
- private Collection<Change> myAllChanges;\r
- private Map<Change, LocalChangeList> myChangeListsMap;\r
-\r
- private final ChangesBrowserExtender myExtender;\r
- private final Runnable myRebuildListListener;\r
-\r
- public MultipleChangeListBrowser(final Project project, final List<? extends ChangeList> changeLists, final List<Change> changes,\r
- final ChangeList initialListSelection,\r
- final boolean capableOfExcludingChanges,\r
- final boolean highlightProblems, final Runnable rebuildListListener, @Nullable final Runnable inclusionListener) {\r
- super(project, changeLists, changes, initialListSelection, capableOfExcludingChanges, highlightProblems, inclusionListener, MyUseCase.LOCAL_CHANGES);\r
- myRebuildListListener = rebuildListListener;\r
-\r
- myChangeListChooser = new ChangeListChooser(changeLists);\r
- myHeaderPanel.add(myChangeListChooser, BorderLayout.EAST);\r
- myShowingAllChangeLists = Comparing.haveEqualElements((List<LocalChangeList>) changeLists, ChangeListManager.getInstance(project).getChangeLists());\r
- ChangeListManager.getInstance(myProject).addChangeListListener(myChangeListListener);\r
-\r
- myExtender = new Extender(project, this);\r
- }\r
-\r
- @Override\r
- protected void setInitialSelection(final List<? extends ChangeList> changeLists, final List<Change> changes, final ChangeList initialListSelection) {\r
- myAllChanges = new ArrayList<Change>();\r
- mySelectedChangeList = initialListSelection;\r
-\r
- for (ChangeList list : changeLists) {\r
- if (list instanceof LocalChangeList) {\r
- myAllChanges.addAll(list.getChanges());\r
- if (initialListSelection == null) {\r
- for(Change c: list.getChanges()) {\r
- if (changes.contains(c)) {\r
- mySelectedChangeList = list;\r
- break;\r
- }\r
- }\r
- }\r
- }\r
- }\r
-\r
- if (mySelectedChangeList == null) {\r
- for(ChangeList list: changeLists) {\r
- if (list instanceof LocalChangeList && ((LocalChangeList) list).isDefault()) {\r
- mySelectedChangeList = list;\r
- break;\r
- }\r
- }\r
- if (mySelectedChangeList == null && !changeLists.isEmpty()) {\r
- mySelectedChangeList = changeLists.get(0);\r
- }\r
- }\r
- }\r
-\r
- @Override\r
- public void dispose() {\r
- ChangeListManager.getInstance(myProject).removeChangeListListener(myChangeListListener);\r
- }\r
-\r
- public Collection<Change> getAllChanges() {\r
- return myAllChanges;\r
- }\r
-\r
- public ChangesBrowserExtender getExtender() {\r
- return myExtender;\r
- }\r
-\r
- public void addSelectedListChangeListener(SelectedListChangeListener listener) {\r
- myDispatcher.addListener(listener);\r
- }\r
-\r
- public void removeSelectedListChangeListener(SelectedListChangeListener listener) {\r
- myDispatcher.removeListener(listener);\r
- }\r
-\r
- private void setSelectedList(final ChangeList list) {\r
- mySelectedChangeList = list;\r
- rebuildList();\r
- myDispatcher.getMulticaster().selectedListChanged();\r
- }\r
-\r
- private boolean myInRebuildList;\r
-\r
- @Override\r
- public void rebuildList() {\r
- if (myInRebuildList) return;\r
- try {\r
- myInRebuildList = true;\r
- if (myChangesToDisplay == null) {\r
- // changes set not fixed === local changes\r
- final ChangeListManager manager = ChangeListManager.getInstance(myProject);\r
- myChangeListsMap = new HashMap<Change, LocalChangeList>();\r
- final List<LocalChangeList> lists = manager.getChangeListsCopy();\r
- Collection<Change> allChanges = new ArrayList<Change>();\r
- for (LocalChangeList list : lists) {\r
- final Collection<Change> changes = list.getChanges();\r
- allChanges.addAll(changes);\r
- for (Change change : changes) {\r
- myChangeListsMap.put(change, list);\r
- }\r
- }\r
- myAllChanges = allChanges;\r
- // refresh selected list also\r
- updateListsInChooser();\r
- }\r
-\r
- super.rebuildList();\r
- if (myRebuildListListener != null) {\r
- myRebuildListListener.run();\r
- }\r
- } finally {\r
- myInRebuildList = false;\r
- }\r
- }\r
-\r
- @Override\r
- public List<Change> getCurrentDisplayedChanges() {\r
- if (myChangesToDisplay == null) {\r
- return sortChanges(filterBySelectedChangeList(myAllChanges));\r
- }\r
- return super.getCurrentDisplayedChanges();\r
- }\r
-\r
- @NotNull\r
- public List<Change> getCurrentIncludedChanges() {\r
- return filterBySelectedChangeList(myViewer.getIncludedChanges());\r
- }\r
-\r
- private List<Change> filterBySelectedChangeList(final Collection<Change> changes) {\r
- List<Change> filtered = new ArrayList<Change>();\r
- for (Change change : changes) {\r
- if (Comparing.equal(getList(change), mySelectedChangeList)) {\r
- filtered.add(change);\r
- }\r
- }\r
- return filtered;\r
- }\r
-\r
- private ChangeList getList(final Change change) {\r
- return myChangeListsMap.get(change);\r
- }\r
-\r
- @Override\r
- protected void buildToolBar(final DefaultActionGroup toolBarGroup) {\r
- super.buildToolBar(toolBarGroup);\r
-\r
- final MoveChangesToAnotherListAction moveAction = new MoveChangesToAnotherListAction() {\r
- public void actionPerformed(AnActionEvent e) {\r
- super.actionPerformed(e);\r
- rebuildList();\r
- }\r
- };\r
-\r
- moveAction.registerCustomShortcutSet(CommonShortcuts.getMove(), myViewer);\r
- toolBarGroup.add(moveAction);\r
- }\r
-\r
- @Override\r
- protected List<AnAction> createDiffActions(final Change change) {\r
- List<AnAction> actions = super.createDiffActions(change);\r
- actions.add(new MoveAction(change));\r
- return actions;\r
- }\r
-\r
- private class ChangeListChooser extends JPanel {\r
- private final JComboBox myChooser;\r
- private final static int MAX_LEN = 35;\r
-\r
- public ChangeListChooser(List<? extends ChangeList> lists) {\r
- super(new BorderLayout());\r
- myChooser = new JComboBox() {\r
- public Dimension getMinimumSize() {\r
- return new Dimension(0, 0);\r
- }\r
- };\r
- myChooser.setRenderer(new ColoredListCellRenderer() {\r
- protected void customizeCellRenderer(JList list, Object value, int index, boolean selected, boolean hasFocus) {\r
- final LocalChangeList l = ((LocalChangeList)value);\r
- if (l != null) {\r
- String name = l.getName().trim();\r
- if (name.length() > MAX_LEN) {\r
- name = name.substring(0, MAX_LEN - 3) + "...";\r
- }\r
- append(name, l.isDefault() ? SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES : SimpleTextAttributes.REGULAR_ATTRIBUTES);\r
- }\r
- }\r
- });\r
-\r
- myChooser.addItemListener(new ItemListener() {\r
- public void itemStateChanged(ItemEvent e) {\r
- if (e.getStateChange() == ItemEvent.SELECTED) {\r
- final LocalChangeList changeList = (LocalChangeList)myChooser.getSelectedItem();\r
- setSelectedList(changeList);\r
- myChooser.setToolTipText(changeList == null ? "" : (changeList.getName()));\r
- }\r
- }\r
- });\r
-\r
- updateLists(lists);\r
- myChooser.setEditable(false);\r
- add(myChooser, BorderLayout.CENTER);\r
-\r
- JLabel label = new JLabel(VcsBundle.message("commit.dialog.changelist.label"));\r
- label.setDisplayedMnemonic('l');\r
- label.setLabelFor(myChooser);\r
- add(label, BorderLayout.WEST);\r
- }\r
-\r
- public void updateLists(List<? extends ChangeList> lists) {\r
- myChooser.setModel(new DefaultComboBoxModel(lists.toArray()));\r
- myChooser.setEnabled(lists.size() > 1);\r
- if (lists.contains(mySelectedChangeList)) {\r
- myChooser.setSelectedItem(mySelectedChangeList);\r
- } else {\r
- if (myChooser.getItemCount() > 0) {\r
- myChooser.setSelectedIndex(0);\r
- }\r
- }\r
- mySelectedChangeList = (ChangeList) myChooser.getSelectedItem();\r
- }\r
- }\r
-\r
- private class MyChangeListListener extends ChangeListAdapter {\r
- public void changeListAdded(ChangeList list) {\r
- updateListsInChooser();\r
- }\r
- }\r
-\r
- private void updateListsInChooser() {\r
- Runnable runnable = new Runnable() {\r
- public void run() {\r
- if (myChangeListChooser != null && myShowingAllChangeLists) {\r
- myChangeListChooser.updateLists(ChangeListManager.getInstance(myProject).getChangeListsCopy());\r
- }\r
- }\r
- };\r
- if (SwingUtilities.isEventDispatchThread()) {\r
- runnable.run();\r
- }\r
- else {\r
- ApplicationManager.getApplication().invokeLater(runnable, ModalityState.stateForComponent(MultipleChangeListBrowser.this));\r
- }\r
- }\r
-\r
- private class MoveAction extends MoveChangesToAnotherListAction {\r
- private final Change myChange;\r
-\r
- public MoveAction(final Change change) {\r
- myChange = change;\r
- }\r
-\r
- public void actionPerformed(AnActionEvent e) {\r
- askAndMove(myProject, new Change[]{myChange}, null);\r
- }\r
- }\r
-\r
- private static class Extender implements ChangesBrowserExtender {\r
- private final Project myProject;\r
- private final MultipleChangeListBrowser myBrowser;\r
-\r
- private Extender(final Project project, final MultipleChangeListBrowser browser) {\r
- myProject = project;\r
- myBrowser = browser;\r
- }\r
-\r
- public void addToolbarActions(final DialogWrapper dialogWrapper) {\r
- final Icon icon = IconLoader.getIcon("/vcs/refresh.png");\r
- if (myBrowser.myChangesToDisplay == null) {\r
- myBrowser.addToolbarAction(new AnAction("Refresh Changes") {\r
- @Override\r
- public void actionPerformed(AnActionEvent e) {\r
- myBrowser.rebuildList();\r
- }\r
-\r
- @Override\r
- public void update(AnActionEvent e) {\r
- e.getPresentation().setIcon(icon);\r
- }\r
- });\r
- }\r
- myBrowser.addToolbarAction(new RollbackDialogAction());\r
- final EditSourceInCommitAction editSourceAction = new EditSourceInCommitAction(dialogWrapper);\r
- editSourceAction.registerCustomShortcutSet(CommonShortcuts.getEditSource(), myBrowser);\r
- myBrowser.addToolbarAction(editSourceAction);\r
-\r
- myBrowser.addToolbarAction(ActionManager.getInstance().getAction("Vcs.CheckinProjectToolbar"));\r
-\r
- final List<AnAction> actions = AdditionalLocalChangeActionsInstaller.calculateActions(myProject, myBrowser.getAllChanges());\r
- if (actions != null) {\r
- for (AnAction action : actions) {\r
- myBrowser.addToolbarAction(action);\r
- }\r
- }\r
- }\r
-\r
- public void addSelectedListChangeListener(final SelectedListChangeListener listener) {\r
- myBrowser.addSelectedListChangeListener(listener);\r
- }\r
-\r
- public List<AbstractVcs> getAffectedVcses() {\r
- Set<AbstractVcs> result = new HashSet<AbstractVcs>();\r
- for (Change change : myBrowser.myAllChanges) {\r
- final AbstractVcs vcs = ChangesUtil.getVcsForChange(change, myBrowser.myProject);\r
- if (vcs != null) {\r
- result.add(vcs);\r
- }\r
- }\r
- return new ArrayList<AbstractVcs>(result);\r
- }\r
-\r
- public List<Change> getCurrentIncludedChanges() {\r
- return myBrowser.getCurrentIncludedChanges();\r
- }\r
- }\r
-}\r
+/*
+ * 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.
+ */
+
+/*
+ * Created by IntelliJ IDEA.
+ * User: yole
+ * Date: 28.11.2006
+ * Time: 14:15:18
+ */
+package com.intellij.openapi.vcs.changes.ui;
+
+import com.intellij.openapi.actionSystem.*;
+import com.intellij.openapi.application.ApplicationManager;
+import com.intellij.openapi.application.ModalityState;
+import com.intellij.openapi.project.Project;
+import com.intellij.openapi.ui.DialogWrapper;
+import com.intellij.openapi.util.Comparing;
+import com.intellij.openapi.util.IconLoader;
+import com.intellij.openapi.vcs.AbstractVcs;
+import com.intellij.openapi.vcs.VcsBundle;
+import com.intellij.openapi.vcs.changes.*;
+import com.intellij.openapi.vcs.changes.actions.MoveChangesToAnotherListAction;
+import com.intellij.openapi.vcs.changes.actions.RollbackDialogAction;
+import com.intellij.ui.ColoredListCellRenderer;
+import com.intellij.ui.SimpleTextAttributes;
+import com.intellij.util.EventDispatcher;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.*;
+import java.util.List;
+
+public class MultipleChangeListBrowser extends ChangesBrowser {
+ private final ChangeListChooser myChangeListChooser;
+ private final ChangeListListener myChangeListListener = new MyChangeListListener();
+ private final boolean myShowingAllChangeLists;
+ private final EventDispatcher<SelectedListChangeListener> myDispatcher = EventDispatcher.create(SelectedListChangeListener.class);
+ private Collection<Change> myAllChanges;
+ private Map<Change, LocalChangeList> myChangeListsMap;
+
+ private final ChangesBrowserExtender myExtender;
+ private final Runnable myRebuildListListener;
+
+ public MultipleChangeListBrowser(final Project project, final List<? extends ChangeList> changeLists, final List<Change> changes,
+ final ChangeList initialListSelection,
+ final boolean capableOfExcludingChanges,
+ final boolean highlightProblems, final Runnable rebuildListListener, @Nullable final Runnable inclusionListener) {
+ super(project, changeLists, changes, initialListSelection, capableOfExcludingChanges, highlightProblems, inclusionListener, MyUseCase.LOCAL_CHANGES);
+ myRebuildListListener = rebuildListListener;
+
+ myChangeListChooser = new ChangeListChooser(changeLists);
+ myHeaderPanel.add(myChangeListChooser, BorderLayout.EAST);
+ myShowingAllChangeLists = Comparing.haveEqualElements((List<LocalChangeList>) changeLists, ChangeListManager.getInstance(project).getChangeLists());
+ ChangeListManager.getInstance(myProject).addChangeListListener(myChangeListListener);
+
+ myExtender = new Extender(project, this);
+ }
+
+ @Override
+ protected void setInitialSelection(final List<? extends ChangeList> changeLists, final List<Change> changes, final ChangeList initialListSelection) {
+ myAllChanges = new ArrayList<Change>();
+ mySelectedChangeList = initialListSelection;
+
+ for (ChangeList list : changeLists) {
+ if (list instanceof LocalChangeList) {
+ myAllChanges.addAll(list.getChanges());
+ if (initialListSelection == null) {
+ for(Change c: list.getChanges()) {
+ if (changes.contains(c)) {
+ mySelectedChangeList = list;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ if (mySelectedChangeList == null) {
+ for(ChangeList list: changeLists) {
+ if (list instanceof LocalChangeList && ((LocalChangeList) list).isDefault()) {
+ mySelectedChangeList = list;
+ break;
+ }
+ }
+ if (mySelectedChangeList == null && !changeLists.isEmpty()) {
+ mySelectedChangeList = changeLists.get(0);
+ }
+ }
+ }
+
+ @Override
+ public void dispose() {
+ ChangeListManager.getInstance(myProject).removeChangeListListener(myChangeListListener);
+ }
+
+ public Collection<Change> getAllChanges() {
+ return myAllChanges;
+ }
+
+ public ChangesBrowserExtender getExtender() {
+ return myExtender;
+ }
+
+ public void addSelectedListChangeListener(SelectedListChangeListener listener) {
+ myDispatcher.addListener(listener);
+ }
+
+ public void removeSelectedListChangeListener(SelectedListChangeListener listener) {
+ myDispatcher.removeListener(listener);
+ }
+
+ private void setSelectedList(final ChangeList list) {
+ mySelectedChangeList = list;
+ rebuildList();
+ myDispatcher.getMulticaster().selectedListChanged();
+ }
+
+ private boolean myInRebuildList;
+
+ @Override
+ public void rebuildList() {
+ if (myInRebuildList) return;
+ try {
+ myInRebuildList = true;
+ if (myChangesToDisplay == null) {
+ // changes set not fixed === local changes
+ final ChangeListManager manager = ChangeListManager.getInstance(myProject);
+ myChangeListsMap = new HashMap<Change, LocalChangeList>();
+ final List<LocalChangeList> lists = manager.getChangeListsCopy();
+ Collection<Change> allChanges = new ArrayList<Change>();
+ for (LocalChangeList list : lists) {
+ final Collection<Change> changes = list.getChanges();
+ allChanges.addAll(changes);
+ for (Change change : changes) {
+ myChangeListsMap.put(change, list);
+ }
+ }
+ myAllChanges = allChanges;
+ // refresh selected list also
+ updateListsInChooser();
+ }
+
+ super.rebuildList();
+ if (myRebuildListListener != null) {
+ myRebuildListListener.run();
+ }
+ } finally {
+ myInRebuildList = false;
+ }
+ }
+
+ @Override
+ public List<Change> getCurrentDisplayedChanges() {
+ if (myChangesToDisplay == null) {
+ return sortChanges(filterBySelectedChangeList(myAllChanges));
+ }
+ return super.getCurrentDisplayedChanges();
+ }
+
+ @NotNull
+ public List<Change> getCurrentIncludedChanges() {
+ return filterBySelectedChangeList(myViewer.getIncludedChanges());
+ }
+
+ private List<Change> filterBySelectedChangeList(final Collection<Change> changes) {
+ List<Change> filtered = new ArrayList<Change>();
+ for (Change change : changes) {
+ if (Comparing.equal(getList(change), mySelectedChangeList)) {
+ filtered.add(change);
+ }
+ }
+ return filtered;
+ }
+
+ private ChangeList getList(final Change change) {
+ return myChangeListsMap.get(change);
+ }
+
+ @Override
+ protected void buildToolBar(final DefaultActionGroup toolBarGroup) {
+ super.buildToolBar(toolBarGroup);
+
+ final MoveChangesToAnotherListAction moveAction = new MoveChangesToAnotherListAction() {
+ public void actionPerformed(AnActionEvent e) {
+ super.actionPerformed(e);
+ rebuildList();
+ }
+ };
+
+ moveAction.registerCustomShortcutSet(CommonShortcuts.getMove(), myViewer);
+ toolBarGroup.add(moveAction);
+ }
+
+ @Override
+ protected List<AnAction> createDiffActions(final Change change) {
+ List<AnAction> actions = super.createDiffActions(change);
+ actions.add(new MoveAction(change));
+ return actions;
+ }
+
+ private class ChangeListChooser extends JPanel {
+ private final JComboBox myChooser;
+ private final static int MAX_LEN = 35;
+
+ public ChangeListChooser(List<? extends ChangeList> lists) {
+ super(new BorderLayout());
+ myChooser = new JComboBox() {
+ public Dimension getMinimumSize() {
+ return new Dimension(0, 0);
+ }
+ };
+ myChooser.setRenderer(new ColoredListCellRenderer() {
+ protected void customizeCellRenderer(JList list, Object value, int index, boolean selected, boolean hasFocus) {
+ final LocalChangeList l = ((LocalChangeList)value);
+ if (l != null) {
+ String name = l.getName().trim();
+ if (name.length() > MAX_LEN) {
+ name = name.substring(0, MAX_LEN - 3) + "...";
+ }
+ append(name, l.isDefault() ? SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES : SimpleTextAttributes.REGULAR_ATTRIBUTES);
+ }
+ }
+ });
+
+ myChooser.addItemListener(new ItemListener() {
+ public void itemStateChanged(ItemEvent e) {
+ if (e.getStateChange() == ItemEvent.SELECTED) {
+ final LocalChangeList changeList = (LocalChangeList)myChooser.getSelectedItem();
+ setSelectedList(changeList);
+ myChooser.setToolTipText(changeList == null ? "" : (changeList.getName()));
+ }
+ }
+ });
+
+ updateLists(lists);
+ myChooser.setEditable(false);
+ add(myChooser, BorderLayout.CENTER);
+
+ JLabel label = new JLabel(VcsBundle.message("commit.dialog.changelist.label"));
+ label.setDisplayedMnemonic('l');
+ label.setLabelFor(myChooser);
+ add(label, BorderLayout.WEST);
+ }
+
+ public void updateLists(List<? extends ChangeList> lists) {
+ myChooser.setModel(new DefaultComboBoxModel(lists.toArray()));
+ myChooser.setEnabled(lists.size() > 1);
+ if (lists.contains(mySelectedChangeList)) {
+ myChooser.setSelectedItem(mySelectedChangeList);
+ } else {
+ if (myChooser.getItemCount() > 0) {
+ myChooser.setSelectedIndex(0);
+ }
+ }
+ mySelectedChangeList = (ChangeList) myChooser.getSelectedItem();
+ }
+ }
+
+ private class MyChangeListListener extends ChangeListAdapter {
+ public void changeListAdded(ChangeList list) {
+ updateListsInChooser();
+ }
+ }
+
+ private void updateListsInChooser() {
+ Runnable runnable = new Runnable() {
+ public void run() {
+ if (myChangeListChooser != null && myShowingAllChangeLists) {
+ myChangeListChooser.updateLists(ChangeListManager.getInstance(myProject).getChangeListsCopy());
+ }
+ }
+ };
+ if (SwingUtilities.isEventDispatchThread()) {
+ runnable.run();
+ }
+ else {
+ ApplicationManager.getApplication().invokeLater(runnable, ModalityState.stateForComponent(MultipleChangeListBrowser.this));
+ }
+ }
+
+ private class MoveAction extends MoveChangesToAnotherListAction {
+ private final Change myChange;
+
+ public MoveAction(final Change change) {
+ myChange = change;
+ }
+
+ public void actionPerformed(AnActionEvent e) {
+ askAndMove(myProject, new Change[]{myChange}, null);
+ }
+ }
+
+ private static class Extender implements ChangesBrowserExtender {
+ private final Project myProject;
+ private final MultipleChangeListBrowser myBrowser;
+
+ private Extender(final Project project, final MultipleChangeListBrowser browser) {
+ myProject = project;
+ myBrowser = browser;
+ }
+
+ public void addToolbarActions(final DialogWrapper dialogWrapper) {
+ final Icon icon = IconLoader.getIcon("/vcs/refresh.png");
+ if (myBrowser.myChangesToDisplay == null) {
+ myBrowser.addToolbarAction(new AnAction("Refresh Changes") {
+ @Override
+ public void actionPerformed(AnActionEvent e) {
+ myBrowser.rebuildList();
+ }
+
+ @Override
+ public void update(AnActionEvent e) {
+ e.getPresentation().setIcon(icon);
+ }
+ });
+ }
+ myBrowser.addToolbarAction(new RollbackDialogAction());
+ final EditSourceInCommitAction editSourceAction = new EditSourceInCommitAction(dialogWrapper);
+ editSourceAction.registerCustomShortcutSet(CommonShortcuts.getEditSource(), myBrowser);
+ myBrowser.addToolbarAction(editSourceAction);
+
+ myBrowser.addToolbarAction(ActionManager.getInstance().getAction("Vcs.CheckinProjectToolbar"));
+
+ final List<AnAction> actions = AdditionalLocalChangeActionsInstaller.calculateActions(myProject, myBrowser.getAllChanges());
+ if (actions != null) {
+ for (AnAction action : actions) {
+ myBrowser.addToolbarAction(action);
+ }
+ }
+ }
+
+ public void addSelectedListChangeListener(final SelectedListChangeListener listener) {
+ myBrowser.addSelectedListChangeListener(listener);
+ }
+
+ public List<AbstractVcs> getAffectedVcses() {
+ Set<AbstractVcs> result = new HashSet<AbstractVcs>();
+ for (Change change : myBrowser.myAllChanges) {
+ final AbstractVcs vcs = ChangesUtil.getVcsForChange(change, myBrowser.myProject);
+ if (vcs != null) {
+ result.add(vcs);
+ }
+ }
+ return new ArrayList<AbstractVcs>(result);
+ }
+
+ public List<Change> getCurrentIncludedChanges() {
+ return myBrowser.getCurrentIncludedChanges();
+ }
+ }
+}