Podešavanje Default Web Browser u LightSwitch za Web App pomoću Macroa

MSDN Samples Gallery: Cjelokupan detaljan opis i Source kod primjera možete naći na MSDN Gallery za LightSwitch: How to Set Default Browser for LightSwitch Web Application with Macro.

Ukoliko prilikom izrade Web aplikacija u LightSwitch-u imate potrebe da mijenjate Web preglednik (Browser) postoji dva načina kako to možete odraditi.

Jedan način je da putem Operativnog sistema kažete koji je Default Web Browser ili da u okviru samog Web Browser-a kažete da je baš taj Web Browser uvijek onaj koji će se pokretati.

Prilikom izrade LightSwitch Web aplikacija prethodna akcija može biti neprikladna. Mnogo bolji način da se to učini jeste da se koristi dio funkcionalnosti Visual Studio LightSwitch-a:

1-BrowseWithDialog

Način na koji ćemo doći do prethodnog dijaloga je sledeći:

  • U Solution Explorer promjenimo pogled sa Logical View na File View
  • Na putanji Project/Client/Screen desnim dugmetom miša odaberemo opciju Browse With

Izborom odgovarajućeg Web Browser-a i klikom na dugme Set as Default postavljamo odgovarajući preglednik. Ukoliko imate potrebe da stalno koristite ovu opciju kreiranjem Visual Basic Macro funkcije i dodjelom skraćenice na tastaturi se može izvršiti brže pokretanje funkcionalnosti. Na ovaj način je značajno ubrzano testiranje aplikacije.

Ukoliko vaša verzija VisualStudio omogućava rad sa Macro-ima, onda na putanji Tools/Macros/Macros IDE/My Macros/Add/Add Module dodajte modul sa nazivom LightSwitchBrowseWith. Potom iskopirajte cijeli naredni VB kod (Visual Studio Macro je moguće kreirati isključivo u VB programskom kodu):

Option Strict Off
Option Explicit Off

Imports EnvDTE
Imports System.IO

Public Module LightSwitchBrowseWith

  'Change the value of this constant to name of your root folder if your LightSwitch project is not in the root of the solution
  Private Const PROJECTS_FOLDER As String = ""

  Private Sub ShowBrowseWithMethod()
    Dim command As Integer = 1536 'File View
    Dim solutionName As String = DTE.Solution.Properties.Item("Name").Value
    Dim startupProject As String = DTE.Solution.Properties.Item("StartupProject").Value
    Dim fullItemName As String = Path.Combine(solutionName, PROJECTS_FOLDER, startupProject)

    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
    DTE.ActiveWindow.Object.GetItem(fullItemName).Select(vsUISelectionType.vsUISelectionTypeSelect)
    DTE.Commands.Raise("{1EF45AAF-900D-418E-8668-0F84C8404E52}", command, Customin, Customout)

    DTE.ActiveWindow.Object.GetItem(fullItemName).Select(vsUISelectionType.vsUISelectionTypeSelect)
    DTE.ActiveWindow.Object.DoDefaultAction() 'If project is not expandid in Logical View, next line will failed without DoDefaultAction()

    DTE.ActiveWindow.Object.GetItem(fullItemName & "\Client").Select(vsUISelectionType.vsUISelectionTypeSelect)
    DTE.ActiveWindow.Object.DoDefaultAction()

    DTE.ActiveWindow.Object.GetItem(fullItemName & "\Client\Screens").Select(vsUISelectionType.vsUISelectionTypeSelect)
    Try
      'Try block, because if we hit Cancel button in dialog "Browse With" exception will occur
       DTE.ExecuteCommand("File.BrowseWith")
    Catch ex As System.Exception
      Exit Sub
    End Try
  End Sub

  Public Sub ShowBrowseWith()
    ShowBrowseWithMethod()
  End Sub

End Module

Nakon snimanja Macro-a potrebno je dodjeliti kombinaciju tastera za brže pokretanje:

6-AssignShortcut

tako što ćete odraditi sledeće akcije:

  • Odabrati Keyboard (1) iz Environment sekcije, potom
  • Kucajte “lightswitch” (2),
  • Odaberite ShowBrowseWith Macro (3),
  • Dodjelite kombinaciju (Ctrl+Shift+W) (4),
  • Kliknite na Assign (5) i na kraju
  • Kliknite OK (6).

Ukoliko vam ne odgovara kombinacija tastera Ctrl+Shift+W možete odabrati bilo koju koja vama odgovara izborom kombinacije tastera i klikom na Assign dugme.

Ovaj Macro vam može poslužiti i kao ideja kako da automatizujete akcije koje često koristite u Visual Studio okruženju.

About Spaso Lazarevic

Spaso Lazarevic is Senior Software Developer working with Microsoft technologies. Leader of .NET User Group Bijeljina, speaker at Microsoft events, writter and blogger. Microsoft MVP for Visual C#.
This entry was posted in Programming and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s