Esempio n. 1
0
        private void EditMI_Click(object sender, EventArgs e)
        {
            try
            {
                NodeField[] items = GetSelectedItems(typeof(NodeField)) as NodeField[];

                if (items != null && items.Length == 1)
                {
                    object value = GuiUtils2.EditValue(m_session, items[0].Value);

                    if (!m_readOnly)
                    {
                        if (value != null)
                        {
                            items[0].Value = value;
                            UpdateItem(ItemsLV.SelectedItems[0], items[0]);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
            }
        }
Esempio n. 2
0
        private void EditMI_Click(object sender, EventArgs e)
        {
            try
            {
                Argument[] arguments = GetSelectedItems(typeof(Argument)) as Argument[];

                if (arguments == null || arguments.Length != 1)
                {
                    return;
                }

                object value = GuiUtils2.EditValue(m_session, arguments[0].Value, arguments[0].DataType, arguments[0].ValueRank);

                if (value != null)
                {
                    arguments[0].Value = value;
                }

                UpdateItem(ItemsLV.SelectedItems[0], arguments[0]);
            }
            catch (Exception exception)
            {
                GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
            }
        }
Esempio n. 3
0
        private void EditValueMI_Click(object sender, EventArgs e)
        {
            try {
                WriteValue[] values = GetSelectedItems(typeof(WriteValue)) as WriteValue[];

                if (values == null || values.Length != 1)
                {
                    return;
                }

                NodeId datatypeId = Attributes.GetDataTypeId(values[0].AttributeId);
                int    valueRank  = Attributes.GetValueRank(values[0].AttributeId);

                if (values[0].AttributeId == Attributes.Value)
                {
                    VariableNode node = m_session.NodeCache.Find(values[0].NodeId) as VariableNode;

                    if (node != null)
                    {
                        datatypeId = node.DataType;
                        valueRank  = node.ValueRank;
                    }
                }

                bool   useIndexRange = false;
                object value         = null;

                // check IndexRange for arrays
                if (values[0].AttributeId == Attributes.Value && valueRank > 0)
                {
                    NumericRange  indexRange;
                    ServiceResult result = NumericRange.Validate(values[0].IndexRange, out indexRange);

                    if (ServiceResult.IsGood(result) && indexRange != NumericRange.Empty)
                    {
                        useIndexRange = true;
                    }
                }

                if (useIndexRange)
                {
                    value = new ComplexValueEditDlg().ShowDialog(values[0]);

                    WriteValue writeValue = value as WriteValue;

                    if (writeValue != null)
                    {
                        value = writeValue.Value.Value;
                    }
                }
                else
                {
                    value = GuiUtils2.EditValue(m_session, values[0].Value.Value, datatypeId, valueRank);
                }

                if (value != null)
                {
                    values[0].Value.Value      = value;
                    values[0].Value.StatusCode = StatusCodes.Good;

                    UpdateItem(ItemsLV.SelectedItems[0], values[0]);

                    AdjustColumns();
                }
            } catch (Exception exception) {
                GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
            }
        }