Esempio n. 1
0
        //Open up a serialized document from file
        private void OpenDocumentFile(string filename)
        {
            form.StatusNormalMessage("Opening File...");
            Cursor.Current = Cursors.WaitCursor;

            // check, if document already open. If yes, set the focus to the first view
            foreach (NuGenDocument doc in docViewMap.Documents)
            {
                if (doc.SavePath == filename)
                {
                    docViewMap.GetView(doc).Activate();
                    Cursor.Current = Cursors.Arrow;
                    return;
                }
            }

            Stream s = null;

            NuGenDocument finalDoc = null;

            try
            {
                s = File.Open(filename, FileMode.Open);
                BinaryFormatter formatter = new BinaryFormatter();
                finalDoc          = NewDocument((NuGenDocument)formatter.Deserialize(s));
                finalDoc.SavePath = filename;
                finalDoc.UpdateListeners();
                finalDoc.ComputeTransformation();

                if (finalDoc.ValidAxes || finalDoc.ValidAxes)
                {
                    form.StatusNormalMessage("Axes Defined");
                }

                s.Close();

                if (docViewMap.Count == 1)
                {
                    form.EnableControls();
                }
            }
            catch (Exception e)
            {
                if (finalDoc != null)
                {
                    docViewMap.GetView(finalDoc).Close();
                }

                MessageBox.Show("Could not open document!");
                if (s != null)
                {
                    s.Close();
                }
            }

            form.CheckedBackgroundOption(finalDoc.BackgroundSelection);
            form.CheckedPointViewOption(docViewMap.GetView(finalDoc).ViewPointSelection);
            form.EnableControls();

            activeView.ShowCoordinates += new NuGenView.Show_Coordinates(this.Show_Coordinates);
            activeView.DrawAll();
            Cursor.Current = Cursors.Arrow;
        }