public void SetGenerators(System.Windows.Forms.ListView lv) { GeneratorSettings set; GeneratorDialog dialog = new GeneratorDialog(); foreach (PortGenerator pg in selectedPorts) { if (pg.Name == lv.SelectedItems[0].Text) { switch (pg.Port.subtype.sub_type_indication_string.ToLower()) { case "std_logic": set = new GeneratorSettings(1, GeneratorSettings.GeneratedValue.EnumerableValue, GeneratorSettings.GeneratedValue.EnumerableValue, new List <object>(VHDL.builtin.StdLogic1164.STD_ULOGIC.Literals)); //dialog = new GeneratorDialog(set); dialog.GenSettings = set; dialog.ShowDialog(); pg.Generator = dialog.Generator; break; case "std_logic_vector": set = new GeneratorSettings((uint)(Math.Abs(pg.Port.subtype.range.leftRange - pg.Port.subtype.range.rightRange) + 1), GeneratorSettings.GeneratedValue.IntegerValue | GeneratorSettings.GeneratedValue.DoubleValue | GeneratorSettings.GeneratedValue.BoolArray, GeneratorSettings.GeneratedValue.IntegerValue); //set = new GeneratorSettings((uint)(Math.Abs(pg.Port.subtype.range.leftRange - pg.Port.subtype.range.rightRange) + 1), GeneratorSettings.GeneratedValue.IntegerValue | GeneratorSettings.GeneratedValue.DoubleValue | GeneratorSettings.GeneratedValue.BoolArray, GeneratorSettings.GeneratedValue.BoolArray); //dialog = new GeneratorDialog(set); dialog.GenSettings = set; dialog.ShowDialog(); pg.Generator = dialog.Generator; break; case "bit": set = new GeneratorSettings(1, GeneratorSettings.GeneratedValue.EnumerableValue, GeneratorSettings.GeneratedValue.EnumerableValue, new List <object>(VHDL.builtin.Standard.BIT.Literals)); //dialog = new GeneratorDialog(set); //dialog = new GeneratorDialog(set); dialog.GenSettings = set; dialog.ShowDialog(); pg.Generator = dialog.Generator; break; case "bit_vector": set = new GeneratorSettings((uint)(Math.Abs(pg.Port.subtype.range.leftRange - pg.Port.subtype.range.rightRange) + 1), GeneratorSettings.GeneratedValue.IntegerValue | GeneratorSettings.GeneratedValue.DoubleValue | GeneratorSettings.GeneratedValue.BoolArray, GeneratorSettings.GeneratedValue.BoolArray); //dialog = new GeneratorDialog(set); dialog.GenSettings = set; dialog.ShowDialog(); pg.Generator = dialog.Generator; break; default: System.Windows.Forms.MessageBox.Show("Generators can work only with STD_LOGIC,STD_LOGIC_VECTOR,BIT,BIT_VECTOR types."); return; break; } } } }
private void SetCounterGenerator_Executed(object sender, ExecutedRoutedEventArgs e) { try { GeneratorDialog diag = new GeneratorDialog(cursorViewer.Selection.Variable, GeneratorType.Counter); if (diag.ShowDialog() == true) { BaseGenerator generator = diag.Generator; generator.Fill(cursorViewer.Selection.Variable.Signal, cursorViewer.Selection.Start, cursorViewer.Selection.End); cursorViewer.Selection = null; UpdateSignalView(); core.IsModified = true; } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }