Exemplo n.º 1
0
 public TRN170_TransferEntry(IssueByOrderUIDM uidm, bool CanEdit)
 {
     InitializeComponent();
     if (CanEdit)
     {
         m_Mode = eSaveMode.UPDATE;
     }
     else
     {
         m_Mode = eSaveMode.VIEW;
     }
     m_uidm = uidm;
 }
Exemplo n.º 2
0
 public TRN140(IssueByItemUIDM uidm, bool CanEdit)
 {
     InitializeComponent();
     if (CanEdit)
     {
         m_Mode = eSaveMode.UPDATE;
     }
     else
     {
         m_Mode = eSaveMode.VIEW;
     }
     m_uidm = uidm;
 }
Exemplo n.º 3
0
        private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //=======================================================================
            // Prompt for filename
            //=======================================================================
            SaveFileDialog.FileName        = mLocalSettings.LastSavedFile;
            SaveFileDialog.Filter          = SAVE_FILTER;
            SaveFileDialog.FilterIndex     = (int)mLocalSettings.LastSavedMode;
            SaveFileDialog.AddExtension    = true;
            SaveFileDialog.CheckPathExists = true;

            if (SaveFileDialog.ShowDialog(this) == DialogResult.OK)
            {
                string    lFileToSave = SaveFileDialog.FileName;
                eSaveMode lSaveMode   = (eSaveMode)SaveFileDialog.FilterIndex;

                SaveInternal(lSaveMode, lFileToSave);
            }
        }
Exemplo n.º 4
0
        private void SaveInternal(eSaveMode xiSaveMode, string xiFilename)
        {
            if (RootChunk == null)
            {
                MessageBox.Show("Can't save: no file is open");
                return;
            }

            string lExceptionWhen = "saving file";

            try
            {
                long lPreviousSize = -1;

                if (xiSaveMode == eSaveMode.Binary && File.Exists(xiFilename))
                {
                    lPreviousSize = new FileInfo(xiFilename).Length;
                }

                using (FileStream fs = File.Create(xiFilename))
                {
                    lExceptionWhen = "serialising the file";
                    if (xiSaveMode == eSaveMode.Binary)
                    {
                        if (RootChunk is VersionList)
                        {
                            CurrentLevel.Serialise(fs);
                        }
                        else
                        {
                            RootChunk.Serialise(fs);
                        }
                    }
                    else if (xiSaveMode == eSaveMode.Xml)
                    {
                        XmlSerializer xs = new XmlSerializer(typeof(Chunk));

                        if (RootChunk is VersionList)
                        {
                            xs.Serialize(fs, CurrentLevel);
                        }
                        else
                        {
                            xs.Serialize(fs, RootChunk);
                        }
                    }
                    else if (xiSaveMode == eSaveMode.Mmv)
                    {
                        if (RootChunk is VersionList)
                        {
                            VersionList lVersionList = (VersionList)RootChunk;
                            lVersionList.AddLevel(CurrentLevel);

                            RecursiveAddChunkNode(ChunkTreeView.Nodes[0].Nodes, 1, lVersionList.GetLastVersion());
                        }
                        else if (RootChunk is Level)
                        {
                            VersionList lVersionList = new VersionList(
                                (Level)RootChunk,
                                Path.GetFileNameWithoutExtension(xiFilename),
                                null);
                            RootChunk = lVersionList;
                        }
                        RootChunk.Serialise(fs);
                    }
                }

                if (lPreviousSize != -1 && lPreviousSize != new FileInfo(xiFilename).Length)
                {
                    MessageBox.Show("WARNING: The size of your level has changed. Please check it's not too large, and check MMEd for bugs that have allowed the size to change.",
                                    "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            catch (Exception err)
            {
                Trace.WriteLine(err);
                MessageBox.Show(string.Format("Exception occurred while {0}: {1}", lExceptionWhen, err.Message), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            mLocalSettings.LastSavedFile = xiFilename;
            mLocalSettings.LastSavedMode = xiSaveMode;
            mCurrentFile     = xiFilename;
            mCurrentFileMode = xiSaveMode;
        }
 public GroupEditorViewModel(eSaveMode saveMode)
 {
     SaveMode = SaveMode;
 }
Exemplo n.º 6
0
        private void SaveInternal(eSaveMode xiSaveMode, string xiFilename)
        {
            if (RootChunk == null)
              {
            MessageBox.Show("Can't save: no file is open");
            return;
              }

              string lExceptionWhen = "saving file";
              try
              {
            long lPreviousSize = -1;

            if (xiSaveMode == eSaveMode.Binary && File.Exists(xiFilename))
            {
              lPreviousSize = new FileInfo(xiFilename).Length;
            }

            using (FileStream fs = File.Create(xiFilename))
            {
              lExceptionWhen = "serialising the file";
              if (xiSaveMode == eSaveMode.Binary)
              {
            if (RootChunk is VersionList)
            {
              CurrentLevel.Serialise(fs);
            }
            else
            {
              RootChunk.Serialise(fs);
            }
              }
              else if (xiSaveMode == eSaveMode.Xml)
              {
            XmlSerializer xs = new XmlSerializer(typeof(Chunk));

            if (RootChunk is VersionList)
            {
              xs.Serialize(fs, CurrentLevel);
            }
            else
            {
              xs.Serialize(fs, RootChunk);
            }
              }
              else if (xiSaveMode == eSaveMode.Mmv)
              {
            if (RootChunk is VersionList)
            {
              VersionList lVersionList = (VersionList)RootChunk;
              lVersionList.AddLevel(CurrentLevel);

              RecursiveAddChunkNode(ChunkTreeView.Nodes[0].Nodes, 1, lVersionList.GetLastVersion());
            }
            else if (RootChunk is Level)
            {
              VersionList lVersionList = new VersionList(
                (Level)RootChunk,
                Path.GetFileNameWithoutExtension(xiFilename),
                null);
              RootChunk = lVersionList;
            }
            RootChunk.Serialise(fs);
              }
            }

            if (lPreviousSize != -1 && lPreviousSize != new FileInfo(xiFilename).Length)
            {
              MessageBox.Show("WARNING: The size of your level has changed. Please check it's not too large, and check MMEd for bugs that have allowed the size to change.",
            "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
              }
              catch (Exception err)
              {
            Trace.WriteLine(err);
            MessageBox.Show(string.Format("Exception occurred while {0}: {1}", lExceptionWhen, err.Message), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
              }

              mLocalSettings.LastSavedFile = xiFilename;
              mLocalSettings.LastSavedMode = xiSaveMode;
              mCurrentFile = xiFilename;
              mCurrentFileMode = xiSaveMode;
        }
Exemplo n.º 7
0
        private void LoadInternal(eOpenType xiOpenType, string xiFilename)
        {
            Chunk lNewRootChunk = null;
              string lExceptionWhen = "opening file";
              try
              {
            using (FileStream fs = File.OpenRead(xiFilename))
            {
              lExceptionWhen = "deserialising the file";
              switch (xiOpenType)
              {
            case eOpenType.LevelBinary:
              lNewRootChunk = new Level(fs);
              break;
            case eOpenType.UnknownBinary:
              lNewRootChunk = new FileChunk(fs);
              break;
            case eOpenType.Mmv:
              lNewRootChunk = new VersionList(fs);
              break;
            case eOpenType.Xml:
              XmlSerializer xs = new XmlSerializer(typeof(Chunk));
              lNewRootChunk = (Chunk)xs.Deserialize(fs);
              break;
            default: throw new Exception("unreachable case");
              }

              if (fs.Length != fs.Position)
              {
            //check the whole file has been read
            throw new DeserialisationException(string.Format("Deserialisation terminated early at byte {0} of {1}", fs.Position, fs.Length));
              }
            }
              }
              catch (Exception err)
              {
            Trace.WriteLine(err);
            MessageBox.Show(string.Format("Exception occurred while {0}: {1}", lExceptionWhen, err.Message), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
              }
              // level loaded OK, now fill tree:
              RootChunk = lNewRootChunk;
              mLocalSettings.LastOpenedFile = xiFilename;
              mLocalSettings.LastOpenedType = xiOpenType;
              mCurrentFile = xiFilename;
              mCurrentFileMode = xiOpenType == eOpenType.Mmv ? eSaveMode.Mmv : xiOpenType == eOpenType.Xml ? eSaveMode.Xml : eSaveMode.Binary;
        }