33 * Licensed under the MIT License. See License.txt in the project root for license information.
44 *--------------------------------------------------------------------------------------------*/
55import * as nls from 'vs/nls' ;
6- import { Disposable , IDisposable } from 'vs/base/common/lifecycle' ;
6+ import { Disposable , IDisposable , MutableDisposable } from 'vs/base/common/lifecycle' ;
77import { IWorkbenchContribution } from 'vs/workbench/common/contributions' ;
88import { Extensions , IViewContainersRegistry , IViewsRegistry , ViewContainer , ViewContainerLocation } from 'vs/workbench/common/views' ;
99import { IRemoteExplorerService , PORT_AUTO_FALLBACK_SETTING , PORT_AUTO_FORWARD_SETTING , PORT_AUTO_SOURCE_SETTING , PORT_AUTO_SOURCE_SETTING_HYBRID , PORT_AUTO_SOURCE_SETTING_OUTPUT , PORT_AUTO_SOURCE_SETTING_PROCESS , TUNNEL_VIEW_CONTAINER_ID , TUNNEL_VIEW_ID } from 'vs/workbench/services/remote/common/remoteExplorerService' ;
@@ -41,8 +41,8 @@ import { IStorageService, StorageScope } from 'vs/platform/storage/common/storag
4141export const VIEWLET_ID = 'workbench.view.remote' ;
4242
4343export class ForwardedPortsView extends Disposable implements IWorkbenchContribution {
44- private contextKeyListener ?: IDisposable ;
45- private _activityBadge ?: IDisposable ;
44+ private readonly contextKeyListener = this . _register ( new MutableDisposable < IDisposable > ( ) ) ;
45+ private readonly activityBadge = this . _register ( new MutableDisposable < IDisposable > ( ) ) ;
4646 private entryAccessor : IStatusbarEntryAccessor | undefined ;
4747
4848 constructor (
@@ -75,10 +75,7 @@ export class ForwardedPortsView extends Disposable implements IWorkbenchContribu
7575 }
7676
7777 private async enableForwardedPortsView ( ) {
78- if ( this . contextKeyListener ) {
79- this . contextKeyListener . dispose ( ) ;
80- this . contextKeyListener = undefined ;
81- }
78+ this . contextKeyListener . clear ( ) ;
8279
8380 const viewEnabled : boolean = ! ! forwardedPortsViewEnabled . getValue ( this . contextKeyService ) ;
8481
@@ -91,7 +88,7 @@ export class ForwardedPortsView extends Disposable implements IWorkbenchContribu
9188 viewsRegistry . registerViews ( [ tunnelPanelDescriptor ] , viewContainer ) ;
9289 }
9390 } else {
94- this . contextKeyListener = this . contextKeyService . onDidChangeContext ( e => {
91+ this . contextKeyListener . value = this . contextKeyService . onDidChangeContext ( e => {
9592 if ( e . affectsSome ( new Set ( forwardedPortsViewEnabled . keys ( ) ) ) ) {
9693 this . enableForwardedPortsView ( ) ;
9794 }
@@ -119,9 +116,8 @@ export class ForwardedPortsView extends Disposable implements IWorkbenchContribu
119116 }
120117
121118 private async updateActivityBadge ( ) {
122- this . _activityBadge ?. dispose ( ) ;
123119 if ( this . remoteExplorerService . tunnelModel . forwarded . size > 0 ) {
124- this . _activityBadge = this . activityService . showViewActivity ( TUNNEL_VIEW_ID , {
120+ this . activityBadge . value = this . activityService . showViewActivity ( TUNNEL_VIEW_ID , {
125121 badge : new NumberBadge ( this . remoteExplorerService . tunnelModel . forwarded . size , n => n === 1 ? nls . localize ( '1forwardedPort' , "1 forwarded port" ) : nls . localize ( 'nForwardedPorts' , "{0} forwarded ports" , n ) )
126122 } ) ;
127123 }
0 commit comments