/** Une los puntos de la nueva celula. */ void PanelDibujado::unePuntosPintado() { PanelPropiedades *panelDer; panelDer = interfazPrincipal->getPanelPropiedades(); if(!capaCelula->getSeccionBorrada()) { //Lanzamos la señal para añadir a la pila deshacer modifCell.emit(); } //Agregamos la celula if(!capaCelula->agregaCelula()) { capaCelula->borrarCelulaNueva(); } else { capaCelula->addCellToListCells(); } actualizarVista(); }
/** Establece el estado de las celulas. @param est, string. */ void PanelDibujado::estabEstadoPopup(string est) { int tam, numCelula; PanelPropiedades *panelDer; panelDer = interfazPrincipal->getPanelPropiedades(); tam = capaCelula->getNumsCelulaSeleccionada(); modifClaseEstadoP.emit(); //if(est == "sin estado") if(est == "without state") { est = ""; } for(int i = 0; i < tam; i++) { numCelula = capaCelula->getCelulaSeleccionada(i); est = capaCelula->setEstadoCelulaSeleccionada(est, numCelula); } barraEst->setEstadoCell(est); capaCelula->vaciaVectorCelulaSeleccionada(); menuPopupCel->setSensitiveInicialPopup(); menuPrinc->setSensitiveOpcMenu("SubCalcularUnDiam"); panelDer->setSensitiveCalcDiam(false); panelDer->setSensitiveSelecClase(false); panelDer->setSensitiveSelecEstado(false); //Repintamos actualizarVista(); }
/** Destruye la rejilla. */ void PanelDibujado::destrucRejilla() { verRejilla = false; surfaceRejilla->finish(); actualizarVista(); }
void CSMPCacheView::OnFileOpen() { // TODO: Agregue aquí su código de controlador de comandos CString sFiltro; sFiltro="Ficheros configuracion (*.cfg)|*.cfg|Fichers traza (*.prg)|*.prg||"; CFileDialog Dialogoabrir(TRUE,NULL,NULL,4|2,sFiltro); if(Dialogoabrir.DoModal() != IDOK) return; ErrorConfig varControl; CStdioFile file; CString str; int i = 0; file.Open(Dialogoabrir.GetPathName(), CFile::modeRead); file.ReadString(str); file.ReadString(str); procn = _wtoi(str); if(procn < 1 || procn > 8) varControl.add(_T("Error en la configuracion del numero de procesadores!")); file.ReadString(str); file.ReadString(str); protocolo = int2Protocolo(_wtoi(str),varControl); file.ReadString(str); file.ReadString(str); arbitracion = int2Arbitracion(_wtoi(str),varControl); file.ReadString(str); file.ReadString(str); anchoPalabra = _wtoi(str); if(anchoPalabra != 8 && anchoPalabra != 16 && anchoPalabra != 32 && anchoPalabra != 64 ) varControl.add(_T("Error en la configuracion del ancho de palabra!")); file.ReadString(str); file.ReadString(str); palabrasBloque = _wtoi(str); if(palabrasBloque < 1 || ((int) log2(palabrasBloque)) != log2(palabrasBloque) || log2(palabrasBloque) > 10 ) varControl.add(_T("Error en la configuracion de palabras por bloque!")); file.ReadString(str); file.ReadString(str); bloqMemoria = _wtoi(str); if(bloqMemoria < 1 || ((int) log2(bloqMemoria)) != log2(bloqMemoria) || log2(bloqMemoria) > 15 ) varControl.add(_T("Error en la configuracion del numero de bloques en memoria!")); file.ReadString(str); file.ReadString(str); bloqCache = _wtoi(str); if(bloqCache < 1 || ((int) log2(bloqCache)) != log2(bloqCache) || log2(bloqCache) > 9 ) varControl.add(_T("Error en la configuracion del numero de bloques en cache!")); file.ReadString(str); file.ReadString(str); fcorrespondencia = int2Correspondencia(_wtoi(str),varControl); file.ReadString(str); file.ReadString(str); nConjuntos = _wtoi(str); if(nConjuntos < 0 || ((int) log2(nConjuntos)) != log2(nConjuntos) || log2(nConjuntos) > 9 ) varControl.add(_T("Error en la configuracion del numero de conjuntos en cache!")); file.ReadString(str); file.ReadString(str); aremplazamiento = int2ARemplazamiento(_wtoi(str),varControl); file.ReadString(str); file.ReadString(str); nCache = _wtoi(str); if(nCache != 1) varControl.add(_T("Error en la configuracion del numero de niveles de cache!")); file.ReadString(str); file.ReadString(str); pescritura = _wtoi(str); if(pescritura != 2) varControl.add(_T("Error en la configuracion del protocolo de escritura!")); file.ReadString(str); //ficheros de traza for(int i = 0; i < 8;i++) { file.ReadString(str); fTrazas[i] = str.Right(str.GetLength()-3); } //obtencion de las estadisticas totales int TAccesos = 0, TInst = 0, TLec = 0, TEsc = 0; CStdioFile file2; CString str2; for(int i = 0; i<procn;i++) { if(!fTrazas[i].IsEmpty()) { if(!file2.Open(fTrazas[i], CFile::modeRead)) { varControl.add(_T("Error: archivo de traza inexistente")); } while(file2.ReadString(str2)) { TAccesos++; int i = 0; switch((TINSTRUCCION)_wtoi(str2.Left(1))) { case 0: TInst++;break; case 2: TLec++;break; case 3: TEsc++;break; } } file2.Close(); } } bIniciar.EnableWindow(true); char cadena[20]; _itoa_s(TInst,cadena,10); TotalInst.SetWindowTextW((CString)cadena); _itoa_s(TAccesos,cadena,10); TotalAccesos.SetWindowTextW((CString)cadena); _itoa_s(TLec,cadena,10); TotalLeidas.SetWindowTextW((CString)cadena); _itoa_s(TEsc,cadena,10); TotalEscritos.SetWindowTextW((CString)cadena); bool alguna = false; for(int i =0; i< 8; i++) { if(!fTrazas[i].IsEmpty()) alguna = true; } if(!alguna) varControl.add(_T("Error en la configuracion de los ficheros de traza, no se ha indicado ninguno!")); if(fcorrespondencia == F_DIRECTA && (nConjuntos != 0 || aremplazamiento != R_NO)) varControl.add(_T("Error, falta de coherencia en los datos")); if(fcorrespondencia == F_ACONJUNTOS && nConjuntos == 0) varControl.add(_T("Error, falta de coherencia en los datos")); if(fcorrespondencia == F_TASOCIATIVA && nConjuntos != 0) varControl.add(_T("Error, falta de coherencia en los datos")); try{ varControl.check(); actualizarVista(); }catch (ErrorConfig *ex) { ex->what(); } }