//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(); } }
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(); } }
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); }
//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; }