//選択された置換情報の優先順位を下げる private void btnDown_Click(object sender, EventArgs e) { //1件選択されていない場合はエラー if (lstvwMorphemeReplaceInfo.SelectedItems.Count != 1) { MessageBox.Show(String.Format(XmlDatas.ListMessages["ERROR_4"], XmlDatas.ListNames["MORPHEME_REPLACE_INFO"], "1")); return; } int intSelectedIndex = lstvwMorphemeReplaceInfo.SelectedItems[0].Index; if (intSelectedIndex == lstvwMorphemeReplaceInfo.Items.Count - 1) { return; } ListViewItem temp = (ListViewItem)lstvwMorphemeReplaceInfo.Items[intSelectedIndex + 1].Clone(); ListViewItem temp2 = (ListViewItem)lstvwMorphemeReplaceInfo.Items[intSelectedIndex].Clone(); lstvwMorphemeReplaceInfo.Items.RemoveAt(intSelectedIndex + 1); lstvwMorphemeReplaceInfo.Items.Insert(intSelectedIndex + 1, temp2); lstvwMorphemeReplaceInfo.Items.RemoveAt(intSelectedIndex); lstvwMorphemeReplaceInfo.Items.Insert(intSelectedIndex, temp); MorphemeReplaceInfo temp3 = new MorphemeReplaceInfo(lstMorphemeReplaceInfo[intSelectedIndex + 1]); MorphemeReplaceInfo temp4 = new MorphemeReplaceInfo(lstMorphemeReplaceInfo[intSelectedIndex]); lstMorphemeReplaceInfo.RemoveAt(intSelectedIndex + 1); lstMorphemeReplaceInfo.Insert(intSelectedIndex + 1, temp4); lstMorphemeReplaceInfo.RemoveAt(intSelectedIndex); lstMorphemeReplaceInfo.Insert(intSelectedIndex, temp3); lstvwMorphemeReplaceInfo.SelectedItems.Clear(); lstvwMorphemeReplaceInfo.Items[intSelectedIndex + 1].Selected = true; }
//置換情報編集ボタンクリック時 private void btnEdit_Click(object sender, EventArgs e) { intEditMode = 1; lstMorphemeReplaceSource.Clear(); lstMorphemeReplaceDestination.Clear(); int intSelected = lstvwMorphemeReplaceInfo.SelectedIndices[0]; morphemeReplaceEdit = new MorphemeReplaceInfo(lstMorphemeReplaceInfo[intSelected]); controlButtons(1); lstMorphemeReplaceSource = new List <MSeed>(morphemeReplaceEdit.ListSource); lstMorphemeReplaceDestination = new List <MSeed>(morphemeReplaceEdit.ListDestination); txtName.Text = morphemeReplaceEdit.MorphemeReplaceInfoName; lstvwMorpemeReplaceInfoSource.Items.Clear(); lstMorphemeReplaceSource.ForEach(delegate(MSeed seedWork) { String[] strLineList = { seedWork.DictionaryMembers[XmlDatas.ListItemNames["HYOSO_TYPE"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HINSHI"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_1"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_2"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_3"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["KATSUYO_KEI"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["KATSUYO_TYPE"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["BASE_TYPE"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["YOMI"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HATSUON"]].ToString() }; lstvwMorpemeReplaceInfoSource.Items.Add(new ListViewItem(strLineList)); }); if (morphemeReplaceEdit.IsLoop) { chkLoop.Checked = true; } else { chkLoop.Checked = false; } if (morphemeReplaceEdit.IsAuto) { chkAuto.Checked = true; } else { chkAuto.Checked = false; } if (morphemeReplaceEdit.IsUseHyosoFile) { chkHyoso.Checked = true; txtHyosoIndex.Text = morphemeReplaceEdit.HyosoIndex.ToString(); lblReadFile.Text = morphemeReplaceEdit.HyosoFilePath; } else { chkHyoso.Checked = false; } lstvwMorpemeReplaceInfoDestination.Items.Clear(); lstMorphemeReplaceDestination.ForEach(delegate(MSeed seedWork) { String[] strLineList = { seedWork.DictionaryMembers[XmlDatas.ListItemNames["HYOSO_TYPE"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HINSHI"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_1"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_2"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_3"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["KATSUYO_KEI"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["KATSUYO_TYPE"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["BASE_TYPE"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["YOMI"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HATSUON"]].ToString() }; lstvwMorpemeReplaceInfoDestination.Items.Add(new ListViewItem(strLineList)); }); }
//ListViewの選択を変更した時 private void lstvwMorphemeReplaceInfo_SelectedIndexChanged(object sender, EventArgs e) { intEditMode = 0; morphemeReplaceEdit = new MorphemeReplaceInfo(); txtName.Text = String.Empty; lstMorphemeReplaceSource.Clear(); lstMorphemeReplaceDestination.Clear(); lstvwMorpemeReplaceInfoSource.Items.Clear(); lstvwMorpemeReplaceInfoDestination.Items.Clear(); chkHyoso.Checked = false; txtHyosoIndex.Text = String.Empty; lblHyosoIndex.Text = String.Empty; controlButtons(0); }
//コピーコンストラクタ public MorphemeReplaceInfo(MorphemeReplaceInfo source) { this.strMorphemeReplaceInfoName = source.MorphemeReplaceInfoName; this.intListSourceCount = source.ListSourceCount; this.lstSource = new List <MSeed>(source.ListSource); this.intListDestinationCount = source.intListDestinationCount; this.lstDestination = new List <MSeed>(source.ListDestination); this.bIsLoop = source.IsLoop; this.bIsAuto = source.IsAuto; this.bIsTake = source.IsTake; this.bIsUseHyosoFile = source.IsUseHyosoFile; this.intHyosoIndex = source.HyosoIndex; this.strHyosoFilePath = source.strHyosoFilePath; this.lstHyoso = new List <String>(source.ListHyoso); }
//決定 private void btnTake_Click(object sender, EventArgs e) { String strMsg = ""; if (inputCheck()) { MorphemeReplaceInfo morhpemeReplaceInfo = new MorphemeReplaceInfo(); morhpemeReplaceInfo.MorphemeReplaceInfoName = txtName.Text; morhpemeReplaceInfo.ListSourceCount = lstMorphemeReplaceSource.Count; morhpemeReplaceInfo.ListSource = new List <MSeed>(lstMorphemeReplaceSource); morhpemeReplaceInfo.ListDestinationCount = lstMorphemeReplaceDestination.Count; morhpemeReplaceInfo.ListDestination = new List <MSeed>(lstMorphemeReplaceDestination); if (chkLoop.Checked) { morhpemeReplaceInfo.IsLoop = true; } else { morhpemeReplaceInfo.IsLoop = false; } if (chkAuto.Checked) { morhpemeReplaceInfo.IsAuto = true; } else { morhpemeReplaceInfo.IsAuto = false; } if (chkHyoso.Checked) { morhpemeReplaceInfo.IsUseHyosoFile = true; morhpemeReplaceInfo.HyosoIndex = int.Parse(txtHyosoIndex.Text); morhpemeReplaceInfo.HyosoFilePath = lblReadFile.Text; StreamReader strrdr = null; try { morhpemeReplaceInfo.ListHyoso.Clear(); strrdr = new StreamReader(@lblReadFile.Text, Encoding.GetEncoding("utf-8")); while (!strrdr.EndOfStream) { morhpemeReplaceInfo.ListHyoso.Add(strrdr.ReadLine()); } } catch (IOException ioe) { MessageBox.Show(ioe.Message); return; } catch (Exception ex) { MessageBox.Show(ex.Message); return; } finally { if (strrdr != null) { strrdr.Close(); strrdr.Dispose(); } } } else { morhpemeReplaceInfo.IsUseHyosoFile = false; morhpemeReplaceInfo.HyosoIndex = -1; morhpemeReplaceInfo.ListHyoso = new List <String>(); } //追加の時 if (intEditMode == 0) { lstMorphemeReplaceInfo.Add(morhpemeReplaceInfo); lstvwMorphemeReplaceInfo.Items.Add(morhpemeReplaceInfo.MorphemeReplaceInfoName); strMsg = "追加"; } //編集の時 else if (intEditMode == 1) { int intSelectedWork = lstvwMorphemeReplaceInfo.SelectedIndices[0]; lstMorphemeReplaceInfo[intSelectedWork].MorphemeReplaceInfoName = morhpemeReplaceInfo.MorphemeReplaceInfoName; lstMorphemeReplaceInfo[intSelectedWork].ListSourceCount = morhpemeReplaceInfo.ListSourceCount; lstMorphemeReplaceInfo[intSelectedWork].ListSource = new List <MSeed>(morhpemeReplaceInfo.ListSource); lstMorphemeReplaceInfo[intSelectedWork].IsAuto = morhpemeReplaceInfo.IsAuto; lstMorphemeReplaceInfo[intSelectedWork].IsLoop = morhpemeReplaceInfo.IsLoop; lstMorphemeReplaceInfo[intSelectedWork].IsUseHyosoFile = morhpemeReplaceInfo.IsUseHyosoFile; if (lstMorphemeReplaceInfo[intSelectedWork].IsUseHyosoFile) { lstMorphemeReplaceInfo[intSelectedWork].HyosoIndex = morhpemeReplaceInfo.HyosoIndex; lstMorphemeReplaceInfo[intSelectedWork].HyosoFilePath = morhpemeReplaceInfo.HyosoFilePath; lstMorphemeReplaceInfo[intSelectedWork].ListHyoso = new List <String>(morhpemeReplaceInfo.ListHyoso); } lstMorphemeReplaceInfo[intSelectedWork].ListDestinationCount = morhpemeReplaceInfo.ListDestinationCount; lstMorphemeReplaceInfo[intSelectedWork].ListDestination = new List <MSeed>(morhpemeReplaceInfo.ListDestination); lstvwMorphemeReplaceInfo.Items[intSelectedWork].Text = morhpemeReplaceInfo.MorphemeReplaceInfoName; strMsg = "編集"; } //完了のメッセ―ジ MessageBox.Show(String.Format(XmlDatas.ListMessages["INFORMATION_FINISHED"], strMsg)); lstMorphemeReplaceSource.Clear(); lstMorphemeReplaceDestination.Clear(); lstvwMorpemeReplaceInfoSource.Items.Clear(); lstvwMorpemeReplaceInfoDestination.Items.Clear(); txtName.Text = ""; txtHyosoIndex.Text = ""; chkAuto.Checked = false; chkHyoso.Checked = false; chkLoop.Checked = false; lblReadFile.Text = ""; controlButtons(0); } }
//形態要素置換情報ファイル取得 public static Boolean getMorphemeReplaceInfoFromFile(String strFilePath, ref List <MorphemeReplaceInfo> lstMorphemeReplaceinfo) { Boolean bResult = false; StreamReader strrdr = null; try { if (!File.Exists(@strFilePath)) { MessageBox.Show(String.Format(XmlDatas.ListMessages["ERROR_2"].ToString(), XmlDatas.ListNames["MORPHEME_REPLACE_INFO"].ToString())); return(bResult); } strrdr = new StreamReader(@strFilePath, Encoding.GetEncoding("utf-8")); lstMorphemeReplaceinfo.Clear(); String strLineWork = String.Empty; MorphemeReplaceInfo morphemeReplaceInfo = new MorphemeReplaceInfo(); List <Boolean> bIsRead = new List <Boolean> { false, false, false, false, false, false, false, false, false, false, false }; while (!strrdr.EndOfStream) { strLineWork = strrdr.ReadLine(); if (strLineWork.Equals(XmlDatas.ListConsts["EOS"])) { lstMorphemeReplaceinfo.Add(morphemeReplaceInfo); morphemeReplaceInfo = new MorphemeReplaceInfo(); bIsRead = new List <Boolean> { false, false, false, false, false, false, false, false, false, false, false }; } else { if (!bIsRead[0]) { morphemeReplaceInfo.MorphemeReplaceInfoName = strLineWork; bIsRead[0] = true; } else if (!bIsRead[1]) { morphemeReplaceInfo.ListSourceCount = int.Parse(strLineWork); bIsRead[1] = true; } else if (!bIsRead[2]) { MSeed mSeedWork = new MSeed(); mSeedWork.getFromCsvFile2(strLineWork); morphemeReplaceInfo.ListSource.Add(mSeedWork); if (morphemeReplaceInfo.ListSourceCount == morphemeReplaceInfo.ListSource.Count) { bIsRead[2] = true; } } else if (!bIsRead[3]) { morphemeReplaceInfo.ListDestinationCount = int.Parse(strLineWork); bIsRead[3] = true; } else if (!bIsRead[4]) { MSeed mSeedWork = new MSeed(); mSeedWork.getFromCsvFile2(strLineWork); morphemeReplaceInfo.ListDestination.Add(mSeedWork); if (morphemeReplaceInfo.ListDestinationCount == morphemeReplaceInfo.ListDestination.Count) { bIsRead[4] = true; } } else if (!bIsRead[5]) { if (strLineWork.Equals("True")) { morphemeReplaceInfo.IsLoop = true; } else { morphemeReplaceInfo.IsLoop = false; } bIsRead[5] = true; } else if (!bIsRead[6]) { if (strLineWork.Equals("True")) { morphemeReplaceInfo.IsAuto = true; } else { morphemeReplaceInfo.IsAuto = false; } bIsRead[6] = true; } else if (!bIsRead[7]) { if (strLineWork.Equals("True")) { morphemeReplaceInfo.IsTake = true; } else { morphemeReplaceInfo.IsTake = false; } bIsRead[7] = true; } else if (!bIsRead[8]) { if (strLineWork.Equals("True")) { morphemeReplaceInfo.IsUseHyosoFile = true; } else { morphemeReplaceInfo.IsUseHyosoFile = false; } bIsRead[8] = true; } else if (!bIsRead[9]) { morphemeReplaceInfo.HyosoIndex = int.Parse(strLineWork); bIsRead[9] = true; } else if (!bIsRead[10]) { morphemeReplaceInfo.HyosoFilePath = strLineWork; morphemeReplaceInfo.ListHyoso.Clear(); StreamReader strrdr2 = null; if (morphemeReplaceInfo.HyosoFilePath.Length > 0) { try { strrdr2 = new StreamReader(@morphemeReplaceInfo.HyosoFilePath, Encoding.GetEncoding("utf-8")); while (!strrdr2.EndOfStream) { morphemeReplaceInfo.ListHyoso.Add(strrdr2.ReadLine()); } } catch (IOException ioe) { MessageBox.Show(ioe.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { if (strrdr2 != null) { strrdr2.Close(); strrdr2.Dispose(); } } } bIsRead[10] = true; } } } bResult = true; } catch (IOException ioe) { MessageBox.Show(ioe.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { if (strrdr != null) { strrdr.Close(); strrdr.Dispose(); } } return(bResult); }