Beispiel #1
0
        Widget IOutlinedDocument.GetOutlineWidget()
        {
            if (outlineTreeView != null)
            {
                return(outlineTreeView);
            }

            outlineTreeStore     = new TreeStore(typeof(object));
            outlineTreeModelSort = new TreeModelSort(outlineTreeStore);

            settings = OutlineSettings.Load();
            comparer = new OutlineNodeComparer(new AstAmbience(IdeApp.TypeSystemService.Workspace.Options), settings, outlineTreeModelSort);

            outlineTreeModelSort.SetSortFunc(0, comparer.CompareNodes);
            outlineTreeModelSort.SetSortColumnId(0, SortType.Ascending);

            outlineTreeView = new MonoDevelop.Ide.Gui.Components.PadTreeView(outlineTreeStore);

            var pixRenderer = new CellRendererImage();

            pixRenderer.Xpad = 0;
            pixRenderer.Ypad = 0;

            outlineTreeView.TextRenderer.Xpad = 0;
            outlineTreeView.TextRenderer.Ypad = 0;

            TreeViewColumn treeCol = new TreeViewColumn();

            treeCol.PackStart(pixRenderer, false);

            treeCol.SetCellDataFunc(pixRenderer, new TreeCellDataFunc(OutlineTreeIconFunc));
            treeCol.PackStart(outlineTreeView.TextRenderer, true);

            treeCol.SetCellDataFunc(outlineTreeView.TextRenderer, new TreeCellDataFunc(OutlineTreeTextFunc));
            outlineTreeView.AppendColumn(treeCol);

            outlineTreeView.HeadersVisible = false;

            outlineTreeView.Selection.Changed += delegate {
                JumpToDeclaration(false);
            };

            outlineTreeView.RowActivated += delegate {
                JumpToDeclaration(true);
            };

            UpdateDocumentOutline(this, EventArgs.Empty);
            outlineTreeView.Realized += delegate { RefillOutlineStore(); };
            UpdateSorting();

            var sw = new CompactScrolledWindow();

            sw.Add(outlineTreeView);
            sw.ShowAll();
            return(sw);
        }
		public OutlineSortingPreferencesDialog (OutlineSettings settings)
		{
			this.Build ();

			priorityList.Model = new ListStore (typeof (string), typeof (string));
			priorityList.AppendColumn ("", new CellRendererText (), "text", 1);
			
			priorityList.Model.Clear ();
			foreach (string g in settings.GroupOrder) {
				priorityList.Model.AppendValues (g, OutlineSettings.GetGroupName (g));
			}
			
			this.settings = settings;
		}
		public static OutlineSettings Load ()
		{
			var cs = new OutlineSettings ();
			cs.IsGrouped = PropertyService.Get (KEY_IS_GROUPED, false);
			cs.IsSorted = PropertyService.Get (KEY_IS_SORTED, false);
			
			string s = PropertyService.Get (KEY_GROUP_ORDER, "");
			if (s.Length == 0) {
				cs.GroupOrder = groupNames.Keys.ToArray ();
			} else {
				cs.GroupOrder = s.Split (new char[] {','}, StringSplitOptions.RemoveEmptyEntries);
			}
			return cs;
		}
        public OutlineSortingPreferencesDialog(OutlineSettings settings)
        {
            this.Build();

            priorityList.Model = new ListStore(typeof(string), typeof(string));
            priorityList.AppendColumn("", new CellRendererText(), "text", 1);

            priorityList.Model.Clear();
            foreach (string g in settings.GroupOrder)
            {
                priorityList.Model.AppendValues(g, OutlineSettings.GetGroupName(g));
            }

            this.settings = settings;
        }
Beispiel #5
0
 public override void Dispose()
 {
     if (disposed)
     {
         return;
     }
     disposed = true;
     if (DocumentContext != null)
     {
         DocumentContext.DocumentParsed -= UpdateDocumentOutline;
     }
     RemoveRefillOutlineStoreTimeout();
     lastCU   = null;
     settings = null;
     comparer = null;
     base.Dispose();
 }
        void IOutlinedDocument.ReleaseOutlineWidget()
        {
            if (outlineTreeView == null)
            {
                return;
            }
            var w = (ScrolledWindow)outlineTreeView.Parent;

            w.Destroy();
            outlineTreeView = null;
            settings        = null;
            foreach (var tw in toolbarWidgets)
            {
                tw.Destroy();
            }
            toolbarWidgets = null;
            comparer       = null;
        }
Beispiel #7
0
        public static OutlineSettings Load()
        {
            var cs = new OutlineSettings();

            cs.IsGrouped = PropertyService.Get(KEY_IS_GROUPED, false);
            cs.IsSorted  = PropertyService.Get(KEY_IS_SORTED, false);

            string s = PropertyService.Get(KEY_GROUP_ORDER, "");

            if (s.Length == 0)
            {
                cs.GroupOrder = groupNames.Keys.ToArray();
            }
            else
            {
                cs.GroupOrder = s.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            }
            return(cs);
        }
Beispiel #8
0
        public override void Dispose()
        {
            if (disposed)
            {
                return;
            }
            disposed = true;
            if (DocumentContext != null)
            {
                DocumentContext.DocumentParsed -= UpdateDocumentOutline;
            }
            RemoveRefillOutlineStoreTimeout();
            lastCU   = null;
            settings = null;
            comparer = null;

            // also, unsubscribe from text view events, if we're in the new editor
            TextView_Closed(this, null);

            base.Dispose();
        }
		public override void Dispose ()
		{
			if (disposed)
				return;
			disposed = true;
			if (DocumentContext != null)
				DocumentContext.DocumentParsed -= UpdateDocumentOutline;
			RemoveRefillOutlineStoreTimeout ();
			lastCU = null;
			settings = null;
			comparer = null;
			base.Dispose ();
		}
		void IOutlinedDocument.ReleaseOutlineWidget ()
		{
			if (outlineTreeView == null)
				return;
			var w = (ScrolledWindow)outlineTreeView.Parent;
			w.Destroy ();
			if (outlineTreeModelSort != null) {
				outlineTreeModelSort.Dispose ();
				outlineTreeModelSort = null;
			}
			if (outlineTreeStore != null) {
				outlineTreeStore.Dispose ();
				outlineTreeStore = null;
			}
			outlineTreeView = null;
			settings = null;
			foreach (var tw in toolbarWidgets)
				tw.Destroy ();
			toolbarWidgets = null;
			comparer = null;
		}
		Widget IOutlinedDocument.GetOutlineWidget ()
		{
			if (outlineTreeView != null)
				return outlineTreeView;

			outlineTreeStore = new TreeStore (typeof(object));
			outlineTreeModelSort = new TreeModelSort (outlineTreeStore);
			
			settings = OutlineSettings.Load ();
			comparer = new OutlineNodeComparer (new AstAmbience (TypeSystemService.Workspace.Options), settings, outlineTreeModelSort);

			outlineTreeModelSort.SetSortFunc (0, comparer.CompareNodes);
			outlineTreeModelSort.SetSortColumnId (0, SortType.Ascending);

			outlineTreeView = new MonoDevelop.Ide.Gui.Components.PadTreeView (outlineTreeStore);

			var pixRenderer = new CellRendererImage ();
			pixRenderer.Xpad = 0;
			pixRenderer.Ypad = 0;

			outlineTreeView.TextRenderer.Xpad = 0;
			outlineTreeView.TextRenderer.Ypad = 0;

			TreeViewColumn treeCol = new TreeViewColumn ();
			treeCol.PackStart (pixRenderer, false);

			treeCol.SetCellDataFunc (pixRenderer, new TreeCellDataFunc (OutlineTreeIconFunc));
			treeCol.PackStart (outlineTreeView.TextRenderer, true);

			treeCol.SetCellDataFunc (outlineTreeView.TextRenderer, new TreeCellDataFunc (OutlineTreeTextFunc));
			outlineTreeView.AppendColumn (treeCol);

			outlineTreeView.HeadersVisible = false;

			outlineTreeView.Selection.Changed += delegate {
				JumpToDeclaration (false);
			};
			
			outlineTreeView.RowActivated += delegate {
				JumpToDeclaration (true);
			};

			var analysisDocument = DocumentContext.ParsedDocument;
			if (analysisDocument != null)
				lastCU = analysisDocument.GetAst<SemanticModel> ();

			outlineTreeView.Realized += delegate { RefillOutlineStore (); };
			UpdateSorting ();

			var sw = new CompactScrolledWindow ();
			sw.Add (outlineTreeView);
			sw.ShowAll ();
			return sw;
		}
		void IOutlinedDocument.ReleaseOutlineWidget ()
		{
			if (outlineTreeView == null)
				return;
			var w = (ScrolledWindow)outlineTreeView.Parent;
			w.Destroy ();
			outlineTreeView = null;
			RemoveRefillOutlineStoreTimeout ();
			settings = null;
			foreach (var tw in toolbarWidgets)
				tw.Destroy ();
			toolbarWidgets = null;
			comparer = null;
		}