예제 #1
0
        private void ViewMI_Click(object sender, EventArgs e)
        {
            try
            {
                string value = SelectedTag as string;

                if (value == null)
                {
                    return;
                }

                value = new StringValueEditDlg().ShowDialog(value);

                if (String.IsNullOrEmpty(value))
                {
                    return;
                }

                value = new Uri(value).ToString();
                // UpdateItem(ItemsLV.SelectedItems[0], value);
                AdjustColumns();
            }
            catch (Exception exception)
            {
                GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
            }
        }
예제 #2
0
        /// <summary>
        /// Displays a dialog that allows a use to edit a value.
        /// </summary>
        public static object EditValue(Session session, object value, NodeId datatypeId, int valueRank)
        {
            if (value == null)
            {
                value = GuiUtils.GetDefaultValue(datatypeId, valueRank);
            }

            if (valueRank >= 0)
            {
                return(new ComplexValueEditDlg().ShowDialog(value));
            }

            BuiltInType builtinType = TypeInfo.GetBuiltInType(datatypeId, session.TypeTree);

            switch (builtinType)
            {
            case BuiltInType.Boolean:
            case BuiltInType.Byte:
            case BuiltInType.SByte:
            case BuiltInType.Int16:
            case BuiltInType.UInt16:
            case BuiltInType.Int32:
            case BuiltInType.UInt32:
            case BuiltInType.Int64:
            case BuiltInType.UInt64:
            case BuiltInType.Float:
            case BuiltInType.Double:
            case BuiltInType.Enumeration:
            {
                return(new NumericValueEditDlg().ShowDialog(value, TypeInfo.GetSystemType(builtinType, valueRank)));
            }

            case BuiltInType.Number:
            {
                return(new NumericValueEditDlg().ShowDialog(value, TypeInfo.GetSystemType(BuiltInType.Double, valueRank)));
            }

            case BuiltInType.Integer:
            {
                return(new NumericValueEditDlg().ShowDialog(value, TypeInfo.GetSystemType(BuiltInType.Int64, valueRank)));
            }

            case BuiltInType.UInteger:
            {
                return(new NumericValueEditDlg().ShowDialog(value, TypeInfo.GetSystemType(BuiltInType.UInt64, valueRank)));
            }

            case BuiltInType.NodeId:
            {
                return(new NodeIdValueEditDlg().ShowDialog(session, (NodeId)value));
            }

            case BuiltInType.ExpandedNodeId:
            {
                return(new NodeIdValueEditDlg().ShowDialog(session, (ExpandedNodeId)value));
            }

            case BuiltInType.DateTime:
            {
                DateTime datetime = (DateTime)value;

                if (new DateTimeValueEditDlg().ShowDialog(ref datetime))
                {
                    return(datetime);
                }

                return(null);
            }

            case BuiltInType.QualifiedName:
            {
                QualifiedName qname = (QualifiedName)value;

                string name = new StringValueEditDlg().ShowDialog(qname.Name);

                if (name != null)
                {
                    return(new QualifiedName(name, qname.NamespaceIndex));
                }

                return(null);
            }

            case BuiltInType.String:
            {
                return(new StringValueEditDlg().ShowDialog((string)value));
            }

            case BuiltInType.LocalizedText:
            {
                LocalizedText ltext = (LocalizedText)value;

                string text = new StringValueEditDlg().ShowDialog(ltext.Text);

                if (text != null)
                {
                    return(new LocalizedText(ltext.Locale, text));
                }

                return(null);
            }
            }

            return(new ComplexValueEditDlg().ShowDialog(value));
        }