Adopt new import syntax
This commit is contained in:
parent
92dd0e2fbe
commit
b0336d1c0e
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 });
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
1
src/vs/base/common/winjs.base.d.ts
vendored
1
src/vs/base/common/winjs.base.d.ts
vendored
|
@ -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> {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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;
|
||||
});
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue