예제 #1
0
        /// <summary>
        /// Charge le fichier donné grâce au sérialiseur passé en paramètre
        /// </summary>
        /// <param name="filename">le fichier à ouvrir</param>
        /// <param name="serializer">le sérialiseur utilisé</param>
        /// <returns>les données du document</returns>
        public static IDocumentData Load(string filename, ISerializer serializer)
        {
            if (filename == null)
                throw new ArgumentNullException();

            string loaded = LoadFile(filename);
            //char[] separators = { '\n' };
            //string[] serializedControls = loaded.Split(separators);

            //IControlData[] controls = new IControlData[serializedControls.Count()];
            string extension = Path.GetExtension(filename);

            ControlDataWrapper[] controlwrappers = (ControlDataWrapper[]) serializer.UnSerialize(loaded);
            IDocumentData model = new DocumentModel();

            foreach (ControlDataWrapper wrapper in controlwrappers)
            {
                ControlData control = new ControlData(wrapper.name, wrapper.type);
                PropertyDataWrapper[] datawrappers = wrapper.Properties;
                foreach (PropertyDataWrapper datawrapper in datawrappers)
                    control.Properties.Add(datawrapper.Property, datawrapper.Value);
                model.ControlsDictionary.Add(control.Name, control);
            }
            
            return model;
        }
예제 #2
0
        private void filechooser_FileOk(object sender, CancelEventArgs e)
        {
            String extension = Path.GetExtension(filechooser.FileName);
            if (availableSerializers[extension] == null)
            {
                MessageBox.Show("Extension inconnue");
                return;
            }
            //String[] arguments = { filechooser.FileName, extension };
            //Command command = new Command(MCommandType.PerformSaveAs, arguments);
            //ViewInfos.getCurrentViewController().ReceiveCommand(command);

            DocumentModel model = new DocumentModel();
            DocumentController controller = new DocumentController(model, filechooser.FileName + "." + extension);
        }
예제 #3
0
 /// <summary>
 /// Création d'un document vierge
 /// </summary>
 /// <param name="sender">
 /// Objet à l'origine de l'appel
 /// </param>
 /// <param name="e">
 /// Descripteur correspondant aux paramètres de l'opération
 /// </param>
 public void CreateDocument(object sender, EventArgs e)
 {              
     DocumentModel model = new DocumentModel();
     DocumentController controller = new DocumentController(model);                  
     ToolStripMenuItem viewSelected = sender as ToolStripMenuItem;
     Control view = CreateView(viewSelected, controller);
     AddView(view, "Nouveau");          
 }