示例#1
0
        public HResult SetBuffer(INiTextLines textBuffer)
        {
            try
            {
                if (textBuffer == null)
                {
                    throw new ArgumentNullException("textBuffer");
                }

                if (_textLines != null)
                {
                    _textLines.BeginUpdate -= _textLines_BeginUpdate;
                    _textLines.EndUpdate   -= _textLines_EndUpdate;
                }

                _textLines = (NiTextLines)textBuffer;

                if (_textLines != null)
                {
                    Control.Document = _textLines.Document;

                    _textLines.BeginUpdate += _textLines_BeginUpdate;
                    _textLines.EndUpdate   += _textLines_EndUpdate;
                }

                return(HResult.OK);
            }
            catch (Exception ex)
            {
                return(ErrorUtil.GetHResult(ex));
            }
        }
示例#2
0
        public override HResult CreateEditor(string document, out string editorCaption, out INiWindowPane editor)
        {
            editor        = null;
            editorCaption = null;

            try
            {
                INiTextLines textLines = null;

                // If we were opened from a real document or hier, set a text buffer.
                // NiOpenDocumentManager will initialize this.

                if (document != null)
                {
                    var registry = (INiLocalRegistry)GetService(typeof(INiLocalRegistry));

                    object instance;
                    var    hr = registry.CreateInstance(new Guid(NiConstants.TextLines), this, out instance);
                    if (ErrorUtil.Failure(hr))
                    {
                        return(hr);
                    }

                    textLines = (INiTextLines)instance;

                    Guid languageServiceId;
                    hr = ((INiLanguageServiceRegistry)GetService(typeof(INiLanguageServiceRegistry))).FindForFileName(
                        document, out languageServiceId
                        );
                    if (ErrorUtil.Failure(hr))
                    {
                        return(hr);
                    }

                    hr = textLines.SetLanguageServiceID(languageServiceId);
                    if (ErrorUtil.Failure(hr))
                    {
                        return(hr);
                    }
                }

                editor = new TextEditorWindow(textLines);
                editor.SetSite(this);

                return(HResult.OK);
            }
            catch (Exception ex)
            {
                return(ErrorUtil.GetHResult(ex));
            }
        }
示例#3
0
        protected override INiIsolationClient CreateWindow()
        {
            var env      = (INiEnv)GetService(typeof(INiEnv));
            var registry = (INiLocalRegistry)GetService(typeof(INiLocalRegistry));

            INiEditorFactory editorFactory;

            ErrorUtil.ThrowOnFailure(env.GetStandardEditorFactory(new Guid(NiConstants.TextEditor), null, out editorFactory));

            string        unused;
            INiWindowPane windowPane;

            ErrorUtil.ThrowOnFailure(editorFactory.CreateEditor(null, out unused, out windowPane));

            var window = (INiCodeWindow)windowPane;

            ErrorUtil.ThrowOnFailure(window.Initialize());

            object instance;

            ErrorUtil.ThrowOnFailure(registry.CreateInstance(new Guid(NiConstants.TextLines), windowPane, out instance));

            _textBuffer = (INiTextLines)instance;

            ErrorUtil.ThrowOnFailure(window.SetBuffer(TextBuffer));

            if (!String.IsNullOrEmpty(_text))
            {
                SetText(_text);
                _text = null;
            }

            _listener = new Listener(this);

            return(window);
        }
示例#4
0
 public TextEditorWindow(INiTextLines textLines)
 {
     _textLines = (NiTextLines)textLines;
 }
示例#5
0
 public HResult GetBuffer(out INiTextLines textBuffer)
 {
     textBuffer = _textLines;
     return(HResult.OK);
 }
示例#6
0
 public HResult GetBuffer(out INiTextLines textBuffer)
 {
     textBuffer = _textLines;
     return HResult.OK;
 }
示例#7
0
 public TextEditorWindow(INiTextLines textLines)
 {
     _textLines = (NiTextLines)textLines;
 }
示例#8
0
        public HResult SetBuffer(INiTextLines textBuffer)
        {
            try
            {
                if (textBuffer == null)
                    throw new ArgumentNullException("textBuffer");

                if (_textLines != null)
                {
                    _textLines.BeginUpdate -= _textLines_BeginUpdate;
                    _textLines.EndUpdate -= _textLines_EndUpdate;
                }

                _textLines = (NiTextLines)textBuffer;

                if (_textLines != null)
                {
                    Control.Document = _textLines.Document;

                    _textLines.BeginUpdate += _textLines_BeginUpdate;
                    _textLines.EndUpdate += _textLines_EndUpdate;
                }

                return HResult.OK;
            }
            catch (Exception ex)
            {
                return ErrorUtil.GetHResult(ex);
            }
        }