public ResourceList(ResourceEditorControl editor)
		{
			undoStack        = new UndoStack();
			
			name.Text     = ResourceService.GetString("Global.Name");
			name.Width    = 250;
			
			type.Text     = ResourceService.GetString("ResourceEditor.ResourceEdit.TypeColumn");
			type.Width    = 170;
			
			content.Text  = ResourceService.GetString("ResourceEditor.ResourceEdit.ContentColumn");
			content.Width = 300;
			
			Columns.AddRange(new ColumnHeader[] {name, type, content});
			
			FullRowSelect = true;
			AutoArrange   = true;
			Alignment     = ListViewAlignment.Left;
			View          = View.Details;
			GridLines     = true;
			LabelEdit     = true;
			Dock          = DockStyle.Fill;
			HideSelection = false;
			
			BorderStyle   = System.Windows.Forms.BorderStyle.None;
			
			images.Images.Add(WinFormsResourceService.GetIcon("Icons.16x16.ResourceEditor.string"));
			images.Images.Add(WinFormsResourceService.GetIcon("Icons.16x16.ResourceEditor.bmp"));
			images.Images.Add(WinFormsResourceService.GetIcon("Icons.16x16.ResourceEditor.icon"));
			images.Images.Add(WinFormsResourceService.GetIcon("Icons.16x16.ResourceEditor.cursor"));
			images.Images.Add(WinFormsResourceService.GetIcon("Icons.16x16.ResourceEditor.bin"));
			images.Images.Add(WinFormsResourceService.GetIcon("Icons.16x16.ResourceEditor.obj"));
			SmallImageList = images;
			
			// Set up sorting:
			// User can sort the list by name and by type,
			// whereas sorting by type also implicitly sorts by name.
			IListViewItemComparer textComparer = new ListViewTextColumnComparer();
			IListViewItemComparer typeNameComparer = new ListViewMultipleColumnsComparer(textComparer, 1, textComparer, 0);
			sorter = new ListViewItemSorter(this,
			                                new IListViewItemComparer[] {
			                                	textComparer,
			                                	typeNameComparer,
			                                	null
			                                });
			sorter.SortColumnIndex = 0;
			sorter.SortOrder = SortOrder.Ascending;
			
			ContextMenuStrip = MenuService.CreateContextMenu(editor, "/SharpDevelop/ResourceEditor/ResourceList/ContextMenu");
		}
		protected override void Dispose(bool disposing)
		{
			try {
				if (disposing) {
					if (sorter != null) {
						sorter.Dispose();
						sorter = null;
					}
				}
			} finally {
				base.Dispose(disposing);
			}
		}