Adopt new import syntax

This commit is contained in:
Alex Dima 2015-12-10 18:31:43 +01:00
parent 92dd0e2fbe
commit b0336d1c0e
23 changed files with 224 additions and 231 deletions

View file

@ -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<GlobalMouseMoveMonitor.IStandardMouseMoveEventData>;
private mouseMoveMonitor:GlobalMouseMoveMonitor<IStandardMouseMoveEventData>;
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<GlobalMouseMoveMonitor.IStandardMouseMoveEventData>();
this.mouseMoveMonitor = new GlobalMouseMoveMonitor<IStandardMouseMoveEventData>();
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<GlobalMouseMoveMonitor.IStandardMouseMoveEventData>;
private mouseMoveMonitor:GlobalMouseMoveMonitor<IStandardMouseMoveEventData>;
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<GlobalMouseMoveMonitor.IStandardMouseMoveEventData>();
this.mouseMoveMonitor = new GlobalMouseMoveMonitor<IStandardMouseMoveEventData>();
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;
}

View file

@ -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 {

View file

@ -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 });

View file

@ -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;
}

View file

@ -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 = <HTMLElement>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<V>(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<IScrollable>(options, 'scrollable', null),
listenOnDomNode: ensureValue<HTMLElement>(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,

View file

@ -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;
}

View file

@ -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;
/**

View file

@ -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[] {
/// <summary>
/// Retrieves all of the changes marked by the class in the reverse order
/// </summary>
@ -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<diffChange.DiffChange>(left.length + right.length - 1);
result = new Array<DiffChange>(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<diffChange.DiffChange>(left.length + right.length);
result = new Array<DiffChange>(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;

View file

@ -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;
}

View file

@ -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<any>;
}
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<any> {
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;

View file

@ -51,6 +51,7 @@ export interface IXHROptions {
export declare function xhr(options:IXHROptions):TPromise<XMLHttpRequest>;
export declare function decoratePromise(promise:Promise, successCallback?:ValueCallback, errorCallback?:ErrorCallback):Promise;
export declare function decoratePromise<T>(promise:TPromise<T>, successCallback?:TValueCallback<T>, errorCallback?:ErrorCallback):TPromise<T>;
// --- Generic promise
export interface TValueCallback<T> {

View file

@ -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<void>;
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<any> {
if (requestName.charAt(0) === '$') {
throw new Error('Illegal requestName: ' + requestName);
}
var shouldCancelPromise = false,
messagePromise:winjs.Promise;
messagePromise:TPromise<any>;
return new winjs.Promise((c, e, p) => {
return new TPromise<any>((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<any> {
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<any>((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<any> {
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<any> {
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);
}
}

View file

@ -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<any>;
}
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<any> {
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<any> {
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<any> {
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);
}
}
}

View file

@ -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<any> {
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<any>((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);

View file

@ -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;

View file

@ -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 = {

View file

@ -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<any>;};
_pendingObjects:winjs.Promise[];
protected _boundObjects:{[id:string]:IThreadSynchronizableObject<any>;};
protected _pendingObjects:TPromise<IThreadSynchronizableObject<any>>[];
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>): any => {
var objInstantiated: TPromise<IThreadSynchronizableObject<any>>;
objInstantiated = instanceOrPromise.then((instance: IThreadSynchronizableObject<any>): any => {
if (instance.asyncCtor) {
var initPromise = instance.asyncCtor();
if (winjs.Promise.is(initPromise)) {
if (TPromise.is(initPromise)) {
return initPromise.then(() => {
return instance;
});

View file

@ -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<void>;
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<void>((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<void> {
var shouldCancelPromise = false;
return new winjs.Promise((c, e, p) => {
return new TPromise<void>((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<any>, methodName:string, target:Function, params:any[]): winjs.Promise {
MainThread(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[]): TPromise<any> {
return target.apply(obj, params);
}
@ -234,7 +234,7 @@ export class MainThreadService extends abstractThreadService.AbstractThreadServi
return (scramble + affinity) % this._workerPool.length;
}
OneWorker(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[], affinity:ThreadAffinity): winjs.Promise {
OneWorker(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[], affinity:ThreadAffinity): TPromise<any> {
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<any>, methodName:string, target:Function, params:any[]): winjs.Promise {
AllWorkers(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[]): TPromise<any> {
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<any>, methodName:string, params:any[]): winjs.Promise {
private _remoteCall(worker:Worker.WorkerClient, obj:IThreadSynchronizableObject<any>, methodName:string, params:any[]): TPromise<any> {
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<any> => {
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<any> {
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;

View file

@ -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<any>, methodName:string, target:Function, params:any[]): winjs.Promise {
MainThread(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[]): TPromise<any> {
return target.apply(obj, params);
}
OneWorker(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[], affinity:ThreadAffinity): winjs.Promise {
return winjs.Promise.as(null);
OneWorker(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[], affinity:ThreadAffinity): TPromise<any> {
return TPromise.as(null);
}
AllWorkers(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[]): winjs.Promise {
return winjs.Promise.as(null);
AllWorkers(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[]): TPromise<any> {
return TPromise.as(null);
}
Everywhere(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[]): winjs.Promise {
Everywhere(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[]): TPromise<any> {
return target.apply(obj, params);
}

View file

@ -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<any>, methodName: string, target: Function, param: any[]): winjs.Promise;
OneWorker(obj: IThreadSynchronizableObject<any>, methodName: string, target: Function, param: any[], affinity: ThreadAffinity): winjs.Promise;
AllWorkers(obj: IThreadSynchronizableObject<any>, methodName: string, target: Function, param: any[]): winjs.Promise;
MainThread(obj: IThreadSynchronizableObject<any>, methodName: string, target: Function, param: any[]): TPromise<any>;
OneWorker(obj: IThreadSynchronizableObject<any>, methodName: string, target: Function, param: any[], affinity: ThreadAffinity): TPromise<any>;
AllWorkers(obj: IThreadSynchronizableObject<any>, methodName: string, target: Function, param: any[]): TPromise<any>;
Everywhere(obj: IThreadSynchronizableObject<any>, methodName: string, target: Function, param: any[]): any;
createInstance<T extends IThreadSynchronizableObject<any>>(ctor: instantiation.INewConstructorSignature0<T>): T;
@ -119,7 +119,7 @@ export interface IThreadSynchronizableObject<S> {
creationDone?:()=>void;
asyncCtor?:()=>winjs.Promise;
asyncCtor?:()=>TPromise<void>;
getSerializableState?:()=>S;

View file

@ -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<any>, affinity?: thread.ThreadAffinity): void;
(type: Function, target: Function, condition: () => TPromise<any>, 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<any>;
condition: () => TPromise<any>;
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() {

View file

@ -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<any>;
}
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<any> {
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<any> {
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<any>, methodName:string, target:Function, params:any[]): winjs.Promise {
MainThread(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[]): TPromise<any> {
return this._publisher('threadService', {
identifier: obj.getId(),
memberName: methodName,
@ -85,15 +85,15 @@ export class WorkerThreadService extends abstractThreadService.AbstractThreadSer
});
}
OneWorker(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[], affinity:ThreadAffinity): winjs.Promise {
OneWorker(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[], affinity:ThreadAffinity): TPromise<any> {
return target.apply(obj, params);
}
AllWorkers(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[]): winjs.Promise {
AllWorkers(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[]): TPromise<any> {
return target.apply(obj, params);
}
Everywhere(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[]): winjs.Promise {
Everywhere(obj:IThreadSynchronizableObject<any>, methodName:string, target:Function, params:any[]): TPromise<any> {
return target.apply(obj, params);
}

View file

@ -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();