private void SaveAs(string fileName)
 {
     try
     {
         if (String.IsNullOrEmpty(fileName))
         {
             FileSelector fileSelector = new FileSelector(FileSelectorFilters.Circuits);
             fileSelector.FileName = fileName;
             if (fileSelector.ExecuteSaveDialog())
             {
                 fileName = fileSelector.FileName;
             }
         }
         if (String.IsNullOrEmpty(fileName) == false)
         {
             CircuitData data = CircuitConverter.Instance.ConvertFromCircuit(circuitEditor.Circuit);
             data.Signals = SignalConverter.Instance.ConvertFromSignalList(circuitEditor.SignalList);
             CircuitSerializer.SerializeCircuit(fileName, data);
             m_Persistent = true;
             FileName     = fileName;
         }
     }
     catch (Exception e)
     {
         string msg = e.Message;
         if (e.InnerException != null)
         {
             msg += "\n" + e.InnerException.Message;
         }
         MessageBox.Show(msg + "\n-----\n" + e.StackTrace, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Stop);
     }
 }
        public bool LoadDocument(string fileName)
        {
            try
            {
                if (String.IsNullOrEmpty(fileName) == false)
                {
                    CircuitData circuitData = CircuitSerializer.DeserializeCircuit(fileName);
                    circuitEditor.SignalList = SignalConverter.Instance.ConvertToSignalList(circuitData.Signals);
                    circuitEditor.Circuit    = CircuitConverter.Instance.ConvertToCircuit(circuitData, circuitEditor.SignalList, true);
                    m_Simulation.Signals     = circuitEditor.SignalList;
                    m_Simulation.Circuit     = circuitEditor.Circuit;

                    FileName = fileName;
                    return(true);
                }
            }
            catch (Exception e)
            {
                string msg = e.Message;
                if (e.InnerException != null)
                {
                    msg += "\n" + e.InnerException.Message;
                }
                MessageBox.Show(msg + "\n-----\n" + e.StackTrace, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            return(false);
        }
예제 #3
0
        private void LoadFiles()
        {
            button_ProceedToPage2.Enabled = false;
            //at this point the chosen files really do exist
            m_CircuitData         = CircuitSerializer.DeserializeCircuit(textBox_Circuit.Text);
            m_CircuitData.Signals = null;
            Circuit circuit = CircuitConverter.Instance.ConvertToCircuit(m_CircuitData);

            foreach (BaseElement be in circuit)
            {
                if (be is SignalInput)
                {
                    ListViewItem li = new ListViewItem(be.Name);
                    //li.ToolTipText = String.Format("{0} ({1}, X: {2}, Y: {3})", be.);
                    li.Group = listView_CircuitIOs.Groups[0];
                    listView_CircuitIOs.Items.Add(li);
                }
                if (be is SignalOutput)
                {
                    ListViewItem li = new ListViewItem(be.Name);
                    li.Group = listView_CircuitIOs.Groups[1];
                    listView_CircuitIOs.Items.Add(li);
                }
            }

            m_SymbolData = SymbolSerializer.DeserializeSymbol(textBox_Symbol.Text);
            Symbol symbol = SymbolConverter.Instance.ConvertToSymbol(m_SymbolData);

            foreach (SymbolPart part in symbol)
            {
                if (part is PortPart)
                {
                    PortPart port = (PortPart)part;
                    if (port.Direction == DirectionType.Input)
                    {
                        ListViewItem li = new ListViewItem(port.Name);
                        //li.ToolTipText = String.Format("{0} ({1}, X: {2}, Y: {3})", port.Name, port.Direction, port.Location.X, port.Location.Y);
                        li.Group = listView_SymbolPorts.Groups[0];
                        listView_SymbolPorts.Items.Add(li);
                    }
                    if (port.Direction == DirectionType.Output)
                    {
                        ListViewItem li = new ListViewItem(port.Name);
                        //li.ToolTipText = String.Format("{0} ({1}, X: {2}, Y: {3})", port.Name, port.Direction, port.Location.X, port.Location.Y);
                        li.Group = listView_SymbolPorts.Groups[1];
                        listView_SymbolPorts.Items.Add(li);
                    }
                }
            }
        }