public override void createPartControl(Composite parent) {
			super.createPartControl(parent);
			
			textInputListener = new TextInputListener(this);
			backgroundCompiler = new BackgroundCompiler(this);
			
			var window = getSite().getWorkbenchWindow();
			partListener = new PartListener(this);
			window.getPartService().addPartListener(partListener);
		}
        public override void createPartControl(Composite parent)
        {
            super.createPartControl(parent);

            textInputListener  = new TextInputListener(this);
            backgroundCompiler = new BackgroundCompiler(this);

            var window = getSite().getWorkbenchWindow();

            partListener = new PartListener(this);
            window.getPartService().addPartListener(partListener);
        }
		public override void dispose() {
			if (partListener != null) {
				var window = getSite().getWorkbenchWindow();
				window.getPartService().removePartListener(partListener);
				partListener = null;
			}
			if (backgroundCompiler != null) {
				backgroundCompiler.dispose();
				backgroundCompiler = null;
			}
			if (textInputListener != null) {
				textInputListener.dispose();
				textInputListener = null;
			}
			super.dispose();
		}
 public override void dispose()
 {
     if (partListener != null)
     {
         var window = getSite().getWorkbenchWindow();
         window.getPartService().removePartListener(partListener);
         partListener = null;
     }
     if (backgroundCompiler != null)
     {
         backgroundCompiler.dispose();
         backgroundCompiler = null;
     }
     if (textInputListener != null)
     {
         textInputListener.dispose();
         textInputListener = null;
     }
     super.dispose();
 }
		public void setListener(PartListener listener)
		{
			mListener = listener;
		}