/*-----------------------------------------------------------------*/ void __fastcall TDBWFRM::RangePatternsClick(TObject *Sender) { dbw3_assert(cursorhandler); cursorhandler->DisableCursor(); try { dbw3_assert(bereichundo); TBlockmusterForm* pFrm = new TBlockmusterForm(this, *bereichundo, &bereichmuster, currentbm, cursorhandler, SUBST_RANGE, false); if (pFrm->ShowModal()==mrOk) { int x = pFrm->mx+1; int y = pFrm->my+1; // Auf Schlagpatrone umschalten ViewSchlagpatrone->Checked = true; trittfolge.einzeltritt = false; BereicheFillPattern (x, y); CalcRange(); CalcRapport(); RecalcAll(); Invalidate(); dbw3_assert (undo!=0); undo->Snapshot(); } delete pFrm; } catch (...) { } SetModified(); cursorhandler->EnableCursor(); }
JBoolean JXFileInput::InputValid() { if (itsAllowInvalidFileFlag) { return kJTrue; } else if (!JXInputField::InputValid()) { return kJFalse; } const JString& text = GetText(); if (text.IsEmpty()) { return JNegate(IsRequired()); } JString fullName; const JCharacter* errID = NULL; if (JIsRelativePath(text) && !HasBasePath()) { errID = kNoRelPathID; RecalcAll(kJTrue); } else if (!JConvertToAbsolutePath(text, itsBasePath, &fullName) || !JFileExists(fullName)) { errID = kDoesNotExistID; } else if (itsRequireReadFlag && !JFileReadable(fullName)) { errID = kUnreadableID; } else if (itsRequireWriteFlag && !JFileWritable(fullName)) { errID = kUnwritableID; } else if (itsRequireExecFlag && !JFileExecutable(fullName)) { errID = kCannotExecID; } if (JStringEmpty(errID)) { return kJTrue; } else { (JGetUserNotification())->ReportError(JGetString(errID)); return kJFalse; } }
void JXPathInput::SetBasePath ( const JCharacter* path ) { if (JStringEmpty(path)) { ClearBasePath(); } else { assert( JIsAbsolutePath(path) ); itsBasePath = path; RecalcAll(kJTrue); } }
void JXFileInput::SetBasePath ( const JCharacter* path ) { if (JStringEmpty(path)) { ClearBasePath(); } else { assert( !JIsRelativePath(path) ); itsBasePath = path; RecalcAll(kJTrue); } }
/*-----------------------------------------------------------------*/ void __fastcall TDBWFRM::SwitchRange (int _range) { RANGE savesel = selection; selection.Normalize(); if (selection.Valid() && selection.feld==GEWEBE) { bool changed = false; bool empty = true; for (int i=selection.begin.i; i<=selection.end.i; i++) for (int j=selection.begin.j; j<=selection.end.j; j++) { char c = gewebe.feld.Get(i,j); if (c>0) { gewebe.feld.Set (i, j, char(_range)); if (c!=_range) changed = true; empty = false; } } if (empty) { for (int i=selection.begin.i; i<=selection.end.i; i++) for (int j=selection.begin.j; j<=selection.end.j; j++) gewebe.feld.Set (i, j, char(_range)); changed = true; } if (changed) { RecalcAll(); CalcRangeSchuesse(); CalcRangeKette(); CalcRapport(); UpdateStatusBar(); Invalidate(); SetModified(); if (undo) undo->Snapshot(); } } else if (selection.Valid() && selection.feld==AUFKNUEPFUNG) { bool changed = false; bool empty = true; for (int i=selection.begin.i; i<=selection.end.i; i++) for (int j=selection.begin.j; j<=selection.end.j; j++) { char c = aufknuepfung.feld.Get(i,j); if (c>0) { aufknuepfung.feld.Set (i, j, char(_range)); if (c!=_range) changed = true; empty = false; } } if (empty) { for (int i=selection.begin.i; i<=selection.end.i; i++) for (int j=selection.begin.j; j<=selection.end.j; j++) aufknuepfung.feld.Set (i, j, char(_range)); changed = true; } if (changed) { RecalcGewebe(); // RecalcAll(); // Nötig weil u. U. Änderungen... CalcRangeSchuesse(); CalcRangeKette(); CalcRapport(); UpdateStatusBar(); Invalidate(); SetModified(); if (undo) undo->Snapshot(); } } else if (ViewSchlagpatrone->Checked && selection.Valid() && selection.feld==TRITTFOLGE) { bool changed = false; bool empty = true; for (int i=selection.begin.i; i<=selection.end.i; i++) for (int j=selection.begin.j; j<=selection.end.j; j++) { char c = trittfolge.feld.Get(i,j); if (c>0) { trittfolge.feld.Set (i, j, char(_range)); if (c!=_range) changed = true; empty = false; } } if (empty) { for (int i=selection.begin.i; i<=selection.end.i; i++) for (int j=selection.begin.j; j<=selection.end.j; j++) trittfolge.feld.Set (i, j, char(_range)); changed = true; } if (changed) { RecalcGewebe(); // RecalcAll(); // Nötig weil u. U. Änderungen... CalcRangeSchuesse(); CalcRangeKette(); CalcRapport(); UpdateStatusBar(); Invalidate(); SetModified(); if (undo) undo->Snapshot(); } } switch (_range) { case 1: Range1Click(this); break; case 2: Range2Click(this); break; case 3: Range3Click(this); break; case 4: Range4Click(this); break; case 5: Range5Click(this); break; case 6: Range6Click(this); break; case 7: Range7Click(this); break; case 8: Range8Click(this); break; case 9: Range9Click(this); break; } selection = savesel; }
JBoolean JXPathInput::InputValid() { if (itsAllowInvalidPathFlag) { return kJTrue; } else if (!JXInputField::InputValid()) { return kJFalse; } const JString& text = GetText(); if (text.IsEmpty()) // paranoia -- JXInputField should have reported { return !IsRequired(); } JString path; if (JIsRelativePath(text) && !HasBasePath()) { (JGetUserNotification())->ReportError(JGetString(kNoRelPathID)); RecalcAll(kJTrue); return kJFalse; } if (!JConvertToAbsolutePath(text, itsBasePath, &path)) { (JGetUserNotification())->ReportError(JGetString(kInvalidPathID)); RecalcAll(kJTrue); return kJFalse; } const JString currDir = JGetCurrentDirectory(); const JError err = JChangeDirectory(path); JChangeDirectory(currDir); if (err.OK()) { if (!JDirectoryReadable(path)) { (JGetUserNotification())->ReportError(JGetString(kUnreadableID)); RecalcAll(kJTrue); return kJFalse; } else if (itsRequireWriteFlag && !JDirectoryWritable(path)) { (JGetUserNotification())->ReportError(JGetString(kUnwritableID)); RecalcAll(kJTrue); return kJFalse; } else { return kJTrue; } } const JCharacter* errID; if (err == kJAccessDenied) { errID = kAccessDeniedID; } else if (err == kJBadPath) { errID = kBadPathID; } else if (err == kJComponentNotDirectory) { errID = kCompNotDirID; } else { errID = kInvalidDirID; } (JGetUserNotification())->ReportError(JGetString(errID)); RecalcAll(kJTrue); return kJFalse; }
void AutoFieldSetup() { MenuRootC::currTreeObj = NULL; fieldDataRoot.CloseUI(); bool multiWells = MultiWellIDS() && processTestZonePressureData; autoRoot = &fieldDataRoot; // just for effect fieldDataRoot.pageLeafs[0]->pageObjects[0]->SetID("Pens&ColorMaps"); fieldDataRoot.pageLeafs[0]->pageSelected = false; fieldDataRoot.pageLeafs[0]->pageExpanded = false; fieldDataRoot.pageLeafs[0]->UpdatePage(); // delete downstream pages DeleteFieldPage(processTestZonePressureData, "P_Cartesian", 0); DeleteFieldPage(processTestZoneFlowData, "Q_Cartesian", 0); // FuncObjArray fieldPFO, fieldQFO, simPFO, simQFO; if (multiWells) { for (int i = 0; i < currentWells.Size(); i++) { MenuPageC* currWell = fieldDataRoot.FindPage(currentWells[i], 0); if (currWell) { DeleteFieldPages(currWell); if (currWell->childPages.IsEmpty()) DeleteFieldPage(true, currentWells[i], 0); } } for (int i = 0; i < currentWells.Size(); i++) { wellID = currentWells[i]; MenuPageC* currWell = fieldDataRoot.FindPage(wellID, 0); if (!currWell) { AddNewDataPage(wellID, 0); currWell = autoPage; } AddFieldPages(autoPage, i == 0, fieldPFO, fieldQFO); simPFO += DataCaptureStaticSupport::GetWellPFO(wellID); simQFO += DataCaptureStaticSupport::GetWellQFO(wellID); } } else { DeleteFieldPages(0); wellID = currentWells[0]; AddFieldPages(0, true, fieldPFO, fieldQFO); simPFO += DataCaptureStaticSupport::GetWellPFO(wellID); simQFO += DataCaptureStaticSupport::GetWellQFO(wellID); } // set data capture // dataCapture.SetToInitial(); // sets s_PDAT & s_QDAT FuncObjC* pressSimFO = 0; FuncObjC* flowSimFO = 0; if (dataCapture.DataCaptureOK()) { pressSimFO = dataCaptureData[0]->GetObjRef(); if (processTestZoneFlowData) flowSimFO = dataCaptureData[1]->GetObjRef(); } if (createPressurePlot && processTestZonePressureData) { AddNewXYPage("Fld", "P_Cartesian", true, true); if (multiWells) { for (int i = 0; i < currentWells.Size(); i++) { char objID[80]; MakeString(objID, currentWells[i], "_Pressure", 80); PFO_2DXYData* currXY = AddXYDataPFO(objID); MakeString(objID, currentWells[i], " measured pressure", 80); SetXYDisplay(*currXY, 0, FuncObjRef(fieldPFO[i], 0), ps_FCircle, objID); currXY->xySeries[0].seriesPen = i + 1; MakeString(objID, currentWells[i], " simulated pressure", 80); SetXYDisplay(*currXY, 1, FuncObjRef(simPFO[i], 0), "Simulated pressure"); currXY->xySeries[1].seriesPen = i + 1; } } else { PFO_2DXYData* currXY = AddXYDataPFO("Pressure"); SetXYDisplay(*currXY, 0, FuncObjRef(fieldPFO[0], 0), ps_FCircle, "Measured pressure"); SetXYDisplay(*currXY, 1, FuncObjRef(simPFO[0], 0), "Simulated pressure"); } AddNewObject("PPO_SequenceGridLines", "Sequences", true); RecalcPage(); } if (createFlowPlot && processTestZoneFlowData) { AddNewXYPage("Fld", "Q_Cartesian", true, true); PFO_2DXYData* currXY = AddXYDataPFO("Flow"); SetXYDisplay(*currXY, 0, FuncObjRef(fieldQFO[0], 0), ps_FCircle, "Field flow rate"); SetXYDisplay(*currXY, 1, FuncObjRef(simQFO[0], 0), "Simulated flow rate"); AddNewObject("PPO_SequenceGridLines", "Sequences", true); RecalcPage(); } RecalcAll(); }