private void UpdateTabControlsTarget() { for (int i = tabControlMain.Items.Count - 1; 0 <= i; i--) { TabItem item = tabControlMain.Items[i] as TabItem; UIElement c = item.Content as UIElement; Type t = c.GetType(); PropertyInfo p = t.GetProperty("Target"); if (p == null) { continue; } SchemaObject o = p?.GetValue(c) as SchemaObject; if (o != null) { Schema sch = CurrentDataSet.Schemas[o.SchemaName]; o = sch?.GetCollection(o.GetCollectionIndex())[o.Identifier] as SchemaObject; } if (o != null) { p.SetValue(c, o); } else { tabControlMain.Items.RemoveAt(i); } } }
private void TreeViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e) { TreeViewItem src = App.FindVisualParent <TreeViewItem>(e.OriginalSource as DependencyObject); TreeViewItem item = sender as TreeViewItem; if (src != item) { // DoubleClickイベントはツリーをたどって親ノードでも呼びされるため、親ノードでの実行時には何もしない return; } if (item == null) { return; } TreeNode node = item.Tag as TreeNode; if (node == null) { return; } SchemaObject obj = node.Target as SchemaObject; if (obj == null) { return; } e.Handled = true; OpenViewer(obj); }
//public override void Restore() //{ // if (_backup == null) // { // return; // } // RestoreFrom(_backup); //} public override bool ContentEquals(NamedObject obj) { SchemaObject o = (SchemaObject)obj; if (!base.ContentEquals(o)) { if (Triggers.Count != o.Triggers.Count) { return(false); } } foreach (Trigger t in Triggers) { int i = o.Triggers.IndexOf(t); if (i == -1) { return(false); } if (!t.ContentEquals(o.Triggers[i])) { return(false); } } return(true); }
//protected override void Backup() { } protected void RestoreFrom(SchemaObject backup) { Owner = backup.Owner; _schema = backup.Schema; Name = backup.Name; Triggers = new TriggerCollection(this, backup.Triggers); }
private void ReplaceSchemaObjectRecursive(TreeViewItem treeViewItem, SchemaObject newObj, SchemaObject oldObj) { for (int i = treeViewItem.Items.Count - 1; 0 <= i; i--) { TreeViewItem item = treeViewItem.Items[i] as TreeViewItem; ReplaceSchemaObjectRecursive(item, newObj, oldObj); } TreeNode node = treeViewItem.Tag as TreeNode; if (node == null) { return; } SchemaObject obj = node.Target as SchemaObject; if (obj == null) { return; } if (obj == oldObj) { if (newObj == null) { TreeViewItem p = treeViewItem.Parent as TreeViewItem; if (p != null) { p.Items.Remove(treeViewItem); } } else { treeViewItem.Tag = newObj; } } }
public static TabItem RequireTabItem(SchemaObject target, Style tabItemStyle, TabControl tabControl, Db2SourceContext dataSet) { ISchemaObjectWpfControl ctrl = target.Control as ISchemaObjectWpfControl; if (ctrl != null) { ctrl.Target = dataSet.Refresh(target); return(ctrl.Parent as TabItem); } lock (TabItemLock) { if (ctrl != null) { return(ctrl.Parent as TabItem); } ctrl = NewControl(target, tabControl); if (ctrl == null) { return(null); } TabItem item = NewTabItem(tabControl, target.FullName, ctrl as UIElement, tabItemStyle); item.Tag = target; return(item); } }
private void UpdateTable() { if (_table != null) { return; } _table = Context?.Objects[TableSchema, TableName]; }
internal TriggerCollection(SchemaObject owner, TriggerCollection basedOn) { _owner = owner; foreach (Trigger t in basedOn) { Add(new Trigger(t)); } }
public override SchemaObject[] GetStrongReferred(SchemaObject target) { Table tbl = target as Table; if (tbl != null) { return(GetStrongReferred(tbl)); } return(new SchemaObject[0]); }
public override bool Equals(object obj) { if (!(obj is SchemaObject)) { return(false); } SchemaObject sc = (SchemaObject)obj; return(Schema.Equals(sc.Schema) && (Identifier == sc.Identifier)); }
public TreeNode(SchemaObject target) { Name = target.DisplayName; StyleIndex = 0; Hint = target.CommentText; IsGrouped = false; IsHidden = false; ShowChildCount = false; TargetType = target.GetType(); Target = target; }
protected SchemaObject(SchemaObject basedOn) : base(null) { Context = basedOn.Context; Owner = basedOn.Owner; _schema = basedOn.Schema; Name = basedOn.Name; Triggers = new TriggerCollection(this); foreach (Trigger t in basedOn.Triggers) { Triggers.Add(new Trigger(t)); } }
private void dataGridDependOn_MouseDoubleClick(object sender, MouseButtonEventArgs e) { SchemaObject obj = ((KeyValuePair <string, NamedObject>)(sender as DataGrid).SelectedItem).Value as SchemaObject; if (obj == null) { return; } if (obj is Trigger) { obj = ((Trigger)obj).Table; } Dispatcher.InvokeAsync(() => { MainWindow.Current.OpenViewer(obj); }); }
public override int CompareTo(object obj) { if (!(obj is SchemaObject)) { return(-1); } SchemaObject sc = (SchemaObject)obj; int ret = Schema.Compare(Schema, sc.Schema); if (ret != 0) { return(ret); } ret = string.Compare(Identifier, sc.Identifier); return(ret); }
public static ISchemaObjectWpfControl NewControl(SchemaObject target, TabControl parent) { Type t; if (!_schemaObjectToControl.TryGetValue(target.GetType(), out t)) { return(null); } ISchemaObjectWpfControl ret = t.GetConstructor(new Type[0]).Invoke(null) as ISchemaObjectWpfControl; if (ret == null) { return(null); } ret.Target = target; target.Control = ret; return(ret); }
//#pragma warning restore 1998 public void OpenViewer(SchemaObject target) { ISchemaObjectWpfControl curCtl = (tabControlMain.SelectedItem as TabItem)?.Content as ISchemaObjectWpfControl; TabItem item = MovableTabItem.RequireTabItem(target, FindResource("TabItemStyleClosable") as Style, tabControlMain, CurrentDataSet); if (item == null) { return; } if (item.Parent == null) { tabControlMain.Items.Add(item); } tabControlMain.SelectedItem = item; ISchemaObjectWpfControl newCtl = item.Content as ISchemaObjectWpfControl; if (newCtl != null && curCtl != null) { newCtl.SelectedTabKey = curCtl.SelectedTabKey; } }
/// <summary> /// treeViewDBで選択している項目のビューアを開く /// </summary> public void OpenViewerFromTreeViewDBSelection() { TreeViewItem item = treeViewDB.SelectedItem as TreeViewItem; if (item == null) { return; } TreeNode node = item.Tag as TreeNode; if (node == null) { return; } SchemaObject obj = node.Target as SchemaObject; if (obj == null) { return; } OpenViewer(obj); }
public void FilterTreeView(bool force) { if (!force && _treeViewFilterText == textBoxFilter.Text) { return; } _treeViewFilterText = textBoxFilter.Text; bool filterByName = menuItemFilterByObjectName.IsChecked; bool filterByColumnName = menuItemFilterByColumnName.IsChecked; string f = _treeViewFilterText.ToUpper(); foreach (TreeViewItem itemDb in treeViewItemTop.Items) { foreach (TreeViewItem itemSc in itemDb.Items) { foreach (TreeViewItem itemGr in itemSc.Items) { for (int i = itemGr.Items.Count - 1; 0 <= i; i--) { TreeViewItem item = (TreeViewItem)itemGr.Items[i]; SchemaObject o = (item.Tag as TreeNode)?.Target as SchemaObject; if (o == null || o.IsReleased) { itemGr.Items.RemoveAt(i); } } int n = 0; foreach (TreeViewItem item in itemGr.Items) { bool matched = false; if (string.IsNullOrEmpty(f)) { matched = true; } else { if (filterByName && ((string)item.Header).ToUpper().Contains(f)) { matched = true; } if (filterByColumnName) { Selectable o = (item.Tag as TreeNode)?.Target as Selectable; if (o != null) { foreach (Column c in o.Columns) { if (c.Name.ToUpper().Contains(f)) { matched = true; break; } } } } } if (matched) { item.Visibility = Visibility.Visible; n++; } else { item.Visibility = Visibility.Collapsed; } } TreeNode nodeGr = itemGr.Tag as TreeNode; if ((nodeGr.ShowChildCount)) { itemGr.Header = string.Format(nodeGr.NameBase, n); } } } } }
public void InvalidateTable() { _table = null; }
public TriggerCollection(SchemaObject owner) { _owner = owner; }
public virtual ICommentable GetTarget() { SchemaObject o = Schema?.Objects[Target]; return(o); }