Ejemplo n.º 1
0
		//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;
		}
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
		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;
		}