~cszikszoy/do-plugins/pastebin

« back to all changes in this revision

Viewing changes to Launchpad/src/LaunchpadBugsItem.cs

  • Committer: Christopher James Halse Rogers
  • Date: 2008-02-11 23:34:16 UTC
  • Revision ID: chalserogers@gmail.com-20080211233416-8vtjulsmfhsvblgv
The Great Copyright Push continues
Add AUTHORS, COPYING & COPYRIGHT
Add license headers to Epiphany & EyeOfGNOME plugins
Add license headers to Template plugins

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* LaunchpadBugsItem.cs
2
 
 *
3
 
 * GNOME Do is the legal property of its developers. Please refer to the
4
 
 * COPYRIGHT file distributed with this source distribution.
5
 
 *
6
 
 * This program is free software: you can redistribute it and/or modify
7
 
 * it under the terms of the GNU General Public License as published by
8
 
 * the Free Software Foundation, either version 3 of the License, or
9
 
 * (at your option) any later version.
10
 
 *
11
 
 * This program is distributed in the hope that it will be useful,
12
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 
 * GNU General Public License for more details.
15
 
 *
16
 
 * You should have received a copy of the GNU General Public License
17
 
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
 
 */
19
 
using System;
20
 
using System.Text.RegularExpressions;
21
 
using Do.Universe;
22
 
 
23
 
using Do.Addins;
24
 
 
25
 
namespace Do.Launchpad
26
 
{
27
 
        public class LaunchpadBugNumberItem : LaunchpadItem
28
 
        {
29
 
                public LaunchpadBugNumberItem() { }
30
 
                public string Name { get { return "Bug Number"; } }
31
 
                public string Description { get { return "Find bug by number"; } }
32
 
                
33
 
                public string Icon
34
 
                { 
35
 
                        get { return LaunchpadIcons.Instance.GetIconPath("LaunchpadBugs.png"); }
36
 
                }
37
 
 
38
 
                public bool SupportsItems(IItem[] items)
39
 
                {
40
 
                        //Numbers only.
41
 
                        Regex numbers = new Regex(@"^\d+$");
42
 
                        return numbers.IsMatch((items[0] as ITextItem).Text);
43
 
                }
44
 
 
45
 
                public void Perform (IItem item)
46
 
                {
47
 
                        Util.Environment.Open(string.Format("https://bugs.launchpad.net/ubuntu/+bug/{0}", (item as ITextItem).Text));
48
 
                }
49
 
        }
50
 
 
51
 
        public class LaunchpadBugReportItem : LaunchpadItem
52
 
        {
53
 
                public LaunchpadBugReportItem() { }
54
 
                public string Name { get { return "Bug Report"; } }
55
 
                public string Description { get { return "Report an Ubuntu bug at Launchpad"; } }
56
 
                
57
 
                public string Icon
58
 
                { 
59
 
                        get { return LaunchpadIcons.Instance.GetIconPath("LaunchpadBugs.png"); }
60
 
                }
61
 
 
62
 
                public bool SupportsItems(IItem[] items)
63
 
                {
64
 
                        return true;
65
 
                }
66
 
 
67
 
                public void Perform (IItem item)
68
 
                {
69
 
                        Util.Environment.Open("https://launchpad.net/ubuntu/+filebug");
70
 
                }
71
 
        }
72
 
 
73
 
        public class LaunchpadPackageBugsItem : LaunchpadItem
74
 
        {
75
 
                public LaunchpadPackageBugsItem() { }
76
 
                public string Name { get { return "Project Bugs"; } }
77
 
                public string Description { get { return "Show open bugs in a project at Launchpad"; } }
78
 
                
79
 
                public string Icon
80
 
                { 
81
 
                        get { return LaunchpadIcons.Instance.GetIconPath("LaunchpadBugs.png"); }
82
 
                }
83
 
 
84
 
                public bool SupportsItems(IItem[] items)
85
 
                {
86
 
                        //Package name can't have a space
87
 
                        Regex numbers = new Regex(@"\s+");
88
 
                        return !numbers.IsMatch((items[0] as ITextItem).Text);
89
 
                }
90
 
 
91
 
                public void Perform (IItem item)
92
 
                {
93
 
                        Util.Environment.Open(string.Format("https://bugs.launchpad.net/{0}", (item as ITextItem).Text));
94
 
                }
95
 
        }
96
 
 
97
 
        public class LaunchpadBugSearchItem : LaunchpadItem
98
 
        {
99
 
                public LaunchpadBugSearchItem() { }
100
 
                public string Name { get { return "Ubuntu Bug Search"; } }
101
 
                public string Description { get { return "Search for Ubuntu bugs at Launchpad"; } }
102
 
                public string Icon
103
 
                { 
104
 
                        get { return LaunchpadIcons.Instance.GetIconPath("LaunchpadBugs.png"); }
105
 
                }
106
 
 
107
 
                public bool SupportsItems(IItem[] items)
108
 
                {
109
 
                        return true;
110
 
                }
111
 
 
112
 
                public void Perform (IItem item)
113
 
                {
114
 
                        Regex spaces = new Regex(@"\s+");
115
 
                        string query = (item as ITextItem).Text;
116
 
                        string[] qwords = spaces.Split(query);
117
 
                        Util.Environment.Open("https://bugs.launchpad.net/ubuntu/+bugs?field.searchtext=" + string.Join("+", qwords));
118
 
                }
119
 
        }
120
 
}