FrmChartRankSet.cs 5.41 KB
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();
        }

        /// <summary>
        /// 是否正在加载窗体
        /// </summary>
        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;
        }

        /// <summary>
        /// 加载授权信息
        /// 修改:杨斌 2012-03-23
        /// </summary>
        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<ResponseType>.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<string>((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;
        }

    }
}