void Update() { // Clear the last root term RootTerm = null; if (ParensValid() && ConstructQuery(null, 0, entry.Text)) { if (RootTerm != null) { //Log.DebugFormat("rootTerm = {0}", RootTerm); if (!(RootTerm is AndTerm)) { // A little hacky, here to make sure the root term is a AndTerm which will // ensure we handle the Hidden tag properly var root_parent = new AndTerm(null, null); RootTerm.Parent = root_parent; RootTerm = root_parent; } //Log.DebugFormat("rootTerm = {0}", RootTerm); if (!(RootTerm is AndTerm)) { // A little hacky, here to make sure the root term is a AndTerm which will // ensure we handle the Hidden tag properly var root_parent = new AndTerm(null, null); RootTerm.Parent = root_parent; RootTerm = root_parent; } //Log.DebugFormat ("condition = {0}", RootTerm.SqlCondition ()); query.TagTerm = new ConditionWrapper(RootTerm.SqlCondition()); } else { query.TagTerm = null; //Log.Debug ("root term is null"); } } }
private void Update() { // Clear the last root term root_term = null; if (ParensValid() && ConstructQuery(null, 0, entry.Text)) { if (RootTerm != null) { //Console.WriteLine("rootTerm = {0}", RootTerm); if (!(RootTerm is AndTerm)) { // A little hacky, here to make sure the root term is a AndTerm which will // ensure we handle the Hidden tag properly AndTerm root_parent = new AndTerm(null, null); RootTerm.Parent = root_parent; root_term = root_parent; } //Console.WriteLine("rootTerm = {0}", RootTerm); if (!(RootTerm is AndTerm)) { // A little hacky, here to make sure the root term is a AndTerm which will // ensure we handle the Hidden tag properly AndTerm root_parent = new AndTerm(null, null); RootTerm.Parent = root_parent; root_term = root_parent; } //Console.WriteLine ("condition = {0}", RootTerm.SqlCondition ()); query.ExtraCondition = RootTerm.SqlCondition(); } else { query.ExtraCondition = null; //Console.WriteLine ("root term is null"); } } }
public ArrayList InsertTerm(Tag [] tags, Term parent, Literal after) { int position; if (after != null) position = WidgetPosition (after.Widget) + 1; else position = Children.Length - 1; ArrayList added = new ArrayList (); foreach (Tag tag in tags) { //Console.WriteLine ("Adding tag {0}", tag.Name); // Don't put a tag into a Term twice if (parent != Root && (parent.FindByTag (tag, true)).Count > 0) continue; if (parent.Count > 0) { Widget sep = parent.SeparatorWidget (); InsertWidget (position, sep); position++; } // Encapsulate new OR terms within a new AND term of which they are the // only member, so later other terms can be AND'd with them // // TODO should really see what type of term the parent is, and // encapsulate this term in a term of the opposite type. This will // allow the query system to be expanded to work for multiple levels much easier. if (parent == rootTerm) { parent = new AndTerm (rootTerm, after); after = null; } Literal term = new Literal (parent, tag, after); term.TagsAdded += HandleTagsAdded; term.LiteralsMoved += HandleLiteralsMoved; term.AttachTag += HandleAttachTag; term.NegatedToggled += HandleNegated; term.Removing += HandleRemoving; term.Removed += HandleRemoved; term.RequireTag += Require; term.UnRequireTag += UnRequire; added.Add (term); // Insert this widget into the appropriate place in the hbox InsertWidget (position, term.Widget); } UpdateQuery (); return added; }
public void TestFixtureTearDown() { andTerm = null; }
public void TestFixtureSetUp() { andTerm = new AndTerm (null, null); }