public CombineEntryConfigurationsPanelWidget(MultiConfigItemOptionsDialog dlg)
        {
            Build ();

            configData = dlg.ConfigurationData;

            store = new TreeStore (typeof(object), typeof(string));
            configsList.Model = store;
            configsList.HeadersVisible = true;
            store.SetSortColumnId (1, SortType.Ascending);

            TreeViewColumn col = new TreeViewColumn ();
            CellRendererText sr = new CellRendererText ();
            col.PackStart (sr, true);
            col.AddAttribute (sr, "text", 1);
            col.Title = GettextCatalog.GetString ("Configuration");
            col.SortColumnId = 1;
            configsList.AppendColumn (col);

            foreach (ItemConfiguration cc in configData.Configurations)
                store.AppendValues (cc, cc.Id);

            addButton.Clicked += new EventHandler (OnAddConfiguration);
            removeButton.Clicked += new EventHandler (OnRemoveConfiguration);
            renameButton.Clicked += new EventHandler (OnRenameConfiguration);
            copyButton.Clicked += new EventHandler (OnCopyConfiguration);
        }
		internal static ConfigurationData Build (IConfigurationTarget entry)
		{
			ConfigurationData data = new ConfigurationData (entry);

			foreach (ItemConfiguration conf in entry.Configurations) {
				ItemConfiguration copy = (ItemConfiguration) conf.Clone ();
				data.Configurations.Add (copy);
			}
			if (entry is Solution) {
				foreach (SolutionItem e in ((Solution)entry).Items) {
					if (e is SolutionEntityItem)
						data.children.Add (ConfigurationData.Build ((SolutionEntityItem) e));
				}
			}
			return data;
		}