internal void NotificarEliminacion() { ID = int.MaxValue; _Anterior = null; _Siguiente = null; _Formato = null; }
internal Parrafo Clonar(Documento documento) { Parrafo p = new Parrafo(documento, int.MaxValue, null, null); p.bufferTexto = bufferTexto.ObtenerRangoTexto(0, bufferTexto.Length); return(p); }
internal void ConectarAntes(Parrafo parrafo) { if (parrafo != null) { parrafo._Siguiente = this; } _Anterior = parrafo; }
internal void ConectarDespues(Parrafo parrafo) { if (parrafo != null) { parrafo._Anterior = this; } _Siguiente = parrafo; }
public Parrafo ObtenerSubParrafo(Documento contenedor, int inicio, int cantidad) { Parrafo p = new Parrafo(contenedor, 0, null, null); p.bufferTexto = bufferTexto.ObtenerRangoTexto(inicio, cantidad); p._Formato = _Formato; return(p); }
internal Parrafo(Documento documento, int id, Parrafo anterior, Parrafo siguiente) { _contenedor = documento; ID = id; Posicion = 1; _Anterior = anterior; _Siguiente = siguiente; bufferTexto.Iniciar(); }
internal Parrafo DividirParrafo(int idnuevo, int posicionDivision) { Parrafo nuevo = new Parrafo(_contenedor, idnuevo, this, _Siguiente); nuevo._Formato = _Formato; InsertarSiguiente(nuevo); nuevo.bufferTexto = bufferTexto.Dividir(posicionDivision); return(nuevo); }
internal void AgregarTextoDe(Parrafo parrafo_Siguiente) { bufferTexto.Agregar(parrafo_Siguiente.bufferTexto); if (_Formato != null || parrafo_Siguiente._Formato != null) { _Formato = Formato.Fusionar(parrafo_Siguiente.Formato); } _contenedor.NotificarCambio(this); }
internal Parrafo(Documento _documento, int id, Parrafo anterior, Parrafo siguiente, Parrafo formatoBase) { _contenedor = _documento; ID = id; _Formato = formatoBase._Formato == null?null:formatoBase.Formato.Clonar(); Posicion = 1; _Anterior = anterior; _Siguiente = siguiente; bufferTexto.Iniciar(); }
internal void InsertarSiguiente(Parrafo nuevo) { if (_Siguiente != null) { _Siguiente._Anterior = nuevo; } nuevo._Anterior = this; Parrafo anteriorsig = _Siguiente; nuevo._Siguiente = _Siguiente; _Siguiente = nuevo; if (anteriorsig != null) { if (anteriorsig.Posicion > Posicion + 1) { _contenedor.AsegurarOrden(); nuevo.Posicion = Posicion + 1; } else { _contenedor.NotificarCambioOrden(); } } else //Si es el último párrafo { _contenedor.AsegurarOrden(); nuevo.Posicion = Posicion + 100; } /* * Parrafo sig = _Siguiente; * int contador = Posicion+5; * while (sig != null) * { * sig.Posicion = contador; * sig = sig._Siguiente; * int incremento=Math.Max(1, sig != null&&sig.Posicion>contador ? (sig.Posicion - contador) / 2 : 10); * contador += incremento; * if (sig != null && sig.Posicion > contador) * { * break; * } * }*/ }
//internal void InsertarAnterior(Parrafo nuevo) //{ // if (_Anterior != null) // { // _Anterior._Siguiente = nuevo; // } // nuevo._Anterior = _Anterior; // nuevo._Siguiente = this; // _Anterior = nuevo; // _contenedor.NotificarCambioOrden(); // /*Parrafo ant=_Anterior; // int contador = Posicion-5; // while (ant != null) // { // ant.Posicion = contador; // ant = ant._Anterior; // int incremento=Math.Max(1,ant!=null&&ant.Posicion<contador?(ant.Posicion-contador)/2:10); // contador-=incremento; // if (ant != null && ant.Posicion < contador) // { // break; // } // }*/ //} public bool EsSiguiente(Parrafo parrafo2) { _contenedor.AsegurarOrden(); return(Posicion < parrafo2.Posicion); }