//
// This program is free 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; either version 3 of the License, or
// (at your option) any later version.
//
// This program 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 this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using Do.Universe.Common;
using Do.Universe;
using GConf;

namespace JIRA
{		
	public class JIRAIssueAction : OpenUrlAction
	{
		public override string Name 
		{
			get { return "View JIRA Issue"; }
		}

		public override string Description 
		{
			get { return "Views the specified JIRA Issue"; }
		}

		public override string Icon 
		{
			get { return "web-browser"; }
		}

		/// <value>
		/// We support ITextItem which we then map to a JIRA issue code
		/// </value>
		public override IEnumerable<Type> SupportedItemTypes
		{
			get { return new Type[] { typeof (JIRAIssueItem) }; }
        }

		
		/// <summary>
		/// Which the matching code, return JIRA link
		/// </returns>
		public override IEnumerable<Item> Perform( IEnumerable<Item> items, IEnumerable<Item> modItems )
		{
			List<Item> urls= new List<Item>();
			
			// Build up full urls from the issue codes
			foreach( Item item in items )
			{
				urls.Add( new TextItem( ( item as JIRAIssueItem ).Url ) );
			}	
			
			return base.Perform( urls.ToArray(), modItems );
		}
	}
}