119 lines
3.7 KiB
C#
119 lines
3.7 KiB
C#
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 VEPROMS.CSLA.Library;
|
|
using JR.Utils.GUI.Forms;
|
|
|
|
namespace Volian.Controls.Library
|
|
{
|
|
public partial class dlgEnhMissingItem : Form
|
|
{
|
|
StepTabRibbon STRibbon = null;
|
|
private ItemInfo _SourceItem = null;
|
|
private int _EnhType = -1;
|
|
private bool _Initializing = false;
|
|
public bool OKSelected = false;
|
|
public dlgEnhMissingItem(StepTabRibbon strbn, ItemInfo srcItem, int enhType)
|
|
{
|
|
_Initializing = true;
|
|
_SourceItem = srcItem;
|
|
_EnhType = enhType;
|
|
InitializeComponent();
|
|
STRibbon = strbn;
|
|
btnOK.Enabled = true;
|
|
ItemInfoList iil = ItemInfoList.GetListEnhancedForMissing(srcItem, enhType);
|
|
// if none found, only can do 'create'
|
|
if (iil == null || iil.Count == 0)
|
|
{
|
|
rbLinkToExisting.Enabled = false;
|
|
cbUnlinkedEnhancedItems.Enabled = false;
|
|
}
|
|
else
|
|
{
|
|
rbLinkToExisting.Enabled = true;
|
|
cbUnlinkedEnhancedItems.DataSource = iil;
|
|
cbUnlinkedEnhancedItems.SelectedIndex = -1;
|
|
cbUnlinkedEnhancedItems.Enabled = false;
|
|
}
|
|
if (srcItem.IsProcedure) this.Text = "Create Missing Enhanced Item for " + srcItem.DisplayNumber;
|
|
else this.Text = "Create Missing Enhanced Item";
|
|
_Initializing = false;
|
|
}
|
|
|
|
private void btnOK_Click(object sender, EventArgs e)
|
|
{
|
|
if (rbCreateNew.Checked)
|
|
{
|
|
STRibbon.enhUseExist = null;
|
|
STRibbon.enhDoConv = false;
|
|
}
|
|
else
|
|
{
|
|
ItemInfo ii = cbUnlinkedEnhancedItems.SelectedItem as ItemInfo;
|
|
STRibbon.enhUseExist = ii;
|
|
}
|
|
OKSelected = true;
|
|
this.Close();
|
|
}
|
|
|
|
private void rbLinkToExisting_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if (rbLinkToExisting.Checked)
|
|
{
|
|
cbUnlinkedEnhancedItems.Enabled = true;
|
|
cbUnlinkedEnhancedItems.SelectedIndex = -1;
|
|
btnOK.Enabled = false; // disable until user selects an item from combobox
|
|
}
|
|
else
|
|
cbUnlinkedEnhancedItems.Enabled = false;
|
|
}
|
|
|
|
private void rbCreateNew_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if (rbCreateNew.Checked) btnOK.Enabled = true;
|
|
}
|
|
private void cbUnlinkedEnhancedItems_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (_Initializing) return;
|
|
// cbUnlinkedEnhancedItems combo box has a list of all items in the enhanced document
|
|
// that can be linked to from this item.
|
|
btnOK.Enabled = true;
|
|
STRibbon.enhDoConv = false;
|
|
// if on a procedure, take the selected enhanced procedure & see if there are non-procedure items
|
|
// within it that can be linked based on old 16 bit data. If no sections/steps are returned, only the
|
|
// procedure can be linked so it really isn't a match. Otherwise, prompt user to see if they want to
|
|
// convert the data. If so, convert all items within it that can be linked. If not, just link as before.
|
|
if (_SourceItem.IsProcedure)
|
|
{
|
|
ItemInfo ii = cbUnlinkedEnhancedItems.SelectedItem as ItemInfo;
|
|
if (ii == null) return;
|
|
ContentInfoList cil = ContentInfoList.Get16BitEnhancedContents(_SourceItem.ItemID, ii.ItemID, _EnhType);
|
|
bool foundSubItem = false; // in returned list, see if there are any sections/steps. If none, don't prompt
|
|
foreach (ContentInfo ci in cil)
|
|
{
|
|
if (ci.Type >= 10000)
|
|
{
|
|
foundSubItem = true;
|
|
break;
|
|
}
|
|
}
|
|
if (foundSubItem)
|
|
{
|
|
DialogResult dr = FlexibleMessageBox.Show("The procedure that is selected has enhanced data. Do you want to convert it (this will link any section/steps that can be linked)?", "Enhanced Links", MessageBoxButtons.YesNo);
|
|
if (dr == DialogResult.Yes)
|
|
{
|
|
STRibbon.enhUseExist = ii;
|
|
STRibbon.enhDoConv = true;
|
|
btnOK_Click(sender, e);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|