using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.PowerPoint;
using GeneralLib;
namespace SunVoteARSPPT
{
public partial class FrmChartRankSet : Form
{
public FrmChartRankSet()
{
InitializeComponent();
}
private void btnOK_Click(object sender, EventArgs e)
{
TagSet tagSet = new TagSet(Globals.SunVoteARSAddIn.PPTEdit.SlideEdit.Tags);
string s = "";
foreach (ListViewItem lvItem in lvwSlide.CheckedItems)
{
if (s.Length > 0)
s += ",";
s += lvItem.Tag.ToString();
}
tagSet.SetValue(TagKey.RankChartSetSlide, s);
this.DialogResult = DialogResult.OK;
this.Close();
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 是否正在加载窗体
///
private bool IsLoading = false;
private void FrmChartRankSet_Load(object sender, EventArgs e)
{
IsLoading = true;
//this.DialogResult = DialogResult.Cancel;
GlobalInfo.SysLanguage.SetLanguage(this.Name, this);
ControlOper.SetPosCheckBoxToListViewHead(lvwSlide, chkSelectAllSlide);//杨斌 2012-11-16
lvwSlide.Columns[0].Text = " No";
LoadSlideInfo();
SetOKEnable();
IsLoading = false;
}
///
/// 加载授权信息
/// 修改:杨斌 2012-03-23
///
private void LoadSlideInfo()
{
try
{
Slide sld = null;
TagSet tagSet = null;
int curSlideIndex = Globals.SunVoteARSAddIn.PPTEdit.SlideEdit.SlideIndex;
int SlideCount = Globals.SunVoteARSAddIn.PPTEdit.PPT.ActivePresentation.Slides.Count;
int slideIndex = 0;
lvwSlide.Items.Clear();
for (int i = 1; i <= SlideCount; i++)
{
sld = Globals.SunVoteARSAddIn.PPTEdit.PPT.ActivePresentation.Slides[i];
tagSet = new TagSet(sld.Tags);
slideIndex = sld.SlideIndex;
ResponseType responseType = EnumName.GetEnum(tagSet.GetValue(TagKey.ResponseType).Value);
//当前幻灯片之外的,且在当前幻灯片之前的
if (slideIndex != curSlideIndex)
{
switch (responseType)
{
case ResponseType.Choice:
case ResponseType.Order:
case ResponseType.Judge:
case ResponseType.Number:
ListViewItem lvItem = lvwSlide.Items.Add(slideIndex.ToString());
lvItem.SubItems.Add(PPTOper.GetSlideTitle(sld).ToString());
lvItem.Tag = sld.SlideID.ToString();
break;
default:
break;
}
}
}
// slideIndex=tagSet.LoadValue(TagKey.ResponsePara_CanVoteSlideIndex,0).ToInt;
//当前幻灯片
tagSet = new TagSet(Globals.SunVoteARSAddIn.PPTEdit.SlideEdit.Tags);
string s = tagSet.LoadValue(TagKey.RankChartSetSlide, "").Value;
if (s.Length > 0)
{
string[] ary = s.Split(new char[] { ',' });
foreach (ListViewItem lvItem in lvwSlide.Items)
{
lvItem.Checked = (ary.Contains((lvItem.Tag.ToString())));
}
}
//当前幻灯片ID
//int SlideID = tagSet.GetValue(TagKey.ResponsePara_CanVoteSlideID).ToInt;
//slideIndex = 0;
//if (SlideID != 0)
//{
// try//杨斌 2012-06-29 FindBySlideID可能会报异常
// {
// slideIndex = Globals.SunVoteARSAddIn.PPTEdit.PPT.ActivePresentation.Slides.FindBySlideID(SlideID).SlideIndex;
// }
// catch { }
//}
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
}
}
private void SetOKEnable()
{
btnOK.Enabled = (lvwSlide.CheckedItems.Count > 0);
}
private void chkSelectAllSlide_Click(object sender, EventArgs e)
{
if (IsLoading) return;
IsLoading = true;
ControlOper.SelectAllListViewItem(lvwSlide, chkSelectAllSlide.Checked);
IsLoading = false;
}
private void lvwSlide_ItemChecked(object sender, ItemCheckedEventArgs e)
{
SetOKEnable();
if (IsLoading) return;
IsLoading = true;
chkSelectAllSlide.Checked = ((lvwSlide.CheckedItems.Count > 0) && (lvwSlide.CheckedItems.Count == lvwSlide.Items.Count));
IsLoading = false;
}
}
}