提交 15ed59b2 编写于 作者: J Joao Moreno

scm viewlet: wire up click

上级 d518898b
......@@ -8,7 +8,7 @@ import { localize } from 'vs/nls';
import * as path from 'vs/base/common/paths';
import URI from 'vs/base/common/uri';
import { TPromise } from 'vs/base/common/winjs.base';
import { ISCMResourceGroup } from 'vs/workbench/services/scm/common/scm';
import { ISCMResourceGroup, ISCMResource } from 'vs/workbench/services/scm/common/scm';
import { SCMProvider } from 'vs/workbench/services/scm/common/scmProvider';
import { IGitService, ModelEvents } from 'vs/workbench/parts/git/common/git';
......@@ -55,11 +55,11 @@ export class GitSCMProvider extends SCMProvider {
return TPromise.wrapError<void>('not implemented');
}
click(uri: URI): TPromise<void> {
open(resource: ISCMResource): TPromise<void> {
return TPromise.wrapError<void>('not implemented');
}
drag(from: URI, to: URI): TPromise<void> {
drag(from: ISCMResource, to: ISCMResource): TPromise<void> {
return TPromise.wrapError<void>('not implemented');
}
......
......@@ -9,7 +9,7 @@ import 'vs/css!./media/scmViewlet';
import { localize } from 'vs/nls';
import * as platform from 'vs/base/common/platform';
import { TPromise } from 'vs/base/common/winjs.base';
import { mapEvent, filterEvent } from 'vs/base/common/event';
import { chain } from 'vs/base/common/event';
import { domEvent } from 'vs/base/browser/event';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { Builder, Dimension } from 'vs/base/browser/builder';
......@@ -140,13 +140,14 @@ export class SCMViewlet extends Viewlet {
flexibleHeight: true
});
const onInputBoxKeyDown = domEvent(this.inputBox.inputElement, 'keydown');
const onInputBoxStandardKeyDown = mapEvent(onInputBoxKeyDown, e => new StandardKeyboardEvent(e));
const onInputBoxAccept = filterEvent(onInputBoxStandardKeyDown, e => e.equals(KeyMod.CtrlCmd | KeyCode.Enter) || e.equals(KeyMod.CtrlCmd | KeyCode.KEY_S));
onInputBoxAccept(this.acceptChanges, this, this.disposables);
chain(domEvent(this.inputBox.inputElement, 'keydown'))
.map(e => new StandardKeyboardEvent(e))
.filter(e => e.equals(KeyMod.CtrlCmd | KeyCode.Enter) || e.equals(KeyMod.CtrlCmd | KeyCode.KEY_S))
.on(this.accept, this, this.disposables);
const onInputBoxHeightChange = mapEvent(this.inputBox.onDidHeightChange, () => this.currentDimension);
onInputBoxHeightChange(this.layout, this, this.disposables);
chain(this.inputBox.onDidHeightChange)
.map(() => this.currentDimension)
.on(this.layout, this, this.disposables);
this.listContainer = append(root, $('.scm-status.show-file-icons'));
const delegate = new Delegate();
......@@ -156,10 +157,10 @@ export class SCMViewlet extends Viewlet {
this.instantiationService.createInstance(ResourceRenderer)
]);
// chain(this.list.onSelectionChange)
// .map(e => e.elements[0])
// .filter(e => !!e)
// .on(this.openExtension, this, this.disposables);
chain(this.list.onSelectionChange)
.map(e => e.elements[0])
.filter(e => !!e && !!(e as ISCMResource).uri)
.on(this.open, this, this.disposables);
this.update();
this.scmService.activeProvider.onChange(() => this.update());
......@@ -202,10 +203,14 @@ export class SCMViewlet extends Viewlet {
return 400;
}
private acceptChanges(): void {
private accept(): void {
this.scmService.activeProvider.commit(this.inputBox.value);
}
private open(e: ISCMResource): void {
this.scmService.activeProvider.open(e);
}
dispose(): void {
this.disposables = dispose(this.disposables);
super.dispose();
......
......@@ -33,8 +33,8 @@ export interface ISCMProvider extends IDisposable {
resourceGroups: ISCMResourceGroup[];
commit(message: string): TPromise<void>;
click(uri: URI): TPromise<void>;
drag(from: URI, to: URI): TPromise<void>;
open(uri: ISCMResource): TPromise<void>;
drag(from: ISCMResource, to: ISCMResource): TPromise<void>;
getOriginalResource(uri: URI): TPromise<URI>;
}
......
......@@ -82,8 +82,8 @@ export abstract class SCMProvider implements ISCMProvider {
}
abstract commit(message: string): TPromise<void>;
abstract click(uri: URI): TPromise<void>;
abstract drag(from: URI, to: URI): TPromise<void>;
abstract open(resource: ISCMResource): TPromise<void>;
abstract drag(from: ISCMResource, to: ISCMResource): TPromise<void>;
abstract getOriginalResource(uri: URI): TPromise<URI>;
dispose(): void {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册