//Generate the Terms collection (of Term) based on an xml document //Called by BasicTerms.Create, once from ITATSystem.LoadFromDatabase public static List<Term> Create(XmlNode termsNode, ManagedItem managedItem, Template template) { List<Term> rtn = new List<Term>(termsNode.ChildNodes.Count); int order = 0; foreach (XmlNode termNode in termsNode) { Term t = null; switch (termNode.Name.ToString()) { case XMLNames._E_Text: t = new TextTerm(termNode, template, false); break; case XMLNames._E_Date: t = new DateTerm(termNode, template, false); break; case XMLNames._E_MSO: t = new MSOTerm(termNode, template, false); break; case XMLNames._E_Link: t = new LinkTerm(termNode, template, false); break; case XMLNames._E_Facility: t = new FacilityTerm(termNode, template, false); break; case XMLNames._E_Renewal: t = new RenewalTerm(termNode, managedItem != null, template, false); break; case XMLNames._E_PickList: t = new PickListTerm(termNode, template, false); break; case XMLNames._E_External: t = new ExternalTerm(termNode, managedItem, template, false); break; case XMLNames._E_PlaceHolderAttachments: t = new PlaceHolderAttachments(termNode, template, false); break; case XMLNames._E_PlaceHolderComments: t = new PlaceHolderComments(termNode, template, false); break; default: throw new XmlException(string.Format("Tried to create undefined term type {0}", termNode.Name.ToString())); } t.Order = order++; rtn.Add(t); } //If this is not a load of the ITATSystem terms, then ensure that the collection includes the Attachments and Comments terms. if (template != null) { List<Term> placeholderTerms = FindTermsOfType(rtn, (TermType.PlaceHolderAttachments | TermType.PlaceHolderComments)); if (placeholderTerms == null || (placeholderTerms != null && placeholderTerms.Count == 0)) { //If this is the first time these are being added, then this should be under Basic Security. Term t = new PlaceHolderAttachments(false, template, false); t.TermGroupID = template.BasicSecurityTermGroupID; t.Order = order++; rtn.Add(t); t = new PlaceHolderComments(false, template, false); t.TermGroupID = template.BasicSecurityTermGroupID; t.Order = order++; rtn.Add(t); } else if (placeholderTerms.Count != 2) { throw new Exception(string.Format("Encountered a PlaceHolder term count of {0:D} when 2 were expected", placeholderTerms.Count)); } } return rtn; }
public override Term RetroCopy(bool systemTerm, Template template) { PickListTerm pickListTerm = new PickListTerm(systemTerm, template, false); CopyBase(pickListTerm, template); pickListTerm._multiSelect = _multiSelect; pickListTerm._requiredSelectedValue = _requiredSelectedValue; pickListTerm._useTextNumberFormat = _useTextNumberFormat; pickListTerm._pickListItems = new List<PickListItem>(_pickListItems.Count); foreach (PickListItem pickListItem in _pickListItems) pickListTerm._pickListItems.Add(pickListItem.Copy()); return pickListTerm; }
public override Term Copy() { PickListTerm pickListTerm = new PickListTerm(SystemTerm, _template, IsFilter); CopyBase(pickListTerm, _template); pickListTerm._multiSelect = _multiSelect; pickListTerm._requiredSelectedValue = _requiredSelectedValue; pickListTerm._useTextNumberFormat = _useTextNumberFormat; pickListTerm._pickListItems = new List<PickListItem>(_pickListItems.Count); foreach (PickListItem pickListItem in _pickListItems) pickListTerm._pickListItems.Add(pickListItem.Copy()); return pickListTerm; }
private static Panel CreatePickListSearchControl(PickListTerm pickListTerm, bool canEditProfile, SecurityHelper securityHelper) { Panel pnl = new Panel(); pnl.ID = ControlID(pickListTerm.Name); if (pickListTerm.PickListItems.Count == 1) //1 picklist item: single check box { CheckBox chk = new CheckBox(); chk.BorderStyle = BorderStyle.None; chk.ID = pnl.ID + "_lst"; // ???? chk.CssClass = Common.Names._STYLE_CSSCLASS_EDIT; chk.Text = pickListTerm.PickListItems[0].Value; pnl.Controls.Add(chk); } else { if (pickListTerm.MultiSelect ?? false) // multi-select picklist: MultiSelectGrid control { pnl.Height = Unit.Pixel(4 + 20 * Math.Min(4, pickListTerm.PickListItems.Count)); pnl.Width = Unit.Percentage(100.0); MultiSelectGrid grd = new MultiSelectGrid(); grd.ID = pnl.ID + "_lst"; grd.CheckboxColumn = 0; grd.DataSource = pickListTerm.PickListItems; grd.BoundColumns = "Value"; //grd.DataKeyNames = new string[] { "Value" }; grd.Container = pnl.ID; grd.HeaderContainer = ""; grd.AutoGenerateColumns = false; grd.RowHighlighting = false; grd.EnableClickEvent = false; grd.EnableDoubleClickEvent = false; grd.EnableHeaderClick = false; grd.ShowHeader = false; grd.ColumnWidths = "100%"; grd.DataBind(); pnl.Controls.Add(grd); } else { if (pickListTerm.PickListItems.Count == 2) //2 item single-select picklist: RadioButtonList { RadioButtonList rdolst = new RadioButtonList(); rdolst.ID = pnl.ID + "_lst"; rdolst.CellPadding = 0; rdolst.CellSpacing = 0; rdolst.RepeatDirection = RepeatDirection.Vertical; AddListItems(rdolst, pickListTerm.PickListItems); pnl.Controls.Add(rdolst); } else // 3 or more item single-select list: DropDrownList { DropDownList ddl = new DropDownList(); ddl.ID = pnl.ID + "_lst"; ddl.Width = Unit.Percentage(100.0); ddl.Items.Add(new ListItem("(Select One)", "")); AddListItems(ddl, pickListTerm.PickListItems); pnl.Controls.Add(ddl); } } } return pnl; }