//Deserialize individual base windows and there child control
        public static void DeserializeWindowXML(string fileName, Control baseFrame, XmlNode parentXMLNode)
        {
            DataSet dataset = new DataSet();
            int nextTop = 0, nextLeft = 0;
            int maxHeight = 0, maxWidth = 0;
            int ParentWidth;
            Dictionary<string, EIBTable> listTable = new Dictionary<string, EIBTable>();
            try
            {
                ParentWidth = baseFrame.Width;
                // disabling re-drawing of treeview till all nodes are added
                baseFrame.SuspendLayout();
                fileName = fileName + ".xml";
                string datasetName = System.IO.Path.GetFileNameWithoutExtension(fileName);
                List<string> M2MList = new List<string>();
                dataset = DatabaseXMLServices.ReadSchema(datasetName, fileName,M2MList);
                //dataset.ReadXml(fileName);
                baseFrame.Controls.Clear();
                ((BaseWindow)baseFrame.Parent).DatabaseDataSet = dataset;
                foreach (DataTable table in dataset.Tables)
                {
                    EIBTable.counter++;
                    EIBTable newNode = new EIBTable();
                    newNode.TableData = table;
                    newNode.Height = 160;
                    newNode.Width = 200;
                    newNode.DatabaseDataSet = dataset;
                    newNode.Name = table.TableName;
                    listTable.Add(newNode.Name, newNode);
                    newNode.ControlName = table.TableName;
                    newNode.tableName.Text = table.TableName;
                    if (M2MList.Contains(table.TableName))
                    {
                        newNode.M2M = true;
                    }
                    else
                    {
                        newNode.M2M = false;
                    }
                    newNode.Top = nextTop;
                    newNode.Left = nextLeft;
                    UpdateControlProperties(newNode);
                    newNode.AutoSize = false;
                    baseFrame.Controls.Add(newNode);
                    if (newNode.Height > maxHeight)
                    {
                        maxHeight = newNode.Height;
                    }
                    if (newNode.Width > maxWidth)
                    {
                        maxWidth = newNode.Width;
                    }
                    if ((nextLeft + newNode.Width + maxWidth) >= ParentWidth)
                    {
                        nextTop += maxHeight;
                        nextLeft = 0;
                    }
                    else
                    {
                        nextLeft += newNode.Width;
                    }
                    foreach (DataColumn column in table.Columns)
                    {
                        ListViewItem lvItem = new ListViewItem(column.ColumnName);
                        if (column.DataType.Name == typeof(string).Name)
                        {
                            int iCap;
                            bool isVarChar = Int32.TryParse(column.Caption,out iCap);
                            if (isVarChar)
                                lvItem.SubItems.Add(column.DataType.Name);
                            else
                                lvItem.SubItems.Add(Designer.Database.DatabaseConstants.LongTextType);
                        }
                        else
                        {
                            lvItem.SubItems.Add(column.DataType.Name);
                        }
                        string autoIncrement = null;
                        if (column.AutoIncrement)
                        {
                            autoIncrement = "Yes";
                        }
                        else
                        {
                            autoIncrement = "No";
                        }
                        lvItem.SubItems.Add(autoIncrement);
                        string uniqueKey = null;
                        if (column.Unique)
                        {
                            uniqueKey = "Yes";
                        }
                        else
                        {
                            uniqueKey = "No";
                        }
                        lvItem.SubItems.Add(uniqueKey);
                        int iCaption;
                        if (column.Caption != null && (!column.Caption.Trim().Equals("")) && Int32.TryParse(column.Caption,out iCaption))
                        {
                            lvItem.SubItems.Add(column.Caption);
                        }
                        else
                        {
                            lvItem.SubItems.Add("");
                        }
                        if (column.Unique)
                        {
                            lvItem.SubItems.Add("Not Null");
                        }
                        else
                        {
                            lvItem.SubItems.Add((column.AllowDBNull ? "Null" : "Not Null"));
                        }

                        newNode.lvDatabase.Items.Add(lvItem);
                    }
                }
                foreach (DataRelation relation in dataset.Relations)
                {
                    EIBTableConnector tableConnector = new EIBTableConnector();
                    tableConnector.InitiateSettings((EIBPanel)baseFrame);
                    tableConnector.Mark1 = (EIBTable)listTable[relation.ParentTable.TableName];
                    tableConnector.Mark2 = (EIBTable)listTable[relation.ChildTable.TableName];
                    tableConnector.createLine();
                    baseFrame.Controls.Add(tableConnector);
                }
            }
            catch (FileNotFoundException)
            {
                MessageBox.Show("Basewindow.xml not Found");
            }
            catch (XmlException)
            {
                MessageBox.Show("DataPattern xml is changed.");
            }
            finally
            {
                // enabling redrawing of treeview after all nodes are added
                baseFrame.ResumeLayout();
                baseFrame.Invalidate();
            }
        }
Example #2
0
        public static object CreateControl(string ctrlName, string partialName)
        {
            try
            {
                Control ctrl = null;
                //ToolStripMenuItem menu;
                //ToolStripButton menuItem;
                switch (ctrlName)
                {
                    case "EIBButton":
                        ctrl = new EIBButton();
                        break;
                    case "EIBApplet":
                        ctrl = new EIBApplet();
                        break;
                    case "EIBLattice":
                        ctrl = new EIBLattice();
                        break;
                    case "EIBSchedular":
                        ctrl = new EIBSchedular();
                        break;
                    case "EIBDatePicker":
                        ctrl = new EIBDatePicker();
                        break;
                    case "EIBTime":
                        ctrl = new EIBTime();
                        break;
                    case "EIBCheckbox":
                        ctrl = new EIBCheckbox();
                        break;
                    case "EIBCombobox":
                        ctrl = new EIBCombobox();
                        break;
                    case "EIBLabel":
                        ctrl = new EIBLabel();
                        break;
                    case "EIBLine":
                        ctrl = new EIBLine();
                        break;
                    case "EIBPanel":
                        ctrl = new EIBPanel();
                        DragDropHandler.RegisterControl(ctrl, true, true);
                        break;
                    case "EIBJasper":
                        ctrl = new EIBJasper();
                        break;
                    case "EIBRadioGroup":
                        ctrl = new EIBRadioGroup();
                        DragDropHandler.RegisterControl(ctrl, true, true);
                        break;
                    case "EIBPicture":
                        ctrl = new EIBPicture();
                        break;
                    case "EIBRadioButton":
                        ctrl = new EIBRadioButton();
                        break;
                    case "EIBTabControl":
                        ctrl = new EIBTabControl();
                        DragDropHandler.RegisterControl(ctrl, true, true);
                        break;
                    case "EIBTabPage":
                        ctrl = new EIBTabPage();
                        DragDropHandler.RegisterControl(ctrl, true, true);
                        break;
                    case "EIBSearch":
                        ctrl = new EIBSearch();
                        break;
                    case "EIBListbox":
                        ctrl = new EIBListbox();
                        break;
                    case "EIBGrid":
                        ctrl = new EIBGrid();
                        DragDropHandler.RegisterControl(ctrl, true, true);
                        break;
                    case "EIBTable":
                        ctrl = new EIBTable();
                        break;
                    case "EIBRelation":
                        ctrl = new EIBRelation();
                        break;
                    case "EIBTextBox":
                        ctrl = new EIBTextBox();
                        break;
                    case "EIBTreeView":
                        ctrl = new EIBTreeView();
                        break;
                    case "EIBMenuBar":
                        ctrl = new EIBMenuBar(false);
                        DragDropHandler.RegisterControl(ctrl, true, true);
                        break;
                    case "EIBNode":
                        ctrl = new EIBNode();
                        break;
                    case "EIBNodeRelation":
                        ctrl = new EIBNodeRelation();
                        break;
                    case "EIBColumn":
                        ctrl = new EIBColumn();
                        DragDropHandler.RegisterControl(ctrl, true, true);
                        break;
                    case "EIBScrollableRow":
                        ctrl = new EIBScrollableRow();
                        DragDropHandler.RegisterControl(ctrl, true, true);
                        break;
                    case "EIBBrowse":
                        ctrl = new EIBBrowse();
                        break;
                    case "EIBVMenuBar":
                        ctrl = new EIBVMenuBar(false);
                        DragDropHandler.RegisterControl(ctrl, true, true);
                        break;
                    case "EIBMenu":
                        return new EIBMenu();
                    case "EIBMenuItem":
                        return new EIBMenuItem();
                    /*
                                        case "EIBTreeNode":
                                            ctrl = new EIBTreeNode();
                                            break;
                    */
                    default:
                        Assembly controlAsm = Assembly.LoadWithPartialName(partialName);
                        Type controlType = controlAsm.GetType(partialName + "." + ctrlName);
                        ctrl = (Control)Activator.CreateInstance(controlType);
                        break;

                }

                return ctrl;

            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine("create control failed:" + ex.Message);
                return new Control();
            }
        }
Example #3
0
 public void AssociateMarkUpandDown(EIBTable table)
 {
     table.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Mark_MouseUp);
     table.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Mark_MouseDown);
 }
Example #4
0
 //Retrieves a Line object having a mark
 private Line getLineByMark(EIBTable m)
 {
     foreach (Line l in  ((BaseWindow)this.baseFrame.Parent).Lines)
     {
         if (l.mark1 == m || l.mark2 == m)
             return l;
     }//Never happens :D
     throw new System.Exception("No line found");
 }
 internal static DataTable CreateSchema(DataSet DataSetNew, string tableName, EIBTable eibTable)
 {
     // Create a Schema
     DataColumn DataColumnNew;
     string strName, strType;
     Type dataType;
     DataTable DataTableNew = new DataTable(tableName);
     foreach (ListViewItem lvItem in eibTable.lvDatabase.Items)
     {
         strName = lvItem.Text;
         strType = lvItem.SubItems[1].Text;
         //Append System. to make them .net types
         dataType = Type.GetType("System."+ strType);
         DataColumnNew = new DataColumn(strName, dataType);
         DataColumnNew.AutoIncrement = (lvItem.SubItems[2].Text == "Yes");
         DataTableNew.Columns.Add(DataColumnNew);
     }
     DataSetNew.Tables.Add(DataTableNew);
     return DataTableNew;
 }