void OnChildRemoved(object ob, ActionTreeNodeArgs args) { OpenSubmenu = null; Widget wrapper = Widget.Lookup(this); IDesignArea area = wrapper.GetDesignArea(); IObjectSelection asel = area.GetSelection(); ActionMenuItem curSel = asel != null ? asel.DataObject as ActionMenuItem : null; int pos = menuItems.IndexOf(curSel); foreach (Gtk.Widget w in Children) { if (w is CustomMenuBarItem && ((CustomMenuBarItem)w).ActionMenuItem.Node == args.Node) { Remove(w); menuItems.Remove(((CustomMenuBarItem)w).ActionMenuItem); if (menuItems.Count == 0 && !showPlaceholder) { AddSpacerItem(); } break; } } if (pos != -1 && pos < menuItems.Count) { ((ActionMenuItem)menuItems[pos]).Select(); } else if (menuItems.Count > 0) { ((ActionMenuItem)menuItems[menuItems.Count - 1]).Select(); } }
private void DeleteIssues( [NotNull] IQueryFilter queryFilter, [CanBeNull] IObjectSelection objectSelection, [CanBeNull] IDictionary <int, QualityCondition> qualityConditionsById) { Assert.ArgumentNotNull(queryFilter, nameof(queryFilter)); foreach (IssueDatasetWriter issueWriter in IssueDatasets.GetIssueWriters()) { // add project-specific filter logic AdaptFilterToContext(issueWriter, queryFilter); if (objectSelection == null) { issueWriter.DeleteErrorObjects(queryFilter); } else { Assert.NotNull( qualityConditionsById, "The quality conditions are required when there is an object selection"); var determineDeletableRow = new DeletableErrorRowFilter(issueWriter, objectSelection); issueWriter.DeleteErrorObjects(queryFilter, determineDeletableRow, qualityConditionsById); } } }
void OnChildRemoved(object ob, ActionTreeNodeArgs args) { Widget wrapper = Stetic.Wrapper.Widget.Lookup(this); IDesignArea area = wrapper.GetDesignArea(); IObjectSelection asel = area.GetSelection(); ActionToolItem curSel = asel != null ? asel.DataObject as ActionToolItem : null; int pos = toolItems.IndexOf(curSel); foreach (Gtk.Widget w in Children) { if (w is CustomToolbarItem && ((CustomToolbarItem)w).ActionToolItem.Node == args.Node) { Remove(w); toolItems.Remove(((CustomToolbarItem)w).ActionToolItem); w.Destroy(); if (!showPlaceholder && toolItems.Count == 0) { AddSpacerItem(); } break; } } if (pos != -1 && pos < toolItems.Count) { ((ActionToolItem)toolItems[pos]).Select(); } else if (toolItems.Count > 0) { ((ActionToolItem)toolItems[toolItems.Count - 1]).Select(); } }
public DeletableErrorRowFilter([NotNull] IssueDatasetWriter issueWriter, [NotNull] IObjectSelection objectSelection) { Assert.ArgumentNotNull(issueWriter, nameof(issueWriter)); Assert.ArgumentNotNull(objectSelection, nameof(objectSelection)); _issueWriter = issueWriter; _objectSelection = objectSelection; }
public virtual void Select() { IDesignArea area = GetDesignArea(); if (area.IsSelected(this)) { return; } IObjectSelection sel = area.SetSelection(this, node.Action != null ? node.Action.GtkAction : null); sel.Drag += HandleItemDrag; sel.Disposed += OnSelectionDisposed; GrabFocus(); }
protected void UpdateSelectionStatus() { IDesignArea area = GetDesignArea(); IObjectSelection sel = area.GetSelection(); sel.Disposed -= OnSelectionDisposed; sel.Drag -= HandleItemDrag; area.ResetSelection(this); sel = area.SetSelection(this, this); sel.Drag += HandleItemDrag; sel.Disposed += OnSelectionDisposed; }
/// <summary> /// Deletes all issues of the specified quality conditions within the /// <see cref="Perimeter"/>. All errors will be deleted if the Perimeter property is /// not set or the provided quality conditions list is null. /// </summary> /// <param name="qualityConditions">The quality conditions.</param> /// <param name="objectSelection">The object selection.</param> public void DeleteErrors( [CanBeNull] IEnumerable <QualityCondition> qualityConditions, [CanBeNull] IObjectSelection objectSelection) { IQueryFilter filter = CreateIssueDeletionFilter(_perimeter, FieldNameErrorType); if (qualityConditions == null) { DeleteIssuesForAllQualityConditions(filter, objectSelection); } else { DeleteIssuesForQualityConditions(filter, objectSelection, qualityConditions); } }
private void DeleteIssuesForQualityConditions( [NotNull] IQueryFilter filter, [CanBeNull] IObjectSelection objectSelection, [NotNull] IEnumerable <QualityCondition> qualityConditions) { var qualityConditionsById = new Dictionary <int, QualityCondition>(); const int maxLength = 2000; // maximum length of IN(....) in ORACLE query StringBuilder idListBuilder = null; foreach (QualityCondition condition in qualityConditions) { string idString = condition.Id.ToString(CultureInfo.InvariantCulture); if (idListBuilder == null) { idListBuilder = new StringBuilder(idString); } else { if ((idListBuilder.Length + idString.Length + 1) > maxLength) { // the concatenated list gets too long, delete current batch DeleteIssues(filter, idListBuilder.ToString(), qualityConditionsById, objectSelection); idListBuilder = new StringBuilder(idString); qualityConditionsById.Clear(); } else { idListBuilder.AppendFormat(",{0}", idString); } } qualityConditionsById.Add(condition.Id, condition); } if (idListBuilder != null) { // there is an open batch DeleteIssues(filter, idListBuilder.ToString(), qualityConditionsById, objectSelection); } }
public void StartEditing() { if (Child is Gtk.Label) { IDesignArea d = WidgetUtils.GetDesignArea(this); IObjectSelection sel = d.GetSelection(this); if (sel == null) { sel = d.SetSelection(this, null); } sel.Disposed += SelectionDisposed; Remove(Child); Add(CreateEntry()); ShowAll(); Child.GrabFocus(); } }
protected override bool OnKeyPressEvent(Gdk.EventKey ev) { switch (ev.Key) { case Gdk.Key.Delete: case Gdk.Key.KP_Delete: IObjectSelection sel = GetSelection(); if (sel != null && sel.DataObject != null) { Wrapper.Widget wrapper = Wrapper.Widget.Lookup(sel.DataObject) as Wrapper.Widget; if (wrapper != null) { wrapper.Delete(); } } return(true); default: return(base.OnKeyPressEvent(ev)); } }
private void DeleteIssuesForAllQualityConditions( [NotNull] IQueryFilter queryFilter, [CanBeNull] IObjectSelection objectSelection) { Assert.ArgumentNotNull(queryFilter, nameof(queryFilter)); if (objectSelection == null) { DeleteIssues(queryFilter, null, null); } else { const bool fetchParameterValues = true; IList <QualityCondition> qualityConditions = _qualityConditionRepository.GetAll(fetchParameterValues); DeleteIssues(queryFilter, objectSelection, qualityConditions.ToDictionary(qcon => qcon.Id)); } }
void OnChildRemoved(object ob, ActionTreeNodeArgs args) { IDesignArea area = wrapper.GetDesignArea(); IObjectSelection asel = area.GetSelection(); ActionMenuItem curSel = asel != null ? asel.DataObject as ActionMenuItem : null; int pos = menuItems.IndexOf(curSel); ActionMenuItem mi = FindMenuItem(args.Node); if (mi != null) { // Remove the table row that contains the menu item Gtk.Table.TableChild tc = (Gtk.Table.TableChild)table [mi]; uint row = tc.TopAttach; mi.Detach(); menuItems.Remove(mi); foreach (Gtk.Widget w in table.Children) { tc = (Gtk.Table.TableChild)table [w]; if (tc.TopAttach >= row) { tc.TopAttach--; } if (tc.BottomAttach > row) { tc.BottomAttach--; } } if (pos != -1 && pos < menuItems.Count) { ((ActionMenuItem)menuItems[pos]).Select(); } else { SelectLastItem(); } GLib.Timeout.Add(50, new GLib.TimeoutHandler(RepositionSubmenu)); } }
private void DeleteIssues( [NotNull] IQueryFilter queryFilter, [NotNull] string commaSeparatedQualityConditionIds, [NotNull] IDictionary <int, QualityCondition> qualityConditionsById, [CanBeNull] IObjectSelection objectSelection) { Assert.ArgumentNotNull(queryFilter, nameof(queryFilter)); Assert.ArgumentNotNullOrEmpty(commaSeparatedQualityConditionIds, nameof(commaSeparatedQualityConditionIds)); Assert.ArgumentNotNull(qualityConditionsById, nameof(qualityConditionsById)); string whereClause = string.Format("{0} IN ({1})", FieldNameQualityConditionId, commaSeparatedQualityConditionIds); queryFilter.WhereClause = StringUtils.IsNotEmpty(queryFilter.WhereClause) ? string.Format("{0} AND {1}", queryFilter.WhereClause, whereClause) : whereClause; DeleteIssues(queryFilter, objectSelection, qualityConditionsById); }