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); } }
/// <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)); }