示例#1
0
        /// <summary>
        /// Open file button logic.
        /// </summary>
        private void buttonOpenFile_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                OpenFileDialog dialog = new OpenFileDialog();

                String[]      availableFiles      = Directory.GetFiles("./", "*.dll");
                List <String> featureModelModules = new List <String>();
                List <Type>   extensions          = new List <Type>();

                //Searches amongst available libraries for valid Feature Model extensions
                foreach (String s in availableFiles)
                {
                    Assembly asm   = Assembly.LoadFrom(s);
                    Type[]   types = asm.GetTypes();

                    foreach (Type t in types)
                    {
                        Type[] interfaces = t.GetInterfaces();
                        if (interfaces.Contains(typeof(IConfigurationFormat)))
                        {
                            IConfigurationFormat extension = (IConfigurationFormat)Activator.CreateInstance(t);
                            string filter = extension.GetFilter();
                            if (!dialog.Filter.Equals(""))
                            {
                                filter = "|" + filter;
                            }
                            dialog.Filter += filter;
                            extensions.Add(t);
                        }
                    }
                }

                if (dialog.ShowDialog() == false)
                {
                    return;
                }

                string fileToLoad = dialog.FileName;
                string ext        = fileToLoad.Split('.').Last();

                //Searches amongst valid extensions for the one selected
                foreach (Type t in extensions)
                {
                    IConfigurationFormat extension = (IConfigurationFormat)Activator.CreateInstance(t);
                    if (extension.GetFilter().Contains(ext))
                    {
                        ComponentDiagramBragi bragi = extension.LoadFrom(fileToLoad);

                        this.BragiStruct = bragi;
                        this.UpdateVisualTree();
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "PlugSPL Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
示例#2
0
 public LineByLineConfigurer(IConfigurationDictionary configurationDictionary, IConfigurationFormat format)
 {
     _configurationDictionary = configurationDictionary;
     _format = format;
 }
 public LineByLineConfigurer(IConfigurationDictionary configurationDictionary, IConfigurationFormat format)
 {
     _configurationDictionary = configurationDictionary;
     _format = format;
 }