OSDN Git Service

とりあえずToolTipsでVenueの簡単な情報を表示できるようにしてみた
authorf_swallow <f_swallow@users.sourceforge.jp>
Tue, 17 May 2011 08:51:59 +0000 (17:51 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 18 Feb 2012 14:19:32 +0000 (23:19 +0900)
Tween/Foursquare.vb
Tween/Google.vb
Tween/Thumbnail.vb

index 56c1181..1738271 100644 (file)
@@ -63,12 +63,15 @@ Public Class Foursquare
         End If
     End Function
 
-    Public Function GetMapsUri(ByVal url As String) As String
+    Public Function GetMapsUri(ByVal url As String, ByRef refText As String) As String
         If Not AppendSettingDialog.Instance.IsPreviewFoursquare Then Return Nothing
 
         Dim urlId As String = Regex.Replace(url, "https?://(4sq|foursquare)\.com/", "")
 
-        If CheckInUrlsVenueCollection.ContainsKey(urlId) Then Return (New Google).CreateGoogleMapsUri(CheckInUrlsVenueCollection(urlId))
+        If CheckInUrlsVenueCollection.ContainsKey(urlId) Then
+            refText = CheckInUrlsVenueCollection(urlId).LocateInfo
+            Return (New Google).CreateGoogleMapsUri(CheckInUrlsVenueCollection(urlId))
+        End If
 
         Dim curVenue As FourSquareDataModel.Venue = Nothing
         Dim venueId As String = GetVenueId(url)
@@ -77,11 +80,17 @@ Public Class Foursquare
         curVenue = GetVenueInfo(venueId)
         If curVenue Is Nothing Then Return Nothing
 
-        Dim curLocation As New Google.GlobalLocation With {.Latitude = curVenue.Location.Latitude, .Longitude = curVenue.Location.Longitude}
+        Dim curLocation As New Google.GlobalLocation With {.Latitude = curVenue.Location.Latitude, .Longitude = curVenue.Location.Longitude, .LocateInfo = CreateVenueInfoText(curVenue)}
         CheckInUrlsVenueCollection.Add(urlId, curLocation)
+        refText = curLocation.LocateInfo
         Return (New Google).CreateGoogleMapsUri(curLocation)
     End Function
 
+    Private ReadOnly Property CreateVenueInfoText(ByVal info As FourSquareDataModel.Venue) As String
+        Get
+            Return info.Name + Environment.NewLine + info.Stats.UsersCount.ToString + "/" + info.Stats.CheckinsCount.ToString + Environment.NewLine + info.Location.Address + Environment.NewLine + info.Location.City + info.Location.State + Environment.NewLine + info.Location.Latitude.ToString + Environment.NewLine + info.Location.Longitude.ToString
+        End Get
+    End Property
     Public Function GetContent(ByVal method As String, _
                 ByVal requestUri As Uri, _
                 ByVal param As Dictionary(Of String, String), _
index 8c14863..3c24b0f 100644 (file)
@@ -286,6 +286,7 @@ Public Class Google
     Public Class GlobalLocation
         Public Property Latitude As Double
         Public Property Longitude As Double
+        Public Property LocateInfo As String
     End Class
 
 #End Region
index 332b11f..d0d9414 100644 (file)
@@ -2341,7 +2341,8 @@ Public Class Thumbnail
     ''' <remarks></remarks>
     Private Function Foursquare_CreateImage(ByVal args As CreateImageArgs) As Boolean
         ' TODO: サムネイル画像読み込み処理を記述します
-        Dim mapsUrl As String = Foursquare.GetInstance.GetMapsUri(args.url.Key)
+        Dim tipsText As String = ""
+        Dim mapsUrl As String = Foursquare.GetInstance.GetMapsUri(args.url.Key, tipsText)
         If mapsUrl Is Nothing Then Return False
         Dim img As Image = (New HttpVarious).GetImage(mapsUrl, args.url.Key, 10000, args.errmsg)
         If img Is Nothing Then
@@ -2349,7 +2350,7 @@ Public Class Thumbnail
         End If
         ' 成功した場合はURLに対応する画像、ツールチップテキストを登録
         args.pics.Add(New KeyValuePair(Of String, Image)(args.url.Key, img))
-        args.tooltipText.Add(New KeyValuePair(Of String, String)(args.url.Key, ""))
+        args.tooltipText.Add(New KeyValuePair(Of String, String)(args.url.Key, tipsText))
         Return True
     End Function
 #End Region