public static void Run(IDatabaseSource src, IDatabaseSource dst, SynchronizeExtData extData) { if (!LicenseTool.FeatureAllowedMsg(DbStructSynchronizationFeature.Test)) { return; } SynchronizeStructureForm win = new SynchronizeStructureForm(src, dst, extData); win.Show(); }
public SynchronizeStructureForm(IDatabaseSource src, IDatabaseSource dst, SynchronizeExtData extInfo) { m_synExtData = extInfo; InitializeComponent(); m_imgCache = new ImageCache(imageList1, Color.White); //btnUncheckAll.Image = ImageTool.CombineImages(CoreIcons.check, CoreIcons.delete_overlay); ConnPack.Cache = new CachePack { ReuseAnalyserCache = true }; //m_srcData = new TreeStructureData(treeSource, Color.Green, this, src, true); //m_dstData = new TreeStructureData(treeTarget, Color.Red, this, dst, false); //m_srcData.OtherTree = m_dstData; //m_dstData.OtherTree = m_srcData; Disposed += new EventHandler(SynchronizeStructureForm_Disposed); m_srcDb = src; m_dstDb = dst; if (m_srcDb != null) { m_srcDb.ChangeConnection(ConnPack); } if (m_dstDb != null) { m_dstDb.ChangeConnection(ConnPack); } //m_invoker = new ControlInvoker(this); m_settings = new SynchronizeSettings(); SettingsTool.CopySettingsPage((SynchronizeSettings)GlobalSettings.Pages.PageByName("synchronize"), m_settings); //m_trace = new TraceVisibilityHandler(btnTrace); UpdateTitles(); DownloadWhenNeededAndRefresh(); colObjectType.ImageGetter = row => ((DbDiffAction)row).GetObjectTypeImage(m_imgCache); colRelation.ImageGetter = row => ((DbDiffAction)row).GetRelationImage(m_imgCache); colColumnRelation.ImageGetter = row => ((DbDiffAction)row).GetRelationImage(m_imgCache); colConstraintRelation.ImageGetter = row => ((DbDiffAction)row).GetRelationImage(m_imgCache); colConstraintType.ImageGetter = row => ((DbDiffAction)row).GetObjectTypeImage(m_imgCache); colObjType.ImageGetter = row => ((DbDiffAction)row).GetObjectTypeImage(m_imgCache); if (extInfo != null && extInfo.Dbs != null) { FillDbs(btnSelectSourceDb, cbxSelectSource); if (extInfo.SelectedSource != null) { cbxSelectSource.SelectedIndex = cbxSelectSource.Items.IndexOf(extInfo.SelectedSource); } FillDbs(btnSelectTargetDb, cbxSelectTarget); if (extInfo.SelectedTarget != null) { cbxSelectTarget.SelectedIndex = cbxSelectTarget.Items.IndexOf(extInfo.SelectedTarget); } } else { cbxSelectSource.Visible = false; cbxSelectTarget.Visible = false; } m_initialized = true; }