예제 #1
0
    // ========================================================================
    // Con- / Destruction

    #region === Con- / Destruction

    /// <summary>
    /// Initializes a new instance of <see cref="NETImport"/>.
    /// </summary>
    public NETImport(ClassDiagram diagram, ImportSettings settings)
    {
      this.diagram = diagram;
      this.settings = settings;

      types = new Dictionary<NRTypeBase, TypeBase>();
    }
예제 #2
0
    // ========================================================================
    // Methods

    #region === Methods

    /// <summary>
    ///   Starts the functionality of the plugin.
    /// </summary>
    protected void Launch()
    {
      if(Workspace.HasActiveProject)
      {
        string fileName;
        using (OpenFileDialog dialog = new OpenFileDialog())
        {
          dialog.Filter = Strings.OpenFileDialog_Filter;
          if (dialog.ShowDialog() == DialogResult.Cancel)
            return;
          fileName = dialog.FileName;
        }

        ImportSettings settings = new ImportSettings();
        using(ImportSettingsForm settingsForm = new ImportSettingsForm(settings))
        {
          if(settingsForm.ShowDialog() == DialogResult.OK)
          {
            ClassDiagram diagram = new ClassDiagram(CSharpLanguage.Instance);
            NETImport importer = new NETImport(diagram, settings);

            if(importer.ImportAssembly(fileName))
            {
              Workspace.ActiveProject.Add(diagram);
            }
          }
        }
      }
    }
예제 #3
0
        /// <summary>
        /// Initializes a new ImportSettingsForm2.
        /// </summary>
        /// <param name="settings">The <see cref="ImportSettings"/> which will be used for import. </param>
        public ImportSettingsForm(ImportSettings settings)
        {
            InitializeComponent();

            // Add the icons to the realisation check boxes.
            chkCreateRealizations.Image    = DiagramEditor.Properties.Resources.Realization;
            chkCreateNesting.Image         = DiagramEditor.Properties.Resources.Nesting;
            chkCreateGeneralizations.Image = DiagramEditor.Properties.Resources.Generalization;
            chkCreateAssociations.Image    = DiagramEditor.Properties.Resources.Association;

            //Localization goes here...
            colFilterElement.Items.Clear();
            colFilterElement.ImageSize = new Size(16, 16);
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Elements, null, FilterElements.AllElements));
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Class, DiagramEditor.Properties.Resources.Class, FilterElements.Class));
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Struct, DiagramEditor.Properties.Resources.Structure, FilterElements.Struct));
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Interface, DiagramEditor.Properties.Resources.Interface32, FilterElements.Interface));
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Delegate, DiagramEditor.Properties.Resources.Delegate, FilterElements.Delegate));
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Enum, DiagramEditor.Properties.Resources.Enum, FilterElements.Enum));
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_EnumValue, DiagramEditor.Properties.Resources.EnumItem, FilterElements.EnumValue));
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Constructor, DiagramEditor.Properties.Resources.Constructor, FilterElements.Constructor));
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Field, DiagramEditor.Properties.Resources.Field, FilterElements.Field));
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Constant, DiagramEditor.Properties.Resources.PublicConst, FilterElements.Constant));
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Property, DiagramEditor.Properties.Resources.Property, FilterElements.Property));
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Method, DiagramEditor.Properties.Resources.Method, FilterElements.Method));
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Operator, DiagramEditor.Properties.Resources.PublicOperator, FilterElements.Operator));
            colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Event, DiagramEditor.Properties.Resources.Event, FilterElements.Event));

            colFilterModifier.Items.Clear();
            colFilterModifier.ImageSize = new Size(16, 16);
            colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_All, null, FilterModifiers.AllModifiers));
            colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Instance, null, FilterModifiers.Instance));
            colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Static, DiagramEditor.Properties.Resources.Static, FilterModifiers.Static));
            colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Default, Resources.ModifierDefault, FilterModifiers.Default));
            colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Public, null, FilterModifiers.Public));
            colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Private, Resources.ModifierPrivate, FilterModifiers.Private));
            colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Internal, Resources.ModifierInternal, FilterModifiers.Internal));
            colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Protected, Resources.ModifierProtected, FilterModifiers.Protected));
            colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_ProtectedInternal, Resources.ModifierProtectedInternal, FilterModifiers.ProtectedInternal));

            //Build reverse maps for easy access while loading a template.
            reverseElementNameMap.Clear();
            foreach (ImageComboBoxItem comboBoxItem in colFilterElement.Items)
            {
                reverseElementNameMap.Add((FilterElements)comboBoxItem.Tag, comboBoxItem);
            }
            reverseModifierNameMap.Clear();
            foreach (ImageComboBoxItem comboBoxItem in colFilterModifier.Items)
            {
                reverseModifierNameMap.Add((FilterModifiers)comboBoxItem.Tag, comboBoxItem);
            }

            importSettings = settings;

            //Templates
            cboTemplate.Items.Clear();
            if (Settings.Default.ImportSettingsTemplates == null)
            {
                Settings.Default.ImportSettingsTemplates = new TemplateList();
                ImportSettings newSettings = new ImportSettings
                {
                    Name = Strings.Settings_Template_LastUsed,
                    CreateAssociations    = true,
                    CreateGeneralizations = true,
                    CreateNestings        = true,
                    CreateRealizations    = true,
                    CreateRelationships   = true,
                    LabelAggregations     = true
                };
                Settings.Default.ImportSettingsTemplates.Add(newSettings);
            }
            foreach (object xTemplate in Settings.Default.ImportSettingsTemplates)
            {
                cboTemplate.Items.Add(xTemplate);
            }
            cboTemplate.SelectedItem = cboTemplate.Items[0];
            DisplaySettings((ImportSettings)cboTemplate.Items[0]);

            LocalizeComponents();
        }
예제 #4
0
    /// <summary>
    /// Stores the displayed settings to <paramref name="settings"/>
    /// </summary>
    /// <param name="settings">The destination of the store operation.</param>
    private void StoreSettings(ImportSettings settings)
    {
      settings.UseAsWhiteList = rdoWhiteList.Checked;
      List<FilterRule> filterRules = new List<FilterRule>(dgvFilter.Rows.Count);
      foreach (DataGridViewRow row in dgvFilter.Rows)
      {
        ImageComboBoxItem modifier = row.Cells[0].Value as ImageComboBoxItem;
        ImageComboBoxItem element = row.Cells[1].Value as ImageComboBoxItem;
        if (modifier != null && element != null)
        {
          if (modifier.Tag is FilterModifiers && element.Tag is FilterElements)
          {
            filterRules.Add(new FilterRule((FilterModifiers)modifier.Tag, (FilterElements)element.Tag));
          }
        }
      }
      settings.FilterRules = filterRules;

      settings.CreateRelationships = chkCreateRelationships.Checked;
      settings.CreateAssociations = chkCreateAssociations.Checked;
      settings.LabelAggregations = chkLabelAssociations.Checked;
      settings.RemoveFields = chkRemoveFields.Checked;
      settings.CreateGeneralizations = chkCreateGeneralizations.Checked;
      settings.CreateRealizations = chkCreateRealizations.Checked;
      settings.CreateNestings = chkCreateNesting.Checked;
    }
예제 #5
0
    /// <summary>
    /// Displays the given Settings.
    /// </summary>
    /// <param name="settings">The Settings which shall be displayed.</param>
    private void DisplaySettings(ImportSettings settings)
    {
      dgvFilter.Rows.Clear();

      rdoWhiteList.Checked = settings.UseAsWhiteList;
      rdoBlackList.Checked = !settings.UseAsWhiteList;
      if(settings.FilterRules != null)
      {
        foreach(FilterRule filterRule in settings.FilterRules)
        {
          dgvFilter.Rows.Add(reverseModifierNameMap[filterRule.Modifier], reverseElementNameMap[filterRule.Element]);
        }
      }

      chkCreateRelationships.Checked = settings.CreateRelationships;
      chkCreateAssociations.Checked = settings.CreateAssociations;
      chkLabelAssociations.Checked = settings.LabelAggregations;
      chkRemoveFields.Checked = settings.RemoveFields;
      chkCreateGeneralizations.Checked = settings.CreateGeneralizations;
      chkCreateRealizations.Checked = settings.CreateRealizations;
      chkCreateNesting.Checked = settings.CreateNestings;
    }
예제 #6
0
    /// <summary>
    /// Initializes a new ImportSettingsForm2.
    /// </summary>
    /// <param name="settings">The <see cref="ImportSettings"/> which will be used for import. </param>
    public ImportSettingsForm(ImportSettings settings)
    {
      InitializeComponent();

      // Add the icons to the realisation check boxes.
      chkCreateRealizations.Image = DiagramEditor.Properties.Resources.Realization;
      chkCreateNesting.Image = DiagramEditor.Properties.Resources.Nesting;
      chkCreateGeneralizations.Image = DiagramEditor.Properties.Resources.Generalization;
      chkCreateAssociations.Image = DiagramEditor.Properties.Resources.Association;

      //Localization goes here...
      colFilterElement.Items.Clear();
      colFilterElement.ImageSize = new Size(16, 16);
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Elements, null, FilterElements.AllElements));
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Class, DiagramEditor.Properties.Resources.Class, FilterElements.Class));
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Struct, DiagramEditor.Properties.Resources.Structure, FilterElements.Struct));
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Interface, DiagramEditor.Properties.Resources.Interface32, FilterElements.Interface));
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Delegate, DiagramEditor.Properties.Resources.Delegate, FilterElements.Delegate));
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Enum, DiagramEditor.Properties.Resources.Enum, FilterElements.Enum));
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_EnumValue, DiagramEditor.Properties.Resources.EnumItem, FilterElements.EnumValue));
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Constructor, DiagramEditor.Properties.Resources.Constructor, FilterElements.Constructor));
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Field, DiagramEditor.Properties.Resources.Field, FilterElements.Field));
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Constant, DiagramEditor.Properties.Resources.PublicConst, FilterElements.Constant));
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Property, DiagramEditor.Properties.Resources.Property, FilterElements.Property));
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Method, DiagramEditor.Properties.Resources.Method, FilterElements.Method));
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Operator, DiagramEditor.Properties.Resources.PublicOperator, FilterElements.Operator));
      colFilterElement.Items.Add(new ImageComboBoxItem(Strings.Element_Event, DiagramEditor.Properties.Resources.Event, FilterElements.Event));

      colFilterModifier.Items.Clear();
      colFilterModifier.ImageSize = new Size(16, 16);
      colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_All, null, FilterModifiers.AllModifiers));
      colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Instance, null, FilterModifiers.Instance));
      colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Static, DiagramEditor.Properties.Resources.Static, FilterModifiers.Static));
      colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Default, Resources.ModifierDefault, FilterModifiers.Default));
      colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Public, null, FilterModifiers.Public));
      colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Private, Resources.ModifierPrivate, FilterModifiers.Private));
      colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Internal, Resources.ModifierInternal, FilterModifiers.Internal));
      colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_Protected, Resources.ModifierProtected, FilterModifiers.Protected));
      colFilterModifier.Items.Add(new ImageComboBoxItem(Strings.Modifier_ProtectedInternal, Resources.ModifierProtectedInternal, FilterModifiers.ProtectedInternal));

      //Build reverse maps for easy access while loading a template.
      reverseElementNameMap.Clear();
      foreach (ImageComboBoxItem comboBoxItem in colFilterElement.Items)
      {
        reverseElementNameMap.Add((FilterElements)comboBoxItem.Tag, comboBoxItem);
      }
      reverseModifierNameMap.Clear();
      foreach (ImageComboBoxItem comboBoxItem in colFilterModifier.Items)
      {
        reverseModifierNameMap.Add((FilterModifiers)comboBoxItem.Tag, comboBoxItem);
      }

      importSettings = settings;

      //Templates
      cboTemplate.Items.Clear();
      if (Settings.Default.ImportSettingsTemplates == null)
      {
        Settings.Default.ImportSettingsTemplates = new TemplateList();
        ImportSettings newSettings = new ImportSettings
                                        {
                                          Name = Strings.Settings_Template_LastUsed,
                                          CreateAssociations = true,
                                          CreateGeneralizations = true,
                                          CreateNestings = true,
                                          CreateRealizations = true,
                                          CreateRelationships = true,
                                          LabelAggregations = true
                                        };
        Settings.Default.ImportSettingsTemplates.Add(newSettings);
      }
      foreach (object xTemplate in Settings.Default.ImportSettingsTemplates)
      {
        cboTemplate.Items.Add(xTemplate);
      }
      cboTemplate.SelectedItem = cboTemplate.Items[0];
      DisplaySettings((ImportSettings)cboTemplate.Items[0]);

      LocalizeComponents();
    }