/// <summary> /// Initializes the MEF component</summary> public void Initialize() { // tree control m_treeControl = new TreeControl(); m_treeControl.SelectionMode = SelectionMode.One; m_treeControl.Dock = DockStyle.Fill; m_treeControl.AllowDrop = true; m_treeControl.ImageList = ResourceUtil.GetImageList16(); m_treeControl.StateImageList = ResourceUtil.GetImageList16(); m_treeControl.MouseUp += treeControl_MouseUp; m_treeControlAdapter = new TreeControlAdapter(m_treeControl); // list view m_listView = new CustomListView(); m_listView.View = View.Details; m_listView.Dock = DockStyle.Fill; m_listView.AllowDrop = true; m_listView.LabelEdit = false; m_listView.MouseDown += ThumbnailControl_MouseDown; m_listView.MouseMove += ThumbnailControl_MouseMove; m_listView.MouseUp += ThumbnailControl_MouseUp; m_listView.MouseLeave += ThumbnailControl_MouseLeave; m_listViewAdapter = new ListViewAdapter(m_listView); // thumbnail control m_thumbnailControl = new ThumbnailControl(); m_thumbnailControl.Dock = DockStyle.Fill; m_thumbnailControl.AllowDrop = true; m_thumbnailControl.BackColor = SystemColors.Window; m_thumbnailControl.Selection.Changed += thumbnailControl_SelectionChanged; m_thumbnailControl.MouseDown += ThumbnailControl_MouseDown; m_thumbnailControl.MouseMove += ThumbnailControl_MouseMove; m_thumbnailControl.MouseUp += ThumbnailControl_MouseUp; m_thumbnailControl.MouseLeave += ThumbnailControl_MouseLeave; // split m_splitContainer = new SplitContainer(); m_splitContainer.Name = "Resources".Localize(); m_splitContainer.Orientation = Orientation.Vertical; m_splitContainer.Panel1.Controls.Add(m_treeControl); m_splitContainer.Panel2.Controls.Add(m_thumbnailControl); m_splitContainer.Panel2.Controls.Add(m_listView); m_splitContainer.SplitterDistance = 10; m_listView.Hide(); Image resourceImage = ResourceUtil.GetImage16(Sce.Atf.Resources.ResourceImage); // on initialization, register our tree control with the hosting service m_controlHostService.RegisterControl( m_splitContainer, new ControlInfo( "Resources".Localize(), "Lists available resources".Localize(), StandardControlGroup.Left, resourceImage), this); m_thumbnailService.ThumbnailReady += ThumbnailManager_ThumbnailReady; Application.ApplicationExit += delegate { foreach (var item in m_thumbnailControl.Items) { if (item.Image != null) { item.Image.Dispose(); } } m_thumbnailControl.Items.Clear(); }; m_mainForm.Loaded += delegate { m_splitContainer.SplitterDistance = m_splitterDistance; }; RegisterCommands(); RegisterSettings(); }