// Assume this has been called with an // application version selected. void SoaWg::AddServiceVersionSlot() { SoaRw *appVer = db.Tb("ApplicationVersion")->FocusRw(); if (appVer == 0) return; SoaRw *app = appVer->Ce("Application")->Row(); if (app == 0) return; DlgChooseAsset picker(this, app->Children("Service"), "Pick service"); if (picker.exec()) { db.Tb("Service")->SetFocusedRwByViewId(picker.SelectedRow()->ViewId()); SoaTb *tb = db.Tb("ServiceVersion"); SoaRw *rw = tb->AllocRw(-1, true); DlgNewAsset dlg(this, this, tb, rw); if (dlg.exec()) { tb->AddRw(dlg.Row()); RefreshViews(); } else delete rw; } }
void CBottomView::UseMyTextBlock() { viewstate leftstate; viewstate rightstate; viewstate bottomstate; if ((m_nSelBlockStart < 0)||(m_nSelBlockEnd < 0)) return; for (int i=m_nSelBlockStart; i<=m_nSelBlockEnd; i++) { bottomstate.difflines[i] = m_pViewData->GetLine(i); m_pViewData->SetLine(i, m_pwndRight->m_pViewData->GetLine(i)); bottomstate.linestates[i] = m_pViewData->GetState(i); m_pViewData->SetState(i, m_pwndRight->m_pViewData->GetState(i)); m_pViewData->SetLineEnding(i, lineendings); { if (m_pwndRight->m_pViewData->GetState(i) == DIFFSTATE_CONFLICTEMPTY) m_pViewData->SetState(i, DIFFSTATE_CONFLICTRESOLVEDEMPTY); else m_pViewData->SetState(i, DIFFSTATE_CONFLICTRESOLVED); } } CUndo::GetInstance().AddState(leftstate, rightstate, bottomstate, m_ptCaretPos); SetModified(); RefreshViews(); }
void SoaWg::DeleteBusinessUnitSlot() { SoaRw *rw = db.Tb("BusinessUnit")->FocusRw(); if (rw == 0) return; db.Tb("BusinessUnit")->DeleteRowByViewId(rw->ViewId()); RefreshViews(); }
void SoaWg::DeleteOrganizationSlot() { SoaRw *rw = db.Tb("Organization")->FocusRw(); if (rw == 0 || rw == db.Tb("Organization")->front()) return; db.Tb("Organization")->DeleteRowByViewId(rw->ViewId()); RefreshViews(); }
void CBottomView::UseMyThenTheirTextBlock() { viewstate leftstate; viewstate rightstate; viewstate bottomstate; UseYourAndTheirBlock(rightstate, bottomstate, leftstate); CUndo::GetInstance().AddState(leftstate, rightstate, bottomstate, m_ptCaretPos); RefreshViews(); }
void SoaWg::DeleteUseSlot() { if (mode == fmRealization) { SoaRw *use = db.Tb("DesignTimeServiceUse")->FocusRw(); if (use) { db.Tb("DesignTimeServiceUse")->DeleteRowByViewId(use->ViewId()); RefreshViews(); } } else if (mode == fmRuntime) { SoaRw *use = db.Tb("RuntimeServiceUse")->FocusRw(); if (use) { db.Tb("RuntimeServiceUse")->DeleteRowByViewId(use->ViewId()); RefreshViews(); } } }
void CRightView::UseRightBeforeLeft(bool refreshViews /* = true */) { viewstate rightstate; viewstate bottomstate; viewstate leftstate; UseBothRightFirst(rightstate, leftstate); CUndo::GetInstance().AddState(leftstate, rightstate, bottomstate, m_ptCaretPos); if (refreshViews) RefreshViews(); }
void SoaWg::DeleteAsset(SoaTb *tb) { SoaRw *rw = tb->FocusRw(); if (rw == 0) return; DlgDependencies dlg(this, rw); if (dlg.exec()) { tb->DeleteRowByViewId(rw->ViewId()); RefreshViews(); } }
void SoaWg::AddServiceSlot() { SoaTb *tb = db.Tb("Service"); SoaRw *rw = tb->AllocRw(-1, true); DlgNewAsset dlg(this, this, tb, rw); if (dlg.exec()) { tb->AddRw(dlg.Row()); RefreshViews(); } else delete rw; }
void CBottomView::UseBlock(CBaseView * pwndView, int nFirstViewLine, int nLastViewLine) { if (!IsViewGood(pwndView)) return; CUndo::GetInstance().BeginGrouping(); // start group undo for (int viewLine = nFirstViewLine; viewLine <= nLastViewLine; viewLine++) { viewdata lineData = pwndView->GetViewData(viewLine); if ((lineData.ending != EOL_NOENDING)||(viewLine < (GetViewCount()-1))) lineData.ending = m_lineendings; lineData.state = ResolveState(lineData.state); SetViewData(viewLine, lineData); SetModified(); } // make sure previous (non empty) line have EOL set for (int nCheckViewLine = nFirstViewLine-1; nCheckViewLine > 0; nCheckViewLine--) { if (!IsViewLineEmpty(nCheckViewLine)) { if (GetViewLineEnding(nCheckViewLine) == EOL_NOENDING) { SetViewLineEnding(nCheckViewLine, m_lineendings); SetModified(); } break; } } int nRemovedLines = CleanEmptyLines(); SaveUndoStep(); UpdateViewLineNumbers(); SaveUndoStep(); CUndo::GetInstance().EndGrouping(); // final clean up ClearSelection(); SetupAllViewSelection(nFirstViewLine, nLastViewLine - nRemovedLines); BuildAllScreen2ViewVector(); RefreshViews(); }
void SoaWg::AddServiceDomainSlot() { SoaTb *tb = db.Tb("ServiceDomain"); SoaRw *rw = tb->AllocRw(-1, true); DlgNewAsset dlg(this, this, tb, rw); if (dlg.exec()) { tb->AddRw(dlg.Row()); SoaTb *intermediaries = db.Tb("Intermediary"); intermediaries->Search(). Wt("name", DEFAULT_INTERMEDIARY_NAME). Wt("ServiceDomain", dlg.Row()). Get(intermediaries, true); RefreshViews(); } else delete rw; }
void SoaWg::ManageIntermediariesSlot() { DlgIntermediaries dlg(this, db.Tb("Intermediary"), &db); dlg.exec(); RefreshViews(); }
void CRightView::UseBlock(bool refreshViews /* = true */) { if ((m_nSelBlockStart == -1)||(m_nSelBlockEnd == -1)) return; viewstate rightstate; viewstate bottomstate; viewstate leftstate; if (m_pwndBottom->IsWindowVisible()) { for (int i=m_nSelBlockStart; i<=m_nSelBlockEnd; i++) { bottomstate.difflines[i] = m_pwndBottom->m_pViewData->GetLine(i); m_pwndBottom->m_pViewData->SetLine(i, m_pViewData->GetLine(i)); bottomstate.linestates[i] = m_pwndBottom->m_pViewData->GetState(i); m_pwndBottom->m_pViewData->SetState(i, m_pViewData->GetState(i)); m_pwndBottom->m_pViewData->SetLineEnding(i, EOL_AUTOLINE); if (m_pwndBottom->IsLineConflicted(i)) { if (m_pViewData->GetState(i) == DIFFSTATE_CONFLICTEMPTY) m_pwndBottom->m_pViewData->SetState(i, DIFFSTATE_CONFLICTRESOLVEDEMPTY); else m_pwndBottom->m_pViewData->SetState(i, DIFFSTATE_CONFLICTRESOLVED); } } m_pwndBottom->SetModified(); } else { for (int i=m_nSelBlockStart; i<=m_nSelBlockEnd; i++) { rightstate.difflines[i] = m_pViewData->GetLine(i); m_pViewData->SetLine(i, m_pwndLeft->m_pViewData->GetLine(i)); m_pViewData->SetLineEnding(i, EOL_AUTOLINE); DiffStates state = m_pwndLeft->m_pViewData->GetState(i); switch (state) { case DIFFSTATE_ADDED: case DIFFSTATE_CONFLICTADDED: case DIFFSTATE_CONFLICTED: case DIFFSTATE_CONFLICTED_IGNORED: case DIFFSTATE_CONFLICTEMPTY: case DIFFSTATE_IDENTICALADDED: case DIFFSTATE_NORMAL: case DIFFSTATE_THEIRSADDED: case DIFFSTATE_UNKNOWN: case DIFFSTATE_YOURSADDED: case DIFFSTATE_EMPTY: rightstate.linestates[i] = m_pViewData->GetState(i); m_pViewData->SetState(i, state); break; case DIFFSTATE_IDENTICALREMOVED: case DIFFSTATE_REMOVED: case DIFFSTATE_THEIRSREMOVED: case DIFFSTATE_YOURSREMOVED: rightstate.linestates[i] = m_pViewData->GetState(i); m_pViewData->SetState(i, DIFFSTATE_ADDED); break; default: break; } } SetModified(); } CUndo::GetInstance().AddState(leftstate, rightstate, bottomstate, m_ptCaretPos); if (refreshViews) RefreshViews(); }
void CRightView::UseFile(bool refreshViews /* = true */) { viewstate rightstate; viewstate bottomstate; viewstate leftstate; if (m_pwndBottom->IsWindowVisible()) { for (int i=0; i<GetLineCount(); i++) { bottomstate.difflines[i] = m_pwndBottom->m_pViewData->GetLine(i); m_pwndBottom->m_pViewData->SetLine(i, m_pViewData->GetLine(i)); bottomstate.linestates[i] = m_pwndBottom->m_pViewData->GetState(i); m_pwndBottom->m_pViewData->SetState(i, m_pViewData->GetState(i)); m_pwndBottom->m_pViewData->SetLineEnding(i, m_pViewData->GetLineEnding(i)); if (m_pwndBottom->IsLineConflicted(i)) m_pwndBottom->m_pViewData->SetState(i, DIFFSTATE_CONFLICTRESOLVED); } m_pwndBottom->SetModified(); } else { for (int i=0; i<GetLineCount(); i++) { rightstate.difflines[i] = m_pViewData->GetLine(i); m_pViewData->SetLine(i, m_pwndLeft->m_pViewData->GetLine(i)); m_pViewData->SetLineEnding(i, m_pwndLeft->m_pViewData->GetLineEnding(i)); DiffStates state = m_pwndLeft->m_pViewData->GetState(i); switch (state) { case DIFFSTATE_CONFLICTEMPTY: case DIFFSTATE_UNKNOWN: case DIFFSTATE_EMPTY: rightstate.linestates[i] = m_pViewData->GetState(i); m_pViewData->SetState(i, state); break; case DIFFSTATE_YOURSADDED: case DIFFSTATE_IDENTICALADDED: case DIFFSTATE_NORMAL: case DIFFSTATE_THEIRSADDED: case DIFFSTATE_ADDED: case DIFFSTATE_CONFLICTADDED: case DIFFSTATE_CONFLICTED: case DIFFSTATE_CONFLICTED_IGNORED: case DIFFSTATE_IDENTICALREMOVED: case DIFFSTATE_REMOVED: case DIFFSTATE_THEIRSREMOVED: case DIFFSTATE_YOURSREMOVED: rightstate.linestates[i] = m_pViewData->GetState(i); m_pViewData->SetState(i, DIFFSTATE_NORMAL); leftstate.linestates[i] = m_pwndLeft->m_pViewData->GetState(i); m_pwndLeft->m_pViewData->SetState(i, DIFFSTATE_NORMAL); break; default: break; } SetModified(); if (m_pwndLocator) m_pwndLocator->DocumentUpdated(); } } CUndo::GetInstance().AddState(leftstate, rightstate, bottomstate, m_ptCaretPos); if (refreshViews) RefreshViews(); }
void PasswordSafeFrame::OnRestoreSafe(wxCommandEvent& /*evt*/) { if (SaveIfChanged() != PWScore::SUCCESS) return; const wxFileName currbackup(towxstring(PWSprefs::GetInstance()->GetPref(PWSprefs::CurrentBackup))); wxString dir; if (m_core.GetCurFile().empty()) dir = towxstring(PWSdirs::GetSafeDir()); else { wxFileName::SplitPath(towxstring(m_core.GetCurFile()), &dir, NULL, NULL); wxCHECK_RET(!dir.IsEmpty(), _("Could not parse current file path")); } //returns empty string if user cancels wxString wxbf = wxFileSelector(_("Please Choose a Backup to Restore:"), dir, currbackup.GetFullName(), wxT("bak"), _("Password Safe Backups (*.bak)|*.bak|Password Safe Intermediate Backups (*.ibak)|*.ibak||"), wxFD_OPEN|wxFD_FILE_MUST_EXIST, this); if (wxbf.empty()) return; #ifdef NOT_YET if (m_inExit) { // If U3ExitNow called while in CPWFileDialog, // PostQuitMessage makes us return here instead // of exiting the app. Try resignalling PostQuitMessage(0); return PWScore::USER_CANCEL; } #endif CSafeCombinationPrompt pwdprompt(this, m_core, wxbf); if (pwdprompt.ShowModal() == wxID_OK) { const StringX passkey = pwdprompt.GetPassword(); // unlock the file we're leaving if (!m_core.GetCurFile().empty()) { m_core.UnlockFile(m_core.GetCurFile().c_str()); } // Reset core and clear ALL associated data m_core.ReInit(); // clear the application data before restoring ClearAppData(); if (m_core.ReadFile(tostringx(wxbf), passkey, true, MAXTEXTCHARS) == PWScore::CANT_OPEN_FILE) { wxMessageBox(wxbf << wxT("\n\n") << _("Could not open file for reading!"), _("File Read Error"), wxOK | wxICON_ERROR, this); return /*PWScore::CANT_OPEN_FILE*/; } m_core.SetCurFile(wxEmptyString); // Force a Save As... m_bRestoredDBUnsaved = true; // So that the restored file will be saved SetTitle(_("Password Safe - <Untitled Restored Backup>")); #ifdef NOT_YET app.SetTooltipText(L"PasswordSafe"); #endif #ifdef NOT_YET ChangeOkUpdate(); #endif RefreshViews(); } }
void Doc::Refresh() { RefreshViews(); }
void CBottomView::UseBothBlocks(CBaseView * pwndFirst, CBaseView * pwndLast) { if (!IsViewGood(pwndFirst) || !IsViewGood(pwndLast)) return; int nFirstViewLine = 0; // first view line in selection int nLastViewLine = 0; // last view line in selection if (!GetViewSelection(nFirstViewLine, nLastViewLine)) return; int nNextViewLine = nLastViewLine + 1; // first view line after selected block CUndo::GetInstance().BeginGrouping(); // start group undo // use (copy) first block for (int viewLine = nFirstViewLine; viewLine <= nLastViewLine; viewLine++) { viewdata lineData = pwndFirst->GetViewData(viewLine); if ((lineData.ending != EOL_NOENDING)||(viewLine < (GetViewCount()-1))) lineData.ending = m_lineendings; lineData.state = ResolveState(lineData.state); SetViewData(viewLine, lineData); if (!IsStateEmpty(pwndFirst->GetViewState(viewLine))) { pwndFirst->SetViewState(viewLine, DIFFSTATE_YOURSADDED); // this is improper (may be DIFFSTATE_THEIRSADDED) but seems not to produce any visible bug } } // make sure previous (non empty) line have EOL set for (int nCheckViewLine = nFirstViewLine-1; nCheckViewLine > 0; nCheckViewLine--) { if (!IsViewLineEmpty(nCheckViewLine)) { if (GetViewLineEnding(nCheckViewLine) == EOL_NOENDING) { SetViewLineEnding(nCheckViewLine, m_lineendings); } break; } } SaveUndoStep(); // use (insert) last block int nViewIndex = nNextViewLine; for (int viewLine = nFirstViewLine; viewLine <= nLastViewLine; viewLine++, nViewIndex++) { viewdata lineData = pwndLast->GetViewData(viewLine); lineData.state = ResolveState(lineData.state); InsertViewData(nViewIndex, lineData); if (!IsStateEmpty(pwndLast->GetViewState(viewLine))) { pwndLast->SetViewState(viewLine, DIFFSTATE_THEIRSADDED); // this is improper but seems not to produce any visible bug } } SaveUndoStep(); // adjust line numbers in target // we fix all line numbers to handle exotic cases UpdateViewLineNumbers(); SaveUndoStep(); // now insert an empty block in both first and last int nCount = nLastViewLine - nFirstViewLine + 1; pwndLast->InsertViewEmptyLines(nFirstViewLine, nCount); pwndFirst->InsertViewEmptyLines(nNextViewLine, nCount); SaveUndoStep(); int nRemovedLines = CleanEmptyLines(); SaveUndoStep(); CUndo::GetInstance().EndGrouping(); // final clean up ClearSelection(); SetupAllViewSelection(nFirstViewLine, 2*nLastViewLine - nFirstViewLine - nRemovedLines + 1); BuildAllScreen2ViewVector(); SetModified(); RefreshViews(); }
void SoaWg::AddUseSlot() { if (mode == fmRealization) { SoaRw *app = db.Tb("ApplicationVersion")->FocusRw(); SoaRw *ser = db.Tb("ServiceVersion")->FocusRw(); if (app && ser) { SoaTb *tb = db.Tb("DesignTimeServiceUse"); SoaRw *rw = tb->AllocRw(-1, true); DlgNewAsset dlg(this, this, tb, rw); if (dlg.exec()) { tb->AddRw(dlg.Row()); RefreshViews(); } else delete rw; } } else if (mode == fmRuntime) { SoaRw *app = db.Tb("DeployedApplication")->FocusRw(); SoaRw *ser = db.Tb("DeployedService")->FocusRw(); if (app && ser) { SoaRw *endpoint = 0; const SoaRwList *endpoints = ser->Children("Endpoint"); if (endpoints->size() == 1) endpoint = endpoints->front(); else if (endpoints->size() > 1) { DlgChooseAsset dlg(this, endpoints, "Choose endpoint"); if (dlg.exec()) endpoint = dlg.SelectedRow(); } if (endpoint) { SoaTb *rsus = db.Tb("RuntimeServiceUse"); SoaRw *rsu = rsus->AllocRw(-1, false); rsu->SetCe("Endpoint", endpoint); rsu->SetCe("DeployedApplication", app); DlgNewAsset useDlg(this, this, rsus, rsu); if (useDlg.exec()) { rsus->AddRw(useDlg.Row()); // add design time service use also SoaTb *dsus = db.Tb("DesignTimeServiceUse"); dsus->Search(). Wt("ServiceVersion", ser->Ce("ServiceVersion")->Row()). Wt("ApplicationVersion", app->Ce("ApplicationVersion")->Row()). Get(dsus, true); RefreshViews(); } else delete rsu; } } } }
void SoaWg::ManageRegistriesSlot() { DlgRegistries dlg(this); dlg.exec(); RefreshViews(); }
void CLeftView::UseBothLeftFirst() { if (!IsRightViewGood()) return; int nFirstViewLine = 0; // first view line in selection int nLastViewLine = 0; // last view line in selection if (!IsWritable()) return; if (!GetViewSelection(nFirstViewLine, nLastViewLine)) return; int nNextViewLine = nLastViewLine + 1; // first view line after selected block CUndo::GetInstance().BeginGrouping(); // right original become added for (int viewLine = nFirstViewLine; viewLine <= nLastViewLine; viewLine++) { if (!IsStateEmpty(GetViewState(viewLine))) { SetViewState(viewLine, DIFFSTATE_REMOVED); } } SaveUndoStep(); // your block is done, now insert their block int viewindex = nNextViewLine; for (int viewLine = nFirstViewLine; viewLine <= nLastViewLine; viewLine++) { viewdata line = m_pwndRight->GetViewData(viewLine); if (IsStateEmpty(line.state)) { line.state = DIFFSTATE_EMPTY; } else { if (line.state!=DIFFSTATE_NORMAL) { m_pwndRight->SetViewState(viewLine, DIFFSTATE_NORMAL); line.state = DIFFSTATE_NORMAL; } SetModified(); } InsertViewData(viewindex++, line); } SaveUndoStep(); // now insert an empty block in right view int nCount = nLastViewLine - nFirstViewLine + 1; m_pwndRight->InsertViewEmptyLines(nFirstViewLine, nCount); m_pwndRight->Invalidate(); SaveUndoStep(); // clean up int nRemovedLines = CleanEmptyLines(); SaveUndoStep(); UpdateViewLineNumbers(); SaveUndoStep(); CUndo::GetInstance().EndGrouping(); // final clean up ClearSelection(); SetupAllViewSelection(nFirstViewLine, 2*nLastViewLine - nFirstViewLine - nRemovedLines + 1); BuildAllScreen2ViewVector(); RefreshViews(); }