Opened 14 years ago
Last modified 14 years ago
#556 new task
Edición avanzada en MMS
Reported by: | Pedro Gea | Owned by: | Pedro Gea |
---|---|---|---|
Priority: | critical | Milestone: | Next |
Component: | General | Keywords: | |
Cc: |
Description
Se crea un tique para coordinar todas las acciones destinadas a mejorar o ampliar los mecanismos de edición de MMS.
Entre estos mecanismos se encuentran:
- La duplicación de objetos (#344)
- La eliminación de objetos (#398)
- Los mecanismos copiar/pegar (#443, #515)
- La fusión o combinación de objetos (#323, #430)
- Otros mecanismos derivados (#397)
Junto a la implementación de estos mecanismos hay que comprobar la estabilidad y coherencia de los objetos ante dichas actuaciones.
Se consideran necesarios los siguientes pasos:
- Implementar un portapapeles (véase #443). Se sugiere extraer el portapapeles del contenedor de MMS, usar verdaderas referencias en lugar de direcciones de memoria y permitir el copiado sólo de conjuntos homogéneos de objetos.
- Revisar los enlaces (relaciones indirectas entre objetos) para posibilitar un enlazado retardado o bajo demanda como el de las
@Variable
que facilite los mecanismos de edición así como la creación de jerarquías sofisticadas sin tener que atender al orden. - Implementar los mecanismos de copiado y pegado desde las propias instancias, de modo que estos mecanismos no sean exclusividad de la GUI y favoreciendo los mecanismos:
GUI -> instance -> Clipboard
en los que es la instancia la que accede al portapapeles. - Estudiar las distintas posibilidades de pegado: manteniendo originales, sustituyendo originales, fusionando objetos, añadiéndolos como copias, etc.
Change History (13)
comment:1 Changed 14 years ago by
comment:2 Changed 14 years ago by
comment:3 Changed 14 years ago by
(In [2327]) Se revisan las clases abstractas @ObjectLinker y @ObjectLinked destinadas a facilitar la gestión de enlaces (referencias) entre objetos que no tienen una relación directa en el árbol de objetos padre-hijo.
Se añaden nuevos métodos para facilitar la gestión de los enlaces: _AppendLink, _RemoveLink, _DestroyLinkSet.
Se derivan las m-variables y las c-variables de los objetos enlazadores (@ObjectLinker)
Se revisan los métodos SetName de los objetos enlazados.
Se sustituyen los métodos _.UpdateMVariableName, _.UpdateMElementName por llamadas a _OnLinkedChangeIdentifier.
Se revisa el sistema de enlaces retardado de las variables, se introducen nuevos métodos: _Link* y _Unlink* y se unifican los conjuntos de enlaces (_variables) y referencias (_dependences).
Refs #512, #528, #556
comment:4 Changed 14 years ago by
(In [2328]) Se revisa el uso de los métodos _OnChange_ObjectLinker, _OnChangeIdentifier_ObjectLinker y _OnDestroy_ObjectLinker en los métodos _OnChange, _OnChangeIdentifier y _.Destroy.
Se sugiere la necesidad de revisar los métodos _.Update*Name y _.Update*Identifier para no tener que indicar el antiguo nombre o identificador haciendo uso de la referencia _this y la comparación entre objetos.
Refs #528, #556
(In [2319]) Se crea un nuevo objeto portapapeles
Clipboard
en el paquete MMS, fuera del contenedorContainer
.Se revisa el mecanismo para crear el contenedor como objeto único al crear así también al portapapeles.
Se revisan los mecanismos copiar/pegar ya implementados en el módulo de variables, ubicándolos en las propias instancias:
::Edit.Copy
y::Edit.Paste
.Refs #556