Develop and Download Open Source Software

Browse Subversion Repository

Contents of /RsiEditor/ApplicationManager.cs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (show annotations) (download)
Fri Jun 4 08:26:57 2010 UTC (13 years, 10 months ago) by pex
File size: 18397 byte(s)


1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4 using System.IO;
5 using System.Xml;
6 using System.Windows.Forms;
7
8 namespace RipSync.Managers
9 {
10 /// <summary>
11 /// アプリケーション全体の情報を保持するクラス。
12 /// </summary>
13 public class ApplicationManager
14 {
15 static private ApplicationManager instance = null;
16
17 private string filename = null;
18 //private bool isChanged = false;
19
20 //各ウインドウ・コントロール
21 //private Forms.MainForm mainForm = null;
22 //private Forms.EditControl editControl = null;
23 //private Forms.EditControlForm editControlForm = null;
24 //private Forms.ObjectsControl objectsControl = null;
25 //private Forms.ObjectsControlForm objectsControlForm = null;
26 //private Forms.ViewControl viewControl = null;
27
28 //マネージャー
29 //private TimeTableManager timeTableManager = null;
30 //private DrawObjectManager drawObjectManager = null;
31 //private SoundManager soundManager = null;
32 //private TimeLineManager timeLineManager = null;
33 //private CanvasManager canvasManager = null;
34 //private PreviewManager previewManager = null;
35
36 //コンフィグ
37 private Configuration config = new Configuration();
38
39 /// <summary>
40 /// 唯一のインスタンスを得る。
41 /// </summary>
42 /// <returns></returns>
43 static public ApplicationManager GetInstance()
44 {
45 if (instance == null)
46 {
47 instance = new ApplicationManager();
48 }
49 return instance;
50 }
51
52 /// <summary>
53 /// プライベートコンストラクタ。
54 /// </summary>
55 private ApplicationManager()
56 {
57 }
58
59 /// <summary>
60 /// 実行する。
61 /// </summary>
62 //public void Run()
63 //{
64 // System.Windows.Forms.Application.Run(MainForm);
65 //}
66
67 /// <summary>
68 /// 表示をリフレッシュする。
69 /// </summary>
70 //public void Refresh()
71 //{
72 // ObjectsControl.Refresh();
73 // EditControl.Refresh();
74 // PreviewManager.RefreshParameter();
75 // PreviewManager.RefreshDraw();
76 //}
77
78 #region アプリケーションコンフィグ
79
80 /// <summary>
81 /// デフォルトのコンフィグファイル名を取得する。
82 /// </summary>
83 /// <returns></returns>
84 static public string GetDefaultConfigFileName()
85 {
86 string spath = System.Windows.Forms.Application.StartupPath;
87 string cpath = Path.Combine(spath, "Configurations");
88
89 if (!Directory.Exists(cpath))
90 {
91 Directory.CreateDirectory(cpath);
92 }
93
94 return Path.Combine(cpath, "global.config");
95 }
96
97 /// <summary>
98 /// コンフィグを保存する。
99 /// </summary>
100 /// <returns></returns>
101 public bool SaveConfig()
102 {
103 return SaveConfig(GetDefaultConfigFileName());
104 }
105
106 /// <summary>
107 /// コンフィグを保存する。
108 /// </summary>
109 /// <param name="_filename"></param>
110 /// <returns></returns>
111 public bool SaveConfig(string _filename)
112 {
113 using (System.IO.TextWriter writer = new System.IO.StreamWriter(_filename))
114 {
115 System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Configuration));
116 serializer.Serialize(writer, config);
117 }
118
119 return true;
120 }
121
122 /// <summary>
123 /// コンフィグを読み込む。
124 /// </summary>
125 /// <returns></returns>
126 public bool LoadConfig()
127 {
128 string fn = GetDefaultConfigFileName();
129 if (File.Exists(fn))
130 {
131 return LoadConfig(fn);
132 }
133 else
134 {
135 config = new Configuration();
136 return true;
137 }
138 }
139
140 /// <summary>
141 /// コンフィグを読み込む。
142 /// </summary>
143 /// <param name="_filename"></param>
144 /// <returns></returns>
145 public bool LoadConfig(string _filename)
146 {
147 using (System.IO.TextReader reader = new System.IO.StreamReader(_filename))
148 {
149 System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Configuration));
150 config = (Configuration)serializer.Deserialize(reader);
151 }
152 return true;
153 }
154
155 /// <summary>
156 /// コンフィグを取得する。
157 /// </summary>
158 public Configuration Configuration
159 {
160 get
161 {
162 return config;
163 }
164 }
165
166 #endregion
167
168 //以下未使用のため全部コメント
169 //#region ドキュメント管理
170
171 ///// <summary>
172 ///// 設定をクリアするか確認する。
173 ///// </summary>
174 ///// <returns></returns>
175 //public bool ClearCheck()
176 //{
177 // if (isChanged)
178 // {
179 // DialogResult dr = MessageBox.Show("設定が変更されています\n設定を保存しますか?", "質問", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
180 // if (dr == DialogResult.No) return true;
181 // else if (dr == DialogResult.Cancel) return false;
182 // else
183 // {
184 // if (filename == null || filename == "")
185 // {
186 // SaveFileDialog sfd = new SaveFileDialog();
187 // sfd.Filter = "RSPファイル(*rsp)|*.rsp|すべてのファイル(*.*)|*.*";
188
189 // if (sfd.ShowDialog() != DialogResult.OK) return false;
190
191 // filename = sfd.FileName;
192 // }
193
194 // return Save(filename);
195 // }
196 // }
197
198 // return true;
199 //}
200
201 ///// <summary>
202 ///// 新規作成する。
203 ///// </summary>
204 ///// <returns></returns>
205 //public bool New()
206 //{
207 // if (ClearCheck())
208 // {
209 // filename = null;
210 // DrawObjectManager.Clear();
211 // SoundManager.SetSoundFile(null);
212 // TimeTableManager.Clear();
213 // TimeLineManager.TimeLine.Clear();
214 // CanvasManager.Clear();
215 // PreviewManager.Clear();
216 // Refresh();
217
218 // IsChanged = false;
219 // }
220 // return true;
221 //}
222
223 ///// <summary>
224 ///// 設定を保存する。
225 ///// </summary>
226 ///// <param name="_filename"></param>
227 ///// <returns></returns>
228 //public bool Save(string _filename)
229 //{
230 // Logger.GetInstance().Write(LogLevel.Info, "AppManager", "設定を保存します。");
231 // filename = _filename;
232
233 // try
234 // {
235 // XmlDocument doc = new XmlDocument();
236 // XmlElement elm = doc.CreateElement("Settings");
237 // doc.AppendChild(elm);
238
239 // XmlElement elm2;
240
241 // elm2 = doc.CreateElement("View");
242 // elm.AppendChild(elm2);
243 // PreviewManager.Save(doc, elm2);
244
245 // elm2 = doc.CreateElement("Canvas");
246 // elm.AppendChild(elm2);
247 // CanvasManager.Save(doc, elm2);
248
249 // elm2 = doc.CreateElement("Sound");
250 // elm.AppendChild(elm2);
251 // SoundManager.Save(doc, elm2);
252
253 // elm2 = doc.CreateElement("TimeTable");
254 // elm.AppendChild(elm2);
255 // TimeTableManager.Save(doc, elm2);
256
257 // elm2 = doc.CreateElement("DrawObject");
258 // elm.AppendChild(elm2);
259 // DrawObjectManager.Save(doc, elm2);
260
261 // elm2 = doc.CreateElement("TimeLine");
262 // elm.AppendChild(elm2);
263 // TimeLineManager.Save(doc, elm2);
264
265 // doc.Save(_filename);
266 // IsChanged = false;
267 // return true;
268 // }
269 // catch (Exception e)
270 // {
271 // Logger.GetInstance().ErrorWrite("AppManager", e);
272 // MessageBox.Show("保存に失敗しました。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
273 // return false;
274 // }
275 //}
276
277 ///// <summary>
278 ///// 設定を読み込む。
279 ///// </summary>
280 ///// <param name="_filename"></param>
281 ///// <returns></returns>
282 //public bool Load(string _filename)
283 //{
284 // if (!ClearCheck()) return false;
285
286 // Logger.GetInstance().Write(LogLevel.Info, "AppManager", "設定を読み込みます。");
287 // filename = _filename;
288
289 // try
290 // {
291 // XmlDocument doc = new XmlDocument();
292 // doc.Load(_filename);
293
294 // if (!doc.HasChildNodes)
295 // {
296 // throw new Exception("ファイル形式が不正です。");
297 // }
298 // XmlElement relm = null;
299 // foreach (XmlNode node in doc.ChildNodes)
300 // {
301 // if (node is XmlElement)
302 // {
303 // relm = (XmlElement)doc.ChildNodes[0];
304 // break;
305 // }
306 // }
307 // if (relm == null)
308 // {
309 // throw new Exception("ファイル形式が不正です。");
310 // }
311
312 // foreach (XmlNode elm in relm.ChildNodes)
313 // {
314 // if (elm is XmlComment) continue;
315
316 // switch (elm.Name)
317 // {
318 // case "View":
319 // PreviewManager.Load(doc, (XmlElement)elm);
320 // break;
321 // case "Canvas":
322 // CanvasManager.Load(doc, (XmlElement)elm);
323 // break;
324 // case "Sound":
325 // SoundManager.Load(doc, (XmlElement)elm);
326 // break;
327 // case "TimeTable":
328 // TimeTableManager.Load(doc, (XmlElement)elm);
329 // break;
330 // case "DrawObject":
331 // DrawObjectManager.Load(doc, (XmlElement)elm);
332 // break;
333 // case "TimeLine":
334 // TimeLineManager.Load(doc, (XmlElement)elm);
335 // break;
336 // }
337 // }
338
339 // isChanged = false;
340 // return true;
341 // }
342 // catch (Exception e)
343 // {
344 // Logger.GetInstance().ErrorWrite("AppManager", e);
345 // MessageBox.Show("読み込みに失敗しました。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
346 // return false;
347 // }
348 //}
349
350 ///// <summary>
351 ///// 絶対パスに変換する。
352 ///// </summary>
353 ///// <returns></returns>
354 //public string ToFullPath(string _path)
355 //{
356 // if (_path == null || _path == "") return _path;
357
358 // try
359 // {
360 // string s = System.Web.HttpUtility.UrlDecode(_path);
361
362 // Uri uri = new Uri(s, UriKind.Relative);
363 // if (!uri.IsAbsoluteUri)
364 // {
365 // Uri uri2 = new Uri(filename);
366 // uri = new Uri(uri2, uri);
367 // }
368
369 // return uri.LocalPath;
370 // }
371 // catch (UriFormatException)
372 // {
373 // return _path;
374 // }
375 //}
376
377 ///// <summary>
378 ///// 相対パスに変換する。
379 ///// </summary>
380 ///// <param name="_path"></param>
381 ///// <returns></returns>
382 //public string ToRelativePath(string _path)
383 //{
384 // if (_path == null || _path == "") return _path;
385
386 // try
387 // {
388 // Uri uri = new Uri(_path);
389 // Uri uri2 = new Uri(filename);
390 // string path = uri2.MakeRelativeUri(uri).ToString();
391
392 // if (path.Contains("../"))
393 // {
394 // return _path;
395 // }
396 // else
397 // {
398 // return path;
399 // }
400 // }
401 // catch (UriFormatException)
402 // {
403 // return _path;
404 // }
405 //}
406
407
408 ///// <summary>
409 ///// ファイル名を取得する。
410 ///// </summary>
411 //public string FileName
412 //{
413 // get
414 // {
415 // return filename;
416 // }
417 //}
418
419 ///// <summary>
420 ///// 変更されたか取得・設定する。
421 ///// </summary>
422 //public bool IsChanged
423 //{
424 // get
425 // {
426 // return isChanged;
427 // }
428 // set
429 // {
430 // isChanged = value;
431 // }
432 //}
433
434 //#endregion
435
436 //#region 各種コントロール
437
438 ///// <summary>
439 ///// メインフォームを取得する。
440 ///// </summary>
441 //internal Forms.MainForm MainForm
442 //{
443 // get
444 // {
445 // if (mainForm == null || mainForm.IsDisposed)
446 // {
447 // mainForm = new Forms.MainForm();
448 // }
449 // return mainForm;
450 // }
451 //}
452
453 ///// <summary>
454 ///// 編集コントロールを取得する。
455 ///// </summary>
456 //internal Forms.EditControl EditControl
457 //{
458 // get
459 // {
460 // if (editControl == null || editControl.IsDisposed)
461 // {
462 // editControl = new Forms.EditControl();
463 // }
464 // return editControl;
465 // }
466 //}
467
468 ///// <summary>
469 ///// 編集コントロールフォームを取得する。
470 ///// </summary>
471 //internal Forms.EditControlForm EditControlForm
472 //{
473 // get
474 // {
475 // if (editControlForm == null || editControlForm.IsDisposed)
476 // {
477 // editControlForm = new RipSync.Forms.EditControlForm();
478 // }
479 // return editControlForm;
480 // }
481 //}
482
483 ///// <summary>
484 ///// オブジェクトコントロールを取得する。
485 ///// </summary>
486 //internal Forms.ObjectsControl ObjectsControl
487 //{
488 // get
489 // {
490 // if (objectsControl == null || objectsControl.IsDisposed)
491 // {
492 // objectsControl = new Forms.ObjectsControl();
493 // }
494 // return objectsControl;
495 // }
496 //}
497
498 ///// <summary>
499 ///// オブジェクトコントロールフォームを取得する。
500 ///// </summary>
501 //internal Forms.ObjectsControlForm ObjectsControlForm
502 //{
503 // get
504 // {
505 // if (objectsControlForm == null || objectsControlForm.IsDisposed)
506 // {
507 // objectsControlForm = new RipSync.Forms.ObjectsControlForm();
508 // }
509 // return objectsControlForm;
510 // }
511 //}
512
513 ///// <summary>
514 ///// ビューコントロールを取得する。
515 ///// </summary>
516 //internal Forms.ViewControl ViewControl
517 //{
518 // get
519 // {
520 // if (viewControl == null || viewControl.IsDisposed)
521 // {
522 // viewControl = new Forms.ViewControl();
523 // }
524 // return viewControl;
525 // }
526 //}
527
528 ///// <summary>
529 ///// タイムテーブルマネージャーを取得する。
530 ///// </summary>
531 //public TimeTableManager TimeTableManager
532 //{
533 // get
534 // {
535 // if (timeTableManager == null)
536 // {
537 // timeTableManager = new TimeTableManager();
538 // }
539 // return timeTableManager;
540 // }
541 //}
542
543 ///// <summary>
544 ///// 描画オブジェクトマネージャーを取得する。
545 ///// </summary>
546 //public DrawObjectManager DrawObjectManager
547 //{
548 // get
549 // {
550 // if (drawObjectManager == null)
551 // {
552 // drawObjectManager = new DrawObjectManager();
553 // }
554 // return drawObjectManager;
555 // }
556 //}
557
558 ///// <summary>
559 ///// サウンドマネージャーを取得する。
560 ///// </summary>
561 //public SoundManager SoundManager
562 //{
563 // get
564 // {
565 // if (soundManager == null)
566 // {
567 // soundManager = new SoundManager();
568 // }
569 // return soundManager;
570 // }
571 //}
572
573 ///// <summary>
574 ///// タイムラインマネージャーを取得する。
575 ///// </summary>
576 //public TimeLineManager TimeLineManager
577 //{
578 // get
579 // {
580 // if (timeLineManager == null)
581 // {
582 // timeLineManager = new TimeLineManager();
583 // }
584 // return timeLineManager;
585 // }
586 //}
587
588 ///// <summary>
589 ///// キャンバスマネージャーを取得する。
590 ///// </summary>
591 //public CanvasManager CanvasManager
592 //{
593 // get
594 // {
595 // if (canvasManager == null)
596 // {
597 // canvasManager = new CanvasManager();
598 // }
599 // return canvasManager;
600 // }
601 //}
602
603 ///// <summary>
604 ///// プレビューマネージャを取得する。
605 ///// </summary>
606 //public PreviewManager PreviewManager
607 //{
608 // get
609 // {
610 // if (previewManager == null)
611 // {
612 // previewManager = new PreviewManager();
613 // }
614 // return previewManager;
615 // }
616 //}
617
618 //#endregion
619
620 }
621 }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26