summaryrefslogtreecommitdiff
path: root/platform/platform-api
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2013-09-19 12:39:22 -0700
committerTor Norbye <tnorbye@google.com>2013-09-19 12:40:05 -0700
commitbeca9839b2866f90da9dc517c29df2ec25a6f6a8 (patch)
tree747d1f98670ee652ac6637ad488124760b2ac489 /platform/platform-api
parenta28de544d7f6bae0c637a1f8175ea613a976c52e (diff)
downloadidea-beca9839b2866f90da9dc517c29df2ec25a6f6a8.tar.gz
Snapshot 09776de1457414bbc7dc8a09e242de80e282d7dc from idea/132.325 of git://git.jetbrains.org/idea/community.git
09776de: IDEA-97132 "Building Gradle project info" dialog is modal and non-cancelable 8013ffd: Merge remote-tracking branch 'origin/master' 870d88c: IDEA-113775 External System: new 'Refresh external project' action for single module refresh; shortcut changed to "use-shortcut-of='Refresh'" 8c31855: JediTerm jars updated. 6e01d2c: remove unused dependency of dvcs on groovy 206b35f: allow to filter out inspection highlight infos (IDEA-113738) 0b123a7: pass PsiElement to be able to filter out specific highlight infos based on location (IDEA-113738) 85ca653: do we have java.applet in mockjdk now? 7c0ff90: more diagnostics in buildModulesAndCollectUsedJars() a99e7af: NSIS build scripts moved to community 3f2c72f: robust removeAllBreakpoints catch error while open new tab (attach debugger) Chrome still crashed on speed search in Variable View. bedb5d8: move NsiFiles helper task to community 26e1d16: new inference: do not imply constraints for proper types e273976: new inference: null upper bounds 278120e: move DefaultColorScheme* stuff to editor-ui-ex module e0ed326: Add reference for dependenciesToScan parameter of maven-surefire-plugin 79f4809: IDEA-112202 Ability to open surefire-reports in tests view like Eclipse does Add reference to open test result folder a0d65ce: IDEA-113766 Incorrect font width calculation in text area 44e095e: fix Terminal issues 34b1575: new project wizard: fixing layout problems 077e89f: IDEA-98656 Java doc not generated when an other Java doc has been commented after. 1554b75: IDEA-113604 Error suppression does not stop freemarker validator 5c0d022: IDEA-113596 Can't copy "About" details while indexing a645075: use optimized changes calculation always and only report different values in case of EAP mode c37d75d: IDEA-113581 Gradle: New Project Wizard: it could be possible to enable "Use default gradle wrapper" option 3b277d2: new project wizard: fixing layout problems 6e39762: new project wizard: hiding the "select desired technologies" label 5c1c1b0: new inference: infer from condition 052290e: NPE c1137ac: new inference: promote extends bounds to lower level 6950859: new inference: accept bounds with recursive dependency 92f6ae2: new inference: open top level captured wildcards 1622968: new inference: use dependant variables instantiations when resolve bounds e980a77: IDEA-113581 Gradle: New Project Wizard: it could be possible to enable "Use default gradle wrapper" option b3d49a4: IDEA-113775 External System: new 'Refresh external project' action for single module refresh c0afc26: fix stringWidth on non Retina devices e5781d7: IDEA-110452 Darcula theme causes font size increase 92b5fac: Don't add actions without icons to the file history toolbar 95df681: new project wizard: AddSupportForFrameworksPanel reused bcd0639: EA-49794 - NPE fix fcde853: Gradle: vmOptions provisioning fix 83ef088: IDEA-113199 Grails Plugins manager uses application.properties instead of BuildConfig.groovy Disable Grails plugin dialog for Grails 2.3.0 cae8718: platform: detect case-only name changes e19b820: Cleanup (minor refactoring and optimization) 620b9a1: common super-class extracted for library-based frameworks 60b4a4c: unnecessary intermediate class removed fdec7af: deprecate RoamingTypeExtensionPoint 09faeb9: deprecate RoamingTypeDisabled 2bdc447: [Serega Vasiliev] don't share statistics.application.usages.xml d8c1328: new StreamProvider API: client must not worry about supplementary files (version files for example) cd5f5bf: we don't need to manage list of stream providers, one is enough 3e0ccdd: unused import removed a49963f: Gradle: vmOptions provisioning fix e39cc01: IDEA-113448 Ability to create tests for inner classes 8f64aec: IDEA-113581 Gradle: New Project Wizard: it could be possible to enable "Use default gradle wrapper" option 2ff3757: xdebugger: implemented standalone variables view 93a2c9e: xdebugger: debugger trees decoupled from XDebugSession 7469f4b: notnullification 58c7e6e: hide flex modules from 'available elements' tree in artifact editor c6e955e: ability to cancel write to local file 6999b95: icon classes regenerated: copyright added to generated files, more instructive comment added 4583d6d: action component should be transparent b966b4e: IDEA-96724 Unable to clear Recent Projects list anymore 36c939f: do not handle SelectAll 9007f1e: Merge remote-tracking branch 'origin/master' 0c020d5: JediTerm jars updated. bdd7827: IDEA-98275 (Inspection "Unused assignment" does not work with the += operator) 2366f48: reduce flashes in lens mode da1f984: Lense mode patches&fixes (still internal mode only) 2926b90: unescape unicode escape sequences with a selection 33917b2: Merge remote-tracking branch 'origin/master' db74d04: cleanup aa8b725: keep apple.awt dependencies to util module f5b050d: dfa: boxed/unboxed values are also unknown 68499e9: re: tina 7db91db: For 'normal indices' schedule the file for update and reset stamps for all affected indices (there can be client that used indices between before and after events, in such case indices are up to date due to force update with old content) cee92af: WEB-1212 Add actions "expand children" and "expand descendants" in object variable context menu in JS debug Actually, we don't add such actions, but now speed search can expand nodes. 491868c: Tests updated for system dependent problems. b32093e: Fix 'compare with' on windows for file history. b4e6e2e: IDEA-113622 IDEA-101040 Throw assertion error + add a javadoc 02f8059: groovy for groovy shell 34464a1: cleanup a5c6842: Platform: more precise string version comparison +review CR-OC-818 c5daac1: Merge remote-tracking branch 'origin/master' c9e64f9: Merge branch 'svn1_8_new' 88df6b0: fix dfa false positive in JSTypeofTypeImpl 0a8c128: DfaMemoryStateImpl: use only non-trivial equality classes for comparison fb5e43a: IDEA-94942 Do not add '@' to the path end if no peg revision specified and path does not contain '@' 6eec3b3: IDEA-113725 Remove adding '@' to the checkout destination folder path end 88a8cc6: Enable action for generic fileEditors (non-text) & cleanup 9f1e568: fix NPE on startup with empty configs 57ec7ae: IDEA-108294 every time I open project — it is collapsed to (0.0) fda2edf: IDEA-103303 "BeforeLaunch" tools in run/debug configurations do not do macro substitution (After review http://crucible.labs.intellij.net/cru/CR-IC-2352) 1b52604: new titled renderer 01db28a: rollback 6e2e668: fix stringWidth on Windows 016affd: setup AA as well as fractional metrics b60b5ae: + custom foreground as a parameter e07e365: remove useless warning "Client-side debugging is available in Chrome and Firefox only" 5a773cb: IDEA-113719 Ide frame collapses if a project has been saved with maximised frame on Mac OS X and jdk7 2c7c801: WEB-9277 Exception when startup page in config doesn't start with http:// bad42ce: resource roots: added button to mark directory as a resource root to the toolbar of 'Sources' tab in module editor 82869db: simplification 92ba709: StartBrowserPanel UI fixed after kb review — "Start Browser" checkbox renamed to "After launch", don't disable all panel controls on unselect this checkbox remove label for URL field fix combobox text baseline (only Mac&Acua LAF, other LAFs are not checked) c495a55: cleanup e810a1d: new StreamProvider API: saveContent accept byte[] instead of InputStream 48c3963: hash as primitive int, saveForProviders - avoid document copy e4e62de: IDEA-113678 NPE in external Make with Eclipse compiler 1e0f096: IDEA-95943 Mac OS X, application menu disappears for project sometimes daad75e: Minor code change: optimization 9872570: EA-37570 - IAE: MavenRootModelAdapter.addModuleDependency c110f6a: added icons for resource roots 87a043e: temporary exclude darcula icons from generation 092a4c0: icons classes generation: 'external-system' module migrated to use generated class 2c4952d: Merge remote-tracking branch 'origin/master' dc39410: IDEA-71176 Encapsulate Java fields should update Groovy usages 5de8769: EA-48031 - assert: PsiJavaCodeReferenceElementImpl.diagnoseUnknownParent d2f8238: EA-47448 - SOE: remove GPP traits which cause SOE 3e1a9aa: encode only known references d15350e: batch highlighter dispose requests 2c2111f: avoid deprecated methods ed104a4: refresh todo configuration on color scheme change 02bfaee: cleanup ee5cc85: NPE 17ec6e7: cleanup 2c44b32: visibility 7a12666: AllIcons class regenerated: copyright removed b724720: delete outputs corresponding to changed files for each target before running builders on it f2cb5f3: new inference: initial lambda 0959d41: new inference: delayed constraints 74364db: new inference: accept all new expressions when diamond is checked to support collapse checks 7a06e5d: platform: less Win32 FS cache misses 2fe6eea: EA-47867 (keep order of path macros) 24caf16: Cleanup (unneeded qualifier) cae47e4: model: meaningful macro name assertion cdc9cc1: Cleanup (typos) cf7580c: tests framework: project descriptor creation eased 2d83d16: tests: nothing to present for the public 24f5418: IDEA-113686 Unable to debug gradle tests when -Dtest.single is used c42bb71: correctly handle case changes in resource files for case-insensitive file systems: ensure case of the output file is exactly the same as the case of the source file 6375979: new inference: typo b6d38c0: new inference with diamonds: find in map by context arguments 46e8363: diamonds: unify substitutor calculation 4c9117d: class moved to proper source root d831db7: icons classes generation: fixed regex processing in icon-robots.txt files, android finally excluded from generation 0a73b24: icon classes regenerated; please don't modify icons classes by hand, use icons.gant instead 2920a3e: EA-50043 - UOE: BaseGenerateTestSupportMethodAction$MyHandler.invoke addc304: inspection profile: allow to change inspection settings from quick fix - profileChanged would force diff to default recalculation (IDEA-113650) 39e0079: NPE c20b88c: new inference: fix subtyping direction 005a409: new inference: incomplete exprs 7b431f4: new inference: wildcard bounds could mention type vars aa8f107: StorageUtil.documentToBytes - we should use standard line-separator (\n) - stream provider can share file content on any OS Only stream provider — in case of local file we use system line separator as before 592744f: cleanup 63d4c9b: component version as TObjectLongHashMap fe5954c: cleanup a109761: IDEA-103303 "BeforeLaunch" tools in run/debug configurations do not do macro substitution 6656c26: remove white stripe under Aqua 4cba712: IDEA-113617 (Inspection "Comparator class not declared serializable" proposes wrong modification for extending interface.) 2253395: new StreamProvider API: saveContent accept size as int, listSubFiles returns Collection<String> instead of String[], default impl listSubFiles moved to interface class use new StreamProvider API in ICS plugin fd10033: building searchable options should also be available in community build scripts c142fea: extract a useful function from ultimate build script 7e43f9c: make peter less worried b3ac677: dfa: closure states have empty stack initially c8e66db: flush code block variables when leaving it via exception route d046951: dfa: don't create negated value just to flush it 36a4b9b: DfaVariableValue: not-null psi, store qualified references in the value itself 2401bcc: DfaVariableValue: cheaper creation, cache negated var 67ecf76: a more explicit CommandLog category 3aa48b4: Use JBColor. c33135a: VCS: improve ChangesTreeList selection in Tree mode ec73fec: StartBrowserPanel & JS Debug RC editor — unified url text field 450ff3c: Merge remote-tracking branch 'origin/master' c9064eb: Merge branch 'svn1_8_new' d89ff92: new inference: find method by arg list fixed dcdaebd: new inference: process all vararg args to gather constraints 903f47b: new inference: stop when bound set is fully inferred 2198276: new inference: subtyping with anonymous fixes b36107d: new inference: exclude return type constraint from applicability check e2ee888: new inference: reuse getTargetType initial e6d1b14: new inference: do not infer non-generics calls 48e206d: new inference: equals & hashCode 314333d: IDEA-94942 Make svn command line implementation always use "interactive authentication" (fixes error when "passive authentication" was applied on some threads where thread local storage was not correctly cleared) f3ba5c7: cleanup, apply on name change fix & NPE fix 1b15d56: assertion fix d12f8f3: bigger font size in Project View d78422c: IDEA-94942 Use move destination as working directory for "svn move" command (not to lock source directory by running process) 3d8cdeb: should be undo/redo in TextFieldWithBrowseButton 7b3500d: move StartBrowserSettings to xml module, use our robust Url instead of java URI 8f9926f: IDEA-102165 android xml: show icons and quickdoc for views in code completion 5eea60f: IDEA-113664 Do not use '@' (for peg revision) at the end of move destination a17d4b6: new "Replace Octal Escape with Unicode Escape" intention ff1983d: IDEA-84569 Gradle - IntelliJ warning about 'main' in sourceSet 8f155fa: EfficientChooseByNameModel -> ChooseByNameModelEx EfficientChooseByNameContributor ->ChooseByNameContributorEx 7401dc6: two inner classes instead of anonymous ones for clarity 8076c8c: Merge remote-tracking branch 'origin/master' d7679bb: XmlElementStorage must pass any files to stream providers, project files too: step 1 — adapter for old StreamProvider interface (such old implementations will not get project files as before, only new new implementations). According to reviewer's suggestion, new interface is not part of platform-api, it is our impl interface 8d65d2e: don't expose getStartupPageField afaaeb4: StartBrowserPanel should not require usage SwingHelper.wrapWithHorizontalStretch, add clearBorder 53f4029: simplify saveForProviders 7c3e74c: Merge branch 'svn1_8_new' 24a4e13: Cleanup ExpressionUtils duplication 0bcf6a3: IDEA-112854 Save credentials to memory cache (for command line implementation) 851c574: IDEA-113555 void in right side of assignment de35189: EA-49916 diagnostics 5083a96: IDEA-113117 Groovy: NPE at GrIntroduceConstantDialog.initializeTargetClassEditor() on attempt to introduce a constant to an anonymous class 91f27f1: process only groovy files 5b636c4: IDEA-94942 Refactored utility cleanup command to use SvnLineCommand (instead of SvnSimpleCommand) 1f2c85e: fix testdata d92bbf1: IDEA-94942 Refactored info client to use SvnLineCommand (instead of SvnSimpleCommand) 780efca: allow to use framework-specific libraries from application servers installations 49312c3: IDEA-112821 IDEA falls in endless loop during editing run configurations f24a45e: Workaround for stringWidth in 7u40 03e8f77: IDEA-94942 Refactored update logic - use common behavior for command line svn commands fa37b7b: Platform: JavaDoc for ExecutionTargets +review CR-IC @yole a0c19e2: Platform: compare versions with different number of parts + Version class constructor's arguments order fixed 8b4064a: fix cat walking over keyboard 0fbc2ec: relax dfa time limit for global inspections c5fbb2e: dfa: fix wrong instanceof detection when using several incarnations of the same generic field with different substitutors 8049090: forget old splitter proportions, etc for the sake of less default values (IDEA-113644) 8c2cee3: unnecessary fqn: check for conflict parameterized references 4f24b07: IDEA-94942 Refactored commit logic - use common behavior for command line svn commands b38de05: IDEA-94942 Resolve repository url and command working directory based on command target (file or url) element (for each command line command) 2015083: java: highlighting for statics in anonymous classes 2c8eb0d: Cleanup (formatting) af9ffb8: fix SIOOBE dcfd5ea: Gradle: cosmetic change 6e3c972: platform: commit/dispose allocated model a7b887e: Gradle: changed settings of gradleHomeCache c6c74fa: Gradle: fix external project path option usage 0a138db: IDEA-94942 Refactored LineCommandListener - removed baseDirectory method 99eba34: restore "Fix StringBuilder append" quickfix a5d17029: Merge remote-tracking branch 'origin/master' 7a56ffa: dfa: cleanup block local variables when exiting it 852aaa1: more concise DfaVariableState.toString 0f1494e: dfa: don't multiply eq classes until really needed c2f28d8: VCS: improve ChangesTreeList selection in Tree mode 7cc9d99: Github: add util function a00623d: IDEA-113634 ("Confusing octal escape sequence" inspection misses some cases) e8d6955: before and after template text must be longer for IntentionDescriptionTest e16694e: IDEA-63698 (Inconvertible type (assign double to Integer) not highlighted as error) 0200bab: DfaMemoryState is unfortunately mutable; use defensive copying a808b08: "Replace Unicode Escape with Unescaped Character" intention (IDEA-60661) 11e73a4: allow to use element to the left if element to the right is not available (at the end of the file) ab2c4af: cleanup 91543ed: dfa: treat every getter-like invocation like a field access, don't look inside and don't parse other classes for that 3b8ee6f: global inspections: preallocate less memory for children 7afff0e: global inspections: store parameter references only once 368e989: revert: honor shouldBuildStubFor() for substituted languages 7436173: honor shouldBuildStubFor() for substituted languages 94c7d9b: separate template name for groovy e508172: EA-49855 - assert: TextRange.<init> select start offset for empty statement 353f4b8: EA-49924 - NPE: JavaMethodsConflictResolver.checkSameSignatures 7fa275b: spellchecker: dictionary extended f389b3f: use java LinkedHashMap (why order is not stable?) 7e13241: restore resolve() method with an old signature for old plugins support, mark it as deprecated 42141f3: IDEA-113538 Insert Managed Dependency: does not find artifact based on artifact id 93af907: Gradle: update bundled gradle version to '1.8-rc-1' 6a9eb29: Gradle: update bundled gradle version to '1.8-rc-1' 6bed505: Merge remote-tracking branch 'origin/master' 995ac2b: @InjectMocks also ignored (IDEA-113579) 4d869d9: IDEA-113532 Gradle: use gradle javadocs for script dsl 'quick documentation' enrichment 5769bd9: Merge remote-tracking branch 'origin/master' 9408a08: fix file case 09fbdf3: prefer java paste provider 88c43fb: new inference: fix dependencies b26f1f0: simplify API — TextBrowseFolderListener JSDebug settings editor — file chooser must use the same logic as RC producer 8429da0: Delete unused file with a lot of bugs. 1b6eba8: Update workaround for '--follow' log argument with largefiles extension. b8f0412: Merge remote-tracking branch 'origin/master' e0c2f16: IDEA-94942 Refactored AuthenticationCallback - accept repository url instead of file 269a0de: WEB-9250 Add "Start browser"/"with JavaScript debugger" options to Node.js run/debug configuration b78367f: Fix OC-8214: [',' on the next line] formatting option +review CR-OC @Anton.Makeev 2911086: minor optimization: do not wait for vfs refresh to complete in case build was cancelled cf9c4ae: remove unused import from test data 4c56a28: more assertions 614a73e: IDEA-94942 Require authentication callback for svn command be not null cb122ba: store language level in CoreLanguageLevelProjectExtension fa81fe4: Merge branch 'fix' of git://github.com/bashor/intellij-community into pull102 c51a79a: Fixed TypeConversionUtil#getAllBoxedTypeSupers (after f4a27e8). ProjectRootModificationTracker#getInstance returns NEVER_CHANGED when ProjectRootModificationTracker service not registered. 8c6247d: avoid empty commits, specify author based on system settings b358947: PropertiesComponentImpl must save settings in predictable stable order cf053bf: cleanup c5c0662: WebBrowsersConfiguration must save list of browsers in predictable stable order 1141959: ignore "ver" as well 63ccfea: cleanup f79f498: cleanup: unused code removed da234c7: cleanup: use less specific interface 33ca91f: unused code removed 3e598ed: IDEA-113519 Groovy Shell fails to open with exceptions 8cc385d: A minimal interface sufficient for XVariablesView usage extracted from XDebugSession. 0ab182e: drop obsolete bkwrd-compatibility 2dc69e5: cleanup e70fcab: not every field with non-annotated constructor initializer is notnull 6af48bb: dfa: fix & treatment 1af2b84: typos fbc3d18: IDEA-111450 false positive for "Redundant type cast" inspection b816d27: mission: new inference (initial) ff775ca: external annos: spare some findFileByUrl aea6b5b: IDEA-94942 Make "svn info <url>" work correctly - do not require File instance in parse logic 9304e4b: IDEA-94942 Make path to svn command line client be obtained only once 6e1d4ee: IDEA-98756 IDEA is unable to resolve AspectJ compiler JAR if Maven 3 importing is on 4262c63: ...create a file :) f6fc373: dfa: use more efficient references to common exception classes 9f6948f: IDEA-94942 Refactored commit logic - removed SvnBindClient ea61355: Do you want to create a file named xxx instead? 4e10a46: ExternalAnnotator: compatibility with older clients is restored; typo fixed in collectInformation name +review CR-IC-2315 cfd6567: IDEA-59783 Properties files: code completion list does not open after dot character e3335f6: ExternalAnnotator documentation is improved +review CR-IC-2315 89087c5: IDEA-113375 "Cyclic expand word" should expand words-separated-by-dashes too d10236b: revert "add possibility to setup lookup element for XML attribute values; IDEA-102167 layout_* attributes should go first" 7b2249b: Add ResolveContext object shared between all scheduled resolve tasks; IDEA-113446 Do not clear data in AndroidExternalApklibDependenciesManager. Instead, store cache in ResolveContext to avoid several resolves of one apklib artifact 7e1bcf2: support conversion of artifact settings d1cfd20: IntelliLang: error filter configuration fix & rename e4d31ad: IDEA-94942 Refactored method CommandUtil.putChangeLists (use concrete type instead of Object) 1c11e83: IDEA-113488 Show commit in git log from file history context menu 8415851: IDEA-94942 Changed log level from "warn" to "info" (in svn command execution logic) 24effbd: Merge branch 'master' of git://github.com/asedunov/intellij-community into pull101 c2ea835: 'prepare plugin for deployment' action creates separate jars for modules included into classpath of external build 88a2716: external annotator is allowed to decide if it should handle file with error +review CR-IC d2de078: IDEA-90511 Slow version comparison made faster. d9224ad: assertion fixed f2bf952: IDEA-113312 Do not fail svn command if could not determine working copy root to execute cleanup (after authentication failure) 315ec89: EA-49525 - assert: TextRange.<init> c052ec4: new project wizard: no checkboxes in header 22a8608: simplify JavaScriptDebugStarter — don't implement — consider to implement com.jetbrains.javascript.debugger.FileUrlMapper instead of providing mappings directly 9c8f60b: Merge remote-tracking branch 'origin/master' c6635f0: IDEA-112456 Show "Cleanup" link on "working copies information panel" for svn 1.8 working copies ace9afb: continue extract "Start Browser" functionality from J2EE to platform xml — JavaEEJavaScriptDebugStarter unified 3639fb1: extract "Start Browser" functionality from J2EE to platform xml, remove outdated BrowserLauncher IDEA-23782 tomcat run configuration: list all known browsers 97f8c64: remove deprecated method escapeUrl 59c7b63: IDEA-112794 Explicitly check that current logic could return "null" as svn command exit code 3af18cf: WEB-8397 Incorrect "element is not allowed here" inspection 840d7aa: cleanup 754959a: moved to psi b15f4f0: IDEA-113432 Groovy script classpath should include module dependencies d2030a5: provide default sensible implementation 4f6aadc: EA-49793 - NPE: FilePointerPartNode.update e87e071: customize GeneralHighlightingPass with - HighlightInfoProcessor which reacts to various highlight info lifecycle events - HighlightVisitorProducer which allows to change highlight visitor set to run in this pass (needed in DefaultHighlightVisitorBasedInspection) All this allows to get rid of MessageBus-propagated daemon events which turned out to be too expensive and to untangle GHP from UpdateHighlightingUtil. df5526b: moved to indexing 6581043: cleanup e68c984: moved to project-model 48c7973: suggest to create a file when user creates a directory named "foo.xt" (IDEA-113072) 85fd323: IDEA-112499 Static imports in live templates fail the second time they're used 95693da: WEB-9248 Emmet fails when having HTML entities 27c1f03: un-inject language 167b44d: un-inject language 22e526c: fix documentation prvovider 897e8ea6: resource roots: suggest only java roots for java-specific actions 64055b1: resource roots: show 'out of source' icon for java files under resource roots 5c9daf7: unused method removed 0f17e3d: file chooser: convert jar file from local FS to jar FS in all cases (IDEA-113159) 0b8e31f: <with> for changesViewContent 7349329: suppress warning for xmlRpcHandler 3dd899a: <with> for psi.referenceProvider, quoteHandler 4b0a964: revert 01d5b0e aa2399b: Merge branch 'svn1_8_new' 05ab0c6: DevKit: fix type name for plugin references f7c6cdb: DevKit: no do spellcheck <vendor> 5dc41cb: IDEA-94942 Implemented "Relocate" action 835d71e: java: utility method extracted 79f9b398: remove LoggerFactory.getInstance() because it can silently override static Log4j properties even when TestLoggerFactory is used e6cfd25: IDEA-112456 Implemented "Cleanup" action 2e9d443: Refresh $APP_ROOT/plugins manually on Grails application synchronization. +review CR-IU-291 7c2343c: Nullness cannot be null, therefore mark nullness as @NotNull 8d7f95a: IDEA-26350 (Bad Java code is green: variable might not have been initialized) 7ec8c9e: cleanup 0f63921: EA-49491 - NPE: RenameFileFix.isAvailable b0fb4e9: EA-49640 - IAE: ActionManagerImpl.getId a48e1e6: more diagnostics ed10a0e: more diagnostics c6190a8: cleanup de46935: IDEA-113147 Fixed "typo" so that url field contains url value (but not depth value) 7bf4b24: compact ui mode 842c947: IDEA-113180 Force '@' at the end of paths without peg revision passed to svn command line client ab23b28: don't generate java doc for synthetic elements 26ae6ba: Lense mode "internal" preview e1bb3a2: EA-48054 - CCE: MethodResolverProcessor.execute af608e8: EA-49203 - ISE: GrAnonymousClassType.getJavaClassName a62b14d: EA-48178 - IAE: GrLightClassReferenceElement.<init> b93e88c: EA-49152 - diagnostics ec324a7: Add synchronization on initialization of GroovyMethodInfo +review CR-IC @gromopert f98f472: AppCode: canceling simulator launch, if there are pending sessions to start b54680b: IDEA-94942 Refactored command line commit logic to use common way of parameters creation 8b0c612: remove GroovyDeclarationSearcher as it's only needed for dead Groovy++ (EA-49626) c608b03: dfa: use human numeration, not programmers' one 0c2794b: remove alphanumbering from Reopen Recent Project action 857fb3d: enable "scroll to the end" console action when the last line is not visible (IDEA-113322) 43a124a: correct implementation of ReverseCharSequence.subSequence 1337e5f: WEB-9232 Debugger: support inline base64-encoded source maps: nodejs support 4a0d7d9: AppServerSupportConfigurable reworked afe88ea: reworked IO exception dialog (IDEA-103128) 641595d: artifact editor: keep output file name and artifact name in sync even if output directory name was changed (IDEA-113412) 2a99cd3: IDEA-103015: Project Structure / module / Paths / output paths: Module action in disabled in file choosers ab8aa4e: EA-49739 added null checks in JDParser#formatJDTagDescription [CR-IC-2248] 668cf2c: IDEA-113465 Groovy: UOE at GrConcatenationAwareInjector.getLanguagesToInject() on adding @Language annotation to a string 9a8589c: EA-49261 - assert: PsiElementBase.notNullChild 5a99120: don't generate javadoc for light elements c8d30b0: EA-49487 - diagnostics ccf2ac3: Groovy introduce refactorings: show error hint 878ec43: EA-49641 - IAE: MissingReturnInspection.methodMissesSomeReturns 9574118: EA-47298 - IOE: PsiJavaParserFacadeImpl.createTypeElementFromText 4fceec4: use xml injections in Groovy 1775e6f: Fix maven test 9c4df88: IDEA-94942 Removed fake "empty" svn command 3c76855: IDEA-94942 Refactored status command not to use fake "empty" svn command e0556d8: IDEA-112811 Create client factory for merge based on target working copy format 1b27b17: IDEA-112811 Refactored merge options creation 243ba78: Allow inheritance from HierarchyBrowser implementations (Type/Method hierarchy) 91ef206: IDEA-112803 Implemented tree conflict resolution in "change details" panel 8abd924: IDEA-94942 Add ability to specify depth for "resolve conflict" command 967205e: IDEA-112803 Fixed committed data parsing for "svn status" command 12854d7: IDEA-94942 Update logic refactored to ClientFactory model 4a16e4b: IDEA-94942 Code cleanup - removed unused imports Change-Id: I6acefa9563b98b26db1f88e21354a0de20c27770
Diffstat (limited to 'platform/platform-api')
-rw-r--r--platform/platform-api/src/com/intellij/execution/process/ColoredOutputTypeRegistry.java3
-rw-r--r--platform/platform-api/src/com/intellij/ide/BrowserUtil.java6
-rw-r--r--platform/platform-api/src/com/intellij/openapi/actionSystem/DefaultActionGroup.java16
-rw-r--r--platform/platform-api/src/com/intellij/openapi/actionSystem/IdeActions.java1
-rw-r--r--platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptor.java1
-rw-r--r--platform/platform-api/src/com/intellij/openapi/options/StreamProvider.java30
-rw-r--r--platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java39
-rw-r--r--platform/platform-api/src/com/intellij/openapi/ui/TextBrowseFolderListener.java41
-rw-r--r--platform/platform-api/src/com/intellij/openapi/ui/TextFieldWithBrowseButton.java12
-rw-r--r--platform/platform-api/src/com/intellij/ui/CheckboxTreeBase.java74
-rw-r--r--platform/platform-api/src/com/intellij/ui/ComboboxWithBrowseButton.java1
-rw-r--r--platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java11
-rw-r--r--platform/platform-api/src/com/intellij/ui/speedSearch/ListWithFilter.java5
-rw-r--r--platform/platform-api/src/com/intellij/util/concurrency/QueueProcessor.java6
-rw-r--r--platform/platform-api/src/com/intellij/util/net/IOExceptionDialog.java121
-rw-r--r--platform/platform-api/src/com/intellij/util/net/IOExceptionForm.form55
16 files changed, 205 insertions, 217 deletions
diff --git a/platform/platform-api/src/com/intellij/execution/process/ColoredOutputTypeRegistry.java b/platform/platform-api/src/com/intellij/execution/process/ColoredOutputTypeRegistry.java
index cb3668217a62..85eea8aaccc7 100644
--- a/platform/platform-api/src/com/intellij/execution/process/ColoredOutputTypeRegistry.java
+++ b/platform/platform-api/src/com/intellij/execution/process/ColoredOutputTypeRegistry.java
@@ -7,6 +7,7 @@ import com.intellij.openapi.editor.colors.TextAttributesKey;
import com.intellij.openapi.editor.markup.EffectType;
import com.intellij.openapi.editor.markup.TextAttributes;
import com.intellij.openapi.util.Key;
+import com.intellij.ui.JBColor;
import org.jetbrains.annotations.NonNls;
import java.awt.*;
@@ -120,7 +121,7 @@ public class ColoredOutputTypeRegistry {
private Color getAnsiColor(final int value) {
if (value == 7) {
- return Color.WHITE;
+ return JBColor.WHITE;
}
return EditorColorsManager.getInstance().getGlobalScheme().getAttributes(myAnsiColorKeys[value]).getForegroundColor();
}
diff --git a/platform/platform-api/src/com/intellij/ide/BrowserUtil.java b/platform/platform-api/src/com/intellij/ide/BrowserUtil.java
index d38f86e11293..431a23f94d02 100644
--- a/platform/platform-api/src/com/intellij/ide/BrowserUtil.java
+++ b/platform/platform-api/src/com/intellij/ide/BrowserUtil.java
@@ -234,12 +234,6 @@ public class BrowserUtil {
}
}
- /** @deprecated unneeded and misleading (to remove in IDEA 13) */
- @SuppressWarnings("unused")
- public static String escapeUrl(@NotNull @NonNls String url) {
- return SystemInfo.isWindows ? '"' + url + '"' : url;
- }
-
@NotNull
public static List<String> getOpenBrowserCommand(@NonNls @NotNull String browserPathOrName) {
return getOpenBrowserCommand(browserPathOrName, false);
diff --git a/platform/platform-api/src/com/intellij/openapi/actionSystem/DefaultActionGroup.java b/platform/platform-api/src/com/intellij/openapi/actionSystem/DefaultActionGroup.java
index 32ada183d2eb..4077dffb9c83 100644
--- a/platform/platform-api/src/com/intellij/openapi/actionSystem/DefaultActionGroup.java
+++ b/platform/platform-api/src/com/intellij/openapi/actionSystem/DefaultActionGroup.java
@@ -257,7 +257,12 @@ public class DefaultActionGroup extends ActionGroup {
}
if (action instanceof ActionStub) {
action = unStub(e, (ActionStub)action);
- mySortedChildren.set(i, action);
+ if (action == null) {
+ LOG.error("Can't unstub " + mySortedChildren.get(i));
+ }
+ else {
+ mySortedChildren.set(i, action);
+ }
}
hasNulls |= action == null;
@@ -269,9 +274,14 @@ public class DefaultActionGroup extends ActionGroup {
if (action == null) {
LOG.error("Empty pair child: " + this + ", " + getClass() + "; index=" + i);
}
- if (action instanceof ActionStub) {
+ else if (action instanceof ActionStub) {
action = unStub(e, (ActionStub)action);
- myPairs.set(i, Pair.create(action, pair.second));
+ if (action == null) {
+ LOG.error("Can't unstub " + pair);
+ }
+ else {
+ myPairs.set(i, Pair.create(action, pair.second));
+ }
}
hasNulls |= action == null;
diff --git a/platform/platform-api/src/com/intellij/openapi/actionSystem/IdeActions.java b/platform/platform-api/src/com/intellij/openapi/actionSystem/IdeActions.java
index 6c05cfae6c81..2cdbf22fd5a9 100644
--- a/platform/platform-api/src/com/intellij/openapi/actionSystem/IdeActions.java
+++ b/platform/platform-api/src/com/intellij/openapi/actionSystem/IdeActions.java
@@ -70,6 +70,7 @@ public interface IdeActions {
@NonNls String ACTION_CODE_COMPLETION = "CodeCompletion";
@NonNls String ACTION_SMART_TYPE_COMPLETION = "SmartTypeCompletion";
@Deprecated @NonNls String ACTION_CLASS_NAME_COMPLETION = "ClassNameCompletion";
+ @NonNls String ACTION_HIPPIE_COMPLETION = "HippieCompletion";
@NonNls String ACTION_CHOOSE_LOOKUP_ITEM = "EditorChooseLookupItem";
@NonNls String ACTION_CHOOSE_LOOKUP_ITEM_ALWAYS = "EditorChooseLookupItemAlways";
@NonNls String ACTION_CHOOSE_LOOKUP_ITEM_REPLACE = "EditorChooseLookupItemReplace";
diff --git a/platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptor.java b/platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptor.java
index d3076401e291..d2ab0405b3f2 100644
--- a/platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptor.java
+++ b/platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptor.java
@@ -255,6 +255,7 @@ public class FileChooserDescriptor implements Cloneable {
return this;
}
+ @Override
public final Object clone() {
try {
return super.clone();
diff --git a/platform/platform-api/src/com/intellij/openapi/options/StreamProvider.java b/platform/platform-api/src/com/intellij/openapi/options/StreamProvider.java
index 492fca4782d3..8602668b134c 100644
--- a/platform/platform-api/src/com/intellij/openapi/options/StreamProvider.java
+++ b/platform/platform-api/src/com/intellij/openapi/options/StreamProvider.java
@@ -16,42 +16,14 @@
package com.intellij.openapi.options;
import com.intellij.openapi.components.RoamingType;
-import com.intellij.util.ArrayUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.IOException;
import java.io.InputStream;
+@Deprecated
public interface StreamProvider {
- StreamProvider[] EMPTY_ARRAY = new StreamProvider[0];
-
- StreamProvider DEFAULT = new StreamProvider() {
- @Override
- public void saveContent(@NotNull String fileSpec, @NotNull InputStream content, long size, @NotNull RoamingType roamingType, boolean async) throws IOException {
-
- }
-
- @Override
- public InputStream loadContent(@NotNull String fileSpec, @NotNull RoamingType roamingType) throws IOException {
- return null;
- }
-
- @Override
- public String[] listSubFiles(@NotNull String fileSpec, @NotNull RoamingType roamingType) {
- return ArrayUtil.EMPTY_STRING_ARRAY;
- }
-
- @Override
- public void deleteFile(@NotNull String fileSpec, @NotNull RoamingType roamingType) {
- }
-
- @Override
- public boolean isEnabled() {
- return false;
- }
- };
-
void saveContent(@NotNull String fileSpec, @NotNull InputStream content, long size, @NotNull RoamingType roamingType, boolean async) throws IOException;
@Nullable
diff --git a/platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java b/platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java
index 76504210e4cd..980d82604daf 100644
--- a/platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java
+++ b/platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java
@@ -42,6 +42,7 @@ import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.util.List;
@@ -51,15 +52,17 @@ public class ComponentWithBrowseButton<Comp extends JComponent> extends JPanel i
private boolean myButtonEnabled = true;
public ComponentWithBrowseButton(Comp component, @Nullable ActionListener browseActionListener) {
- super(new BorderLayout(SystemInfo.isMac? 0 : 2, 0));
+ super(new BorderLayout(SystemInfo.isMac ? 0 : 2, 0));
+
myComponent = component;
// required! otherwise JPanel will occasionally gain focus instead of the component
setFocusable(false);
add(myComponent, BorderLayout.CENTER);
- myBrowseButton=new FixedSizeButton(myComponent);
- if (browseActionListener != null)
+ myBrowseButton = new FixedSizeButton(myComponent);
+ if (browseActionListener != null) {
myBrowseButton.addActionListener(browseActionListener);
+ }
add(myBrowseButton, BorderLayout.EAST);
myBrowseButton.setToolTipText(UIBundle.message("component.with.browse.button.browse.button.tooltip.text"));
@@ -81,9 +84,10 @@ public class ComponentWithBrowseButton<Comp extends JComponent> extends JPanel i
size.width = fontMetrics.charWidth('a') * charCount;
comp.setPreferredSize(size);
final Dimension preferredSize = myBrowseButton.getPreferredSize();
- setPreferredSize(new Dimension(size.width + preferredSize.width + 2, SystemInfo.isMac && UIUtil.isUnderAquaLookAndFeel() ? preferredSize.height : preferredSize.height + 2));
+ setPreferredSize(new Dimension(size.width + preferredSize.width + 2, UIUtil.isUnderAquaLookAndFeel() ? preferredSize.height : preferredSize.height + 2));
}
+ @Override
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
myBrowseButton.setEnabled(enabled && myButtonEnabled);
@@ -129,9 +133,11 @@ public class ComponentWithBrowseButton<Comp extends JComponent> extends JPanel i
public void addBrowseFolderListener(@Nullable Project project, final BrowseFolderActionListener<Comp> actionListener, boolean autoRemoveOnHide) {
if (autoRemoveOnHide) {
new LazyUiDisposable<ComponentWithBrowseButton<Comp>>(null, this, this) {
+ @Override
protected void initialize(@NotNull Disposable parent, @NotNull ComponentWithBrowseButton<Comp> child, @Nullable Project project) {
addActionListener(actionListener);
Disposer.register(child, new Disposable() {
+ @Override
public void dispose() {
removeActionListener(actionListener);
}
@@ -143,6 +149,7 @@ public class ComponentWithBrowseButton<Comp extends JComponent> extends JPanel i
}
}
+ @Override
public void dispose() {
}
@@ -159,12 +166,13 @@ public class ComponentWithBrowseButton<Comp extends JComponent> extends JPanel i
myBrowseButton = browseButton;
}
+ @Override
public void actionPerformed(AnActionEvent e){
myBrowseButton.doClick();
}
public void registerShortcut(JComponent textField) {
- ShortcutSet shiftEnter = new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, KeyEvent.SHIFT_DOWN_MASK));
+ ShortcutSet shiftEnter = new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.SHIFT_DOWN_MASK));
registerCustomShortcutSet(shiftEnter, textField);
myBrowseButton.setToolTipText(KeymapUtil.getShortcutsText(shiftEnter.getShortcuts()));
}
@@ -177,10 +185,10 @@ public class ComponentWithBrowseButton<Comp extends JComponent> extends JPanel i
public static class BrowseFolderActionListener<T extends JComponent> implements ActionListener {
private final String myTitle;
private final String myDescription;
- private final ComponentWithBrowseButton<T> myTextComponent;
+ protected ComponentWithBrowseButton<T> myTextComponent;
private final TextComponentAccessor<T> myAccessor;
private final Project myProject;
- private final FileChooserDescriptor myFileChooserDescriptor;
+ protected final FileChooserDescriptor myFileChooserDescriptor;
public BrowseFolderActionListener(@Nullable String title, @Nullable String description, ComponentWithBrowseButton<T> textField, @Nullable Project project, FileChooserDescriptor fileChooserDescriptor, TextComponentAccessor<T> accessor) {
myTitle = title;
@@ -191,6 +199,7 @@ public class ComponentWithBrowseButton<Comp extends JComponent> extends JPanel i
myAccessor = accessor;
}
+ @Override
public void actionPerformed(ActionEvent e){
FileChooserDescriptor fileChooserDescriptor = (FileChooserDescriptor)myFileChooserDescriptor.clone();
if (myTitle != null) {
@@ -199,9 +208,8 @@ public class ComponentWithBrowseButton<Comp extends JComponent> extends JPanel i
if (myDescription != null) {
fileChooserDescriptor.setDescription(myDescription);
}
- VirtualFile initialFile = getInitialFile();
- FileChooser.chooseFiles(fileChooserDescriptor, myProject, initialFile, new Consumer<List<VirtualFile>>() {
+ FileChooser.chooseFiles(fileChooserDescriptor, myProject, getInitialFile(), new Consumer<List<VirtualFile>>() {
@Override
public void consume(List<VirtualFile> files) {
onFileChoosen(files.get(0));
@@ -212,7 +220,7 @@ public class ComponentWithBrowseButton<Comp extends JComponent> extends JPanel i
@Nullable
protected VirtualFile getInitialFile() {
String directoryName = getComponentText();
- if (StringUtil.isEmptyOrSpaces(directoryName) || directoryName == null) {
+ if (StringUtil.isEmptyOrSpaces(directoryName)) {
return null;
}
@@ -231,22 +239,29 @@ public class ComponentWithBrowseButton<Comp extends JComponent> extends JPanel i
return myAccessor.getText(myTextComponent.getChildComponent()).trim();
}
- protected void onFileChoosen(VirtualFile chosenFile) {
- myAccessor.setText(myTextComponent.getChildComponent(), chosenFile.getPresentableUrl());
+ @NotNull
+ protected String chosenFileToResultingText(@NotNull VirtualFile chosenFile) {
+ return chosenFile.getPresentableUrl();
}
+ protected void onFileChoosen(@NotNull VirtualFile chosenFile) {
+ myAccessor.setText(myTextComponent.getChildComponent(), chosenFileToResultingText(chosenFile));
+ }
}
+ @Override
public final void requestFocus() {
myComponent.requestFocus();
}
+ @Override
public final void setNextFocusableComponent(Component aComponent) {
super.setNextFocusableComponent(aComponent);
myComponent.setNextFocusableComponent(aComponent);
}
private KeyEvent myCurrentEvent = null;
+ @Override
protected final boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
if (condition == WHEN_FOCUSED && myCurrentEvent != e)
try {
diff --git a/platform/platform-api/src/com/intellij/openapi/ui/TextBrowseFolderListener.java b/platform/platform-api/src/com/intellij/openapi/ui/TextBrowseFolderListener.java
new file mode 100644
index 000000000000..5bb1f74f3bcf
--- /dev/null
+++ b/platform/platform-api/src/com/intellij/openapi/ui/TextBrowseFolderListener.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2000-2013 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 com.intellij.openapi.ui;
+
+import com.intellij.openapi.fileChooser.FileChooserDescriptor;
+import com.intellij.openapi.project.Project;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import javax.swing.*;
+
+public class TextBrowseFolderListener extends ComponentWithBrowseButton.BrowseFolderActionListener<JTextField> {
+ public TextBrowseFolderListener(@NotNull FileChooserDescriptor fileChooserDescriptor) {
+ this(fileChooserDescriptor, null);
+ }
+
+ public TextBrowseFolderListener(@NotNull FileChooserDescriptor fileChooserDescriptor, @Nullable Project project) {
+ super(null, null, null, project, fileChooserDescriptor, TextComponentAccessor.TEXT_FIELD_WHOLE_TEXT);
+ }
+
+ void setOwnerComponent(@NotNull TextFieldWithBrowseButton component) {
+ myTextComponent = component;
+ }
+
+ FileChooserDescriptor gFileChooserDescriptor() {
+ return myFileChooserDescriptor;
+ }
+} \ No newline at end of file
diff --git a/platform/platform-api/src/com/intellij/openapi/ui/TextFieldWithBrowseButton.java b/platform/platform-api/src/com/intellij/openapi/ui/TextFieldWithBrowseButton.java
index 995efc9140c8..bf7b6ed0796f 100644
--- a/platform/platform-api/src/com/intellij/openapi/ui/TextFieldWithBrowseButton.java
+++ b/platform/platform-api/src/com/intellij/openapi/ui/TextFieldWithBrowseButton.java
@@ -23,6 +23,8 @@ import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.fileChooser.FileChooserFactory;
import com.intellij.openapi.project.Project;
import com.intellij.ui.TextAccessor;
+import com.intellij.ui.TextComponentUndoProvider;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
@@ -41,6 +43,7 @@ public class TextFieldWithBrowseButton extends ComponentWithBrowseButton<JTextFi
super(field, browseActionListener);
if (ApplicationManager.getApplication() != null) {
installPathCompletion(FileChooserDescriptorFactory.createSingleLocalFileDescriptor());
+ new TextComponentUndoProvider(getTextField());
}
}
@@ -53,6 +56,12 @@ public class TextFieldWithBrowseButton extends ComponentWithBrowseButton<JTextFi
installPathCompletion(fileChooserDescriptor);
}
+ public void addBrowseFolderListener(@NotNull TextBrowseFolderListener listener) {
+ listener.setOwnerComponent(this);
+ addBrowseFolderListener(null, listener, true);
+ installPathCompletion(listener.gFileChooserDescriptor());
+ }
+
protected void installPathCompletion(final FileChooserDescriptor fileChooserDescriptor) {
installPathCompletion(fileChooserDescriptor, null);
}
@@ -71,10 +80,12 @@ public class TextFieldWithBrowseButton extends ComponentWithBrowseButton<JTextFi
/**
* @return trimmed text
*/
+ @Override
public String getText(){
return getTextField().getText();
}
+ @Override
public void setText(final String text){
getTextField().setText(text);
}
@@ -106,6 +117,7 @@ public class TextFieldWithBrowseButton extends ComponentWithBrowseButton<JTextFi
super(browseActionListener);
}
+ @Override
protected void installPathCompletion(final FileChooserDescriptor fileChooserDescriptor) {
}
}
diff --git a/platform/platform-api/src/com/intellij/ui/CheckboxTreeBase.java b/platform/platform-api/src/com/intellij/ui/CheckboxTreeBase.java
index 3d3caa864072..18f59eda598a 100644
--- a/platform/platform-api/src/com/intellij/ui/CheckboxTreeBase.java
+++ b/platform/platform-api/src/com/intellij/ui/CheckboxTreeBase.java
@@ -34,19 +34,57 @@ public class CheckboxTreeBase extends Tree {
private final CheckPolicy myCheckPolicy;
private static final CheckPolicy DEFAULT_POLICY = new CheckPolicy(true, true, false, true);
+ public CheckboxTreeBase() {
+ this(new CheckboxTreeCellRendererBase(), null);
+ }
+
public CheckboxTreeBase(final CheckboxTreeCellRendererBase cellRenderer, CheckedTreeNode root) {
this(cellRenderer, root, DEFAULT_POLICY);
}
- public CheckboxTreeBase(final CheckboxTreeCellRendererBase cellRenderer, CheckedTreeNode root, CheckPolicy checkPolicy) {
+ public CheckboxTreeBase(CheckboxTreeCellRendererBase cellRenderer, @Nullable CheckedTreeNode root, CheckPolicy checkPolicy) {
myCheckPolicy = checkPolicy;
- setCellRenderer(cellRenderer);
setRootVisible(false);
setShowsRootHandles(true);
setLineStyleAngled();
TreeUtil.installActions(this);
+ installRenderer(cellRenderer);
+
+ addKeyListener(new KeyAdapter() {
+ public void keyPressed(KeyEvent e) {
+ if (isToggleEvent(e)) {
+ TreePath treePath = getLeadSelectionPath();
+ if (treePath == null) return;
+ final Object o = treePath.getLastPathComponent();
+ if (!(o instanceof CheckedTreeNode)) return;
+ CheckedTreeNode firstNode = (CheckedTreeNode)o;
+ boolean checked = toggleNode(firstNode);
+
+ TreePath[] selectionPaths = getSelectionPaths();
+ for (int i = 0; selectionPaths != null && i < selectionPaths.length; i++) {
+ final TreePath selectionPath = selectionPaths[i];
+ final Object o1 = selectionPath.getLastPathComponent();
+ if (!(o1 instanceof CheckedTreeNode)) continue;
+ CheckedTreeNode node = (CheckedTreeNode)o1;
+ checkNode(node, checked);
+ ((DefaultTreeModel)getModel()).nodeChanged(node);
+ }
+
+ e.consume();
+ }
+ }
+ });
+
+ setSelectionRow(0);
+ if (root != null) {
+ setModel(new DefaultTreeModel(root));
+ }
+ }
+
+ public void installRenderer(final CheckboxTreeCellRendererBase cellRenderer) {
+ setCellRenderer(cellRenderer);
new ClickListener() {
@Override
public boolean onClick(MouseEvent e, int clickCount) {
@@ -76,34 +114,6 @@ public class CheckboxTreeBase extends Tree {
return false;
}
}.installOn(this);
-
- addKeyListener(new KeyAdapter() {
- public void keyPressed(KeyEvent e) {
- if (isToggleEvent(e)) {
- TreePath treePath = getLeadSelectionPath();
- if (treePath == null) return;
- final Object o = treePath.getLastPathComponent();
- if (!(o instanceof CheckedTreeNode)) return;
- CheckedTreeNode firstNode = (CheckedTreeNode)o;
- boolean checked = toggleNode(firstNode);
-
- TreePath[] selectionPaths = getSelectionPaths();
- for (int i = 0; selectionPaths != null && i < selectionPaths.length; i++) {
- final TreePath selectionPath = selectionPaths[i];
- final Object o1 = selectionPath.getLastPathComponent();
- if (!(o1 instanceof CheckedTreeNode)) continue;
- CheckedTreeNode node = (CheckedTreeNode)o1;
- checkNode(node, checked);
- ((DefaultTreeModel)getModel()).nodeChanged(node);
- }
-
- e.consume();
- }
- }
- });
-
- setSelectionRow(0);
- setModel(new DefaultTreeModel(root));
}
protected void onDoubleClick(final CheckedTreeNode node) {
@@ -282,7 +292,7 @@ public class CheckboxTreeBase extends Tree {
return true;
}
- public static abstract class CheckboxTreeCellRendererBase extends JPanel implements TreeCellRenderer {
+ public static class CheckboxTreeCellRendererBase extends JPanel implements TreeCellRenderer {
private final ColoredTreeCellRenderer myTextRenderer;
public final JCheckBox myCheckbox;
private final boolean myUsePartialStatusForParentNodes;
@@ -402,7 +412,7 @@ public class CheckboxTreeBase extends Tree {
}
- public static enum NodeState {
+ public enum NodeState {
FULL, CLEAR, PARTIAL
}
diff --git a/platform/platform-api/src/com/intellij/ui/ComboboxWithBrowseButton.java b/platform/platform-api/src/com/intellij/ui/ComboboxWithBrowseButton.java
index 95998f447600..1c4d99364b60 100644
--- a/platform/platform-api/src/com/intellij/ui/ComboboxWithBrowseButton.java
+++ b/platform/platform-api/src/com/intellij/ui/ComboboxWithBrowseButton.java
@@ -36,6 +36,7 @@ public class ComboboxWithBrowseButton extends ComponentWithBrowseButton<JComboBo
return getChildComponent();
}
+ @Override
public void setTextFieldPreferredWidth(final int charCount) {
super.setTextFieldPreferredWidth(charCount);
final Component comp = getChildComponent().getEditor().getEditorComponent();
diff --git a/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java b/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java
index a3351a8a14b5..2e1d5cdd2d62 100644
--- a/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java
+++ b/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java
@@ -21,6 +21,7 @@ import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.util.text.StringUtil;
+import com.intellij.util.ui.GraphicsUtil;
import com.intellij.util.ui.UIUtil;
import gnu.trove.TIntIntHashMap;
import org.intellij.lang.annotations.JdkConstants;
@@ -386,8 +387,8 @@ public class SimpleColoredComponent extends JComponent implements Accessible, Co
font = font.deriveFont(attributes.getFontStyle(), isSmaller ? UIUtil.getFontSize(UIUtil.FontSize.SMALL) : baseSize);
}
wasSmaller = isSmaller;
- final FontMetrics metrics = getFontMetrics(font);
- result += metrics.stringWidth(myFragments.get(i));
+ final String text = myFragments.get(i);
+ result += isOracleRetina ? GraphicsUtil.stringWidth(text, font) : getFontMetrics(font).stringWidth(text);
final int fixedWidth = myFixedWidths.get(i);
if (fixedWidth > 0 && result < fixedWidth) {
@@ -429,8 +430,8 @@ public class SimpleColoredComponent extends JComponent implements Accessible, Co
}
wasSmaller = isSmaller;
- final FontMetrics metrics = getFontMetrics(font);
- final int curWidth = metrics.stringWidth(myFragments.get(i));
+ final String text = myFragments.get(i);
+ final int curWidth = isOracleRetina ? GraphicsUtil.stringWidth(text, font) : getFontMetrics(font).stringWidth(text);
if (x >= curX && x < curX + curWidth) {
return i;
}
@@ -623,7 +624,7 @@ public class SimpleColoredComponent extends JComponent implements Accessible, Co
final FontMetrics metrics = g.getFontMetrics(font);
final String fragment = myFragments.get(i);
- final int fragmentWidth = metrics.stringWidth(fragment);
+ final int fragmentWidth = isOracleRetina ? GraphicsUtil.stringWidth(fragment, font) : metrics.stringWidth(fragment);
final Color bgColor = attributes.getBgColor();
if ((attributes.isOpaque() || isOpaque()) && bgColor != null) {
diff --git a/platform/platform-api/src/com/intellij/ui/speedSearch/ListWithFilter.java b/platform/platform-api/src/com/intellij/ui/speedSearch/ListWithFilter.java
index 7a8d9a49f9b6..a30dc47627df 100644
--- a/platform/platform-api/src/com/intellij/ui/speedSearch/ListWithFilter.java
+++ b/platform/platform-api/src/com/intellij/ui/speedSearch/ListWithFilter.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 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.
@@ -85,6 +85,9 @@ public class ListWithFilter<T> extends JPanel implements DataProvider {
myList.addKeyListener(new KeyAdapter() {
public void keyPressed(final KeyEvent e) {
+ if (e.getKeyCode() == KeyEvent.VK_A && (e.isControlDown() || e.isMetaDown())) {
+ return;
+ }
mySpeedSearch.process(e);
}
});
diff --git a/platform/platform-api/src/com/intellij/util/concurrency/QueueProcessor.java b/platform/platform-api/src/com/intellij/util/concurrency/QueueProcessor.java
index d0bbb039a32f..09935336949b 100644
--- a/platform/platform-api/src/com/intellij/util/concurrency/QueueProcessor.java
+++ b/platform/platform-api/src/com/intellij/util/concurrency/QueueProcessor.java
@@ -253,6 +253,12 @@ public class QueueProcessor<T> {
}
}
+ public boolean hasPendingItemsToProcess() {
+ synchronized (myQueue) {
+ return !myQueue.isEmpty();
+ }
+ }
+
private static class MyOverrideEquals {
private final Object myDelegate;
diff --git a/platform/platform-api/src/com/intellij/util/net/IOExceptionDialog.java b/platform/platform-api/src/com/intellij/util/net/IOExceptionDialog.java
index fa7a27b1dc3f..f49eb983c3af 100644
--- a/platform/platform-api/src/com/intellij/util/net/IOExceptionDialog.java
+++ b/platform/platform-api/src/com/intellij/util/net/IOExceptionDialog.java
@@ -15,12 +15,17 @@
*/
package com.intellij.util.net;
-import com.intellij.openapi.MnemonicHelper;
+import com.intellij.CommonBundle;
+import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.openapi.project.Project;
+import com.intellij.openapi.ui.DialogWrapper;
+import com.intellij.openapi.util.Ref;
import com.intellij.ui.GuiUtils;
-import com.intellij.util.ui.UIUtil;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import javax.swing.*;
-import java.awt.event.*;
+import java.awt.event.ActionEvent;
import java.lang.reflect.InvocationTargetException;
/**
@@ -30,96 +35,66 @@ import java.lang.reflect.InvocationTargetException;
* Time: 10:04:14 PM
* To change this template use Options | File Templates.
*/
-public class IOExceptionDialog extends JDialog {
- private JPanel mainPanel;
- private JButton cancelButton;
- private JButton tryAgainButton;
- private JButton setupButton;
- private JTextArea errorLabel;
- private boolean cancelPressed = false;
+public class IOExceptionDialog extends DialogWrapper {
+ private static final Logger LOG = Logger.getInstance(IOExceptionDialog.class);
+ private JTextArea myErrorLabel;
public IOExceptionDialog(String title, String errorText) {
- super(UIUtil.getActiveWindow(), title, DEFAULT_MODALITY_TYPE);
+ super((Project)null, true);
+ setTitle(title);
+ setOKButtonText(CommonBundle.message("dialog.ioexception.tryagain"));
- new MnemonicHelper().register(getContentPane());
-
- getContentPane().add(mainPanel);
+ myErrorLabel = new JTextArea();
+ myErrorLabel.setText(errorText);
+ myErrorLabel.setFont(UIManager.getFont("Label.font"));
+ myErrorLabel.setBackground(UIManager.getColor("Label.background"));
+ myErrorLabel.setForeground(UIManager.getColor("Label.foreground"));
- //noinspection HardCodedStringLiteral
- mainPanel.getActionMap().put(
- "close",
- new AbstractAction() {
- public void actionPerformed(ActionEvent e) {
- cancelPressed = true;
- dispose();
- }
- }
- );
-
- //noinspection HardCodedStringLiteral
- mainPanel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
- KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE,0),
- "close"
- );
-
- errorLabel.setText(errorText);
- errorLabel.setFont(UIManager.getFont("Label.font"));
- errorLabel.setBackground(UIManager.getColor("Label.background"));
- errorLabel.setForeground(UIManager.getColor("Label.foreground"));
+ init();
+ }
- setupButton.addActionListener(new ActionListener () {
- public void actionPerformed(ActionEvent e) {
- HTTPProxySettingsDialog dlg = new HTTPProxySettingsDialog();
- dlg.show();
- }
- });
- tryAgainButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- cancelPressed = false;
- dispose();
- }
- });
- cancelButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- cancelPressed = true;
- dispose();
- }
- });
+ @Nullable
+ @Override
+ protected JComponent createCenterPanel() {
+ return myErrorLabel;
+ }
- pack();
- setLocationRelativeTo(getOwner());
- setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
- addWindowListener(new WindowAdapter() {
- @Override
- public void windowClosing(WindowEvent e) {
- cancelPressed = true;
- dispose();
+ @NotNull
+ @Override
+ protected Action[] createLeftSideActions() {
+ return new Action[] {
+ new AbstractAction(CommonBundle.message("dialog.ioexception.proxy")) {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ new HTTPProxySettingsDialog().show();
+ }
}
- });
+ };
}
/**
- * Show
- * @return <code>true</code> if "Try Again" button pressed
- * @return <code>false</code> if "Cancel" button pressed
+ * Show the dialog
+ * @return <code>true</code> if "Try Again" button pressed and <code>false</code> if "Cancel" button pressed
*/
- public static boolean showErrorDialog(String title, String text) {
- final IOExceptionDialog dlg = new IOExceptionDialog(title, text);
+ public static boolean showErrorDialog(final String title, final String text) {
+ final Ref<Boolean> ok = Ref.create(false);
try {
final Runnable doRun = new Runnable() {
public void run() {
- dlg.setVisible(true);
+ IOExceptionDialog dialog = new IOExceptionDialog(title, text);
+ dialog.show();
+ ok.set(dialog.isOK());
}
};
GuiUtils.runOrInvokeAndWait(doRun);
}
- catch (InterruptedException e1) {
- e1.printStackTrace();
+ catch (InterruptedException e) {
+ LOG.info(e);
}
- catch (InvocationTargetException e1) {
- e1.printStackTrace();
+ catch (InvocationTargetException e) {
+ LOG.info(e);
}
- return ! dlg.cancelPressed;
+ return ok.get();
}
}
diff --git a/platform/platform-api/src/com/intellij/util/net/IOExceptionForm.form b/platform/platform-api/src/com/intellij/util/net/IOExceptionForm.form
deleted file mode 100644
index 6ef45b884c62..000000000000
--- a/platform/platform-api/src/com/intellij/util/net/IOExceptionForm.form
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.intellij.util.net.IOExceptionDialog">
- <grid id="8ea9b" binding="mainPanel" layout-manager="GridLayoutManager" row-count="4" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
- <margin top="5" left="5" bottom="5" right="5"/>
- <constraints>
- <xy x="69" y="26" width="883" height="428"/>
- </constraints>
- <properties/>
- <border type="none"/>
- <children>
- <component id="44dd2" class="javax.swing.JButton" binding="setupButton">
- <constraints>
- <grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
- </constraints>
- <properties>
- <text resource-bundle="messages/CommonBundle" key="dialog.ioexception.proxy"/>
- </properties>
- </component>
- <component id="376c8" class="javax.swing.JButton" binding="tryAgainButton">
- <constraints>
- <grid row="3" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
- </constraints>
- <properties>
- <text resource-bundle="messages/CommonBundle" key="dialog.ioexception.tryagain"/>
- </properties>
- </component>
- <component id="f4a4a" class="javax.swing.JButton" binding="cancelButton">
- <constraints>
- <grid row="3" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
- </constraints>
- <properties>
- <text resource-bundle="messages/CommonBundle" key="button.cancel"/>
- </properties>
- </component>
- <vspacer id="2b050">
- <constraints>
- <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false">
- <minimum-size width="-1" height="10"/>
- <preferred-size width="-1" height="10"/>
- <maximum-size width="-1" height="10"/>
- </grid>
- </constraints>
- </vspacer>
- <component id="9afc2" class="javax.swing.JTextArea" binding="errorLabel">
- <constraints>
- <grid row="0" column="0" row-span="1" col-span="3" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
- </constraints>
- <properties>
- <editable value="false"/>
- <text value="##"/>
- </properties>
- </component>
- </children>
- </grid>
-</form>