using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.PowerPoint;
using GeneralLib;
using System.IO;
namespace SunVoteARSPPT
{
public partial class UcResponsePara : UserControl, IPanel
{
public TagSet TagSet { get; set; }
///
/// 防止设置语言时触发SelectedIndexChanged事件
///
public bool readOnly = false;
public UcResponsePara()
{
InitializeComponent();
try
{
FrmSystemSet.LanguageSetEvent += new FrmSystemSet.LanguageSetEventHander(FrmSystemSet_LanguageSetEvent);
FrmSystemSet.GlobalSetChangeEvent += new FrmSystemSet.GlobalSetChangeEventHander(FrmSystemSet_GlobalSetChangeEvent);
gbxNameAuthorize.Resize += gbxNameAuthorize_Resize;
//设置控件大小
this.Height = gbxNameAuthorize.Bottom;
LoadComboBox();
//GlobalInfo.SysLanguage.SetLanguage(this.Name, this);
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
}
}
void gbxNameAuthorize_Resize(object sender, EventArgs e)
{
int pos = gbxNameAuthorize.ClientSize.Width / 2;
int w = pos - 3;
rbtNameModeOff.Left = pos;
rbtNameModeOff.Width = w;
cboCanVote.Left = pos;
cboCanVote.Width = w;
cboBackMusic.Left = pos;
cboBackMusic.Width = w;
cboFieldVoteRate.Left = pos;
cboFieldVoteRate.Width = w;
}
void FrmSystemSet_GlobalSetChangeEvent()
{
try
{
if (gbxNameAuthorize.Enabled)
{
rbtNameModeOn.Checked = Convert.ToInt32(TagSet.GetValue(TagKey.ResponsePara_NameMode).Value) == 1;
rbtNameModeOff.Checked = Convert.ToInt32(TagSet.GetValue(TagKey.ResponsePara_NameMode).Value) == 0;
}
}
catch { }
}
///
/// 语言设置
///
void FrmSystemSet_LanguageSetEvent()
{
readOnly = true;
GlobalInfo.SysLanguage.SetLanguage(this.Name, this);
LoadMusicSet();//杨斌 2015-04-10
int index = ComboBoxOper.GetIndexByValue(cboCanVote, TagSet.GetValue(TagKey.ResponsePara_CanVote).Value);
cboCanVote.SelectedIndex = index;
readOnly = false;
}
private void UcResponsePara_Load(object sender, EventArgs e)
{
if (GlobalInfo.SysLanguage == null) return;
GlobalInfo.SysLanguage.SetLanguage(this.Name, this);
LoadMusicSet();//杨斌 2015-04-10
//设置默认值
if (cboCanVote.Items.Count > 0)
cboCanVote.SelectedIndex = 0;
}
///
/// 补充从现有词条加载新功能语言。杨斌 2015-05-07
///
private void LoadMusicSet()
{
lblBackMusic.Text = GlobalInfo.SysLanguage.LPT.ReadString("FrmSystemSet", "lvwSound_Item_0", "背景音效");
List lstItem = new List();
lstItem.Add(GlobalInfo.SysLanguage.LPT.ReadString("FrmSystemSet", "FrmSystemSet", "系统设置"));
string musicFile = "";
string musicFilePre = "";
if (TagSet != null)//杨斌 2016-06-07
{
musicFile = TagSet.GetValue(TagKey.ResponsePara_SlideBackMusic).Value;
if (string.IsNullOrEmpty(musicFile))
musicFilePre = TagSet.GetValue(TagKey.ResponsePara_SlideBackMusicPre).Value;
else
{
if (musicFilePre != musicFile)
{
musicFilePre = musicFile;
TagSet.SetValue(TagKey.ResponsePara_SlideBackMusicPre, musicFilePre);
}
}
if (!string.IsNullOrEmpty(musicFilePre))
lstItem.Add(musicFilePre);
}
lstItem.Add(GlobalInfo.SysLanguage.LPT.ReadString("FrmSystemSet", "btnSoundBrowse", "浏览..."));
cboBackMusic.Enabled = false;
cboBackMusic.Items.Clear();
foreach (var v in lstItem)
{
cboBackMusic.Items.Add(v);
}
if (string.IsNullOrEmpty(musicFile))
cboBackMusic.SelectedIndex = 0;
else
cboBackMusic.SelectedIndex = 1;
cboBackMusic.Enabled = true;
}
///
/// 加载参数面板数据
///
public void LoadData()
{
if (TagSet == null) return;
var iniSet = INIControl.GetInstances(GlobalInfo.SYSTEM_CONFIG_PATH);//杨斌 2019-06-12
int defNameMode = iniSet.ReadInt("VoteSet", "NameMode", 0);//杨斌 2019-06-12
//杨斌 2014-10-27
cboFieldVoteRate.Items.Clear();
cboFieldVoteRate.Items.Add("");
RosterList rost = new RosterList();
if (rost.RosterEnabled)
{
rost.LoadCloumn(GlobalInfo.DBOperation);
for (int i = 1; i < rost.Columns.Count; i++)
{
cboFieldVoteRate.Items.Add(rost.Columns[i].ColumnName);
}
}
ComboBoxOper.SetComboText(cboFieldVoteRate, TagSet.GetValue(TagKey.ResponsePara_VoteRateField).Value);
//if (TagSet.LoadValue(TagKey.ResponsePara_NameMode, rbtNameModeOn.Checked ? 1 : 0).ToInt == 1)
if (TagSet.LoadValue(TagKey.ResponsePara_NameMode, 1 - defNameMode).ToInt == 1)//杨斌 2019-06-12
rbtNameModeOn.Checked = true;
else
rbtNameModeOff.Checked = true;
int index = ComboBoxOper.GetIndexByValue(cboCanVote, TagSet.LoadValue(TagKey.ResponsePara_CanVote, "cvAll").Value);
cboCanVote.SelectedIndex = index;
//cboCanVote.SelectedIndex = TagSet.LoadValue(TagKey.ResponsePara_CanVote, 0).ToInt;
//杨斌 2015-04-10
cboBackMusic.Enabled = false;
string musicFile = TagSet.GetValue(TagKey.ResponsePara_SlideBackMusic).Value;
if (!string.IsNullOrEmpty(musicFile))
{
if (cboBackMusic.Items.Count >= 2)
cboBackMusic.Items[1] = musicFile;
else
{
if (cboBackMusic.Items.Count < 1)
cboBackMusic.Items.Add("");
cboBackMusic.Items.Add(musicFile);
}
cboBackMusic.SelectedIndex = 1;
}
else
cboBackMusic.SelectedIndex = 0;
cboBackMusic.Enabled = true;
SetVoteRateEnabled();//杨斌 2014-10-27
}
///
/// 隐藏投票权重
/// 杨斌 2014-11-06
///
//public void HideVoteRate()
//{
// lblFieldVoteRate.Visible = false;
// cboFieldVoteRate.Visible = false;
// gbxNameAuthorize.Height = cboBackMusic.Bottom + 12;//杨斌 2015-04-10
// this.Height = gbxNameAuthorize.Bottom;
//}
///
/// 显示或隐藏参数。杨斌 2015-04-10
///
///
///
public void ShowSet(bool showOther = true, bool showRate = true)
{
rbtNameModeOn.Visible = rbtNameModeOff.Visible = showOther;
lblAuthorize.Visible = cboCanVote.Visible = showOther;
lblFieldVoteRate.Visible = cboFieldVoteRate.Visible = showRate;
if (showOther)
{
cboCanVote.Top = rbtNameModeOff.Bottom + 5;//杨斌 2016-02-03
lblAuthorize.Top = cboCanVote.Top + 3;
cboBackMusic.Top = cboCanVote.Bottom + 5;
lblBackMusic.Top = cboBackMusic.Top + 3;
}
else
{
cboBackMusic.Top = rbtNameModeOff.Top;
lblBackMusic.Top = cboBackMusic.Top + 3;
}
if (showRate)
{
cboFieldVoteRate.Top = cboBackMusic.Bottom + 5;
lblFieldVoteRate.Top = cboFieldVoteRate.Top + 3;
gbxNameAuthorize.Height = cboFieldVoteRate.Bottom + 12;
}
else
{
gbxNameAuthorize.Height = cboBackMusic.Bottom + 12;
}
this.Height = gbxNameAuthorize.Bottom;
}
///
/// 设置签到码签到是否启用
/// 杨斌 2014-10-27
///
private void SetVoteRateEnabled()
{
lblFieldVoteRate.Enabled = cboFieldVoteRate.Enabled = GlobalInfo.response.CanVoteRate();//杨斌 2014-10-27
}
private void rbtNameMode_CheckedChanged(object sender, EventArgs e)
{
if (TagSet == null) return;
TagSet.SetValue(TagKey.ResponsePara_NameMode, rbtNameModeOn.Checked ? 1 : 0);
}
private void cboCanVote_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (TagSet == null) return;
if (TagSet.ReadOnlyPPT) return;
string cboValue = ((ComboItem)cboCanVote.Items[cboCanVote.SelectedIndex]).EnumValue;
if (!readOnly)
Globals.SunVoteARSAddIn.ShowCanVoteSet(cboValue);
//防止返回上次设置时反复调用ShowCanVoteSet方法
readOnly = true;
int index = ComboBoxOper.GetIndexByValue(cboCanVote, TagSet.LoadValue(TagKey.ResponsePara_CanVote, "cvAll").Value);
cboCanVote.SelectedIndex = index;
readOnly = false;
//cboCanVote.SelectedIndex = TagSet.LoadValue(TagKey.ResponsePara_CanVote, 0).ToInt;
//FrmVoteBar.ActivateSlideShowWindow();
}
catch (Exception ex)
{
}
}
///
/// 加载下拉框的值
///
private void LoadComboBox()
{
cboCanVote.Items.Clear();
cboCanVote.Items.Add(new ComboItem(0, "所有人", "cvAll"));
cboCanVote.Items.Add(new ComboItem(1, "指定名单", "cvPerson"));
cboCanVote.Items.Add(new ComboItem(2, "指定题目选项", "cvTopic"));
cboCanVote.DisplayMember = "Name";
cboCanVote.ValueMember = "EnumValue";
}
///
/// 权重字段。杨斌 2014-10-27
///
///
///
private void cboFieldVoteRate_SelectedIndexChanged(object sender, EventArgs e)
{
//杨斌 2015-04-30
if (TagSet == null) return;
if (TagSet.ReadOnlyPPT) return;
TagSet.SetValue(TagKey.ResponsePara_VoteRateField, cboFieldVoteRate.Text);
}
private void cboBackMusic_SelectedIndexChanged(object sender, EventArgs e)
{
if (!cboBackMusic.Enabled) return;
if (readOnly) return;//杨斌 2015-04-13
try
{
int max = cboBackMusic.Items.Count - 1;
if (cboBackMusic.SelectedIndex == max)
{
string path = FrmSystemSet.OpenSoundFile();
if (path.Length > 0)
{
FileInfo fi = new FileInfo(path);
if (!fi.Exists) return;
string file = fi.Name;
//若工程目录下没有则复制,总是取相对路径
string pathSound = GlobalInfo.SOUND_DIR + file;
if (!(new FileInfo(pathSound).Exists)) fi.CopyTo(pathSound, true);
TagSet.SetValue(TagKey.ResponsePara_SlideBackMusic, file);
}
}
else if (cboBackMusic.SelectedIndex == 0)
{
TagSet.SetValue(TagKey.ResponsePara_SlideBackMusic, "");
}
else
{
TagSet.SetValue(TagKey.ResponsePara_SlideBackMusic, cboBackMusic.Items[1].ToString());
}
LoadMusicSet();
}
catch (Exception ex)
{
}
}
}
}