public override void CreateNew(AppObject appobj, ConnectionPack connpack) { var tp = _Type; if (tp.ObjectType == "table") { var pars = new AlterTableEditorPars { SavedCallback = RefreshList }; MainWindow.Instance.OpenContent(new TableEditFrame(appobj.CreateDatabaseConnection(), null, pars)); } else { var dbconn = appobj.FindDatabaseConnection(connpack); var dbtype = dbconn.Dialect.GetSpecificObjectType(tp.ObjectType); if (dbconn.DatabaseCaps.ExecuteSql) { OpenQueryParameters pars = new OpenQueryParameters(); IPhysicalConnection newconn = dbconn.Connection.Clone(); string dbname = appobj.FindDatabaseName(); if (dbname != null) { newconn.AfterOpen += ConnTools.ChangeDatabaseCallback(dbname); } pars.GenerateSql = delegate(IPhysicalConnection conn) { return(dbtype.GenerateCreateNew(conn.SystemConnection, appobj.GetObjectPath())); }; pars.HideDesign = true; pars.ExecutedCallback = RefreshList; MainWindow.Instance.OpenContent(new QueryFrame(newconn, pars)); } else { string sql = dbtype.GenerateCreateNew(dbconn.Connection.SystemConnection, appobj.GetObjectPath()); var pars = new ObjectEditorPars { SavedCallback = RefreshList }; var frm = new SpecificObjectFrame(dbconn, tp.ObjectType, sql, pars); MainWindow.Instance.OpenContent(frm); } } }