diff --git a/src/vs/base/browser/ui/scrollbar/impl/abstractScrollbar.ts b/src/vs/base/browser/ui/scrollbar/impl/abstractScrollbar.ts index 5d213d01191..58069028eab 100644 --- a/src/vs/base/browser/ui/scrollbar/impl/abstractScrollbar.ts +++ b/src/vs/base/browser/ui/scrollbar/impl/abstractScrollbar.ts @@ -5,15 +5,15 @@ 'use strict'; import DomUtils = require('vs/base/browser/dom'); -import Mouse = require('vs/base/browser/mouseEvent'); -import Common = require('vs/base/browser/ui/scrollbar/impl/common'); -import Lifecycle = require('vs/base/common/lifecycle'); -import GlobalMouseMoveMonitor = require('vs/base/browser/globalMouseMoveMonitor'); +import {StandardMouseEvent} from 'vs/base/browser/mouseEvent'; +import {IMouseWheelEvent, IParent, Visibility, IScrollbar} from 'vs/base/browser/ui/scrollbar/impl/common'; +import {IDisposable, disposeAll} from 'vs/base/common/lifecycle'; +import {GlobalMouseMoveMonitor, IStandardMouseMoveEventData, standardMouseMoveMerger} from 'vs/base/browser/globalMouseMoveMonitor'; import Browser = require('vs/base/browser/browser'); import Platform = require('vs/base/common/platform'); export interface IMouseWheelEventFactory { - ():Common.IMouseWheelEvent; + ():IMouseWheelEvent; } export class ScrollbarState { @@ -166,16 +166,16 @@ export class ScrollbarState { } class ScrollbarArrow { - private parent:Common.IParent; + private parent:IParent; private mouseWheelEventFactory:IMouseWheelEventFactory; public bgDomNode:HTMLElement; public domNode:HTMLElement; - private toDispose:Lifecycle.IDisposable[]; + private toDispose:IDisposable[]; private interval:number; private timeout:number; - private mouseMoveMonitor:GlobalMouseMoveMonitor.GlobalMouseMoveMonitor; + private mouseMoveMonitor:GlobalMouseMoveMonitor; - constructor(className:string, top:number, left:number, bottom:number, right:number, bgWidth:number, bgHeight:number, mouseWheelEventFactory:IMouseWheelEventFactory, parent:Common.IParent) { + constructor(className:string, top:number, left:number, bottom:number, right:number, bgWidth:number, bgHeight:number, mouseWheelEventFactory:IMouseWheelEventFactory, parent:IParent) { this.parent = parent; this.mouseWheelEventFactory = mouseWheelEventFactory; @@ -192,7 +192,7 @@ class ScrollbarArrow { setSize(this.domNode, AbstractScrollbar.ARROW_IMG_SIZE, AbstractScrollbar.ARROW_IMG_SIZE); setPosition(this.domNode, top, left, bottom, right); - this.mouseMoveMonitor = new GlobalMouseMoveMonitor.GlobalMouseMoveMonitor(); + this.mouseMoveMonitor = new GlobalMouseMoveMonitor(); this.toDispose = []; this.toDispose.push(DomUtils.addDisposableListener(this.bgDomNode, 'mousedown', (e:MouseEvent) => this._arrowMouseDown(e))); @@ -203,7 +203,7 @@ class ScrollbarArrow { } public dispose(): void { - this.toDispose = Lifecycle.disposeAll(this.toDispose); + this.toDispose = disposeAll(this.toDispose); this._clearArrowTimers(); } @@ -221,8 +221,8 @@ class ScrollbarArrow { this.timeout = window.setTimeout(scheduleRepeater, 200); this.mouseMoveMonitor.startMonitoring( - GlobalMouseMoveMonitor.standardMouseMoveMerger, - (mouseMoveData:GlobalMouseMoveMonitor.IStandardMouseMoveEventData) => { + standardMouseMoveMerger, + (mouseMoveData:IStandardMouseMoveEventData) => { /* Intentional empty */ }, () => { @@ -230,7 +230,7 @@ class ScrollbarArrow { } ); - var mouseEvent = new Mouse.StandardMouseEvent(browserEvent); + var mouseEvent = new StandardMouseEvent(browserEvent); mouseEvent.preventDefault(); } @@ -246,8 +246,8 @@ class ScrollbarArrow { } } -class VisibilityController implements Lifecycle.IDisposable { - private visibility:Common.Visibility; +class VisibilityController implements IDisposable { + private visibility:Visibility; private visibleClassName:string; private invisibleClassName:string; private domNode:HTMLElement; @@ -256,7 +256,7 @@ class VisibilityController implements Lifecycle.IDisposable { private isVisible:boolean; private fadeAwayTimeout:number; - constructor(visibility:Common.Visibility, visibleClassName:string, invisibleClassName:string) { + constructor(visibility:Visibility, visibleClassName:string, invisibleClassName:string) { this.visibility = visibility; this.visibleClassName = visibleClassName; this.invisibleClassName = invisibleClassName; @@ -281,10 +281,10 @@ class VisibilityController implements Lifecycle.IDisposable { // ----------------- Hide / Reveal private applyVisibilitySetting(shouldBeVisible:boolean): boolean { - if (this.visibility === Common.Visibility.Hidden) { + if (this.visibility === Visibility.Hidden) { return false; } - if (this.visibility === Common.Visibility.Visible) { + if (this.visibility === Visibility.Visible) { return true; } return shouldBeVisible; @@ -369,7 +369,7 @@ export interface IMouseMoveEventData { posy:number; } -export class AbstractScrollbar implements Common.IScrollbar { +export abstract class AbstractScrollbar implements IScrollbar { static ARROW_IMG_SIZE = 11; /** @@ -378,22 +378,22 @@ export class AbstractScrollbar implements Common.IScrollbar { static MOUSE_DRAG_RESET_DISTANCE = 140; protected forbidTranslate3dUse:boolean; - private parent:Common.IParent; + private parent:IParent; private scrollbarState:ScrollbarState; private visibilityController:VisibilityController; - private mouseMoveMonitor:GlobalMouseMoveMonitor.GlobalMouseMoveMonitor; + private mouseMoveMonitor:GlobalMouseMoveMonitor; - private toDispose:Lifecycle.IDisposable[]; + private toDispose:IDisposable[]; public domNode:HTMLElement; public slider:HTMLElement; - constructor(forbidTranslate3dUse:boolean, parent:Common.IParent, scrollbarState:ScrollbarState, visibility:Common.Visibility, extraScrollbarClassName:string) { + constructor(forbidTranslate3dUse:boolean, parent:IParent, scrollbarState:ScrollbarState, visibility:Visibility, extraScrollbarClassName:string) { this.forbidTranslate3dUse = forbidTranslate3dUse; this.parent = parent; this.scrollbarState = scrollbarState; this.visibilityController = new VisibilityController(visibility, 'visible scrollbar ' + extraScrollbarClassName, 'invisible scrollbar ' + extraScrollbarClassName); - this.mouseMoveMonitor = new GlobalMouseMoveMonitor.GlobalMouseMoveMonitor(); + this.mouseMoveMonitor = new GlobalMouseMoveMonitor(); this.toDispose = []; this.toDispose.push(this.visibilityController); @@ -439,14 +439,14 @@ export class AbstractScrollbar implements Common.IScrollbar { setSize(this.slider, width, height); this.domNode.appendChild(this.slider); - this.toDispose.push(DomUtils.addDisposableListener(this.slider, 'mousedown', (e:MouseEvent) => this._sliderMouseDown(new Mouse.StandardMouseEvent(e)))); + this.toDispose.push(DomUtils.addDisposableListener(this.slider, 'mousedown', (e:MouseEvent) => this._sliderMouseDown(new StandardMouseEvent(e)))); } /** * Clean-up */ public destroy(): void { - this.toDispose = Lifecycle.disposeAll(this.toDispose); + this.toDispose = disposeAll(this.toDispose); } // ----------------- Update state @@ -490,7 +490,7 @@ export class AbstractScrollbar implements Common.IScrollbar { // ----------------- DOM events private _domNodeMouseDown(browserEvent:MouseEvent): void { - var e = new Mouse.StandardMouseEvent(browserEvent); + var e = new StandardMouseEvent(browserEvent); if (e.target !== this.domNode) { return; } @@ -498,7 +498,7 @@ export class AbstractScrollbar implements Common.IScrollbar { } public delegateMouseDown(browserEvent:MouseEvent): void { - var e = new Mouse.StandardMouseEvent(browserEvent); + var e = new StandardMouseEvent(browserEvent); var domTop = this.domNode.getClientRects()[0].top; var sliderStart = domTop + this.scrollbarState.getSliderPosition(); var sliderStop = domTop + this.scrollbarState.getSliderPosition() + this.scrollbarState.getSliderSize(); @@ -512,14 +512,14 @@ export class AbstractScrollbar implements Common.IScrollbar { } } - private _onMouseDown(e:Mouse.StandardMouseEvent): void { + private _onMouseDown(e:StandardMouseEvent): void { var domNodePosition = DomUtils.getDomNodePosition(this.domNode); var desiredSliderPosition = this._mouseDownRelativePosition(e, domNodePosition) - this.scrollbarState.getArrowSize() - this.scrollbarState.getSliderSize() / 2; this.setDesiredScrollPosition(this.scrollbarState.convertSliderPositionToScrollPosition(desiredSliderPosition)); this._sliderMouseDown(e); } - private _sliderMouseDown(e:Mouse.StandardMouseEvent): void { + private _sliderMouseDown(e:StandardMouseEvent): void { if (e.leftButton) { var initialMouseOrthogonalPosition = this._sliderOrthogonalMousePosition(e); var initialScrollPosition = this._getScrollPosition(); @@ -527,8 +527,8 @@ export class AbstractScrollbar implements Common.IScrollbar { DomUtils.toggleClass(this.slider, 'active', true); this.mouseMoveMonitor.startMonitoring( - GlobalMouseMoveMonitor.standardMouseMoveMerger, - (mouseMoveData:GlobalMouseMoveMonitor.IStandardMouseMoveEventData) => { + standardMouseMoveMerger, + (mouseMoveData:IStandardMouseMoveEventData) => { var mouseOrthogonalPosition = this._sliderOrthogonalMousePosition(mouseMoveData); var mouseOrthogonalDelta = Math.abs(mouseOrthogonalPosition - initialMouseOrthogonalPosition); // console.log(initialMouseOrthogonalPosition + ' -> ' + mouseOrthogonalPosition + ': ' + mouseOrthogonalDelta); @@ -571,7 +571,7 @@ export class AbstractScrollbar implements Common.IScrollbar { public _updateSlider(sliderSize:number, sliderPosition:number): void { } - public _mouseDownRelativePosition(e:Mouse.StandardMouseEvent, domNodePosition:DomUtils.IDomNodePosition): number { + public _mouseDownRelativePosition(e:StandardMouseEvent, domNodePosition:DomUtils.IDomNodePosition): number { return 0; } diff --git a/src/vs/base/browser/ui/scrollbar/impl/common.ts b/src/vs/base/browser/ui/scrollbar/impl/common.ts index 546165fc31c..f65d1df6138 100644 --- a/src/vs/base/browser/ui/scrollbar/impl/common.ts +++ b/src/vs/base/browser/ui/scrollbar/impl/common.ts @@ -4,7 +4,6 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import ScrollableElement = require('vs/base/browser/ui/scrollbar/scrollableElement'); import {IScrollable} from 'vs/base/common/scrollable'; export interface IMouseWheelEvent { diff --git a/src/vs/base/browser/ui/scrollbar/impl/domNodeScrollable.ts b/src/vs/base/browser/ui/scrollbar/impl/domNodeScrollable.ts index 04e6808ba88..78461d43d64 100644 --- a/src/vs/base/browser/ui/scrollbar/impl/domNodeScrollable.ts +++ b/src/vs/base/browser/ui/scrollbar/impl/domNodeScrollable.ts @@ -5,22 +5,21 @@ 'use strict'; import DomUtils = require('vs/base/browser/dom'); -import Touch = require('vs/base/browser/touch'); -import EventEmitter = require('vs/base/common/eventEmitter'); -import ScrollableElement = require('vs/base/browser/ui/scrollbar/scrollableElement'); -import Lifecycle = require('vs/base/common/lifecycle'); +import {Gesture} from 'vs/base/browser/touch'; +import {EventEmitter} from 'vs/base/common/eventEmitter'; +import {IDisposable} from 'vs/base/common/lifecycle'; import {IScrollable} from 'vs/base/common/scrollable'; export class DomNodeScrollable implements IScrollable { - private eventEmitterHelper: EventEmitter.EventEmitter; + private eventEmitterHelper: EventEmitter; private domNode: HTMLElement; - private gestureHandler: Touch.Gesture; + private gestureHandler: Gesture; constructor(domNode:HTMLElement) { - this.eventEmitterHelper = new EventEmitter.EventEmitter(); + this.eventEmitterHelper = new EventEmitter(); this.domNode = domNode; - this.gestureHandler = new Touch.Gesture(this.domNode); + this.gestureHandler = new Gesture(this.domNode); } public getScrollHeight(): number { @@ -47,7 +46,7 @@ export class DomNodeScrollable implements IScrollable { this.domNode.scrollTop = scrollTop; } - public addScrollListener(callback:()=>void):Lifecycle.IDisposable { + public addScrollListener(callback:()=>void): IDisposable { var localDisposable = this.eventEmitterHelper.addListener2('scroll', callback); var domDisposable = DomUtils.addDisposableListener(this.domNode, 'scroll', (e:Event) => { this.eventEmitterHelper.emit('scroll', { browserEvent: e }); diff --git a/src/vs/base/browser/ui/scrollbar/impl/horizontalScrollbar.ts b/src/vs/base/browser/ui/scrollbar/impl/horizontalScrollbar.ts index c2edc04a380..ca923fcb166 100644 --- a/src/vs/base/browser/ui/scrollbar/impl/horizontalScrollbar.ts +++ b/src/vs/base/browser/ui/scrollbar/impl/horizontalScrollbar.ts @@ -4,31 +4,30 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import AbstractScrollbar = require('vs/base/browser/ui/scrollbar/impl/abstractScrollbar'); -import Mouse = require('vs/base/browser/mouseEvent'); +import {AbstractScrollbar, ScrollbarState, IMouseMoveEventData} from 'vs/base/browser/ui/scrollbar/impl/abstractScrollbar'; +import {StandardMouseEvent, StandardMouseWheelEvent} from 'vs/base/browser/mouseEvent'; import DomUtils = require('vs/base/browser/dom'); -import Common = require('vs/base/browser/ui/scrollbar/impl/common'); -import ScrollableElement = require('vs/base/browser/ui/scrollbar/scrollableElement'); +import {IParent, IOptions, Visibility} from 'vs/base/browser/ui/scrollbar/impl/common'; import Browser = require('vs/base/browser/browser'); import {IScrollable} from 'vs/base/common/scrollable'; -export class HorizontalScrollbar extends AbstractScrollbar.AbstractScrollbar { +export class HorizontalScrollbar extends AbstractScrollbar { private scrollable:IScrollable; - constructor(scrollable:IScrollable, parent:Common.IParent, options:Common.IOptions) { - var s = new AbstractScrollbar.ScrollbarState( + constructor(scrollable:IScrollable, parent:IParent, options:IOptions) { + var s = new ScrollbarState( (options.horizontalHasArrows ? options.arrowSize : 0), - (options.horizontal === Common.Visibility.Hidden ? 0 : options.horizontalScrollbarSize), - (options.vertical === Common.Visibility.Hidden ? 0 : options.verticalScrollbarSize) + (options.horizontal === Visibility.Hidden ? 0 : options.horizontalScrollbarSize), + (options.vertical === Visibility.Hidden ? 0 : options.verticalScrollbarSize) ); super(options.forbidTranslate3dUse, parent, s, options.horizontal, 'horizontal'); this.scrollable = scrollable; this._createDomNode(); if (options.horizontalHasArrows) { - var arrowDelta = (options.arrowSize - AbstractScrollbar.AbstractScrollbar.ARROW_IMG_SIZE) / 2; - var scrollbarDelta = (options.horizontalScrollbarSize - AbstractScrollbar.AbstractScrollbar.ARROW_IMG_SIZE) / 2; + var arrowDelta = (options.arrowSize - AbstractScrollbar.ARROW_IMG_SIZE) / 2; + var scrollbarDelta = (options.horizontalScrollbarSize - AbstractScrollbar.ARROW_IMG_SIZE) / 2; this._createArrow('left-arrow', scrollbarDelta, arrowDelta, null, null, options.arrowSize, options.horizontalScrollbarSize, () => this._createMouseWheelEvent(1)); this._createArrow('right-arrow', scrollbarDelta, null, null, arrowDelta, options.arrowSize, options.horizontalScrollbarSize, () => this._createMouseWheelEvent(-1)); @@ -38,7 +37,7 @@ export class HorizontalScrollbar extends AbstractScrollbar.AbstractScrollbar { } public _createMouseWheelEvent(sign:number) { - return new Mouse.StandardMouseWheelEvent(null, sign, 0); + return new StandardMouseWheelEvent(null, sign, 0); } public _updateSlider(sliderSize:number, sliderPosition:number): void { @@ -57,15 +56,15 @@ export class HorizontalScrollbar extends AbstractScrollbar.AbstractScrollbar { DomUtils.StyleMutator.setBottom(this.domNode, 0); } - public _mouseDownRelativePosition(e:Mouse.StandardMouseEvent, domNodePosition:DomUtils.IDomNodePosition): number { + public _mouseDownRelativePosition(e:StandardMouseEvent, domNodePosition:DomUtils.IDomNodePosition): number { return e.posx - domNodePosition.left; } - public _sliderMousePosition(e:AbstractScrollbar.IMouseMoveEventData): number { + public _sliderMousePosition(e:IMouseMoveEventData): number { return e.posx; } - public _sliderOrthogonalMousePosition(e:AbstractScrollbar.IMouseMoveEventData): number { + public _sliderOrthogonalMousePosition(e:IMouseMoveEventData): number { return e.posy; } diff --git a/src/vs/base/browser/ui/scrollbar/impl/scrollableElement.ts b/src/vs/base/browser/ui/scrollbar/impl/scrollableElement.ts index 55ac187a955..b1dbc846b99 100644 --- a/src/vs/base/browser/ui/scrollbar/impl/scrollableElement.ts +++ b/src/vs/base/browser/ui/scrollbar/impl/scrollableElement.ts @@ -6,14 +6,14 @@ import 'vs/css!./scrollbars'; import DomUtils = require('vs/base/browser/dom'); -import Mouse = require('vs/base/browser/mouseEvent'); +import {StandardMouseWheelEvent} from 'vs/base/browser/mouseEvent'; import Platform = require('vs/base/common/platform'); -import Common = require('vs/base/browser/ui/scrollbar/impl/common'); -import DomNodeScrollable = require('vs/base/browser/ui/scrollbar/impl/domNodeScrollable'); -import HorizontalScrollbar = require('vs/base/browser/ui/scrollbar/impl/horizontalScrollbar'); -import VerticalScrollbar = require('vs/base/browser/ui/scrollbar/impl/verticalScrollbar'); +import {IOptions,IScrollbar,IDimensions,IMouseWheelEvent,visibilityFromString} from 'vs/base/browser/ui/scrollbar/impl/common'; +import {DomNodeScrollable} from 'vs/base/browser/ui/scrollbar/impl/domNodeScrollable'; +import {HorizontalScrollbar} from 'vs/base/browser/ui/scrollbar/impl/horizontalScrollbar'; +import {VerticalScrollbar} from 'vs/base/browser/ui/scrollbar/impl/verticalScrollbar'; import ScrollableElementInt = require('vs/base/browser/ui/scrollbar/scrollableElement'); -import Lifecycle = require('vs/base/common/lifecycle'); +import {IDisposable,disposeAll} from 'vs/base/common/lifecycle'; import {IScrollable} from 'vs/base/common/scrollable'; var HIDE_TIMEOUT = 500; @@ -22,12 +22,12 @@ var SCROLL_WHEEL_SENSITIVITY = 50; export class ScrollableElement implements ScrollableElementInt.IScrollableElement { private originalElement:HTMLElement; - private options:Common.IOptions; + private options:IOptions; private scrollable:IScrollable; public verticalScrollbarWidth:number; public horizontalScrollbarHeight:number; - private verticalScrollbar:Common.IScrollbar; - private horizontalScrollbar:Common.IScrollbar; + private verticalScrollbar:IScrollbar; + private horizontalScrollbar:IScrollbar; private domNode:HTMLElement; private leftShadowDomNode:HTMLElement; @@ -35,15 +35,15 @@ export class ScrollableElement implements ScrollableElementInt.IScrollableElemen private topLeftShadowDomNode:HTMLElement; private listenOnDomNode:HTMLElement; - private toDispose:Lifecycle.IDisposable[]; - private _mouseWheelToDispose:Lifecycle.IDisposable[]; + private toDispose:IDisposable[]; + private _mouseWheelToDispose:IDisposable[]; private onElementDimensionsTimeout:number; private onElementInternalDimensionsTimeout:number; private isDragging:boolean; private mouseIsOver:boolean; - private dimensions:Common.IDimensions; + private dimensions:IDimensions; private hideTimeout:number; constructor(element:HTMLElement, options:ScrollableElementInt.ICreationOptions, dimensions:ScrollableElementInt.IDimensions = null) { @@ -54,14 +54,14 @@ export class ScrollableElement implements ScrollableElementInt.IScrollableElemen if (this.options.scrollable) { this.scrollable = this.options.scrollable; } else { - this.scrollable = new DomNodeScrollable.DomNodeScrollable(this.originalElement); + this.scrollable = new DomNodeScrollable(this.originalElement); } this.verticalScrollbarWidth = this.options.verticalScrollbarSize; this.horizontalScrollbarHeight = this.options.horizontalScrollbarSize; - this.verticalScrollbar = new VerticalScrollbar.VerticalScrollbar(this.scrollable, this, this.options); - this.horizontalScrollbar = new HorizontalScrollbar.HorizontalScrollbar(this.scrollable, this, this.options); + this.verticalScrollbar = new VerticalScrollbar(this.scrollable, this, this.options); + this.horizontalScrollbar = new HorizontalScrollbar(this.scrollable, this, this.options); this.domNode = document.createElement('div'); this.domNode.className = 'monaco-scrollable-element ' + this.options.className; @@ -110,8 +110,8 @@ export class ScrollableElement implements ScrollableElementInt.IScrollableElemen } public dispose(): void { - this.toDispose = Lifecycle.disposeAll(this.toDispose); - this._mouseWheelToDispose = Lifecycle.disposeAll(this._mouseWheelToDispose); + this.toDispose = disposeAll(this.toDispose); + this._mouseWheelToDispose = disposeAll(this._mouseWheelToDispose); this.verticalScrollbar.destroy(); this.horizontalScrollbar.destroy(); if (this.onElementDimensionsTimeout !== -1) { @@ -123,9 +123,6 @@ export class ScrollableElement implements ScrollableElementInt.IScrollableElemen this.onElementInternalDimensionsTimeout = -1; } } - public destroy(): void { - this.dispose(); - } public getDomNode():HTMLElement { return this.domNode; @@ -213,12 +210,12 @@ export class ScrollableElement implements ScrollableElementInt.IScrollableElemen } // Stop listening (if necessary) - this._mouseWheelToDispose = Lifecycle.disposeAll(this._mouseWheelToDispose); + this._mouseWheelToDispose = disposeAll(this._mouseWheelToDispose); // Start listening (if necessary) if (shouldListen) { var onMouseWheel = (browserEvent:MouseWheelEvent) => { - var e = new Mouse.StandardMouseWheelEvent(browserEvent); + var e = new StandardMouseWheelEvent(browserEvent); this.onMouseWheel(e); }; @@ -227,7 +224,7 @@ export class ScrollableElement implements ScrollableElementInt.IScrollableElemen } } - public onMouseWheel(e: Common.IMouseWheelEvent): void { + public onMouseWheel(e: IMouseWheelEvent): void { if (Platform.isMacintosh && e.browserEvent && this.options.saveLastScrollTimeOnClassName) { // Mark dom node with timestamp of wheel event var target = e.browserEvent.target; @@ -369,7 +366,7 @@ export class ScrollableElement implements ScrollableElementInt.IScrollableElemen // -------------------- size & layout -------------------- - private _computeDimensions(clientWidth:number, clientHeight:number): Common.IDimensions { + private _computeDimensions(clientWidth:number, clientHeight:number): IDimensions { var width = clientWidth; var height = clientHeight; @@ -379,7 +376,7 @@ export class ScrollableElement implements ScrollableElementInt.IScrollableElemen }; } - private _createOptions(options:ScrollableElementInt.ICreationOptions): Common.IOptions { + private _createOptions(options:ScrollableElementInt.ICreationOptions): IOptions { function ensureValue(source:any, prop:string, value:V) { if (source.hasOwnProperty(prop)) { @@ -388,7 +385,7 @@ export class ScrollableElement implements ScrollableElementInt.IScrollableElemen return value; } - var result:Common.IOptions = { + var result:IOptions = { forbidTranslate3dUse: ensureValue(options, 'forbidTranslate3dUse', false), className: ensureValue(options, 'className', ''), useShadows: ensureValue(options, 'useShadows', true), @@ -400,12 +397,12 @@ export class ScrollableElement implements ScrollableElementInt.IScrollableElemen scrollable: ensureValue(options, 'scrollable', null), listenOnDomNode: ensureValue(options, 'listenOnDomNode', null), - horizontal: Common.visibilityFromString(ensureValue(options, 'horizontal', 'auto')), + horizontal: visibilityFromString(ensureValue(options, 'horizontal', 'auto')), horizontalScrollbarSize: ensureValue(options, 'horizontalScrollbarSize', 10), horizontalSliderSize: 0, horizontalHasArrows: ensureValue(options, 'horizontalHasArrows', false), - vertical: Common.visibilityFromString(ensureValue(options, 'vertical', 'auto')), + vertical: visibilityFromString(ensureValue(options, 'vertical', 'auto')), verticalScrollbarSize: ensureValue(options, 'verticalScrollbarSize', 10), verticalHasArrows: ensureValue(options, 'verticalHasArrows', false), verticalSliderSize: 0, diff --git a/src/vs/base/browser/ui/scrollbar/impl/verticalScrollbar.ts b/src/vs/base/browser/ui/scrollbar/impl/verticalScrollbar.ts index 68536695551..67367f61ae7 100644 --- a/src/vs/base/browser/ui/scrollbar/impl/verticalScrollbar.ts +++ b/src/vs/base/browser/ui/scrollbar/impl/verticalScrollbar.ts @@ -4,31 +4,30 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import AbstractScrollbar = require('vs/base/browser/ui/scrollbar/impl/abstractScrollbar'); -import Mouse = require('vs/base/browser/mouseEvent'); +import {AbstractScrollbar, ScrollbarState, IMouseMoveEventData} from 'vs/base/browser/ui/scrollbar/impl/abstractScrollbar'; +import {StandardMouseEvent, StandardMouseWheelEvent} from 'vs/base/browser/mouseEvent'; import DomUtils = require('vs/base/browser/dom'); -import Common = require('vs/base/browser/ui/scrollbar/impl/common'); -import ScrollableElement = require('vs/base/browser/ui/scrollbar/scrollableElement'); +import {IParent, IOptions, Visibility} from 'vs/base/browser/ui/scrollbar/impl/common'; import Browser = require('vs/base/browser/browser'); import {IScrollable} from 'vs/base/common/scrollable'; -export class VerticalScrollbar extends AbstractScrollbar.AbstractScrollbar { +export class VerticalScrollbar extends AbstractScrollbar { private scrollable:IScrollable; - constructor(scrollable:IScrollable, parent:Common.IParent, options:Common.IOptions) { - var s = new AbstractScrollbar.ScrollbarState( + constructor(scrollable:IScrollable, parent:IParent, options:IOptions) { + var s = new ScrollbarState( (options.verticalHasArrows ? options.arrowSize : 0), - (options.vertical === Common.Visibility.Hidden ? 0 : options.verticalScrollbarSize), - (options.horizontal === Common.Visibility.Hidden ? 0 : options.horizontalScrollbarSize) + (options.vertical === Visibility.Hidden ? 0 : options.verticalScrollbarSize), + (options.horizontal === Visibility.Hidden ? 0 : options.horizontalScrollbarSize) ); super(options.forbidTranslate3dUse, parent, s, options.vertical, 'vertical'); this.scrollable = scrollable; this._createDomNode(); if (options.verticalHasArrows) { - var arrowDelta = (options.arrowSize - AbstractScrollbar.AbstractScrollbar.ARROW_IMG_SIZE) / 2; - var scrollbarDelta = (options.verticalScrollbarSize - AbstractScrollbar.AbstractScrollbar.ARROW_IMG_SIZE) / 2; + var arrowDelta = (options.arrowSize - AbstractScrollbar.ARROW_IMG_SIZE) / 2; + var scrollbarDelta = (options.verticalScrollbarSize - AbstractScrollbar.ARROW_IMG_SIZE) / 2; this._createArrow('up-arrow', arrowDelta, scrollbarDelta, null, null, options.verticalScrollbarSize, options.arrowSize, () => this._createMouseWheelEvent(1)); this._createArrow('down-arrow', null, scrollbarDelta, arrowDelta, null, options.verticalScrollbarSize, options.arrowSize, () => this._createMouseWheelEvent(-1)); @@ -38,7 +37,7 @@ export class VerticalScrollbar extends AbstractScrollbar.AbstractScrollbar { } public _createMouseWheelEvent(sign:number) { - return new Mouse.StandardMouseWheelEvent(null, 0, sign); + return new StandardMouseWheelEvent(null, 0, sign); } public _updateSlider(sliderSize:number, sliderPosition:number): void { @@ -57,15 +56,15 @@ export class VerticalScrollbar extends AbstractScrollbar.AbstractScrollbar { DomUtils.StyleMutator.setTop(this.domNode, 0); } - public _mouseDownRelativePosition(e:Mouse.StandardMouseEvent, domNodePosition:DomUtils.IDomNodePosition): number { + public _mouseDownRelativePosition(e:StandardMouseEvent, domNodePosition:DomUtils.IDomNodePosition): number { return e.posy - domNodePosition.top; } - public _sliderMousePosition(e:AbstractScrollbar.IMouseMoveEventData): number { + public _sliderMousePosition(e:IMouseMoveEventData): number { return e.posy; } - public _sliderOrthogonalMousePosition(e:AbstractScrollbar.IMouseMoveEventData): number { + public _sliderOrthogonalMousePosition(e:IMouseMoveEventData): number { return e.posx; } diff --git a/src/vs/base/browser/ui/scrollbar/scrollableElement.ts b/src/vs/base/browser/ui/scrollbar/scrollableElement.ts index 5618f11ad75..65a3f4fce82 100644 --- a/src/vs/base/browser/ui/scrollbar/scrollableElement.ts +++ b/src/vs/base/browser/ui/scrollbar/scrollableElement.ts @@ -4,7 +4,6 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import Lifecycle = require('vs/base/common/lifecycle'); import {IScrollable} from 'vs/base/common/scrollable'; export interface ICreationOptions { @@ -151,9 +150,8 @@ export interface IScrollableElement { onElementInternalDimensions(): void; /** - * Destroy. + * Dispose. */ - destroy(): void; dispose(): void; /** diff --git a/src/vs/base/common/diff/diff.ts b/src/vs/base/common/diff/diff.ts index 3cc6ef133a0..edc5620fe80 100644 --- a/src/vs/base/common/diff/diff.ts +++ b/src/vs/base/common/diff/diff.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import diffChange = require('vs/base/common/diff/diffChange'); +import {DiffChange} from 'vs/base/common/diff/diffChange'; export interface ISequence { getLength(): number; @@ -105,7 +105,7 @@ var MaxDifferencesHistory = 1447; */ class DiffChangeHelper { - private m_changes:diffChange.DiffChange[]; + private m_changes:DiffChange[]; private m_originalStart:number; private m_modifiedStart:number; private m_originalCount:number; @@ -129,7 +129,7 @@ class DiffChangeHelper { // Only add to the list if there is something to add if (this.m_originalCount > 0 || this.m_modifiedCount > 0) { // Add the new change to our list - this.m_changes.push(new diffChange.DiffChange(this.m_originalStart, this.m_originalCount, + this.m_changes.push(new DiffChange(this.m_originalStart, this.m_originalCount, this.m_modifiedStart, this.m_modifiedCount)); } @@ -173,7 +173,7 @@ class DiffChangeHelper { /** * Retrieves all of the changes marked by the class. */ - public getChanges(): diffChange.DiffChange[] { + public getChanges(): DiffChange[] { if (this.m_originalCount > 0 || this.m_modifiedCount > 0) { // Finish up on whatever is left this.MarkNextChange(); @@ -182,7 +182,7 @@ class DiffChangeHelper { return this.m_changes; } - public getReverseChanges(): diffChange.DiffChange[] { + public getReverseChanges(): DiffChange[] { /// /// Retrieves all of the changes marked by the class in the reverse order /// @@ -279,7 +279,7 @@ export class LcsDiff { * sequences on the bounded range. * @returns An array of the differences between the two input sequences. */ - private _ComputeDiff(originalStart:number, originalEnd:number, modifiedStart:number, modifiedEnd:number): diffChange.DiffChange[] { + private _ComputeDiff(originalStart:number, originalEnd:number, modifiedStart:number, modifiedEnd:number): DiffChange[] { var quitEarlyArr = [ false ]; return this.ComputeDiffRecursive(originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr); } @@ -289,7 +289,7 @@ export class LcsDiff { * recursively. * @returns An array of the differences between the two input sequences. */ - private ComputeDiffRecursive(originalStart:number, originalEnd:number, modifiedStart:number, modifiedEnd:number, quitEarlyArr:boolean[]): diffChange.DiffChange[] { + private ComputeDiffRecursive(originalStart:number, originalEnd:number, modifiedStart:number, modifiedEnd:number, quitEarlyArr:boolean[]): DiffChange[] { quitEarlyArr[0] = false; // Find the start of the differences @@ -306,21 +306,21 @@ export class LcsDiff { // In the special case where we either have all insertions or all deletions or the sequences are identical if (originalStart > originalEnd || modifiedStart > modifiedEnd) { - var changes:diffChange.DiffChange[]; + var changes:DiffChange[]; if (modifiedStart <= modifiedEnd) { Debug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd'); // All insertions changes = [ - new diffChange.DiffChange(originalStart, 0, modifiedStart, modifiedEnd - modifiedStart + 1) + new DiffChange(originalStart, 0, modifiedStart, modifiedEnd - modifiedStart + 1) ]; } else if (originalStart <= originalEnd) { Debug.Assert(modifiedStart === modifiedEnd + 1, 'modifiedStart should only be one more than modifiedEnd'); // All deletions changes = [ - new diffChange.DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, 0) + new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, 0) ]; } else { Debug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd'); @@ -351,7 +351,7 @@ export class LcsDiff { // NOTE: ComputeDiff() is inclusive, therefore the second range starts on the next point var leftChanges = this.ComputeDiffRecursive(originalStart, midOriginal, modifiedStart, midModified, quitEarlyArr); - var rightChanges: diffChange.DiffChange[] = []; + var rightChanges: DiffChange[] = []; if (!quitEarlyArr[0]) { rightChanges = this.ComputeDiffRecursive(midOriginal + 1, originalEnd, midModified + 1, modifiedEnd, quitEarlyArr); @@ -359,7 +359,7 @@ export class LcsDiff { // We did't have time to finish the first half, so we don't have time to compute this half. // Consider the entire rest of the sequence different. rightChanges = [ - new diffChange.DiffChange(midOriginal + 1, originalEnd - (midOriginal + 1) + 1, midModified + 1, modifiedEnd - (midModified + 1) + 1) + new DiffChange(midOriginal + 1, originalEnd - (midOriginal + 1) + 1, midModified + 1, modifiedEnd - (midModified + 1) + 1) ]; } @@ -368,7 +368,7 @@ export class LcsDiff { // If we hit here, we quit early, and so can't return anything meaningful return [ - new diffChange.DiffChange(originalStart, originalEnd -originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1) + new DiffChange(originalStart, originalEnd -originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1) ]; } @@ -377,8 +377,8 @@ export class LcsDiff { forwardPoints:number[], reversePoints:number[], originalIndex:number, originalEnd:number, midOriginalArr:number[], modifiedIndex:number, modifiedEnd:number, midModifiedArr:number[], - deltaIsEven:boolean, quitEarlyArr:boolean[]): diffChange.DiffChange[] { - var forwardChanges: diffChange.DiffChange[] = null, reverseChanges: diffChange.DiffChange[] = null; + deltaIsEven:boolean, quitEarlyArr:boolean[]): DiffChange[] { + var forwardChanges: DiffChange[] = null, reverseChanges: DiffChange[] = null; // First, walk backward through the forward diagonals history var changeHelper = new DiffChangeHelper(); @@ -442,7 +442,7 @@ export class LcsDiff { } reverseChanges = [ - new diffChange.DiffChange(originalStartPoint, originalEnd - originalStartPoint + 1, + new DiffChange(originalStartPoint, originalEnd - originalStartPoint + 1, modifiedStartPoint, modifiedEnd - modifiedStartPoint + 1) ]; } else { @@ -666,7 +666,7 @@ export class LcsDiff { modifiedStart++; return [ - new diffChange.DiffChange(originalStart, originalEnd - originalStart + 1, + new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1) ]; } @@ -760,9 +760,9 @@ export class LcsDiff { * @param The right changes * @returns The concatenated list */ - private ConcatenateChanges(left:diffChange.DiffChange[], right:diffChange.DiffChange[]): diffChange.DiffChange[] { - var mergedChangeArr:diffChange.DiffChange[] = []; - var result:diffChange.DiffChange[] = null; + private ConcatenateChanges(left:DiffChange[], right:DiffChange[]): DiffChange[] { + var mergedChangeArr:DiffChange[] = []; + var result:DiffChange[] = null; if (left.length === 0 || right.length === 0) { return (right.length > 0) ? right : left; @@ -771,14 +771,14 @@ export class LcsDiff { // might recurse in the middle of a change thereby splitting it into // two changes. Here in the combining stage, we detect and fuse those // changes back together - result = new Array(left.length + right.length - 1); + result = new Array(left.length + right.length - 1); MyArray.Copy(left, 0, result, 0, left.length - 1); result[left.length - 1] = mergedChangeArr[0]; MyArray.Copy(right, 1, result, left.length, right.length - 1); return result; } else { - result = new Array(left.length + right.length); + result = new Array(left.length + right.length); MyArray.Copy(left, 0, result, 0, left.length); MyArray.Copy(right, 0, result, left.length, right.length); @@ -794,7 +794,7 @@ export class LcsDiff { * @param mergedChange The merged change if the two overlap, null otherwise * @returns True if the two changes overlap */ - private ChangesOverlap(left:diffChange.DiffChange, right:diffChange.DiffChange, mergedChangeArr:diffChange.DiffChange[]): boolean { + private ChangesOverlap(left:DiffChange, right:DiffChange, mergedChangeArr:DiffChange[]): boolean { Debug.Assert(left.originalStart <= right.originalStart, 'Left change is not less than or equal to right change'); Debug.Assert(left.modifiedStart <= right.modifiedStart, 'Left change is not less than or equal to right change'); @@ -812,7 +812,7 @@ export class LcsDiff { modifiedLength = right.modifiedStart + right.modifiedLength - left.modifiedStart; } - mergedChangeArr[0] = new diffChange.DiffChange(originalStart, originalLength, modifiedStart, modifiedLength); + mergedChangeArr[0] = new DiffChange(originalStart, originalLength, modifiedStart, modifiedLength); return true; } else { mergedChangeArr[0] = null; diff --git a/src/vs/base/common/diff/diff2.ts b/src/vs/base/common/diff/diff2.ts index 8015e924b1d..0a0f70cbd0f 100644 --- a/src/vs/base/common/diff/diff2.ts +++ b/src/vs/base/common/diff/diff2.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import diffChange = require('vs/base/common/diff/diffChange'); +import {DiffChange} from 'vs/base/common/diff/diffChange'; export interface ISequence { getLength(): number; @@ -164,14 +164,14 @@ export class LcsDiff2 { while (j < yLength && !this.resultY[j]) { j++; } - changes.push(new diffChange.DiffChange(xChangeStart, i - xChangeStart, yChangeStart, j - yChangeStart)); + changes.push(new DiffChange(xChangeStart, i - xChangeStart, yChangeStart, j - yChangeStart)); } } if (i < xLength) { - changes.push(new diffChange.DiffChange(i, xLength - i, yLength, 0)); + changes.push(new DiffChange(i, xLength - i, yLength, 0)); } if (j < yLength) { - changes.push(new diffChange.DiffChange(xLength, 0, j, yLength - j)); + changes.push(new DiffChange(xLength, 0, j, yLength - j)); } return changes; } diff --git a/src/vs/base/common/remote.ts b/src/vs/base/common/remote.ts index 75e06166e22..1822f479b89 100644 --- a/src/vs/base/common/remote.ts +++ b/src/vs/base/common/remote.ts @@ -4,15 +4,15 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import winjs = require('vs/base/common/winjs.base'); -import marshalling = require('vs/base/common/marshalling'); +import {TPromise} from 'vs/base/common/winjs.base'; +import {IMarshallingContribution} from 'vs/base/common/marshalling'; export interface IManyHandler { handle(rpcId:string, method:string, args:any[]): any; } export interface IProxyHelper { - callOnRemote(proxyId: string, path: string, args:any[]): winjs.Promise; + callOnRemote(proxyId: string, path: string, args:any[]): TPromise; } export interface IRemoteCom extends IProxyHelper { @@ -33,7 +33,7 @@ export function createProxyFromCtor(remote:IProxyHelper, id:string, ctor:Functio return result; } -function createMethodProxy(remote:IProxyHelper, proxyId: string, path: string): (...myArgs: any[]) => winjs.Promise { +function createMethodProxy(remote:IProxyHelper, proxyId: string, path: string): (...myArgs: any[]) => TPromise { return (...myArgs: any[]) => { return remote.callOnRemote(proxyId, path, myArgs); }; @@ -50,7 +50,7 @@ export interface ISerializedProxy { desc: IObjDescriptor; } -export class ProxiesMarshallingContribution implements marshalling.IMarshallingContribution { +export class ProxiesMarshallingContribution implements IMarshallingContribution { private _remoteCom:IProxyHelper; diff --git a/src/vs/base/common/winjs.base.d.ts b/src/vs/base/common/winjs.base.d.ts index cdde574d166..3e6b024dc70 100644 --- a/src/vs/base/common/winjs.base.d.ts +++ b/src/vs/base/common/winjs.base.d.ts @@ -51,6 +51,7 @@ export interface IXHROptions { export declare function xhr(options:IXHROptions):TPromise; export declare function decoratePromise(promise:Promise, successCallback?:ValueCallback, errorCallback?:ErrorCallback):Promise; +export declare function decoratePromise(promise:TPromise, successCallback?:TValueCallback, errorCallback?:ErrorCallback):TPromise; // --- Generic promise export interface TValueCallback { diff --git a/src/vs/base/common/worker/workerClient.ts b/src/vs/base/common/worker/workerClient.ts index d3930f8a07c..8f9d8049faf 100644 --- a/src/vs/base/common/worker/workerClient.ts +++ b/src/vs/base/common/worker/workerClient.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import winjs = require('vs/base/common/winjs.base'); +import {TPromise} from 'vs/base/common/winjs.base'; import timer = require('vs/base/common/timer'); import errors = require('vs/base/common/errors'); import protocol = require('vs/base/common/worker/workerProtocol'); @@ -26,9 +26,9 @@ export interface IWorkerFactory { } interface IActiveRequest { - complete:winjs.ValueCallback; - error:winjs.ErrorCallback; - progress:winjs.ProgressCallback; + complete:(value:any)=>void; + error:(err:any)=>void; + progress:(progress:any)=>void; type:string; payload:any; } @@ -52,7 +52,7 @@ export class WorkerClient { private _proxiesMarshalling: remote.ProxiesMarshallingContribution; private _decodeMessageName: (msg: protocol.IClientMessage) => string; - public onModuleLoaded:winjs.Promise; + public onModuleLoaded:TPromise; constructor(workerFactory:IWorkerFactory, moduleId:string, decodeMessageName:(msg:protocol.IClientMessage)=>string, onCrashCallback:(workerClient:WorkerClient)=>void, workerId:number=++WorkerClient.LAST_WORKER_ID) { this._decodeMessageName = decodeMessageName; @@ -107,16 +107,16 @@ export class WorkerClient { return this._messagesQueue.length + (this._waitingForWorkerReply ? 1 : 0); } - public request(requestName:string, payload:any, forceTimestamp?:number): winjs.Promise { + public request(requestName:string, payload:any, forceTimestamp?:number): TPromise { if (requestName.charAt(0) === '$') { throw new Error('Illegal requestName: ' + requestName); } var shouldCancelPromise = false, - messagePromise:winjs.Promise; + messagePromise:TPromise; - return new winjs.Promise((c, e, p) => { + return new TPromise((c, e, p) => { // hide the initialize promise inside this // promise so that it won't be canceled by accident @@ -162,7 +162,7 @@ export class WorkerClient { delete this._messageHandlers[message]; } - private _sendMessage(type:string, payload:any, forceTimestamp:number=(new Date()).getTime()):winjs.Promise { + private _sendMessage(type:string, payload:any, forceTimestamp:number=(new Date()).getTime()):TPromise { var msg = { id: ++this._lastMessageId, @@ -171,8 +171,8 @@ export class WorkerClient { payload: payload }; - var pc:winjs.ValueCallback, pe:winjs.ErrorCallback, pp:winjs.ProgressCallback; - var promise = new winjs.Promise((c, e, p) => { + var pc:(value:any)=>void, pe:(err:any)=>void, pp:(progress:any)=>void; + var promise = new TPromise((c, e, p) => { pc = c; pe = e; pp = p; @@ -352,7 +352,7 @@ export class WorkerClient { }); } - private _handleWorkerRequest(msg:protocol.IServerMessage): winjs.Promise { + private _handleWorkerRequest(msg:protocol.IServerMessage): TPromise { if (msg.type === '_proxyObj') { return this._remoteCom.handleMessage(msg.payload); } @@ -366,14 +366,14 @@ export class WorkerClient { } this._onError('Received unexpected message from Worker:', msg); - return winjs.Promise.wrapError(new Error('No handler found')); + return TPromise.wrapError(new Error('No handler found')); } - private _invokeHandler(handler:Function, handlerCtx:any, payload:any): winjs.Promise { + private _invokeHandler(handler:Function, handlerCtx:any, payload:any): TPromise { try { - return winjs.Promise.as(handler.call(handlerCtx, payload)); + return TPromise.as(handler.call(handlerCtx, payload)); } catch (err) { - return winjs.Promise.wrapError(err); + return TPromise.wrapError(err); } } diff --git a/src/vs/base/common/worker/workerProtocol.ts b/src/vs/base/common/worker/workerProtocol.ts index dafaf7d0578..06d7d64b8d0 100644 --- a/src/vs/base/common/worker/workerProtocol.ts +++ b/src/vs/base/common/worker/workerProtocol.ts @@ -4,12 +4,12 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import winjs = require('vs/base/common/winjs.base'); +import {TPromise} from 'vs/base/common/winjs.base'; import marshalling = require('vs/base/common/marshalling'); import remote = require('vs/base/common/remote'); /** - * A message sent from the UI thread to a worker + * A message sent from the UI thread to a worker */ export interface IClientMessage { id:number; @@ -73,7 +73,7 @@ export var PrintType = { }; export interface IRequester { - request(requestName: string, payload: any): winjs.Promise; + request(requestName: string, payload: any): TPromise; } export class RemoteCom implements remote.IRemoteCom { @@ -86,7 +86,7 @@ export class RemoteCom implements remote.IRemoteCom { this._bigHandler = null; } - public callOnRemote(proxyId: string, path: string, args:any[]): winjs.Promise { + public callOnRemote(proxyId: string, path: string, args:any[]): TPromise { return this._requester.request('_proxyObj', { proxyId: proxyId, path: path, @@ -98,18 +98,18 @@ export class RemoteCom implements remote.IRemoteCom { this._bigHandler = handler; } - public handleMessage(msg: { proxyId: string; path: string; args: any[]; }): winjs.Promise { + public handleMessage(msg: { proxyId: string; path: string; args: any[]; }): TPromise { if (!this._bigHandler) { throw new Error('got message before big handler attached!'); } return this._invokeHandler(msg.proxyId, msg.path, msg.args); } - private _invokeHandler(rpcId:string, method:string, args:any[]): winjs.Promise { + private _invokeHandler(rpcId:string, method:string, args:any[]): TPromise { try { - return winjs.TPromise.as(this._bigHandler.handle(rpcId, method, args)); + return TPromise.as(this._bigHandler.handle(rpcId, method, args)); } catch (err) { - return winjs.Promise.wrapError(err); + return TPromise.wrapError(err); } } } \ No newline at end of file diff --git a/src/vs/base/common/worker/workerServer.ts b/src/vs/base/common/worker/workerServer.ts index 2014074d532..fa6222190d7 100644 --- a/src/vs/base/common/worker/workerServer.ts +++ b/src/vs/base/common/worker/workerServer.ts @@ -4,16 +4,16 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import winjs = require('vs/base/common/winjs.base'); +import {TPromise} from 'vs/base/common/winjs.base'; import protocol = require('vs/base/common/worker/workerProtocol'); import errors = require('vs/base/common/errors'); import remote = require('vs/base/common/remote'); import marshalling = require('vs/base/common/marshalling'); interface IReplyCallbacks { - c: winjs.ValueCallback; - e: winjs.ErrorCallback; - p: winjs.ProgressCallback; + c: (value:any)=>void; + e: (err:any)=>void; + p: (progress:any)=>void; } export class WorkerServer { @@ -81,7 +81,7 @@ export class WorkerServer { this._postMessage(msg); } - public request(requestName:string, payload:any): winjs.Promise { + public request(requestName:string, payload:any): TPromise { if (requestName.charAt(0) === '$') { throw new Error('Illegal requestName: ' + requestName); } @@ -102,7 +102,7 @@ export class WorkerServer { p: null }; - var r = new winjs.Promise((c, e, p) => { + var r = new TPromise((c, e, p) => { reply.c = c; reply.e = e; reply.p = p; @@ -194,7 +194,7 @@ export class WorkerServer { } } - private _handleMessage(msg:protocol.IClientMessage, c:winjs.ValueCallback, e:winjs.ErrorCallback, p:winjs.ProgressCallback): void { + private _handleMessage(msg:protocol.IClientMessage, c:(value:any)=>void, e:(err:any)=>void, p:(progress:any)=>void): void { if (msg.type === '_proxyObj') { this._remoteCom.handleMessage(msg.payload).then(c, e, p); diff --git a/src/vs/base/parts/tree/browser/treeView.ts b/src/vs/base/parts/tree/browser/treeView.ts index 135067a25b1..9d7b2e26aa6 100644 --- a/src/vs/base/parts/tree/browser/treeView.ts +++ b/src/vs/base/parts/tree/browser/treeView.ts @@ -1594,7 +1594,7 @@ export class TreeView extends HeightMap implements IScrollable { public dispose(): void { // TODO@joao: improve - this.scrollableElement.destroy(); + this.scrollableElement.dispose(); this.releaseModel(); this.modelListeners = null; diff --git a/src/vs/base/test/common/remote.test.ts b/src/vs/base/test/common/remote.test.ts index 8ca0ca6b11b..43475d289fe 100644 --- a/src/vs/base/test/common/remote.test.ts +++ b/src/vs/base/test/common/remote.test.ts @@ -7,13 +7,13 @@ import * as assert from 'assert'; import { marshallObject, demarshallObject } from 'vs/base/common/marshalling'; import { ProxiesMarshallingContribution } from 'vs/base/common/remote'; -import { Promise} from 'vs/base/common/winjs.base'; +import { TPromise} from 'vs/base/common/winjs.base'; suite('Remote', () => { test('bug #17587:[plugin] Language plugin can\'t define a TokenTypeClassificationSupport#wordDefinition', () => { var contrib = new ProxiesMarshallingContribution({ - callOnRemote: () => Promise.as(true) + callOnRemote: () => TPromise.as(true) }); var initial = { diff --git a/src/vs/platform/thread/common/abstractThreadService.ts b/src/vs/platform/thread/common/abstractThreadService.ts index 251646149c5..7fc278ba2e7 100644 --- a/src/vs/platform/thread/common/abstractThreadService.ts +++ b/src/vs/platform/thread/common/abstractThreadService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import winjs = require('vs/base/common/winjs.base'); +import {TPromise} from 'vs/base/common/winjs.base'; import Browser = require('vs/base/browser/browser'); import remote = require('vs/base/common/remote'); import Types = require('vs/base/common/types'); @@ -46,9 +46,9 @@ export abstract class AbstractThreadService implements remote.IManyHandler { public isInMainThread:boolean; protected _instantiationService: instantiation.IInstantiationService; - - _boundObjects:{[id:string]:IThreadSynchronizableObject;}; - _pendingObjects:winjs.Promise[]; + + protected _boundObjects:{[id:string]:IThreadSynchronizableObject;}; + protected _pendingObjects:TPromise>[]; private _localObjMap: { [id:string]: any; }; private _proxyObjMap: { [id:string]: any; }; @@ -81,12 +81,13 @@ export abstract class AbstractThreadService implements remote.IManyHandler { protected _doCreateInstance(params:any[]): any { var instanceOrPromise = this._instantiationService.createInstance.apply(this._instantiationService, params); - if (winjs.Promise.is(instanceOrPromise)) { + if (TPromise.is(instanceOrPromise)) { - var objInstantiated = instanceOrPromise.then((instance: IThreadSynchronizableObject): any => { + var objInstantiated: TPromise>; + objInstantiated = instanceOrPromise.then((instance: IThreadSynchronizableObject): any => { if (instance.asyncCtor) { var initPromise = instance.asyncCtor(); - if (winjs.Promise.is(initPromise)) { + if (TPromise.is(initPromise)) { return initPromise.then(() => { return instance; }); diff --git a/src/vs/platform/thread/common/mainThreadService.ts b/src/vs/platform/thread/common/mainThreadService.ts index 178a3bfca06..8fdbe3cab17 100644 --- a/src/vs/platform/thread/common/mainThreadService.ts +++ b/src/vs/platform/thread/common/mainThreadService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import winjs = require('vs/base/common/winjs.base'); +import {TPromise, decoratePromise} from 'vs/base/common/winjs.base'; import Worker = require('vs/base/common/worker/workerClient'); import abstractThreadService = require('vs/platform/thread/common/abstractThreadService'); import Env = require('vs/base/common/flags'); @@ -39,8 +39,8 @@ export class MainThreadService extends abstractThreadService.AbstractThreadServi private _contextService:IWorkspaceContextService; private _affinityScrambler:IAffinityMap; - private _workersCreatedPromise:winjs.Promise; - private _triggerWorkersCreatedPromise:winjs.ValueCallback; + private _workersCreatedPromise:TPromise; + private _triggerWorkersCreatedPromise:(value:void)=>void; private _listeners:IThreadServiceStatusListener[]; private _workerFactory:Worker.IWorkerFactory; @@ -60,7 +60,7 @@ export class MainThreadService extends abstractThreadService.AbstractThreadServi this._affinityScrambler = {}; this._listeners = []; - this._workersCreatedPromise = new winjs.Promise((c, e, p) => { + this._workersCreatedPromise = new TPromise((c, e, p) => { this._triggerWorkersCreatedPromise = c; }, () => { // Not cancelable @@ -70,7 +70,7 @@ export class MainThreadService extends abstractThreadService.AbstractThreadServi readThreadSynchronizableObjects().forEach((obj) => this.registerInstance(obj)); // If nobody asks for workers to be created in 5s, the workers are created automatically - winjs.Promise.timeout(MainThreadService.MAXIMUM_WORKER_CREATION_DELAY).then(() => this.ensureWorkers()); + TPromise.timeout(MainThreadService.MAXIMUM_WORKER_CREATION_DELAY).then(() => this.ensureWorkers()); } ensureWorkers(): void { @@ -112,10 +112,10 @@ export class MainThreadService extends abstractThreadService.AbstractThreadServi } } - private _afterWorkers(): winjs.Promise { + private _afterWorkers(): TPromise { var shouldCancelPromise = false; - return new winjs.Promise((c, e, p) => { + return new TPromise((c, e, p) => { // hide the initialize promise inside this // promise so that it won't be canceled by accident @@ -184,7 +184,7 @@ export class MainThreadService extends abstractThreadService.AbstractThreadServi } var obj = this._boundObjects[identifier]; - return winjs.Promise.as(obj[memberName].apply(obj, args)); + return TPromise.as(obj[memberName].apply(obj, args)); }); return worker; @@ -201,7 +201,7 @@ export class MainThreadService extends abstractThreadService.AbstractThreadServi return r; } - MainThread(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): winjs.Promise { + MainThread(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): TPromise { return target.apply(obj, params); } @@ -234,7 +234,7 @@ export class MainThreadService extends abstractThreadService.AbstractThreadServi return (scramble + affinity) % this._workerPool.length; } - OneWorker(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[], affinity:ThreadAffinity): winjs.Promise { + OneWorker(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[], affinity:ThreadAffinity): TPromise { return this._afterWorkers().then(() => { if (this._workerPool.length === 0) { throw new Error('Cannot fulfill request...'); @@ -246,9 +246,9 @@ export class MainThreadService extends abstractThreadService.AbstractThreadServi }); } - AllWorkers(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): winjs.Promise { + AllWorkers(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): TPromise { return this._afterWorkers().then(() => { - return winjs.Promise.join(this._workerPool.map((w) => { + return TPromise.join(this._workerPool.map((w) => { return this._remoteCall(w, obj, methodName, params); })); }); @@ -263,7 +263,7 @@ export class MainThreadService extends abstractThreadService.AbstractThreadServi return target.apply(obj, params); } - private _remoteCall(worker:Worker.WorkerClient, obj:IThreadSynchronizableObject, methodName:string, params:any[]): winjs.Promise { + private _remoteCall(worker:Worker.WorkerClient, obj:IThreadSynchronizableObject, methodName:string, params:any[]): TPromise { var id = obj.getId(); if (!id) { throw new Error('Synchronizable Objects must have an identifier'); @@ -277,7 +277,7 @@ export class MainThreadService extends abstractThreadService.AbstractThreadServi }; - var r = winjs.decoratePromise(worker.request('threadService', [id, methodName, params]), stopTimer, stopTimer); + var r = decoratePromise(worker.request('threadService', [id, methodName, params]), stopTimer, stopTimer); this._pingListenersIfNecessary(); @@ -337,21 +337,21 @@ export class MainThreadService extends abstractThreadService.AbstractThreadServi private _createWorkerProxyHelper(whichWorker:ThreadAffinity): remote.IProxyHelper { return { - callOnRemote: (proxyId: string, path: string, args:any[]): winjs.Promise => { + callOnRemote: (proxyId: string, path: string, args:any[]): TPromise => { return this._callOnWorker(whichWorker, proxyId, path, args); } }; } - private _callOnWorker(whichWorker:ThreadAffinity, proxyId: string, path: string, args:any[]): winjs.Promise { + private _callOnWorker(whichWorker:ThreadAffinity, proxyId: string, path: string, args:any[]): TPromise { if (whichWorker === ThreadAffinity.None) { - return winjs.Promise.as(null); + return TPromise.as(null); } return this._afterWorkers().then(() => { if (whichWorker === ThreadAffinity.All) { var promises = this._workerPool.map(w => w.getRemoteCom()).map(rCom => rCom.callOnRemote(proxyId, path, args)); - return winjs.Promise.join(promises); + return TPromise.join(promises); } var workerIdx = whichWorker % this._workerPool.length; diff --git a/src/vs/platform/thread/common/pluginHostThreadService.ts b/src/vs/platform/thread/common/pluginHostThreadService.ts index 241cef3b247..b36b5baa088 100644 --- a/src/vs/platform/thread/common/pluginHostThreadService.ts +++ b/src/vs/platform/thread/common/pluginHostThreadService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import winjs = require('vs/base/common/winjs.base'); +import {TPromise} from 'vs/base/common/winjs.base'; import remote = require('vs/base/common/remote'); import descriptors = require('vs/platform/instantiation/common/descriptors'); @@ -26,19 +26,19 @@ export class PluginHostThreadService extends abstractThreadService.AbstractThrea readThreadSynchronizableObjects().forEach((obj) => this.registerInstance(obj)); } - MainThread(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): winjs.Promise { + MainThread(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): TPromise { return target.apply(obj, params); } - OneWorker(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[], affinity:ThreadAffinity): winjs.Promise { - return winjs.Promise.as(null); + OneWorker(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[], affinity:ThreadAffinity): TPromise { + return TPromise.as(null); } - AllWorkers(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): winjs.Promise { - return winjs.Promise.as(null); + AllWorkers(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): TPromise { + return TPromise.as(null); } - Everywhere(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): winjs.Promise { + Everywhere(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): TPromise { return target.apply(obj, params); } diff --git a/src/vs/platform/thread/common/thread.ts b/src/vs/platform/thread/common/thread.ts index 2710629a132..ce36c619d33 100644 --- a/src/vs/platform/thread/common/thread.ts +++ b/src/vs/platform/thread/common/thread.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict' -import winjs = require('vs/base/common/winjs.base'); +import {TPromise} from 'vs/base/common/winjs.base'; import descriptors = require('vs/platform/instantiation/common/descriptors'); import instantiation = require('vs/platform/instantiation/common/instantiation'); import {IDisposable} from 'vs/base/common/lifecycle'; @@ -27,9 +27,9 @@ export interface IThreadService { addStatusListener(listener: IThreadServiceStatusListener): void; removeStatusListener(listener: IThreadServiceStatusListener): void; - MainThread(obj: IThreadSynchronizableObject, methodName: string, target: Function, param: any[]): winjs.Promise; - OneWorker(obj: IThreadSynchronizableObject, methodName: string, target: Function, param: any[], affinity: ThreadAffinity): winjs.Promise; - AllWorkers(obj: IThreadSynchronizableObject, methodName: string, target: Function, param: any[]): winjs.Promise; + MainThread(obj: IThreadSynchronizableObject, methodName: string, target: Function, param: any[]): TPromise; + OneWorker(obj: IThreadSynchronizableObject, methodName: string, target: Function, param: any[], affinity: ThreadAffinity): TPromise; + AllWorkers(obj: IThreadSynchronizableObject, methodName: string, target: Function, param: any[]): TPromise; Everywhere(obj: IThreadSynchronizableObject, methodName: string, target: Function, param: any[]): any; createInstance>(ctor: instantiation.INewConstructorSignature0): T; @@ -119,7 +119,7 @@ export interface IThreadSynchronizableObject { creationDone?:()=>void; - asyncCtor?:()=>winjs.Promise; + asyncCtor?:()=>TPromise; getSerializableState?:()=>S; diff --git a/src/vs/platform/thread/common/threadService.ts b/src/vs/platform/thread/common/threadService.ts index 941bbeebb15..ee52c699ed7 100644 --- a/src/vs/platform/thread/common/threadService.ts +++ b/src/vs/platform/thread/common/threadService.ts @@ -6,7 +6,7 @@ import Platform = require('vs/platform/platform'); import types = require('vs/base/common/types'); -import winjs = require('vs/base/common/winjs.base'); +import {TPromise} from 'vs/base/common/winjs.base'; import thread = require('./thread'); export var THREAD_SERVICE_PROPERTY_NAME = '__$$__threadService'; @@ -37,13 +37,13 @@ export function MainThreadAttr(type:Function, target:Function): void { export interface IOneWorkerAnnotation { (type: Function, target: Function, affinity?: thread.ThreadAffinity): void; - (type: Function, target: Function, condition: () => winjs.TPromise, affinity?: thread.ThreadAffinity): void; + (type: Function, target: Function, condition: () => TPromise, affinity?: thread.ThreadAffinity): void; } function OneWorkerFn(type: Function, target: Function, conditionOrAffinity?: any, affinity:thread.ThreadAffinity = thread.ThreadAffinity.None): void { var methodName = findMember(type.prototype, target), - condition: () => winjs.TPromise; + condition: () => TPromise; if(typeof conditionOrAffinity === 'function') { condition = conditionOrAffinity; @@ -61,8 +61,8 @@ function OneWorkerFn(type: Function, target: Function, conditionOrAffinity?: any var that = this, promise = condition.call(that); - if(!winjs.Promise.is(promise)) { - promise = winjs.Promise.as(promise); + if(!TPromise.is(promise)) { + promise = TPromise.as(promise); } return promise.then(function() { diff --git a/src/vs/platform/thread/common/workerThreadService.ts b/src/vs/platform/thread/common/workerThreadService.ts index e66afe6f783..093636750e0 100644 --- a/src/vs/platform/thread/common/workerThreadService.ts +++ b/src/vs/platform/thread/common/workerThreadService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import winjs = require('vs/base/common/winjs.base'); +import {TPromise} from 'vs/base/common/winjs.base'; import {readThreadSynchronizableObjects} from './threadService'; import abstractThreadService = require('vs/platform/thread/common/abstractThreadService'); import remote = require('vs/base/common/remote'); @@ -13,7 +13,7 @@ import {SyncDescriptor0} from 'vs/platform/instantiation/common/descriptors'; import {IThreadService, IThreadServiceStatusListener, IThreadSynchronizableObject, ThreadAffinity} from 'vs/platform/thread/common/thread'; export interface IMainThreadPublisher { - (messageName:string, payload:any): winjs.Promise; + (messageName:string, payload:any): TPromise; } export class WorkerThreadService extends abstractThreadService.AbstractThreadService implements IThreadService { @@ -34,31 +34,31 @@ export class WorkerThreadService extends abstractThreadService.AbstractThreadSer readThreadSynchronizableObjects().forEach((obj) => this.registerInstance(obj)); } - private _handleRequest(identifier:string, memberName:string, args:any[]): winjs.Promise { + private _handleRequest(identifier:string, memberName:string, args:any[]): TPromise { if (!this._boundObjects.hasOwnProperty(identifier)) { // Wait until all objects are constructed - return winjs.Promise.join(this._pendingObjects.slice(0)).then(() => { + return TPromise.join(this._pendingObjects.slice(0)).then(() => { if (!this._boundObjects.hasOwnProperty(identifier)) { - return winjs.Promise.wrapError(new Error('Bound object `' + identifier + '` was not found.')); + return TPromise.wrapError(new Error('Bound object `' + identifier + '` was not found.')); } // console.log(identifier + ' > ' + memberName); var obj = this._boundObjects[identifier]; - return winjs.Promise.as(obj[memberName].apply(obj, args)); + return TPromise.as(obj[memberName].apply(obj, args)); }); } // console.log(identifier + ' > ' + memberName); var obj = this._boundObjects[identifier]; - return winjs.Promise.as(obj[memberName].apply(obj, args)); + return TPromise.as(obj[memberName].apply(obj, args)); } - public dispatch(data:{ type:string; payload:any; }):winjs.Promise { + public dispatch(data:{ type:string; payload:any; }):TPromise { try { var args = data.payload; var result = this._handleRequest(args[0], args[1], args[2]); - return winjs.Promise.is(result) ? result : winjs.Promise.as(result); + return TPromise.is(result) ? result : TPromise.as(result); } catch(e) { // handler error - return winjs.Promise.wrapError(e); + return TPromise.wrapError(e); } } @@ -77,7 +77,7 @@ export class WorkerThreadService extends abstractThreadService.AbstractThreadSer return super._finishInstance(instance); } - MainThread(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): winjs.Promise { + MainThread(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): TPromise { return this._publisher('threadService', { identifier: obj.getId(), memberName: methodName, @@ -85,15 +85,15 @@ export class WorkerThreadService extends abstractThreadService.AbstractThreadSer }); } - OneWorker(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[], affinity:ThreadAffinity): winjs.Promise { + OneWorker(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[], affinity:ThreadAffinity): TPromise { return target.apply(obj, params); } - AllWorkers(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): winjs.Promise { + AllWorkers(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): TPromise { return target.apply(obj, params); } - Everywhere(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): winjs.Promise { + Everywhere(obj:IThreadSynchronizableObject, methodName:string, target:Function, params:any[]): TPromise { return target.apply(obj, params); } diff --git a/src/vs/workbench/browser/parts/editor/binaryDiffEditor.ts b/src/vs/workbench/browser/parts/editor/binaryDiffEditor.ts index f9b17d312c8..d0a7634f950 100644 --- a/src/vs/workbench/browser/parts/editor/binaryDiffEditor.ts +++ b/src/vs/workbench/browser/parts/editor/binaryDiffEditor.ts @@ -215,9 +215,9 @@ export class BinaryResourceDiffEditor extends BaseEditor implements IVerticalSas // Sash this.sash.dispose(); - // Destroy Scrollbar - this.leftScrollbar.destroy(); - this.rightScrollbar.destroy(); + // Dispose Scrollbar + this.leftScrollbar.dispose(); + this.rightScrollbar.dispose(); // Destroy Container this.leftBinaryContainer.destroy();