public override GSCore ExecuteMessage(string token, GSCoreCollection args) { if (token.Equals("showNextPage")) { if (HasNextPage()) { CurrentPage++; } PostExecuteEvent("OnCurrentPageChanged"); } else if (token.Equals("showPrevPage")) { if (HasPrevPage()) { CurrentPage--; } PostExecuteEvent("OnCurrentPageChanged"); } else if (token.Equals("gotoNextEdit")) { SetNextEditableField(); } else if (token.Equals("acceptString")) { SMWordToken edit = GetFocusedEditField(); if (edit != null) { edit.AcceptString(args.getSafe(0).getStringValue()); } drawWordsModified = true; } else if (token.Equals("acceptEnter")) { SetNextEditableField(); } else if (token.Equals("acceptBack")) { SMWordToken edit = GetFocusedEditField(); if (edit != null) { edit.AcceptBack(); } drawWordsModified = true; } return(base.ExecuteMessage(token, args)); }
public override bool OnDropFinished(PVDragContext dc) { bool needUpdateDrawWords = false; /*if (this.Cardinality == SMConnectionCardinality.One && dc.draggedItem != null) * { * drawWords.Clear(); * DroppedItems.Clear(); * drawWordsModified = true; * needUpdateDrawWords = true; * } * else if (this.Cardinality == SMConnectionCardinality.Many) * { * needUpdateDrawWords = true; * } * else*/ { if (dc.draggedItem != null) { Point p = dc.lastPoint; p.Offset(-Area.Left, -Area.Top); SMWordToken lastToken = null; foreach (SMWordBase wt in drawWords) { if (wt is SMWordToken) { lastToken = wt as SMWordToken; } if (wt.rect.Contains(p)) { if (wt is SMWordToken) { SMWordToken wtk = (SMWordToken)wt; if (wtk.Editable) { wtk.AcceptString(dc.draggedItem.Tag); wtk.UIStateHover = false; drawWordsModified = true; return(true); } else if (wtk.Cardinality == SMConnectionCardinality.One || wtk.Cardinality == SMConnectionCardinality.Many) { wtk.UIStateHover = false; return(SendContentToToken(dc, wtk)); } } } } if (DropablesCount == 1 && lastToken != null) { return(SendContentToToken(dc, lastToken)); } } } if (base.OnDropFinished(dc) && needUpdateDrawWords) { SMWordBase wr = null; if (dc.draggedItem.Image != null) { wr = new SMWordImage(this.Font, dc.draggedItem); } else { wr = new SMWordText(this.Font, dc.draggedItem); } wr.Evaluation = this.HasImmediateEvaluation ? MNEvaluationType.Immediate : MNEvaluationType.Lazy; drawWords.Add(wr); drawWordsModified = true; return(true); } return(false); }