From 1a1c8e71fcd14858f595029f089b2d4a00202b32 Mon Sep 17 00:00:00 2001
From: ogi <Administrator@S-OGI-PC>
Date: Fri, 05 Dec 2025 09:24:16 +0900
Subject: [PATCH] プロジェクトファイルを追加。
---
HotelPms.Share.Windows/Util/ValueChangeListener.cs | 245 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 245 insertions(+), 0 deletions(-)
diff --git a/HotelPms.Share.Windows/Util/ValueChangeListener.cs b/HotelPms.Share.Windows/Util/ValueChangeListener.cs
new file mode 100644
index 0000000..d5d11ba
--- /dev/null
+++ b/HotelPms.Share.Windows/Util/ValueChangeListener.cs
@@ -0,0 +1,245 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Drawing;
+using System.Reflection;
+using HotelPms.Share.Windows.Component;
+using System.Windows.Forms;
+using HotelPms.Share.Util;
+
+namespace HotelPms.Share.Windows.Util
+{
+ public enum ChangeEditingModeResult : int
+ {
+ Error = 0, //失敗
+ Inputting, //入力登録中状態
+ Editting, //編集中状態
+ ReLoad, //最新情報をロードした
+ Other, //その他
+ }
+
+ /// <summary>
+ /// 編集フォームのモード
+ /// </summary>
+ public enum UpdateFormMode : int
+ {
+ Normal = 0, //閲覧中、修正可能
+ Edit, //閲覧から修正中
+ New, //新規
+ Inputting, //新規登録中
+ ReadOnly, //閲覧モード、修正不可
+ }
+
+ public class ValueChangeListener :IDisposable
+ {
+ private static Dictionary<string, Bitmap> ResourceImage = new Dictionary<string, Bitmap>();
+
+ //Control
+ private UpdateFormMode curUpdateMode = UpdateFormMode.New;
+ private Control btnEditStatus = null;
+ public event CTextBoxArray.TBArrayEventHandler BeforeChangeToEditingMode = null;
+ private bool m_IsAntLabel = false;
+ private System.Windows.Forms.Timer timer1 = null;
+
+ public UpdateFormMode CurUpdateMode
+ {
+ get { return curUpdateMode; }
+ set { curUpdateMode = value; }
+ }
+
+ public ValueChangeListener(Control btnEditStatus)
+ {
+ m_IsAntLabel = (btnEditStatus is AntLabel);
+ if (!m_IsAntLabel)
+ {
+ timer1 = new System.Windows.Forms.Timer();
+ timer1.Interval = 500;
+ timer1.Tick += new EventHandler(timer1_Tick);
+ }
+
+ this.btnEditStatus = btnEditStatus;
+ }
+
+ private Bitmap GetResourceImage(string fileName)
+ {
+ Bitmap bmp = null;
+ if (!ResourceImage.TryGetValue(fileName, out bmp))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HotelPms.Share.Windows.Properties.Resources", Assembly.GetExecutingAssembly());
+ object obj = temp.GetObject(fileName);
+ bmp = ((System.Drawing.Bitmap)(obj));
+ ResourceImage.Add(fileName, bmp);
+ }
+ return bmp;
+ }
+
+ private void timer1_Tick(object sender, EventArgs e)
+ {
+ Button obj = btnEditStatus as Button;
+ if (CConvert.ToBool(obj.Tag) == true)
+ {
+ if (curUpdateMode == UpdateFormMode.Edit)
+ {
+ obj.Image = GetResourceImage("henshu_w");
+ }
+ else
+ {
+ obj.Image = GetResourceImage("toroku_w");
+ }
+ obj.Tag = false;
+ }
+ else
+ {
+ if (curUpdateMode == UpdateFormMode.Edit)
+ {
+ obj.Image = GetResourceImage("henshu_b");
+ }
+ else
+ {
+ obj.Image = GetResourceImage("toroku_b");
+ }
+ obj.Tag = true;
+ }
+ }
+
+ /// <summary> [編集中(点滅)][登録中][登録中(点滅)][閲覧中]の更新
+ /// </summary>
+ public void SetEditStatusStyle()
+ {
+ if (m_IsAntLabel)
+ {
+ AntLabel label = btnEditStatus as AntLabel;
+ label.AnimationEnabled = false;
+ switch (curUpdateMode)
+ {
+ case UpdateFormMode.Edit:
+ label.Text = "編集中";
+ label.Tag = true;
+ label.EndBackColor = Color.FromArgb(192, 64, 0);
+ label.BackColor = Color.PapayaWhip;
+ label.AnimationEnabled = true;
+ break;
+ case UpdateFormMode.New:
+ label.Text = "登録中";
+ label.EndBackColor = Color.FromArgb(64, 0, 64);
+ label.BackColor = Color.PapayaWhip;
+ break;
+ case UpdateFormMode.Inputting:
+ label.Text = "登録中";
+ label.EndBackColor = Color.FromArgb(0, 64, 0);
+ label.BackColor = Color.PapayaWhip;
+ label.Tag = true;
+ label.AnimationEnabled = true;
+ break;
+ default:
+ label.Text = "閲覧中";
+ label.EndBackColor = Color.FromArgb(0, 0, 64);
+ label.BackColor = Color.PapayaWhip;
+ break;
+ }
+ }
+ else
+ {
+ Button obj = btnEditStatus as Button;
+ timer1.Enabled = false;
+ switch (curUpdateMode)
+ {
+ case UpdateFormMode.Edit:
+ obj.Image = GetResourceImage("henshu_b");
+ obj.Tag = true;
+ timer1.Enabled = true;
+ break;
+ case UpdateFormMode.New:
+ obj.Image = GetResourceImage("toroku_w");
+ break;
+ case UpdateFormMode.Inputting:
+ obj.Image = GetResourceImage("toroku_b");
+ obj.Tag = true;
+ timer1.Enabled = true;
+ break;
+ default:
+ obj.Image = GetResourceImage("etsuranchu");
+ break;
+ }
+ }
+ }
+
+ /// <summary>
+ /// 閲覧モードから編集中に変った時(Overwrite)
+ /// </summary>
+ /// <returns></returns>
+ public ChangeEditingModeResult ChangeEditingBefore()
+ {
+ if (BeforeChangeToEditingMode != null)
+ {
+ CTextBoxArrayBaseEventArgs e = new CTextBoxArrayBaseEventArgs();
+ e.ChangeEditingModeResult = (int)ChangeEditingModeResult.Other;
+ BeforeChangeToEditingMode(this, 0, e);
+ return (ChangeEditingModeResult)e.ChangeEditingModeResult;
+ }
+ return ChangeEditingModeResult.Other;
+ }
+
+ /// <summary>
+ /// 画面の編集モードの更新
+ /// </summary>
+ /// <param name="mode"></param>
+ public ChangeEditingModeResult SetUpdateFormMode(UpdateFormMode mode)
+ {
+ if (curUpdateMode == UpdateFormMode.Normal && mode == UpdateFormMode.Edit)
+ {
+ ChangeEditingModeResult ret = ChangeEditingBefore();
+ if (ret.Equals(ChangeEditingModeResult.ReLoad)
+ || ret.Equals(ChangeEditingModeResult.Error))
+ {
+ return ret;
+ }
+ }
+
+ curUpdateMode = mode;
+ SetEditStatusStyle(); //表示更新
+
+ switch (mode)
+ {
+ case UpdateFormMode.Edit:
+ return ChangeEditingModeResult.Editting;
+ case UpdateFormMode.Inputting:
+ return ChangeEditingModeResult.Inputting;
+ default:
+ break;
+ }
+ return ChangeEditingModeResult.Other;
+ }
+
+ /// <summary>
+ /// 編集中もしくは登録中モードへ
+ /// </summary>
+ /// <returns></returns>
+ public ChangeEditingModeResult ChangeToEditingMode()
+ {
+ if (curUpdateMode == UpdateFormMode.ReadOnly)
+ {
+ return ChangeEditingModeResult.Error;
+ }
+
+ ChangeEditingModeResult ret = ChangeEditingModeResult.Other;
+ if (curUpdateMode == UpdateFormMode.Normal)
+ {
+ ret = SetUpdateFormMode(UpdateFormMode.Edit);
+ }
+ else if (curUpdateMode == UpdateFormMode.New)
+ {
+ ret = SetUpdateFormMode(UpdateFormMode.Inputting);
+ }
+ return ret;
+ }
+
+ public void Dispose()
+ {
+ try
+ {
+ }
+ catch { }
+ }
+ }
+}
--
Gitblit v1.10.0