En estos videos, voy a mostrarle el inspector
y cómo usarlo.
¿Qué es el inspector?
Es una herramienta que permite interactuar con
cualquier objeto del sistema.
Como en Pharo todo está escrito en base a objetos,
puede inspeccionar todos los objetos que componen Pharo
La metáfora más cercana sobre qué es el inspector:
el inspector es un microscopio, pero un microscopio que
tiene capacidades para interactuar con los objetos
que está observando. Es como si estuviera
un biólogo estudiando células o bacterias,
y de repente fuera capaz, gracias a
una aguja, de interactúar con esas bacterias vivas.
He preparado una pequeña expresión.
En la vida real sería muy raro de poner
una fecha, una hora y un "Morph" mezclado en un diccionario.
pero para el propósito de este ejercicio está bien
Veamos esto. La primera cosa que hacer una vez que
escribió la expresión, es llamar
el inspector. Así, obtenemos el inspector
Verá que es un objeto polimórfico
¿Qué muestra el inspector?
Aquí, muestra que tengo varios elementos en mi
colección. Cada vez que hago clic en un elemento,
se abrirá otro inspector
en el elemento seleccionado.
Tiene que notar que el inspector GT
es la nueva versión de el inspector en Pharo,
es desarrollado por el Equipo GT en la Universidad de Berna.
¿Qué ofrece?
Ofrece la posibilidad definir diferentes vistas
adaptado a cada objeto particular
No puede inspeccionar un diccionario
de la misma forma que manipula un elemento gráfico.
El punto interesante es que cada uno de estos elementos
puede ofrecer una vista diferente para el usuario.
La vista básica que tiene es la vista en bruto.
Ésta es la vista que muestra la implementación.
Por ejemplo, abro la clase
correspondiente a OrderedDictionary, esta clase tiene
2 variables de instancia, dictionary y orderedKeys.
Aquí, el inspector me muestra los valores en bruto
contenidos en estas variables de instancia.
Si hago clic en dictionary, veo que es un diccionario.
Si hubiera hecho clic en él, veo aquí, es un diccionario
Y allí, veo una vez más la vista en bruto de este objeto.
Tiene orderedKeys que es aparentemente un arreglo.
Tengo un arreglo con Time, Date and Morph..
Cuando estoy en el modo de elementos - el modo Items es en el
que éste elemento OrderedDictionary me ofrece ver
sus claves y valores de una mejor manera.
Si mira aquí, tiene que ir al interior y
se pone un poco complicado.
Aquí no sabemos ... "¿Cuál es?
Ah, es este, puede ser a las 6 esto significa que
tengo una asociación en la que hay Time, tengo la llave y el valor, etc. "
Entonces, ve que el inspector navega.
Hay esta pequeña barra de navegación
Cuando pongo el cursor sobre estos pequeños círculos, veo
una vista previa de la pantalla a la que iría si hago clic en él.
También puedo reducir o cambiar
el tamaño de las ventanas y el foco que deseo.
Puedo seleccionar los tres, por ejemplo. Aquí elijo el tamaño grane.
para que vea mejor
Cuando estoy en modo Items,
es mejor porque puedo interactuar
Aquí veo una fecha, la clave y el valor. Por ejemplo,
cuando selecciono, veo la fecha, sin formato
de las variables de instancia.
Si hago autoexaminar, puede imaginar lo que veremos.
Veremos exactamente una fecha, Timespan,
entonces tengo start y duration.
Tengo start y duration.
Si miro la pestaña "Details",
la fecha me ofrece verla con,
por ejemplo, un año, un mes, ese tipo de cosas,
en un formato ISO, por ejemplo.
¿Como funciona?
Lo veremos en otro video, pero en realidad cada objeto
puede decidir los aspectos que mostrará
y ofrezce al inspector.
Aquí está el calendario, por ejemplo.
Puede ver que hay una representación gráfica de lo que es una fecha.
Yo retrocedo
De la misma manera, para Times, Puedes ver que hay las mismas cosas.
Le he mostrado las pestañas "Raw".
También está la pestaña "Meta".
Es un mini navegador de código que muestra los métodos.
Por ejemplo, aquí puedo ver los métodos
porque tal vez desee interactuar con la fecha y la hora.
Imaginemos que no sé lo que puedo enviarle,
tal vez puedo enviarle horas.
Regresa 18. Son 18.
Normalmente, pude verlo allí si busco la hora
Tengo la definición del método.
Es solo estar más en el flujo.
Ahora, si miro a Morph.
Es un objeto más complicado.
Vemos varios diferentes aspectos
Lo que está bien aquí, por ejemplo, es que si hago clic en
Morph, veo su representación.
Veo la representación del objeto Morph
que es de hecho un HSVAColorSelectorMorph.
Solo para mostrarle, de hecho con el inspector,
puedo interactuar con mi objeto.
Puedo decir que se abra en un mundo. y yo puedo
interactuar con mi objeto
Dependerá de qué funcionalidades
ofrece. Puedo hacer
selectedColor. Veremos si funciona.
Si hago: self selectedColor
devuelve un color.
Aquí es interesante porque
con el inspector puedo hacer una impresión,
y devuelve un texto que representa el objeto.
Pude hacer inspect en él
y se abrirá un inspector.
Es lo que estoy haciendo aquí.
Ahora si quiero el resultado de esta
expresión a inyectar en el flujo del inspector,
¿que puedo hacer?
Solo tengo que hacer "Do it and go".
Si hago "Do it and go", he agregado en el flujo de interacción
un nuevo objeto y un inspector del nuevo objeto
Usted entiende. Aquí están los colores. con la codificación de los colores.
Nada especial.
Vamos hacia atras
Lo que es interesante de ver, es que aqui tengo
una vista de mi objeto, por ejemplo en sub-morphs.
Si quiero tener la misma vista y si quiero encontrar el
sub-morphs que componene mi objeto gráfico,
cuando estoy en modo Raw, yo tengo que navegar
dentro del árbol de componentes gráficos.
Puede ser realmente molesto.
Le daré un buen consejo.
Imaginemos que tengo mi árbol Morph.
Tengo dos vistas que son exactamente lo mismo en el mismo objeto.
Puedo hacer "Submorph".
Hago Submorph en este y allí tengo Morph.
Ahora puedo seleccionar los elementos en el árbol.
Lo digo:"Quiero mostrar allí solo ésta"
O por ejemplo, aquí estoy realmente
en el sub-morph del árbol correspondiente a mi selección
Es muy poderoso porque a menudo, si tuviera que
encontrar el sub-morph correspondiente
al pequeño indicador, aquí Es bastante fácil, es este.
Sin embargo, si estoy en un modo tradicional,
no es tan fácil porque ...
De hecho, no sé cómo hacerlo.
Tengo que entrar
hasta que lo encuentre
Está aqui ... creo. porque aquí está
un objeto simple
Verá en los otros videos. que podemos hacer
este tipo de operación en cada objeto del sistema.
Le mostraré en particular que podemos hacerlo
en sistemas de archivos, las propias clases.
Como conclusión, lo que hemos visto
es que el inspector es un objeto que le permitirá
hablar con, interactuar y modificar objetos vivos,
sus objetos, y por otro lado, cada objeto
mostrará diferentes aspectos o diferentes vistas de sí mismo
para tener una diferente
interacción de acuerdo con sus escenarios
Constituye un muy, pero muy poderoso objeto.
De hecho, GT Inspector es realmente una gran herramienta