• R/O
  • HTTP
  • SSH
  • HTTPS

FooEditor: Commit


Commit MetaInfo

Revision006b768992ec4e82712aad2dcdf30863f15546cb (tree)
Time2014-12-14 01:46:12
Authorkonekoneko <test@cca....>
Commiterkonekoneko

Log Message

エクスプローラから開けるようにした

Change Summary

Incremental Difference

--- a/Metro/FooEditor/App.xaml.cs
+++ b/Metro/FooEditor/App.xaml.cs
@@ -1,6 +1,9 @@
11 using FooEditor.Common;
22
33 using System;
4+using System.Collections.Generic;
5+using System.Threading.Tasks;
6+using Windows.Storage;
47 using Windows.ApplicationModel;
58 using Windows.ApplicationModel.Activation;
69 using Windows.UI.Xaml;
@@ -40,11 +43,27 @@ namespace FooEditor
4043 /// <param name="args">起動要求とプロセスの詳細を表示します。</param>
4144 protected override async void OnLaunched(LaunchActivatedEventArgs args)
4245 {
46+ await LunchApp(args.PreviousExecutionState);
47+ // 現在のウィンドウがアクティブであることを確認します
48+ Window.Current.Activate();
49+ }
50+
51+ protected override async void OnFileActivated(FileActivatedEventArgs args)
52+ {
53+ Frame rootFrame = await LunchApp(args.PreviousExecutionState);
54+ MainPage mainPage = rootFrame.Content as MainPage;
55+ await mainPage.OnLoadFile(args.Files);
56+ // 現在のウィンドウがアクティブであることを確認します
57+ Window.Current.Activate();
58+ }
59+
60+ async Task<Frame> LunchApp(ApplicationExecutionState PreviousExecutionState)
61+ {
4362 Frame rootFrame = Window.Current.Content as Frame;
4463
4564 // ウィンドウに既にコンテンツが表示されている場合は、アプリケーションの初期化を繰り返さずに、
4665 // ウィンドウがアクティブであることだけを確認してください
47-
66+
4867 if (rootFrame == null)
4968 {
5069 // ナビゲーション コンテキストとして動作するフレームを作成し、最初のページに移動します
@@ -52,7 +71,7 @@ namespace FooEditor
5271 //フレームを SuspensionManager キーに関連付けます
5372 SuspensionManager.RegisterFrame(rootFrame, "AppFrame");
5473
55- if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
74+ if (PreviousExecutionState == ApplicationExecutionState.Terminated)
5675 {
5776 // 必要な場合のみ、保存されたセッション状態を復元します
5877 try
@@ -74,7 +93,7 @@ namespace FooEditor
7493 // ナビゲーション スタックが復元されていない場合、最初のページに移動します。
7594 // このとき、必要な情報をナビゲーション パラメーターとして渡して、新しいページを
7695 // を構成します
77- if (!rootFrame.Navigate(typeof(MainPage), "AllGroups"))
96+ if (!rootFrame.Navigate(typeof(MainPage),"AllGroup"))
7897 {
7998 throw new Exception("Failed to create initial page");
8099 }
@@ -84,8 +103,7 @@ namespace FooEditor
84103 SettingsPane.GetForCurrentView().CommandsRequested += OnCommandsRequested;
85104 this.SettingRegistored = true;
86105 }
87- // 現在のウィンドウがアクティブであることを確認します
88- Window.Current.Activate();
106+ return rootFrame;
89107 }
90108
91109 void OnCommandsRequested(SettingsPane settingsPane, SettingsPaneCommandsRequestedEventArgs eventArgs)
--- a/Metro/FooEditor/MainPage.xaml.cs
+++ b/Metro/FooEditor/MainPage.xaml.cs
@@ -1,7 +1,9 @@
11 using System;
2+using System.Threading.Tasks;
23 using System.Collections.Generic;
34 using Windows.UI.Xaml;
45 using Windows.UI.Xaml.Controls;
6+using Windows.Storage;
57
68 // 基本ページのアイテム テンプレートについては、http://go.microsoft.com/fwlink/?LinkId=234237 を参照してください
79
@@ -37,6 +39,11 @@ namespace FooEditor
3739 await this.vm.NavigateHomePage(pageState);
3840 }
3941
42+ public async Task OnLoadFile(IReadOnlyCollection<IStorageItem> files)
43+ {
44+ await this.vm.CreateDocuments(files);
45+ }
46+
4047 void AppBar_Opened(object sender, object e)
4148 {
4249 AppBar appBar = (AppBar)sender;
--- a/Metro/FooEditor/MainPageViewModel.cs
+++ b/Metro/FooEditor/MainPageViewModel.cs
@@ -225,7 +225,6 @@ namespace FooEditor
225225 if (file != null)
226226 {
227227 await this.CreateDocument(file);
228- StorageApplicationPermissions.MostRecentlyUsedList.Add(file, "mrufile");
229228 }
230229 });
231230 }
@@ -386,6 +385,14 @@ namespace FooEditor
386385 this.ActiveDocument(info);
387386 }
388387
388+ public async Task CreateDocuments(IReadOnlyCollection<IStorageItem> files)
389+ {
390+ foreach(StorageFile file in files)
391+ {
392+ await this.CreateDocument(file);
393+ }
394+ }
395+
389396 public async Task CreateDocument(StorageFile file)
390397 {
391398 if (file != null)
@@ -398,6 +405,7 @@ namespace FooEditor
398405 this.ActiveDocument(info);
399406
400407 await doc.LoadFile(file);
408+ StorageApplicationPermissions.MostRecentlyUsedList.Add(file, "mrufile");
401409 }
402410 }
403411
--- a/Metro/FooEditor/Package.appxmanifest
+++ b/Metro/FooEditor/Package.appxmanifest
@@ -32,6 +32,15 @@
3232 </m2:InitialRotationPreference>
3333 <m2:ApplicationView MinWidth="width320" />
3434 </m2:VisualElements>
35+ <Extensions>
36+ <Extension Category="windows.fileTypeAssociation">
37+ <FileTypeAssociation Name="text-filetype">
38+ <SupportedFileTypes>
39+ <FileType>.txt</FileType>
40+ </SupportedFileTypes>
41+ </FileTypeAssociation>
42+ </Extension>
43+ </Extensions>
3544 </Application>
3645 </Applications>
3746 <Capabilities>
Show on old repository browser