private void listViewWellbore_DoubleClick(object sender, EventArgs e) { if (step == 0) { Cursor.Current = Cursors.WaitCursor; try { CreateWellDetailColumns(); ShowDetailsOfWell(); wellbores = svr.get <WitsmlWellbore>(new WitsmlQuery(), selectedWell); CreateWellboreColumns(); ShowItemsOfWellbores(); } finally { Cursor.Current = Cursors.Default; } step++; toolStripStatusLabelWellPath.Text = "Double click on wellbore to see logs"; } else if (step == 1) { Cursor.Current = Cursors.WaitCursor; try { CreateWellboreDetailColumns(); ShowDetailsOfWellbore(); logs = svr.get <WitsmlLog>(new WitsmlQuery(), selectedWellbore); CreateLogColumns(); ShowItemsOfLogs(); } finally { Cursor.Current = Cursors.Default; } step++; toolStripStatusLabelWellPath.Text = "Double click on log to see parameters"; } else if (step == 2) { Cursor.Current = Cursors.WaitCursor; try { CreateLogDetailColumns(); ShowDetailsOfLog(); curves = selectedLog.getCurves(); iv = selectedLog.getIndexCurve(); numberOfRows = iv.getNValues(); CreateCurveColumns(); ShowItemsOfCurves(); } finally { Cursor.Current = Cursors.Default; } step++; toolStripStatusLabelWellPath.Text = "'File > Load data' to view"; } }
/** * Parse the specified DOM element and instantiate the properties * of this instance. * * @param element XML element to parse. Non-null. */ void update(XElement element) { //throws WitsmlParseException { //Debug.Assert(element != null : "element cannot be null"; // Remove current bulk data foreach (witsmllib.WitsmlLogCurve curve in curves) ((WitsmlLogCurve)curve).clear(); // Common data XElement commonDataElement = element.Element(element.Name.Namespace + "commonData");//, element.getNamespace()); if (commonDataElement != null) commonData = new WitsmlCommonData(commonDataElement); // Index indexType = XmlUtil.update(element, "indexType", indexType); if (indexType != null) { if (indexType.ToLower().Contains("time")) { startIndex = getIndex(XmlUtil.update(element, "startDateTimeIndex", (String)null)); endIndex = getIndex(XmlUtil.update(element, "endDateTimeIndex", (String)null)); } else { startIndex = getIndex(XmlUtil.update(element, "startIndex", (String)null)); endIndex = getIndex(XmlUtil.update(element, "endIndex", (String)null)); } } indexCurveName = XmlUtil.update(element, "indexCurve", indexCurveName); _isGrowing = XmlUtil.update(element, "objectGrowing", _isGrowing); nRows = XmlUtil.update(element, "dataRowCount", nRows); serviceCompany = XmlUtil.update(element, "serviceCompany", serviceCompany); runNumber = XmlUtil.update(element, "runNumber", runNumber); bhaRunNumber = XmlUtil.update(element, "bhaRunNumber", bhaRunNumber); pass = XmlUtil.update(element, "pass", pass); creationTime = XmlUtil.update(element, "creationDate", creationTime); description = XmlUtil.update(element, "description", description); direction = XmlUtil.update(element, "direction", direction); stepIncrement = XmlUtil.update(element, "stepIncrement", stepIncrement); indexUnit = XmlUtil.update(element, "indexUnits", indexUnit); noValue = XmlUtil.update(element, "nullValue", noValue); unitNamingSystem = XmlUtil.update(element, "uomNamingSystem", unitNamingSystem); comment = XmlUtil.update(element, "otherData", comment); // Curve data var logCurveInfoElements = element.Elements(element.Name.Namespace + "logCurveInfo");//, element.getNamespace()); foreach (Object e in logCurveInfoElements) { XElement logCurveInfoElement = (XElement)e; String curveName = XmlUtil.update(logCurveInfoElement, "mnemonic", (String)null); Int32? curveNo = XmlUtil.update(logCurveInfoElement, "columnIndex", (Int32?)null); WitsmlLogCurve curve = (WitsmlLogCurve)findCurve(curveName); if (curve == null) { curve = new WitsmlLogCurve(this, curveName, curveNo.Value ); curves.Add(curve); } curve.update(logCurveInfoElement); } // Bulk data XElement logDataElement = element.Element(element.Name.Namespace + "logData"); //, element.getNamespace()); if (logDataElement != null) { var dataElements = logDataElement.Elements(element.Name.Namespace + "data"); //, element.getNamespace()); //for (var j = dataElements.iterator(); j.hasNext(); ) foreach(var j in dataElements) { XElement dataElement = (XElement)j;//.next(); String valueString = dataElement.Value.Trim(); //.getTextTrim(); String[] tokens = valueString.Split(dataDelimiter); //, -1); for (int i = 0; i < tokens.Length; i++) { String token = tokens[i]; if (token.Equals(noValue)) token = ""; WitsmlLogCurve curve = (witsmllib.v140.WitsmlLogCurve)findCurve(i + 1); curve.addValue(token); } // Handle missing log values for (int i = tokens.Length; i < getNCurves(); i++) { WitsmlLogCurve curve = (witsmllib.v140.WitsmlLogCurve)findCurve(i + 1); curve.addValue(null); } } } unitConvert(); }
// Add any curves reported in identification, but not present during // instantiation protected void insertMissingCurves(WitsmlLogCurve[] curveArray) { for (int i = 0; i < curveArray.Length; i++) { if (curveArray[i] == null) { foreach (WitsmlLogCurve curve in curves) { bool isFound = false; for (int j = 0; j < curveArray.Length; j++) { if (curveArray[j] == curve) { isFound = true; break; } } if (!isFound) { curveArray[i] = curve; break; } } } } }