提交 de50fd24 编写于 作者: S Sandeep Somavarapu

fix #7128

上级 84488994
......@@ -42,6 +42,7 @@ export class MarkersPanel extends Panel {
private filterAction: FilterAction;
private collapseAllAction: IAction;
private treeContainer: HTMLElement;
private messageBoxContainer: HTMLElement;
private messageBox: HTMLElement;
......@@ -104,10 +105,14 @@ export class MarkersPanel extends Panel {
if (updateTitleArea) {
this.updateTitleArea();
}
return this.tree.refresh().then(() => {
this.autoExpand();
this.renderMessage();
});
dom.toggleClass(this.treeContainer, 'hidden', !this.markersModel.hasFilteredResources());
this.renderMessage();
if (this.markersModel.hasFilteredResources()) {
return this.tree.refresh().then(() => {
this.autoExpand();
});
}
return TPromise.as(null);
}
private createMessageBox(parent: HTMLElement): void {
......@@ -116,11 +121,11 @@ export class MarkersPanel extends Panel {
}
private createTree(parent: HTMLElement):void {
var treeContainer= dom.append(parent, dom.emmet('.tree-container'));
this.treeContainer= dom.append(parent, dom.emmet('.tree-container'));
var actionProvider = this.instantiationService.createInstance(ActionProvider);
var renderer = this.instantiationService.createInstance(Viewer.Renderer, this.getActionRunner(), actionProvider);
var controller = this.instantiationService.createInstance(Controller);
this.tree= new TreeImpl.Tree(treeContainer, {
this.tree= new TreeImpl.Tree(this.treeContainer, {
dataSource: new Viewer.DataSource(),
renderer: renderer,
controller: controller
......@@ -165,13 +170,14 @@ export class MarkersPanel extends Panel {
let allMarkers = this.markerService.read().slice(0);
this.markersModel.update(allMarkers);
this.tree.setInput(this.markersModel).then(this.autoExpand.bind(this));
dom.toggleClass(this.treeContainer, 'hidden', !this.markersModel.hasFilteredResources());
this.renderMessage();
}
private renderMessage():void {
let message= this.markersModel.getMessage();
this.messageBox.textContent= message;
dom.toggleClass(this.messageBoxContainer, 'visible', !this.markersModel.hasFilteredResources());
dom.toggleClass(this.messageBoxContainer, 'hidden', this.markersModel.hasFilteredResources());
}
private refreshAutoExpanded(): void {
......
......@@ -37,6 +37,7 @@ export class FilterInputBoxActionItem extends BaseActionItem {
DOM.addClass(container, 'markers-panel-action-filter');
var filterInputBox = new InputBox(container, this.contextViewService, {
placeholder: Messages.MARKERS_PANEL_FILTER_PLACEHOLDER,
ariaLabel: Messages.MARKERS_PANEL_FILTER_PLACEHOLDER,
iconClass: 'filterIcon'
});
filterInputBox.value= this.markersPanel.markersModel.filterOptions.filter;
......
......@@ -9,7 +9,7 @@ import mouse = require('vs/base/browser/mouseEvent');
import keyboard = require('vs/base/browser/keyboardEvent');
import tree = require('vs/base/parts/tree/browser/tree');
import treedefaults = require('vs/base/parts/tree/browser/treeDefaults');
import { Marker } from 'vs/workbench/parts/markers/common/markersModel';
import { MarkersModel, Marker } from 'vs/workbench/parts/markers/common/markersModel';
import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService';
import { IMarker } from 'vs/platform/markers/common/markers';
......@@ -20,8 +20,19 @@ export class Controller extends treedefaults.DefaultController {
}
protected onLeftClick(tree: tree.ITree, element: any, event: mouse.IMouseEvent): boolean {
let currentFoucssed= tree.getFocus();
if (super.onLeftClick(tree, element, event)) {
return this.openFileAtElement(element);
if (this.openFileAtElement(element)) {
return true;
}
if (element instanceof MarkersModel) {
if (currentFoucssed) {
tree.setFocus(currentFoucssed);
} else {
tree.focusFirst();
}
return true;
}
}
return false;
}
......@@ -44,8 +55,9 @@ export class Controller extends treedefaults.DefaultController {
startColumn: marker.startColumn,
endLineNumber: marker.endLineNumber,
endColumn: marker.endColumn
}
}
},
preserveFocus: false,
},
}).done(null, errors.onUnexpectedError);
return true;
}
......
......@@ -28,11 +28,10 @@
.markers-panel .markers-panel-container .message-box-container {
padding-left: 20px;
display: none;
}
.markers-panel .markers-panel-container .message-box-container.visible {
display: block;
.markers-panel .markers-panel-container .hidden {
display: none;
}
.markers-panel .markers-panel-container .tree-container {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册