Fire up your applications with Jetfire
RSS
Jetfire Wiki

About Us

Code Plex Projects

COR COR Administration Debug GUI Jetfire Administration Jetfire Code Jetfire Core Jetfire Language Jetfire Web Part Library misc Release Notes Roles Solutions States Training User Administration Versioning Web Parts Web Service Website Design Website Procedures Wiki conventions WordML Workflow Administration

Quick Search
»
Advanced Search »

PoweredBy

Table of Contents [Hide/Show]


Jetfire Code: Contact Lists

The Jetfire Code Class for Contact Lists is shown below in the box. This file contains a set of classes that are used in Contact Workflows.

// C O N T A C T   L I S T S     W O R K F L O W
//===================================================================================
// ContactLists.txt
//===================================================================================
// Copyright (C) 2007 TrackerRealm Corporation
// This file is part of Jetfire.  http://Jetfire.ca
// 
// Jetfire is open software: you can redistribute it and/or modify it under the terms
// of the GNU General Public License as published by the Free Software Foundation,
// version 3 of the License.
// 
// Jetfire is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
// See the GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License along with Jetfire.  
// If not, see http://www.gnu.org/licenses.
// REMOVAL OF THIS NOTICE IS VIOLATION OF THE COPYRIGHT.
//===================================================================================
//
// This file contains classes for:
// - Tag: a generic 'tag' used for categorization of workflows
// - Note: a simple note to add text
// - Address: a general address for a contact
// - EmailAddres: an email address for a contact
// - Phone: a phone number for a contact

namespace JetfireContacts
{
	// DisplayName = "Tag";
	// ToolTip = "Represents a general tag used for categorization.";
	public workflow Tag
	{
		// C O N S T R U C T O R - Instantiate the Tag
		public Tag()
		{
			Subject = " New Tag";
		}
		public Tag(string subject)
		{
			Subject = subject;
			ToolTip = subject;
		}
		public Tag(string subject, string tooltip)
		{
			Subject = subject;
			ToolTip = tooltip;
		}
	}

	// DisplayName = "Note";
	// ToolTip = "Notes may be managed as a workflow.  This makes it simple to add states for the note, who can/cannot edit the note, add more properties and more."
	public workflow Note
	{
		// C O N S T R U C T O R
		public Note()
		{
			Subject = " New Note";
			FileType = FileType.None;
			Tags = new List();
			enterstate Start();
		}
		public Note(string subject)
		{
			Subject = subject;
			FileType = FileType.None;
			Tags = new List();
			enterstate Start();
		}
		public Note(string subject, string body)
		{
			Subject = subject;
			Body = body;
			FileType = FileType.None;
			Tags = new List();
			enterstate Start();
		}
		// S T A T E S
		// State Transition        Command       Comment
		// Instantiate -> Start    New           The configuration object enters the New state when instantiated
		// Start -> Valid          Approve       The user approves the data
		// Valid -> Deleted        Delete        This is an end state
		//
		// S T A T E   M E T H O D S
		public Start()
		{
		}
		public Valid()
		{
		}
		public Deleted()
		{
		}
		public Superceded()
		{
		}
		// C O M M A N D S
		// The Approve command is used to promote the note
		public void Approve() : states(Start, Deleted)
		{
			enterstate Valid();
		}
		// The Delete command is used to delete the note
		public void Delete() : states(Valid)
		{
			enterstate Deleted();
		}
		// The Supercede command is used to supercede the note
		public void Supercede() : states(Valid)
		{
			enterstate Superceded();
		}
		// P R O P E R T I E S
		public string Body
		{
			get;
			set;
		}
		public FileType FileType
		{
			get;
			set;
		}
		public List Tags
		{
			get;
			private set;
		}
	}

	// DisplayName = "Address";
	// ToolTip = "This is an address that can be used with contacts.";
	public workflow Address
	{
		// C O N S T R U C T O R - Instantiate the Address
		public Address()
		{
			Subject = " Address";
			Country = Country.None;
			AddressType = LocationType.None;
		}
		public Address(string subject)
		{
			Subject = subject;
			ToolTip = subject;
			Country = Country.None;
			AddressType = LocationType.None;
		}
		public Address(string subject, string tooltip)
		{
			Subject = subject;
			ToolTip = tooltip;
			Country = Country.None;
			AddressType = LocationType.None;
		}

		// PROPERTIES
		string address1;
		string address2;
		string city;
		string pc;
		Province province = Province.None;

		public string Address1
		{
			get { return address1;		}
			set
			{ 
				address1 = value; 
				UpdateSubject();
			}
		}
		public string Address2
		{
			get { return address2;		}
			set
			{ 
				address2 = value; 
				UpdateSubject();
			}
		}
		public string City
		{
			get { return city;			}
			set
			{ 
				city = value; 
				UpdateSubject();
			}
		}
		public string PostalCode
		{
			get { return pc;			}
			set
			{ 
				pc = value; 
				UpdateSubject();
			}
		}
		public Province Province
		{
			get { return province;		}
			set
			{ 
				province = value; 
				UpdateSubject();
			}
		}
		public Country Country
		{
			get;
			set;
		}
		public LocationType AddressType
		{
			get;
			set;
		}
		private void UpdateSubject()
		{
			string s;
			if (address1.Length > 0)
			{
				s = address1;
			}
			if (address2.Length > 0)
			{
				s += " " + address2;
			}
			if (city.Length > 0)
			{
				s += " " + city;
			}
			s += " " + province.ToString();
			if (pc.Length > 0)
			{
				s += " " + pc;
			}
			Subject = s;
		}
	}

	// DisplayName = "EmailAddress";
	// ToolTip = "This is an email address that can be used with contacts.";
	public workflow EmailAddress
	{
		// C O N S T R U C T O R - Instantiate the EmailAddress
		public EmailAddress()
		{
			Subject = " Email Address";
			EmailAddressType = LocationType.None;
		}
		public EmailAddress(string subject)
		{
			Subject = subject;
			ToolTip = subject;
			EmailAddressType = LocationType.None;
		}
		public EmailAddress(string subject, string tooltip)
		{
			Subject = subject;
			ToolTip = tooltip;
			EmailAddressType = LocationType.None;
		}

		// PROPERTIES
		string emailName;
		string address;

		public string Address
		{
			get { return address;		}
			set 
			{ 
				address = value;	
				UpdateSubject();
			}
		}
		public string EmailName
		{
			get { return emailName;	}
			set 
			{ 
				emailName = value;	
				UpdateSubject();
			}
		}
		public LocationType EmailAddressType
		{
			get;
			set;
		}

		// Private Methods
		private void UpdateSubject()
		{
			string s;
			if (address.Length > 0)
			{
				s = "Email: " + address;
			}
			if (emailName.Length > 0)
			{
				s += " (";
				s += emailName;
				s += ")";
			}
			Subject = s;
		}
	}

	// DisplayName = "Phone";
	// ToolTip = "This is an phone number that can be used with contacts.";
	public workflow Phone
	{
		// C O N S T R U C T O R - Instantiate the Phone Number
		public Phone()
		{
			Subject = " Phone Number";
			PhoneNumberType = LocationType.None;
		}
		public Phone(string subject)
		{
			Subject = subject;
			ToolTip = subject;
			PhoneNumberType = LocationType.None;
		}
		public Phone(string subject, string tooltip)
		{
			Subject = subject;
			ToolTip = tooltip;
			PhoneNumberType = LocationType.None;
		}

		// PROPERTIES
		string number;
		string extension;

		public string PhoneNumber
		{
			get { return number;		}
			set 
			{ 
				number = value;
				UpdateSubject();
			}
		}
		public string Extension
		{
			get { return extension;	}
			set 
			{
				extension = value;
				UpdateSubject();
			}
		}     
		public LocationType PhoneNumberType
		{
			get;
			set;
		}

		// Private Methods
		private void UpdateSubject()
		{
			string s;
			if (number.Length > 0)
			{
				s = "Phone: " + number;
			}
			if (extension.Length > 0)
			{
				s += " x:";
				s += extension;
			}
			Subject = s;
		}
	}
}

See Also

Jetfire Code Library
Jetfire Contacts Code Library

ScrewTurn Wiki version 3.0.4.560. Some of the icons created by FamFamFam.