public MergeMapWindow(string filename)
        {
            objects = new Containers.SuppressableObservableCollection <MergeMap.Object>();

            List <MergeMap.Object> temp_merge = new List <MergeMap.Object>();

            EditorSubsystemManaged.getInstance().QueueActionAndBlock(new Action(() =>
            {
                StateSerializer ss      = new StateSerializer();
                StateObjDescVector objs = ss.LoadStateInformation(filename, false);

                foreach (StateObjDesc desc in objs)
                {
                    temp_merge.Add(new MergeMap.Object
                    {
                        Name        = desc.name,
                        HasParent   = desc.hasParent,
                        ShouldMerge = true
                    });
                }
            }));
            objects.AddRange(temp_merge);

            InitializeComponent();
        }