TesisCompleta-487-2013.pdf

Anuncio
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
INTERFACES GRÁFICAS PARA DESARROLLO DE APLICACIONES JAVA
EN BLACKBERRY, COMPLEJIDAD DEL DESARROLLO Y
PROPUESTA DE AMBIENTE DE DESARROLLO
GRÁFICO
.
TESIS DE GRADO
Previa a la obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
HÉCTOR WILLIAM PILLIGUA ROBALINO
TUTOR: DAVID BENAVIDES
GUAYAQUIL – ECUADOR
2013
I
REPOSITORIO NACIONAL EN CIENCIAS Y TECNOLOGÍA
FICHA DE REGISTRO DE TESIS
TÍTULO “interfaces gráficas para desarrollo de aplicaciones java en BlackBerry, complejidad del desarrollo y
propuesta de ambiente de desarrollo grafico.”
REVISORES:
INSTITUCIÓN:
Universidad de Guayaquil
FACULTAD:
Ciencias Matemáticas y Físicas
CARRERA: Ingeniería en sistemas computacionales
FECHA DE PUBLICACIÓN: Noviembre del 2013
N° DE PÁGS.: 183
ÁREA TEMÁTICA: Desarrollo Windows
PALABRAS CLAVES: desarrollo móvil, complejidad de desarrollo , lenguaje java, IDE gráfico, optimización de programación
RESUMEN: Para el desarrollo de aplicaciones móviles se generó la aplicación que facilita una interface gráfica que permitirá
manipular los diferentes elementos de la aplicación móvil y facilitando el desarrollo de los mismos, permite generar una solución
que se importa en el ambiente de eclipse, y una vez en este ambiente se facilita la publicación.
N° DE REGISTRO(en base de datos):
N° DE CLASIFICACIÓN:
Nº
DIRECCIÓN URL (tesis en la web):
ADJUNTO PDF
CONTACTO CON AUTOR:
SI
Teléfono:
0997450851
CONTACTO DE LA INSTITUCIÓN
NO
X
E-mail:
hector.pilligua.hwpr@gmail.com
Nombre:
Teléfono:
II
APROBACIÓN DEL TUTOR
En mi calidad de Tutor De la tesis, “Interfaces Gráficas para Desarrollo de
Aplicaciones Java en BlackBerry, Complejidad del Desarrollo y Propuesta de
Ambiente de Desarrollo Grafico“, elaborado por el Sr. Héctor William Pilligua
Robalino, egresado de la Carrera de Ingeniería en Sistemas Computacionales,
Facultad de Ciencias Matemáticas y Físicas de la Universidad de Guayaquil,
previo a la obtención del Título de Ingeniero en Sistemas, me permito declarar
que luego de haber orientado, estudiado y revisado, la apruebo en todas sus partes.
Atentamente
………………………………….
Ing. David Benavides
TUTOR
III
CERTIFICACIÓN DE GRAMATÓLOGO
Quien suscribe el presente certificado, se permite informar que después de haber
leído y revisado gramaticalmente el contenido de la tesis de grado de: Héctor
William Pilligua Robalino. Cuyo tema es: Interfaces gráficas para desarrollo de
aplicaciones java en BlackBerry, complejidad del desarrollo y propuesta de
ambiente de desarrollo gráfico.
Certifico que es un trabajo de acuerdo a las normas morfológicas, sintácticas y
simétricas vigentes.
ATENTAMENTE,
NOMBRE DEL GRAMATÓLOGO
# LICENCIA
IV
DEDICATORIA
El presente trabajo lo dedico a todas las personas que han hecho posible que se
pueda realizar así como a todos lo que han estado conmigo de manera directa e
indirecta. A mi madre que me brindaba su paciencia, en especial a mi hermano
que me dio el impulso necesario para poder meterme en la carrera de ingeniería
en sistemas, de no haber sido por el ahora no sé dónde me encontraría ni qué
tipo de amistades tendría.
Héctor William Pilligua Robalino
V
AGRADECIMIENTO
Se agradece el presente a mi familia que sin el apoyo de ellos no hubiera
sido posible el culminar mi carrera profesional, en especial a todas esas
personas que se han hecho mis amistades, sin el consejo de ellos no
hubiera seguido esta carrera, porque aquí se me ha presentado problemas
personales pero ellos y ellas siempre estaban ahí para darme ánimos y
fuerzas
Héctor William Pilligua Robalino
VI
TRIBUNAL DE GRADO
Ing. Fernando Abad Montero
DECANO DE LA FACULTAD
CIENCIAS MATEMÁTICAS Y FÍSICAS
Ing. David Benavides
TUTOR
TRIBUNAL
Ing. Héctor Lara Gavilanes
Miembro de tribunal
Ing. Juan Chanabá Alcócer
DIRECTOR
Ing. Miguel Molina Calderón
Miembro de tribunal
Ing. Israel Ortega Oyala
Miembro de Tribunal
AB. Juan Chávez A.
SECRETARIO
VII
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS
COMPUTACIONALES
INTERFACES GRÁFICAS PARA DESARROLLO DE APLICACIONES
JAVA EN BLACKBERRY, COMPLEJIDAD DEL DESARROLLO Y
PROPUESTA DE AMBIENTE DE DESARROLLO
GRAFICO
.
Proyecto de trabajo de grado que se presenta como requisito para optar por el
título de INGENIERO en SISTEMAS COMPUTACIONALES
.
Autor: Héctor William Pilligua Robalino
C.I. 092261482-1
Tutor: Ing. David Benavides.
Guayaquil, Noviembre de 2013
VIII
CERTIFICADO DE ACEPTACIÓN DEL TUTOR
En mi calidad de Tutor del Primer Curso de Fin de Carrera, nombrado por el
Departamento de Graduación y la Dirección de la Carrera de Ingeniería en
Sistemas Computacionales de la Universidad de Guayaquil,
CERTIFICO:
Que he analizado el Proyecto de Grado presentado por el egresado Héctor
William Pilligua Robalino, como requisito previo para optar por el título de
Ingeniero cuyo problema es:
¿Cómo favorecer el desarrollo de aplicaciones para dispositivos BlackBerry
proponiendo un ambiente de desarrollo grafico?, Considero aprobado el trabajo en
su totalidad.
Presentado por:
Héctor William Pilligua Robalino
Apellidos y Nombres completos
.
___092261482-1_____
Cédula de ciudadanía N°
Tutor Ing.: David Benavides
Guayaquil, Noviembre de 2013
IX
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS
COMPUTACIONALES
Autorización para Publicación de Tesis en Formato Digital
1. Identificación de la Tesis
Nombre Alumno: Héctor William Pilligua Robalino
Dirección: Oriente entre la 12 y la 13 pasando el puente de la A
Teléfono: 0997450851
E-mail:
hector.pilligua.hwpr@gmail.com
Facultad: Matemáticas y Físicas
Carrera: Ingeniería en Sistemas Computacionales
Título al que opta: Ingeniería en Sistemas Computacionales
Profesor guía: Ing. David Benavides
Título de la Tesis: Interfaces gráficas para desarrollo de aplicaciones Java en
BlackBerry, complejidad del Desarrollo y propuesta de ambiente de desarrollo
gráfico.
Temas Tesis: Desarrollo de aplicaciones, software, móvil, aplicación Windows
2. Autorización de Publicación de Versión Electrónica de la Tesis
A través de este medio autorizo a la Biblioteca de la Universidad de Guayaquil y a
la Facultad de Ciencias Matemáticas y Físicas a publicar la versión electrónica de
esta tesis.
Publicación electrónica:
Inmediata
x
Después de 1 año
Firma Alumno:
3. Forma de envío:
El texto de la Tesis debe ser enviado en formato Word, como archivo .Doc. o
.RTF y .Pdf para PC. Las imágenes que la acompañen pueden ser: .gif, .jpg o .tiff.
X
DVDROM
x
CDROM
ÍNDICE GENERAL
APROBACIÓN DEL TUTOR
CERTIFICACIÓN DE GRAMATÓLOGA
DEDICATORIA
AGRADECIMIENTO
TRIBUNAL DE GRADO
DECLARACIÓN EXPRESA
CERTIFICADO DE ACEPTACIÓN DEL TUTOR
ÍNDICE GENERAL
ÍNDICE DE CUADROS
ÍNDICE DE GRÁFICOS
RESUMEN
ABSTRACT
INTRODUCCIÓN
CAPITULO I – EL PROBLEMA
Ubicación del problema en un contexto
Situación conflicto
Causas y consecuencias del problema
Causas
Consecuencias
Delimitación del problema
Formulación del problema
Evaluación del problema
Objetivo de la investigación
Objetivo Generales
Objetivos Específicos
Alcances
Alcances y limitaciones de la investigación
Justificación e importancia de la investigación
CAPITULO II- MARCO TEÓRICO
Antecedentes del estudio
Fundamentación teórica
Java J2ME
KVM
III
IV
V
VI
VII
VIII
X
XI
XIII
XIV
XVII
XVIII
1-9
10-31
10-13
13-14
7-16
14-16
16-17
17
17
17-20
21-24
21
21-22
22-24
24-27
27-31
32-108
32-36
37
37-38
38-40
XI
Connected Limited Device Configuration (CLDC)
Connected Device Configuration (CDC)
CVM
RIM
NET_RIM_API
LENGUAJE DE PROGRAMACION
Programación Imperativa
Lenguaje Imperativo
Programación Declarativa
LENGUAJE MAQUINA
APLICACIONES
Aplicaciones de Negocio
Aplicaciones de Utilería
Aplicaciones de entretenimiento
INTERFACES GRÁFICAS
Metáforas
Java
ByteCode
JRE
J2SE
J2EE
J2ME
JDBC
JMS
JavaBeans
JavaScript
Servlet
PLATAFORMA .NET
BIBLIOTECAS DE CLASES .NET
COM
Common Language Runtime (CLR)
Microsoft Intermediate Language (MSIL)
Lenguaje de Programación C#
BLACKBERRY
Ambiente de Desarrollo Grafico
El Estándar de Calidad ISO 9001
Factores de calidad ISO 9126
Desarrollo de Widgets para Dispositivos BlackBerry
FUNDAMENTACIÓN LEGAL
Preguntas a Contestarse
Variables de la Investigación
DEFINICIONES CONCEPTUALES
CAPÍTULO III – METODOLOGÍA
40-41
41-42
42-43
43-44
44
44-45
44
44
45
46
46-47
46
47
47
47-54
55-60
61
61-65
65
66
66-67
67-68
68-69
70-79
80-81
81-82
82
83-84
84
84
84-89
90-92
93-95
96-98
98
99-100
100-104
104
105-106
106
106-107
107
108-144
XII
Diseño de la investigación
Modalidad de la investigación
Población y muestra
Tamaño de la muestra
Operacionalización de las variables
Instrumentos de recolección de datos
Procedimientos de la Investigación
Recolección de la Información
Procesamiento y análisis
Criterios para la elaboración de la propuesta
Criterios para la validación de la propuesta
CAPÍTULO IV – MARCO ADMINISTRATIVO
Cronograma
Presupuesto
CAPÍTULO V – CONCLUSIÓN Y RECOMENDACIÓN
Conclusiones
Recomendaciones
BIBLIOGRAFÍA
ANEXOS
109
109-110
110-113
113-116
116-118
119-124
124-126
126
127-139
140
140-144
145-147
145-146
146-147
148-151
148-149
149-151
151-152
XIII
ÍNDICE DE CUADROS
Pág.
Cuadro N° 1
Cuadro de Población
111
Cuadro N° 2
Población Aproximada 1
Cuadro N° 3
Población Aproximada 2
Cuadro N° 4
Población Aproximada 3
Cuadro N° 1
Cuadro Población 4
Cuadro N° 5
Matriz de operacionalización de variables
112
113
114
115
117
Cuadro N° 6
Condición del informante
127
Cuadro N° 7
Utiliza Dispositivos BlackBerry
129
Cuadro N° 8
Adaptación a Nuevas Herramientas
130
Cuadro N° 9
Lenguaje de Programación más Utilizados
132
Cuadro N° 10
Desarrollo de Aplicaciones con tecnología J2ME
134
Cuadro N° 11
Conocimiento de Herramientas para Desarrollo de Aplicaciones
para Dispositivos Móviles
135
Cuadro N° 12
Uso de IDE Grafico para Desarrollo de Aplicaciones
136
Cuadro N° 14
Desarrollos Frecuentes de Sistemas Informáticos
137
Cuadro N° 13
Sistemas Operativos Móviles
138
XIII
Cuadro N° 15
Sistemas Herramientas de Programación más Utilizadas para
Desarrollo de Aplicativos Móviles
139
Cuadro N° 16
Valoración de las Preguntas por los Expertos
143
Cuadro N° 17
Proyección Inicio del Negocio
147
XIV
ÍNDICE DE GRÁFICOS
Gráfico N° 1
Java 2 Micro Edition
Pág.
38
Gráfico Nº 2
Preverificación de Clases en CDLC/KVM.
41
Gráfico N°3
Relaciones APIs de Java.
42
Gráfico Nº 4
Interfaces Graficas.
48
Gráfico Nº 5
Metáfora.
55
Gráfico Nº 6
Aplicaciones.
79
Gráfico Nº 7
Applets.
80
Gráfico Nº 8
JavaBean.
81
Gráfico Nº 9
JavaScritp
82
Gráfico Nº 10
Servlets
82
Gráfico Nº 11
BlackBerry
96
Gráfico Nº 12
Condición del Informante.
127
Gráfico Nº 13
Uso de Dispositivos BlackBerry.
129
Gráfico Nº 14
Adaptación a Nuevas Herramientas.
130
XV
Gráfico Nº 15
Lenguaje de Programación más Utilizados.
132
Gráfico Nº 16
Desarrollo de Aplicaciones con tecnología J2ME.
134
Gráfico Nº 17
Conocimiento de Herramientas para Desarrollo de
Aplicaciones para Dispositivos Móviles.
135
Gráfico Nº 18
Uso de IDE para Desarrollo de Aplicaciones.
136
Gráfico Nº 19
Desarrollos Frecuentes de Sistemas Informáticos.
137
Gráfico Nº 20
Sistemas Operativos Móviles.
138
Gráfico Nº 21
Herramientas de Programación más Utilizadas para Desarrollo
de Aplicativos Móviles.
139
XVI
ANEXOS
Anexo N° 1
FLUJO DE PROCESOS
155
Anexo Nº 2
ENCUESTA PARA SELECCIÓN DE EXPERTOS
Anexo N°3
DETERMINACIÓN DEL COEFICIENTE K
Anexo Nº 4
ENCUESTA A LOS EXPERTOS SELECCIONADOS
Anexo Nº 5
CRITERIOS DE LOS EXPERTOS CONSULTADOS.
MATRIZ DE FRECUENCIAS DE LA ENCUESTA
Anexo Nº 6
IMAGEN DE CADA UNO DE LOS VALORES DE LAS
CELDAS DE LA TABLA DE FRECUENCIAS
ACUMULATIVAS RELATIVAS, POR LA INVERSA DE
LA CURVA NORMAL
Tabla 5. IMAGEN DE CADA UNO DE LOS VALORES
156
Anexo Nº 7
.Encuesta
162
158
159
160
161
XVII
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
INTERFACES GRÁFICAS PARA DESARROLLO DE APLICACIONES JAVA
EN BLACKBERRY, COMPLEJIDAD DEL DESARROLLO Y
PROPUESTA DE AMBIENTE DE DESARROLLO
GRÁFICO
.
Autor: Héctor William Pilligua Robalino
Tutor: Ing. David Benavides.
RESUMEN
Para el desarrollo de aplicaciones en dispositivos móviles se deben considerar la
tecnología habida en el dispositivo móvil así como conectividad, funcionalidades,
sistema operativo, servicios y demás, motivo por el cual se centra en el estudio a
los Smartphone de BlackBerry con sistema operativo BlackBerry OS que se
ejecuta bajo el lenguaje nativo de java j2me. El desarrollo de aplicaciones sobre
J2ME se ve truncado por las limitantes que ofrece el dispositivo, así como el poco
conocimiento que se tiene en el desarrollo de estas aplicaciones, los diferentes
objetos que se pueden implementar en una aplicación, los diferentes eventos con
los cuales se pueden interactuar. El producto a entregarse tiene como finalidad
brindar una herramienta de desarrollo amigable para los programadores que vean
afinidad a realizar aplicaciones para dispositivos móviles BlackBerry, y que por
diversos motivos no lo han hecho ya sea como por ejemplo , poco conocimiento
en los objetos de desarrollo para móviles, IDE que brindan solo interacción con el
código fuente y no brindan un entorno amigable que facilite estas aplicaciones, la
tesis actual contara con ayuda para el desarrollo de aplicaciones lo cual reducirá
considerablemente el tiempo de desarrollo así como mejora en la interfaz de
usuario a entregarse a los propietarios de los dispositivos.
XVIII
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
INTERFACES GRÁFICAS PARA DESARROLLO DE APLICACIONES JAVA
EN BLACKBERRY, COMPLEJIDAD DEL DESARROLLO Y
PROPUESTA DE AMBIENTE DE DESARROLLO
GRÁFICO
.
ABSTRACT
For the development of applications for mobile devices technology must be
considered view on the mobile device and connectivity features, operating system
and other services, which is why our study we focus on the BlackBerry
Smartphone with BlackBerry OS operating system that runs on the native
language of java j2me. Application development on J2ME is truncated by the
limitations offered by the device, and the little knowledge we have in the
development of these applications, different objects that can be implemented in an
application, the different events which can interact. The delivered product is
intended to provide a user-friendly development tool for programmers who see
affinity to make BlackBerry applications for mobile devices , and which for
various reasons have not either cause as little knowledge of the development
objects mobile , only IDE that provide interaction with the source code and do not
provide a friendly environment to facilitate these applications , the current project
will feature support for the development of applications which will significantly
reduce development time and improved user interface to surrender to the owners
of the devices.
XIX
ABREVIATURAS
ASP
CLR
MSIL
RIM
RIM
CLR
MSIL
CLDC
CDC
KVM
JNI
CVM
GUI
JVM
J2SE
J2EE
J2ME
API
JDBC
RMI
JMS
Application Service Providers
Common Language Runtime
Microsoft Intermediate Language
Research In Motion
Research In Motion
Common Language Runtime
Microsoft Intermediate Language
Connected Limited Device Configuration
Connected Device Configuration
Kilobyte Virtual Machine
Java Native interface
Compact Virtual Machine
Graphical User Interface
Máquina Virtual de Java
Java Platform, Standard Edition o Java SE
Java Platform, Enterprise Edition o Java EE
Java 2 Micro Edition
Interfaces de Programación de Aplicaciones
Java Data Base Connectivity
Java Remote Method Invocation
Java Message Service
XX
INTRODUCCIÓN
Desde la aparición de la primera generación de computadores en el año 1940, la
programación de sistemas informáticos ha sido de gran importancia, ya que es el
motor de conocimientos para el funcionamiento de las computadoras.
En la década de los 50 aparece el primer programa que se lo considero como
sistema operativo propiamente dicho, esto se presentó como un sistema batch que
permitía el manejo de memoria, procesamiento por lotes y almacenamientos
temporales.
En los años 70 aparecen los sistemas Atlas y OS/360, lo cual dio paso al
conocimiento de Unix, fortaleciendo el desarrollo de sistemas mediante este
sistema. Ya en esta década se hizo la presentación de BDOS y CP/M, lo cual se
los pueden conocer como los primeros sistemas operativos.
En los años 70 hacen su aparición los lenguajes de programación, los cuales
tenemos como prevalencia C++. Eiffel, Haskell y Miranda. En esta época también
se mejora la interacción con los diferentes componentes de red que se comenzaron
a utilizarse en los computadores personales. En el año de 1973 se considera que
hacen su aparición los teléfonos móviles.
1
En la década de los 80 empezó el auge de los computadores personales, las cuales
ya contaban con un sistema operativo que permitida trabajar con ventanas y
menues,
Con el pasar del tiempos el desarrollo de sistemas computacionales se ha ido
intensificando, lo cual ha dado mejoras en las herramientas de desarrollo,
generando nuevos métodos de trabajos para el desarrollo de sistemas, pasando de
programar en lenguaje de bajo nivel que consistía en el desarrollo de los sistemas
directo en la memoria del equipo usando lenguaje assembler a programar en
lenguajes de alto nivel, como por ejemplo visual estudio que ofrece interfaces de
fácil entendimiento para desarrollos de sistemas computacionales.
Desde la primera generación hacia la actualidad la tecnología ha ido avanzando de
tal manera que ya no se piensa solo en equipos de trabajo estacionarios, sino en
dispositivos móviles, así como por ejemplo tenemos las computadoras portátiles,
los telefónicos, localizadores, asistentes personales, libros digitales, navegadores
web, Smartphone, consolas de videojuegos, entre otros. Esto ha dado lugar a que
el desarrollo de los sistemas también se oriente hacia estos dispositivos,
generando diferentes herramientas de desarrollo de sistemas, dando pasó a
diferentes lenguajes de programación.
El desarrollo de los sistemas informáticos se desarrollaban por líneas de códigos,
lo cual demanda un gran conocimiento del lenguaje que se está utilizando para el
2
desarrollo de aplicaciones, en vista de esto se desarrollaron herramientas que
facilitan el trabajo a los programadores, ya sea facilitando el desarrollo de las
interfaces de usuarios, así como el brindar ayudas en el desarrollo del código, esto
ha dado la facilidad de que el programador se dedique más a la lógica del
desarrollo y no en el desarrollo de las interfaces.
Con estos avances se ha visto la necesidad de desarrollar los sistemas operativos
para los diferentes equipos móviles, brindando una especie de inteligencia a los
dispositivos creando así los conocidos Smartphone o teléfonos inteligentes, los
cuales facilitan el trabajo a los propietarios, entre los cuales sobresalen, Android,
IOS, JavaRIM, Windows Mobile.
Con la aparición de los equipos móviles, el desarrollo de aplicaciones se centró en
ese nuevo hito, se comenzó como en los equipos de escritorios, desarrollando
programas que se ejecutan directamente en la memoria, con el paso del tiempo y
los avances tecnológicos se han ido implementando nuevos alcances a los equipos
móviles lo cual hacia que su funcionalidad no se limiten a realizar o recibir
llamadas o mensajes de textos o agendas, sino al manejo de imágenes, acceso a
internet, manejo de multimedia, música, radio, entre otras funcionalidades.
En la actualidad el desarrollo de aplicaciones está orientado a equipos
estacionarios y a dispositivos móviles, tomando un notable crecimiento en el
3
último, debido al desarrollo de la tecnología se ha visto un notable crecimiento en
la conectividad móvil, lo que ha provocado este incremento.
Los primeros pioneros que brindaron un equipo que ofrecía varios procesos en
paralelo y permitir llevar un entorno de oficina móvil fueron BlackBerry con su
sistema operativo java RIM versión 1.4.
El desarrollo de aplicaciones móviles fue evolucionando con el pasar del tiempo,
comenzando por el año 1998 con aplicaciones para los PDA los cuales eran
herméticos y solo desarrollados por los propietarios de la marca, después con el
tiempo se ha ido expandiendo estas aplicaciones llegando a la actualidad a tener
un IDE que se pueden adaptar a diferentes aplicativos que se utilizan para
desarrollo de aplicaciones informáticas así como myeclipse, eclipse, netbeans,
visual estudio y aplicaciones web en general ya que el desarrollo de aplicaciones
web también ha tenido buena acogida entre los diferentes dispositivos móviles sin
considerar el sistema operativo con el cual estén trabajando.
El lenguaje java y su evolución y brinda la facilidad de desarrollar aplicaciones y
poder dejarlos implementados en los diferentes dispositivos habidos hasta la
fecha, esto se debe a que java permite un lenguaje de alto nivel de fácil adaptación
para el desarrollador.
4
A pesar de los avances en los diferentes lenguajes de programación, el desarrollo
de las aplicaciones para dispositivos móviles no es fácil, sino más bien es
complejo en el desarrollo, más aun cuando se necesitan desarrollar aplicaciones
con interfaces gráficas.
Para el desarrollo de las aplicaciones móviles java en especial para los
dispositivos BlackBerry se han desarrollado sistemas que permite el desarrollo de
estos programas, así como plugins, sin embargo, la complejidad del desarrollo de
las aplicaciones, en especial de las interfaces dificultan el desarrollo de los
mismos, por ello vi la necesidad de crear un sistema permita el desarrollo de las
interfaces gráficas, así como manipular las diferentes propiedades los objetos
contenidos en las interfaces de usuarios de las aplicaciones java, implementando
la acción en el elemento botón para la implementación de acciones, la
implementación de un ambiente gráfico para el desarrollo de las aplicaciones java
RIM para los dispositivos BlackBerry.
La presente tesis tiene como finalidad facilitar el desarrollo de aplicaciones para
dispositivos BlackBerry, brindando una interfaz gráfica que facilite el desarrollo
de las interfaces gráficas para los diferentes aplicativos que se desee crear para el
dispositivo móvil.
5
Brinda la generación de la solución a ser importada en el aplicativo eclipse, esto
facilita al desarrollador la revisión y generación final del aplicativo a ser
implementado en el dispositivo eclipse.
Permite la modificación del código generado, personalizando la funcionalidad de
la aplicación, cuenta con la funcionalidad de compilación, disminuyendo la
cantidad de errores que se hayan generado por la manipulación de las clases por
parte del desarrollador.
El aplicativo permitirá una mejor comprensión del desarrollo de los programas
para dispositivos BlackBerry, ya que mostrara el código generado de cada control
utilizado en la pantalla que se esté creando.
El módulo de la generación del código java se basa en los diferentes objetos
agregados en la pantalla del móvil, así como las acciones que el usuario haya
ingresado en la acciones de los botones agregados.
El módulo de compilación se encarga de la revisión y compilación del código que
se haya generado en el aplicativo, en el caso de que el código esta correcto se
mostrara una advertencia, en el caso de que el cogido generado o desarrollado
posea algún error se mostrara el error del mismo.
6
El módulo de generación de solución se encarga de recolectar las clases
generadas, desarrollar los archivos necesarios y copiar los recursos agregados para
la generación de un sistema de archivos que se cargara en el programa de eclipse,
este interpretara el programa generado, así como las clases que se han creado y
dejara todo correcto para la generación del ejecutable.
Las herramientas de desarrollo para incluir en esta aplicación fueron C# para el
entorno de escritorio y el sistema de archivos de Windows para la generación de
la solución a importarse. Considerando estos elementos se ha desarrollado la
presente tesis, la cual está estructurada en cuatro capítulos que se detallan a
continuación.
El primer capítulo trata sobre la ubicación del problema, a través de los
antecedentes, estableciendo de donde se manifiesta el problema, las causas y
consecuencias del mismo, el análisis del objeto de estudio, identificando campo,
área, aspecto y tema, determinando los objetivos específicos y generales.
En el segundo capítulo se fundamentan teóricamente diferentes componentes del
objeto de investigación relacionados con la reserva de boletos de viaje terrestre a
través de las nuevas tecnologías, se plantea las variables, dimensiones,
indicadores, hipótesis que constituyen el problema de la investigación.
En el tercer capítulo explica la metodología utilizada a través de instrumentos de
recolección y análisis de datos, definiendo la población y muestra en que se
7
realizará la investigación, estableciendo los instrumentos de recolección de los
datos y la técnica que se utilizará.
En el cuarto capítulo presenta el análisis del presupuesto para la implementación
del sistema así como el cronograma de actividades requerido para su completa
funcionalidad.
En el quinto capítulo muestra las conclusiones una vez realizado el análisis, de las
mismas se detallarán las recomendaciones del estudio
8
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
INTERFACES GRÁFICAS PARA DESARROLLO DE APLICACIONES JAVA
EN BLACKBERRY, COMPLEJIDAD DEL DESARROLLO Y PROPUESTA
DE AMBIENTE DE DESARROLLO GRÁFICO
Tesis de grado que se presenta como requisito para optar por el título de
INGENIERO en SISTEMAS COMPUTACIONES
Autor: Hector William Pilligua Robalino.
C.I.: 0922614821
David Benavides
TUTOR
Guayaquil, Noviembre de 2013
9
CAPÍTULO I
EL PROBLEMA
PLANTEAMIENTO DEL PROBLEMA
Ubicación del Problema en un Contexto
Para el desarrollo de aplicaciones existen diferentes lenguajes de programación
entre ellos se encuentran ADA, Basic, C, C#, Cobol, Fortran, Java, MatLab, LISP,
Pascal, PHP, Perl, Phyton, Bash Script, JavaScript, ASP, todos estos lenguajes
ofrecen una interacción con el sistema operativo a un alto y un bajo nivel,
mediante líneas de código.
Estas aplicaciones de desarrollaban para equipos estáticos, ya sean estos
computadoras personales o equipos más especializados así como por ejemplos
servidores, en el año 1995 se vio una nueva oportunidad con los dispositivos
móviles, con el pasar de los tiempos ha ido mejorando la tecnología móvil y con
ello los programas que se encontraban en estos dispositivos ha ido progresando,
esto produjo que hayan más requerimientos por parte de los usuarios (dueño de
equipo móvil).
Con la aparición del concepto de oficina móvil, se vio la necesidad de
personalizar las aplicaciones para las diferentes demandas que se presentaban por
partes de los dueños de los equipos, esto fomento en gran cantidad el desarrollo de
aplicaciones por parte de los programadores independientes, así también llevo a
10
algunas empresas de desarrollo de sistemas a inclinarse por esta tecnología para
poder cubrir estos requerimientos que en su mayoría son de índole
administrativos.
El inconveniente de desarrollar aplicaciones para equipos BlackBerry es que no
hay la suficiente información disponible en las redes sociales, foros, así también
no se encuentran muchos documentos que ayuden en la tarea, y esto complica el
programas las aplicaciones para los equipos BlackBerry.
Una de las herramientas que ofrece el desarrollo de aplicaciones para dispositivos
móviles es Netbeans, que ofrece un entorno tanto gráfico con por líneas de
código, el inconveniente de esta herramienta es que las aplicaciones desarrolladas
en este programa no son totalmente compatibles con lis dispositivos BlackBerry.
Otra herramienta que tenemos y es de mayor uso es eclipse, esta herramienta
cuenta con un plugin que permite crear aplicaciones para los dispositivos
BlackBerry, lo cual permite la total compatibilidad del programa desarrollado con
el dispositivo móvil, esta herramienta no cuenta con una interfaz gráfica que
facilite el desarrollo de las interfaces graficas con el usuario, la ventaja de esta
herramienta es que permite la publicación de las aplicaciones de manera sencilla y
permite la instalación del aplicativo en el mismo dispositivo.
11
El lenguaje de visual estudio no cuenta con un plugin o alguna librería que
permita el desarrollo de aplicaciones para los dispositivos BlackBerry, esta
herramienta solo permite el desarrollo de las aplicaciones para dispositivos que
cuente con sistemas operativos soportados pos Microsoft, por ejemplo los
dispositivos PDA con sistema operativo Windows Mobile.
En la actualidad no existen programas que permiten crear aplicaciones móviles a
nivel de interfaces de usuarios (front-end) para dispositivos BlackBerry que
utilicen la tecnología de java RIM, las herramientas existentes me permiten
trabajar a nivel de back-end en el cual diseñar la interfaz de usuario se hacer una
labor tediosa, lo cual genera en los clientes una inconformidad por el producto
recibido en la mayoría de las ocasiones, ya que el desarrollo no cumple con las
facilidades solicitadas, a pesar de que netbeans permite desarrollar aplicaciones
para dispositivos móviles y estas son compatibles con los dispositivos
BlackBerry, en su mayoría no son compatibles y al no utilizar objetos propios del
dispositivo móvil, no aprovechan al máximo los recursos del equipo
y esto
provoca que sean lentos y fallen en ocasiones.
La tecnología móvil es una nueva área en comparación con las otras tecnologías
existentes motivo por el cual no hay las suficientes herramientas que faciliten su
utilización, de allí que surge lo siguiente.
12
Variable Independiente:

Interfaces Gráficas para Desarrollo de Aplicaciones Java para BlackBerry
Variables dependientes:

Complejidad del Desarrollo de Aplicaciones Java Móvil

Implementación de Ambiente de Desarrollo Gráfico para Java Móvil de
.
BlackBerry
Situación Conflicto Nudos Críticos
En la actualidad hay aplicaciones que permiten crear aplicaciones java para
dispositivos BlackBerry, entre ellas tenemos el programa Research In Motion que
es un editor propio de BlackBerry, este programa permite trabajar con los objetos
de la aplicación para los dispositivos móviles pero no a nivel gráfico sino a nivel
de código. También se tienen los plugin para eclipse que permiten crear
aplicaciones para los dispositivos móviles, con la única restrictiva que no facilita
la manipular de los objetos de las interfaces de usuarios a un nivel visual, solo
permite manipular el desarrollo a nivel de código.
Las empresas de desarrollo de aplicaciones ya no solo se dedican a sistemas para
equipos de cómputos personas, sino que también se dedican al desarrollo de
aplicaciones para dispositivos móviles, lo cual en la mayoría de las veces se cobra
un valor considerable y hay que esperar para verificar si la aplicación se ajusta a
lo que el usuario requiere, la mayoría de las veces cumple pero se malgastan
13
recursos del dispositivo haciendo la aplicación no satisfactoria en un porcentaje
considerable.
El problema se limita a los desarrolladores de aplicaciones para tecnología java
RIM de BlackBerry, ya que al momento de desarrollar una aplicación, en el caso
de ser un desarrollador junior no tiene el claro conocimiento de los diferentes
objetos que se pueden usar en la interfaces de usuarios, en el caso de tratarse de un
desarrollador sénior o semi-senior se hace complicado el trabajo de crear la
interface de usuario para lo cual debe de pasar varias horas frente al computador
para tener la interface deseada.
En el caso de no tener el diseño deseado la mayoría de los programadores optan
por realizar una nueva hoja de código fuente para no dañar la lógica ingresada y
así tener una interfaz más acorde a lo deseado, esto causa perdida de tiempo en el
desarrollo de un programa.
Causas y Consecuencias del Problema
Causas:

Poco conocimiento de los controles tales como cajas de textos, listas
desplegable, opciones, menús, selecciones complementos, clases,
interface y demás objetos que se aplican en el desarrollo de
aplicaciones móviles java RIM para BlackBerry.

Limitantes de las aplicaciones en los dispositivos BlackBerry.
14

Pocos conocimientos de los eventos que se ejecutan así como las
condiciones que deben de existir para que se ejecuten los mismos.

Pocas Facilidades en la interacción de los diferentes objetos, interfaces
y clases que se utilizan en el desarrollo de una aplicación java RIM
para BlackBerry.

En la actualidad hay editores de programas para aplicaciones móviles
para los diferentes dispositivos pero para java RIM no se ofrece una
herramienta que me ofrezca facilidades (interfaz gráfica) el desarrollo
de sistemas.

Poca ayuda en internet para solución de problemas que se presenten en
el desarrollo de aplicaciones java RIM así como información de los
diferentes objetos que se apliquen en el desarrollo de los aplicativos
móviles.

Las nuevas versiones de sistema operativo BlackBerry SO permiten
mejores utilidades a aplicaciones desarrolladas para aplicaciones javas
RIM para BlackBerry.

Los programas son empaquetados y no pueden verse el código fuente
para su análisis.

Los cursos que se brindan para el desarrollo de aplicaciones son
esporádicos y no se tiene la información deseada en los mismos para el
desarrollo de aplicaciones java RIM para BlackBerry.

Multifuncionalidades que brindan los diferentes dispositivos móviles
para la ejecución de los programas java desarrollados.
15
Consecuencias:

Poca facilidad al entender la lógica de programación por el
desconocimiento de los objetos implicados en el desarrollo de las
aplicaciones java RIM para BlackBerry.

Se tiene un desconocimiento de los alcances del sistema que se puede
crear.

No se tiene una visión clara de los eventos que se pueden ejecutar a
nivel de cada elemento.

Al no tener el conocimiento de todos los objetos que ofrece en la
plataforma, no se tiene la idea de la interacción entre los diferentes
elementos.

Interfaces de desarrollo java que tienen la limitante de no contar con
interfaces para implementación de interfaces de usuarios de una
manera amigable.

Al ser una tecnología nueva no se tiene suficientes conocimientos o
foros en donde se pueda obtener información para poder realizar
aplicaciones java RIM.

El ser una nueva tecnología o ambiente de desarrollo no se ha
explotado en su totalidad las capacidades.

Los códigos de aplicaciones hechos no se puede visualizar por algún
programa de extracción de código desde los ejecutables, por ello no se
tiene el conocimiento de cómo actúan las aplicaciones ya realizadas.
16

En la actualidad son muy pocos las instituciones que brindan cursos
para desarrollo de aplicaciones y cuando estas se dan son para
diferentes dispositivos o en su defecto tienen un valor exagerado y por
ello la mayoría de las veces no se puede acceder a estos cursos.

Debido a que hay diferente gama de productos BlackBerry, la
complejidad
para
realizar
estas
aplicaciones
confunden
al
desarrollador.
Delimitación del Problema
Campo:
Desarrollo de aplicaciones.
Área:
Tecnología Móvil
Aspecto:
Complejidad de desarrollo de aplicaciones para
tecnología móvil.
Tema:
Interfaces gráficas para desarrollo de aplicaciones java en
BlackBerry, complejidad del desarrollo y propuesta de
ambiente de desarrollo gráfico.
Formulación de Problema.
Considerando los fundamentos planteados anteriormente se ha definido el
siguiente problema
¿Cómo reducir la complejidad de desarrollo de aplicaciones móviles para equipos
BlackBerry con tecnología RIM?
17
Evaluación del Problema
Actualmente al desarrollar una aplicación para java RIM solo se lo puede hacer
digitando líneas de código aun así solo tengamos que realizar una ventana de
muestra. Motivo por el cual se propone un aplicativo que me permita de una
manera dinámica, agradable y amigable desarrollar programas que se utilizara en
una aplicación java RIM para dispositivos móviles de BlackBerry.
Delimitado: Actualmente existen herramientas para el desarrollo de aplicaciones
java RIM para BlackBerry, entre estas tenemos las herramientas de java Research
In Motion, Plug-in para Eclipse Galileo, ambos programas solo brindan la una
interface en la que se debe ingresar líneas de código para el desarrollo del
programa, por lo cual no se tiene una visión del front-end, para ver estas
aplicaciones el GUI que se ofrecerá al usuario se debe ejecutar el código fuente y
ver la ejecución, esta acción provoca de retardos en el tiempo de entrega del
producto final.
Claro: El desarrollo de aplicaciones java RIM para BlackBerry difiere
considerablemente de los MDIlet (lenguaje de programación java para
dispositivos móviles) que se crean para los dispositivos móviles, esto implica que
el desarrollo de aplicaciones para el sistema operativo BlackBerry SO se haga de
una manera diferente donde las aplicaciones MDIlet no son suficientes para
cumplir con una tarea asignada o para realizar el uso correcto del dispositivo
18
Relevante: En lo que se refiere a dispositivos inteligente en la actualidad
predominan los sistemas operativos Android, IPHONESO, BlackBerry SO y
otros, motivo por el cual el desarrollo de aplicaciones para estos Sistemas
operativos merece un tratamiento diferente al lenguaje J2ME para el desarrollo de
aplicaciones MDIlet.
Contextual: Se desarrolló una herramienta que permitirá entender de mejor
manera como se encuentra estructurada una aplicación hecha para tecnología de
java RIM para dispositivos BlackBerry, para ello se desarrolla el código java
desde la interfaz de usuario de cómo se encuentran los objetos distribuidos en la
pantalla, y se muestra el código al programador .
Factible: El desarrollo de una aplicación java RIM para BlackBerry exige una
carga intelectual para el desarrollo de los Front-End. Motivo por el cual el
desarrollador debe tener conocimiento de los diferentes objetos y sus propiedades,
el programa que se desarrolló permite disminuir esta carga de conocimientos al
programador, para de esta manera centrarse en el desarrollo de la lógica del
aplicativo que se está implementando.
Identifica los productos esperados: Se desarrolló un sistema que ofrece un
entorno de diseño que permita usar de manera ágil y precisa los diferentes
elementos que se utilizan para la implementación de un sistema móvil de java
RIM para equipos BlackBerry, así también se busca disminuir la complejidad del
19
código facilitando el desarrollo de los programas y manipular las diferentes
propiedades de los objetos que se muestran en el aplicativo para el dispositivo
móvil.
Variable:
Independiente:
Interfaces Gráficas Para Desarrollo De Aplicaciones Java Para BlackBerry.
Esto permitirá desarrollar aplicaciones java para BlackBerry de manera amigable
y optimizaría el tiempo de desarrollo del mismo, reduciendo considerablemente
costos.
Dependientes:
Complejidad Del Desarrollo de Aplicaciones java Móvil.
El Desarrollo de aplicaciones java para móvil ha sido truncado debido a la poca
experiencia en este ambiente, lo cual hace que haya poco conocimiento de las
aplicaciones posibles a realizarse.
Implementación De Ambiente De Desarrollo Gráfico Para Java Móvil De
BlackBerry
Desarrollar un binario para que pueda ser cargado en los dispositivos BlackBerry
de manera dinámica y poder ser usado en un tiempo mínimo de desarrollo
20
Objetivos de la investigación:
Objetivos Generales:
 Disminuir la complejidad en el desarrollo de aplicaciones para dispositivos
móviles ya que actualmente se ejecuta mediante líneas de código lo cual
lleva a que la implementación de una solución para un Smartphone tome
un tiempo considerable en la codificación de la interfaz de usuario que en
la lógica implementada en la misma.
 Proveer una herramienta que facilite el diseño de interfaces de usuarios de
una manera amigable y mostrar en tiempo real como se esta presentación
la pantalla en móvil final para el usuario.
Objetivos Específicos:
 Elaborar una herramienta para el desarrollo de aplicaciones móviles
java para BlackBerry que permita la interacción intuitiva con lo
diferentes elementos que se encuentran en una aplicación de un
dispositivo móvil.
 Elaborar una solución que permita la optimización de los recursos que
posee el desarrollador disminuyendo su carga cognitiva para centrar
más su trabajo en el desarrollo lógico de los procesos del aplicativo.
 Evaluar el código que se genera por el diseño por el usuario,
evaluación de sintaxis de código ingresado por el usuario, conllevando
al correcto funcionamiento de las aplicaciones en el dispositivo
BlackBerry.
21
 Provee de una herramienta amigable e intuitiva para el desarrollo de
aplicaciones para que se reduzca considerablemente la complejidad en
el desarrollo de aplicaciones para los Smartphone.
 Interactuar entre las diferentes versiones de sistemas operativos que se
encuentran instalados en los dispositivos BlackBerry así como los
diferentes tipos de dispositivos habidos en el mercado.
Alcances
 Desarrollo de Herramienta con interfaz gráfica para creación de
aplicaciones java para dispositivos BlackBerry.
 Elaborar un entorno en el cual se muestren los diferentes elementos del
GUI que puede tener una aplicación java RIM para BlackBerry. Entre los
objetos que permitirá manipular se encuentran los siguientes:
 Etiqueta.
 Caja de Selección.
 Botón de Opción.
 Botón de acción.
 Lista de texto.
 Lista numérica.
 Texto de edición.
 Texto de solo lectura.
 Texto de auto búsqueda.
 Texto auto corregir.
22
 Texto auto completar.
 Campo de correo electrónico.
 Texto de contraseña.
 Texto de fecha.
 Campo web.
 Campo imagen.
 Campo mapa.
 Desarrollar un aplicativo que permita ubicar los diferentes objetos de una
aplicación java para BlackBerry.
 Establecer interacción con las diferentes propiedades de los diferentes
elementos que posee una aplicación java de BlackBerry.
 Diseñar código fuentes de aplicaciones javas para BlackBerry.
 Analizar modificaciones ingresadas por el desarrollador en el código
generador por el aplicativo.
 Elaborar una organización de los elementos no lineales sino en diferentes
áreas del área de desarrollo para mejorar el aspecto visual de las
aplicaciones.
 Elaborar una interfaz que permita a un desarrollador de aplicaciones sea
este novato o sénior el desarrollo del código de aplicaciones java RIM para
dispositivos BlackBerry.
 Relacionar los diferentes objetos de aplicaciones Java con objetos de
reconocimiento intuitivo.
23
 Permitir la modificación del código generado por el desarrollador para
poder implementar lógica de programación.
 Edición de Código fuente por medio de propiedades para incluir
funcionalidades.
 Generación de código java en archivos *.java para la implementación de la
aplicación final.
 Permitir la edición desde otros aplicativos sin que se vea afectado el
entrono gráfico desarrollado por el usuario.
 Generación de solución para importar en Eclipse.
 Permitir la generación directa en el código importado en el ambiente de
desarrollo de eclipse
 Permitir guardar el estado de la solución generada y abrirla para editar
Alcances y Limitaciones de la Investigación
Con fines metodológicos y de manejo del estudio, se ha considerado como
población de estudio, un grupo de desarrolladores que se encuentran en la
carrera de ingeniería en sistemas computacionales, personal que se encuentran
laborando en las empresas OutSoursing como consultores informáticos y que
posean conocimientos de desarrollo en tecnología java y conocimiento del
entorno de escritorio de Windows, desarrolladores en el área que no hayan
realizado estudios de ingeniería y que se encuentren laborando en empresas
como programadores, y que desarrollen aplicaciones para dispositivos
BlackBerry.
24
Se determinó que el estudio está orientado al ámbito de las personas que
desarrollan aplicaciones informáticas que buscan la manera de optimizar su
tiempo de desarrollo y no aplicar tiempo extendido en el desarrollo de las
aplicaciones gráficas para el cliente final.
El sistema se dividirá en 5 módulos principales que se detallan a continuación:
Módulo de creación inicial de solución a ser importado en Eclipse
Módulo de creación de interfaces graficas
Módulo de generación de archivos java
Módulo de verificación de información
Módulo de generación final de solución para eclipse
Módulo Creación Inicial de Solución a ser Importado en Eclipse
Genera el sistema de archivo inicial a ser importado en el proyecto de eclipse,
el sistema de archivos que contendrá la solución a ser importada, en este
módulo se solicita al usuario que ingrese el nombre del proyecto a ser
generado, así como el icono demostrativo que se implementara como icono de
aplicación en el dispositivo móvil, el nombre que se coloque aquí es el nombre
que se demostrara en el icono de la aplicación móvil.
Incluyen las validaciones correspondientes para el nombre de aplicativo, así
como también se restringe el tamaño del icono que se implementara en el
aplicativo, en el caso de no seleccionar algún icono se colocara el icono por
25
defecto que esta precargado en el aplicativo, en este módulo también se genera
la clase para poder ubicar los diferentes elementos en la pantalla del
dispositivos así como la clase inicial de la aplicación.
Módulo Creación de Interfaces Gráficas
En este módulo se muestra la interfaz gráfica que así como los objetos que
pueden ser incluidos en el aplicativo para el dispositivo BlackBerry, en este
módulo se permite la manipulación de los objetos, las propiedades de los
mismos y la inclusión de código de acción en los botones a ser utilizados, las
imágenes que se utilizaran en este módulo serán copiadas para el uso posterior
en el dispositivo BlackBerry.
Módulo Generación de Archivos Java
Genera el código java con el que se va a trabajar, cada pantalla corresponde a
una clase java que representa una pantalla en el dispositivo BlackBerry, así se
pueden desarrollar n ventanas y en el aplicativo se deberá incluir la llamada de
los mismos.
Módulo Verificación de Información
Permite una compilación de código generado, en el caso de que el usuario
haya ingresado un código erróneo se procederá a mostrar los errores
correspondientes, en el caso de que el código no tenga errores solo se
mostrarán las advertencias correspondientes
26
Módulo Generación Final de Solución para Eclipse
Genera la solución definitiva a ser utilizada en eclipse, se encarga de
recompilar los diferentes recursos que se han estado aplicando en el desarrollo
de la aplicación, así como las diferentes clases que se han generado en el
aplicativo.
Justificación e Importancia
Hace tiempo atrás las aplicaciones para dispositivos móviles eran desarrolladas
por las empresas propietarias de los mismos, dejando que estos sistemas sean solo
para funciones básicas de uso del cliente sin la opción de poder optimizar ese
código.
Con el pasar del tiempo y el avance de la tecnología se han optimizado los
desarrollos de las aplicaciones móviles, dejando así la oportunidad de optimizar
un equipo personalizando su software.
El desarrollo de las aplicaciones en los equipos móviles, por lo usual se realizan
con la tecnología del open source así como Java y C++, esto ha facilitado que la
adaptación de los códigos para los diferentes desarrolladores se haga de fácil
alcance, sin embargo el hecho de conocer el lenguaje le restringe en el hecho de
conocer las acciones que se pueden realizan en un dispositivo móvil.
27
Con la aparición de netbeans se pudo implementar el desarrollo de las
aplicaciones para dispositivos móviles a nivel de interface gráfica, sin embargo
este desarrollo no le daba al programador una perspectiva de cómo está quedando
la interfaz de usuario, esto causaba una reingeniería en el entorno gráfico cada vez
que sé que necesitaba ver la interfaz en el dispositivo y comprobar que se
ajustaban a las necesidades requeridas.
Con la aparición de los teléfonos inteligentes se ha visto la necesidad de tener
aplicaciones que se ajusten a los requerimientos de los dueños así como el utilizar
en todo lo posible las características que posea el equipo, en la mayoría de los
casos los aplicativos que se encuentran por defecto en los Smartphone no se
adaptan a los requerimientos de los dueños, poco después de este problema
hubieron programadores que se dedicaron al desarrollo de las aplicaciones para
los Smartphone.
Entre los diferentes dispositivos que se podían desarrollar se tenían, Simba.
Android, Windows Mobile, Java RIM, J2ME, IOS. El lenguaje Simba estaba
destinado a los dispositivos Nokia y Sony Ericsson en su mayoría, este sistema
ejecutaba aplicaciones en lenguaje C++, la herramienta de desarrollo que se podía
aplicar con este sistema operativo se encontraba en netbeans, con el pasar del
tiempo este sistema operativo móvil ha sido desplazado por los otros.
28
El lenguaje Java RIM es propio de los equipos BlackBerry, se ejecuta sobre la
tecnología J2ME, pero con más atributos, eventos y objetos que se encuentran en
un dispositivo BlackBerry.
El desarrollo de aplicaciones java RIM para dispositivos móviles BlackBerry se
está empleando mucho en los negocios que se encuentran en la actualidad, entre
los cuales podemos destacar entidades bancarias, negocios de ventas, negocios de
telecomunicaciones, importaciones, control de recursos, control de ingresos,
transacciones en línea, información, entre otras funcionalidades.
Entre las aplicaciones que se pueden encontrar en los dispositivos BlackBerry se
encuentran el manejo de mapas y ubicaciones, sistemas de conversiones de
monedas, sistemas de redes sociales, etc... Todos estos sistemas buscan sacar el
máximo provecho de las características del hardware que posee el equipo.
El desarrollo de aplicaciones para los equipos BlackBerry se ve algo estancado en
la actualidad ya que el desarrollo de estas aplicaciones no son explotadas, ya sea
por el poco conocimiento de código fuente, los eventos que se generan en las
aplicaciones, diferentes tipos de comunicación, almacenamiento, herramientas
adicionales, librerías, sitios web, etc., en el caso de conocer el código y los objetos
se hace tediosa la tarea de desarrollo de entorno gráfico para el gusto del usuario.
El desarrollo de las interfaces gráficas para los dispositivos BlackBerry hace que
29
el desarrollo de los sistemas para estos equipos se haga una labor tediosa y en su
mayoría les resta tiempo al desarrollador y logra dejar la lógica en segundo plano.
La solución propuesta tiene como finalidad disminuir la complejidad en el
desarrollo de aplicaciones móviles , con este fin se podrán realizar aplicaciones
para Smartphone de manera más dinámica y así se podrán optimizar los recursos y
disminuir los tiempos de desarrollo lo cual beneficiara de manera considerable a
los desarrolladores de sistemas así como a las empresas que venden sistemas
informáticos ya que implementando esta herramienta podrán entregar respuestas a
sus clientes finales dentro de un tiempo considerablemente corto y así poder
realizar más aplicaciones sin necesidad de dedicar demasiado tiempo en el
desarrollo de las interfaces de usuarios.
La solución también brindara la posibilidad de que el usuario no se vea atado a la
organización lineal que posee los objetos en los dispositivos BlackBerry, ya que
se brindara la posibilidad de colocar los objetos de la interfaz de manera que se
vea un trabajo más profesional.
A nivel administrativo permite mejorar los tiempos de desarrollo aumentando
productividad y disminuyendo gastos de tiempo y económicos en el área de
sistemas, así como establecer formatos sencillos de diseños de las interfaces y no
colocar varios objetos para obtener una solución amigable a primera vista.
30
A nivel educativo se benefician los estudiantes ya que con el avance de la
tecnología no solo se están desarrollando aplicaciones para computadores de
escritorios sino también para los dispositivos móviles que la mayoría se ejecutan
con lenguaje java, de esta manera se pueden desarrollar nuevos métodos de
enseñanza que estarían orientados a estas nuevas tecnologías.
A nivel personal permite que los programadores se familiaricen con las
aplicaciones de los dispositivos BlackBerry, y desarrollar aplicaciones sencillas
sin mucho conocimiento del lenguaje de programación Java RIM.
A nivel profesional permite tener los objetos de las aplicaciones de una manera
ordenada y permite el uso intuitivo que el desarrollador quiera implementar.
Permitiendo a los usuarios finales un mejor control de su tiempo al tener los
objetos ordenados de manera tal que no se le complique la lectura de la
información contenida en la aplicación.
31
CAPÍTULO II
MARCO TEÓRICO
Antecedentes del Estudio
Con el desarrollo de la tecnología tanto a nivel de hardware como de software se
ha ido realizando avances en las herramientas de diseños de los programas, esto
ha dado paso a que los lenguajes de programación sean complementados con
ambientes de desarrollo, esto brinda a los programadores la facilidad de desarrollo
de los sistemas de una manera amigable, optimizando el tiempo de desarrollo de
los mismos.
En año 1998 se dio a conocer NetBeans que en conjunto con Visual Studio que
permiten el desarrollo de aplicaciones de escritorio con el adicional de que
permite interactuar con los objetos gráficos de los GUIs de manera amigable, las
empresas desarrolladoras de dispositivos móviles lanzan sus sistemas para
desarrollos de sistemas como por ejemplo, Windows, BlackBerry, posterior
IPhone y Android.
Para ello veremos en profundidad lo que es NetBeans y como ha ido
evolucionando este IDE. NetBeans comenzó como un proyecto estudiantil en la
República Checa (originalmente llamado Xelfi), en 1996. La meta era escribir un
entorno de desarrollo integrado (IDE) para Java parecido a Delphi. Xelfi fue el
primer IDE escrito en Java.
32
El plan original era desarrollar unos componentes JavaBeans para redes. Jarda
Tulach, quien diseñó la arquitectura básica de la IDE, propuso la idea de llamarlo
NetBeans, a fin de describir este propósito. Cuando las especificaciones de los
Enterprise JavaBeans salieron, decidieron trabajar con este estándar, ya que no
tenía sentido competir contra él, sin embargo permaneció el nombre de NetBeans.
En la primavera de 1999, Netbeans DeveloperX2 fue lanzado, soportando Swing.
Las mejoras de rendimiento que llegaron con el JDK 1.3, lanzado en otoño de
1999, hicieron de NetBeans una alternativa realmente viable para el desarrollo de
herramientas. En el año de 1999, el equipo trabajó duro para rediseñar
DeveloperX2 en un NetBeans más modular, lo que lo convirtió en la base de
NetBeans hoy en día.
Con NetBeans 3.5 se mejoró enormemente en desempeño, y con la llegada de
NetBeans 3.6, se re implementó el sistema de ventanas y la hoja de propiedades, y
se limpió enormemente la interfaz. NetBeans 4.0 fue un gran cambio en cuanto a
la forma de funcionar del IDE, con nuevos sistemas de proyectos, con el cambio
no solo de la experiencia de usuario, sino del reemplazo de muchas piezas de la
infraestructura que había tenido NetBeans anteriormente. NetBeans IDE 5.0
introdujo un soporte mucho mejor para el desarrollo de nuevos módulos, el nuevo
constructor intuitivo de interfaces Matisse, un nuevo y rediseñado soporte de
CVS, soporte a Sun ApplicationServer 8.2, Weblogic9 y JBoss 4.
33
Con Netbeans 6.01, 6.8 y ahora en su versión mejorada 7.0 Se dio soporte a
framework comerciales como son Struts, Hibernate. Durante el desarrollo del
NetBeans IDE ocurrió una cosa interesante. La gente empezó a construir
aplicaciones usando el NetBeans core runtime con sus propios plug-ins, de hecho,
esto se convirtió en un mercado bastante grande.
El IDE NetBeans posee 20000000 de líneas de código
“El
buen código es su mejor documentación. Cuando esté a
punto de añadir un comentario, pregúntese: "¿Cómo puedo
mejorar el código para que este comentario no sea
necesario?”(Steve McConnell)
EL IDE de eclipse se desarrolló en noviembre del 2001 y apareció con reemplazo
del sistema visual Age de IBM. Eclipse cuenta con un editor de texto con
resaltado de sintaxis, la compilación es de tiempo real y cuenta con pruebas
unitarias JUnit,
Así eclipse brinda la siguiente arquitectura:

Plataforma Inicial

Plataforma de Bulding estándar

Un wodget toolkit portable

Manejo de Archivo

Manejo de Texto

Vistas

Editores

Asistentes y perspectiva.
34
Visual Studio es un IDE que soporta varios lenguajes de programación entre ellos
se encuentran Visual C++, Visual C#, Visual J#, ASP.NET, y Visual Basic .NET,
aunque en la actualidad se están desarrollando nuevas interfaces para otros
lenguajes así como el lenguaje nativo de Kinect para desarrollo de sensores, etc.
En visual estudio se pueden desarrollar aplicaciones que se comuniquen entre
estaciones de trabajo, páginas web y dispositivos móviles.
El lenguaje Visual Basic en si significa Visual = entorno Visual.
Basic=Beginnes´s All-purpose Symbolic Instruction Code que en español diría
Códigos de Instrucciones de uso universal para principiantes, Basic es un lenguaje
de programación que actúa como un intérprete entre el operador y el computador.
La versión Original de BASIC fue creada en el año de 1964, esta aplicación gano
gran popularidad por los sistemas Tiny BASIC y Microsoft BASIC.
Anteriormente BASIC se manejaba de manera modular pero con la aparición de
visual .net se empezó a manejar más orientado a objetos, así mismo también se
permite el uso de servicios web así como ambiente web en las aplicaciones de
Visual Basic.NET.
En mayo de 1991 se mostró Visual Basic 1.0
Con Visual Basic los desarrolladores pueden implementar aplicaciones en un
ambiente intuitivo y gráfico, simplemente con arrastrar controles sobre el
formulario, esto hizo posible que los programadores profesionales aumenten su
productividad.
35
“El futuro de .net está ligado al futuro de Windows, y este a
su vez está ligado a de sus usuarios, a cuántos comprarán el
móvil, Tablet, ultra portátil” (Juan Quijano)
De acuerdo con los estudios realizados las aplicaciones existentes que son RIM de
propiedad de la empresa BlackBerry para el desarrollo de aplicaciones, el IDE
BlackBerry para eclipse brindan la facilidad de poder realizar aplicaciones para
dispositivos java, pero en estos casos no se brinda una interfaz gráfica para el
desarrollo de las aplicaciones, lo cual provoca que los desarrolladores se dediquen
a realizar investigaciones, que en la mayoría de los casos no cumple con las
expectativas o no se cuenta con la información solicitada o se muestra una
información que no cumple con lo buscado, como instancia necesaria se recurre a
la consulta a los desarrolladores de a propia empresa BlackBerry, lo cuales no
contestan al requerimiento en un tiempo prudencial, en otros casos no contestan y
esto provoca retraso en los proyectos, en otros casos se desarrollan aplicaciones
en HTML5 pero el problema de esta solución es que se depende de la conexión a
internet en la mayoría de los casos.
FUNDAMENTACIÓN TEÓRICA
Java J2ME
La tecnología J2ME (Java 2da Micro Edition), es el versionamiento de java que se
puede utilizar en los diferentes dispositivos móviles así como teléfonos,
36
reproductores blue-ray, dispositivos multimedia, entre otros, debido a la
flexibilidad y las rapidez, esta librería se ha convertido en la fuente para el
desarrollo de los diferentes sistemas operativos móviles que se encuentran en el
mercado actual.
La tecnología J2ME se desarrolló para poder adaptarse a las limitaciones que se
presentan en los diferentes dispositivos móviles, de esta manera se aprovecha al
máximo las capacidades de memoria, visualización y potencia limitadas que se
presentan en los estos equipos, la mayoría de estos dispositivos son inalámbricos,
por ello esta tecnología trabaja con las diferentes conectividad móviles.
Java Micro Edición es una nueva versión de la máquina virtual de java que puede
ejecutarse en pequeños dispositivos, esta tecnología apareció debido a las
necesidades de los usuarios de telefonía móvil así como las compañías que
desarrollan aplicativos, se estaban comenzando a orientar a la programación para
los dispositivos móviles.
GRÁFICO No. 1
Java 2 micro Edition
37
Fuente. Java a Tope. J2ME de Sergio Gálvez Rojas y Lucas Ortegas Díaz
Elaborado Por: Java a Tope. J2ME de Sergio Gálvez Rojas y Lucas Ortegas Díaz
Un punto importante es que Java Micro Edition contiene una mínima parte de los
APIs de Java, esto es debido a que las APIs de java ocupa 20 MB, y los
dispositivos móviles cuentan con una capacidad limitada de memoria, en concreto
J2ME utiliza 31 clases de plataforma J2SE (Java 2 Standard Edition). La máquina
virtual que utiliza J2ME no es la clásica JVM (Java Virtual machine), esta es
dominada KVM (K Virtual Machine).
KVM
La KVM(Kilobyte Virtual Machine) consume entre 40 y 80 K de código en la
configuración estándar, dependiendo de la plataforma y las opciones de
compilación, adicional a ello el uso de memoria utiliza objetos pequeños, requiere
solo unos kilobytes de memoria dinámica para ejecutar con eficiencia, por este
punto se puede ejecutar en dispositivos que cuenten con 128kb de memoria
38
dinámica, la máquina virtual K ofrece una alta portabilidad que reduce las
dependencias del sistema en lo mínimo, incluye funciones multihilos y
procesamiento de archivos basura que se aplican independientemente del sistema.
La desventaja que se presenta con la KVM es que debido al uso bajo de memoria,
se obvian algunas funcionalidades que con una Java Virtual Machine no se
presenta como por ejemplo:

No hay soporte para variables de coma tipo flotante.

No hay soporte para el JNI(Java Native interface) debido al consumo de
memoria

No existen clases definidas por el usuario, solo clases predefinidas.

No permiten grupos de hilos daemon, solo permite usar hilos en colección.

No existe finalización de las clases.

No hay referencias débiles.

No existe la posibilidad de personalización de las excepciones.
Los diferentes componentes que componen Java micro Edition son:

Una serie de máquinas virtuales Java con diferentes requisitos orientados a
diferentes dispositivos móviles.

Perfiles que son bibliotecas java dirigidas a familias de dispositivos con
más recursos, para la implementación de funcionalidades de más alto
nivel.

Paquetes opcionales de programación.
39

Configuraciones. Que son un conjunto de clases básicas orientadas a
conformar el núcleo de las implementaciones para dispositivos móviles de
características específicas, existe 2 tipos de configuración.
o Connection Connected Limited Device Configuration (CLDC)
o Connected Device Configuration (CDC)
Connected Limited Device Configuration (CLDC)
Es una especificación de un marco para las aplicaciones Java Micro Edition que
describen el conjunto básico de las bibliotecas y las características de la máquina
virtual que deben estar presentes en una aplicación. La Connected Limited Device
Configuration se combina con uno o varios perfiles para dar a los desarrolladores
una plataforma para la creación de aplicaciones en los dispositivos embebidos con
recursos muy limitados, tales como buscapersonas y teléfonos móviles.
GRÁFICO No. 2
Pre verificación de Clases en CDLC/KVM
Fuente: Java a Tope. J2ME de Sergio Gálvez Rojas y Lucas Ortegas Díaz
Elaborado Por: Java a Tope. J2ME de Sergio Gálvez Rojas y Lucas Ortegas Díaz
Connected Device Configuration (CDC)
40
Esta es una especificación realizada por Sun dentro del conjunto de tecnologías
para computación móvil conocido como J2ME (Java 2 Mobile Edition). Define
las capacidades básicas que debe tener un dispositivo móvil con capacidad de
conexión y cuya potencia de computación se encuentra entre la de un teléfono o
PDA, con cierta capacidad como un sistema de navegación GPS para automóvil,
un DVR, PVR o un aparato para navegar por Internet.
GRÁFICO No 3.
Relaciones APIs de Java.
Fuente: Java a Tope. J2ME de Sergio Gálvez Rojas y Lucas Ortegas Díaz
Elaborado Por: Java a Tope. J2ME de Sergio Gálvez Rojas y Lucas Ortegas Díaz
CVM
La CVM (Compact Virtual Machine) es la máquina virtual java para CDC y
soporta las mismas características que la máquina virtual para de J2SE, está
orientado a dispositivos de 32 bits con memoria mínima de 2 MB de RAM, entre
las diferentes características que se presenta con esta máquina virtual tenemos:

Sistema de memoria avanzada.

Tiempo de espera bajo para limpieza.

Separación completa de la máquina virtual de sistema de memoria.

Limpieza de variables modularizado.
41

Portabilidad.

Sincronización veloz.

Ejecución de clases en memoria RAM.

Soporte e interfaces de servicios de sistema en tiempo real.

Conversión de hilos java a hilos nativos.

Soporte para características de java 2 y java 1.3

Librerías de seguridad.

Interface nativa de java (JNI).

Invocación remota de métodos(RMI

Interfaz de depuración de la máquina virtual.
RIM
Research In Motion o como mejor se la conoce BlackBerry, es una compañía
radicada en Canadá dedicada al desarrollo de dispositivos electrónicos, su cede se
encuentra en Waterloo, Ontari, además de oficinas en Norteamérica, euro, la
región de Asia y el pacifico, RIM comenzó como desarrollador en el año 1995
con un capital de 5 millones de dólares canadienses donados por Instituciones
Canadienses de Capitales.
En sus comienzos RIM era conocida como RAM Mobile Data y en compañía con
Ericsson desarrollaron la tecnología inalámbrica llamada Mobitex. Con
características como paginación y envió de correos, desde agosto del 2000 se ha
dedicado a desarrollador diferentes dispositivos compatibles con tecnología GSM
42
y CDMA, con el mejoramiento de la tecnología también se fueron incluyendo
funcionalidades como soporte para HSPDA, UMTS, EDGE y 3G.
Research In Motion desarrollo su propio software para sus dispositivos usando
lenguajes C++ y java, estas librerías son un conjunto de componentes que junto.
Con Java Micro Edition colocan en funcionamiento los diferentes aplicativos
embebidos en el equipo BlackBerry. A medida que ha ido presentándose nuevas
versiones de la librería de java se han ido agregando más funcionalidades
orientadas a la nube (internet).
NET_RIM_API
La librería net_rim_api es un conjunto de clases que permiten interactuar con las
diferentes características de los equipos BlackBerry, permitiendo la generación de
aplicativos que se ejecutan en los dispositivos móviles de una manera ágil y
ligera, también se incluye las características de comunicación, geo localización y
otras ventajas que permiten al desarrollador la creación de programas para las
diferentes versiones de equipos que hay en el mercado.
"Siempre he deseado que mi equipo sea tan fácil de usar como
mi teléfono, mi deseo se ha hecho realidad porque ya no puedo
encontrar la manera de usar mi teléfono." (Bjarne Stroustrup)
LENGUAJE DE PROGRAMACIÓN
Un lenguaje de programación se puede usar para crear programas que controlen el
comportamiento físico o lógico de la máquina, para ejecutar algoritmos con
43
precisión. Un lenguaje de programación contiene reglas sintácticas y semánticas
con el cual se escribe, se prueba, se depura y se compila.
Para desarrollar programas informáticos se tiene 2 ideologías que son imperativas
y declarativas.
Programación Imperativa
La programación imperativa es un paradigma de programación que define a la
programación en términos del estado del programa y sentencias, estas indican al
computador como realizar una tarea.
Lenguaje Imperativo.
Los lenguajes imperativos de alto nivel usan variables y sentencias más
complejas, pero aún siguen el mismo paradigma, a pesar de no ser programas de
computadora, son también conceptos familiares similares en estilo a la
programación imperativa; cada paso es una instrucción, y el mundo físico guarda
el estado.
Programación Declarativa
Una programación declarativa está basada en el desarrollo de programas
especificando
un
conjunto
de
condiciones,
preposiciones,
restricciones,
44
ecuaciones o transformaciones que describen el problema y detallan su solución,
en esta programación se desarrollan flujos de trabajo que son interpretados por la
máquina. No existen asignaciones destructivas, y las variables son utilizadas con
Transparencia referencial, los programas informáticos se dividen en dos grandes
grupos, software de sistemas y software de aplicación.
El software de sistemas son programas informáticos que sirven para controlar o
interactuar con el sistema operativo, controlando al hardware y dando soporte a
otros sistemas. Estos programas realizan diversas tareas, como la transferencia de
datos entre la memoria RAM y los dispositivos de almacenamiento (disco rígido,
unidades de discos ópticos, etc.) entre otros.
El software de aplicación es aquel que realiza una tarea determinada, este software
de puede utilizar en cualquier instalación informática, dependiendo de la tarea por
la cual sea creada, así como por ejemplo, tareas de negocios, utilerías, personales,
entre otros.
LENGUAJE MAQUINA
El lenguaje de maquina es el conjunto de códigos que han sido llevados de texto a
código binario. Este lenguaje está compuesto por un conjunto de instrucciones que
45
determinan acciones a ser tomadas por la máquina. Estas instrucciones son
normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados
por el propio programa o eventos externos. El lenguaje de máquina es específico
de cada máquina o arquitectura de la máquina, aunque el conjunto de
instrucciones disponibles pueda ser similar entre ellas.
APLICACIONES
Los software de aplicaciones dividen en cuatro categorías:

Aplicaciones de Negocio.

Aplicaciones de Utilería.

Aplicaciones Personales.

Aplicaciones de Entretenimiento.
Aplicaciones de Negocio.- Son aplicaciones que se utilizan más en empresas, ya
que brindan las facilidades de obtener reportes, realizar cálculos, documentar, etc.
Entre las más comunes encontramos procesadores de palabras, hojas de cálculo,
sistemas de bases de datos y graficado res, el ejemplo más común que podemos
encontrar en el paquete de Office de Microsoft o el paquete de Open Office de
GNU
Aplicaciones de Utilería.- Ayudan a dar mantenimiento a los sistemas así como a
la computadora en sí, entre estos sistemas podemos encuentras los accesorios de
46
Windows así como por ejemplo tenemos, el teclado, pantalla compartida, ventana
de comandos, lupa, captura de pantallas, asistencia remota, entre otras.
Aplicaciones Personales.-Son aplicaciones que permiten a los usuarios llevar un
control de sus actividades, así como tener una organización de sus tareas ,
contactos, gastos, además permiten mantener una agenda de direcciones y
calendario de citas, hacer operaciones bancarias, enviar correo electrónico y
conectarte a servicios informáticos que ofrecen grandes bases de datos de
información valiosa.
Aplicaciones de Entretenimiento.- Son aplicaciones desarrolladas con el fin
entretener. En esta categoría ingresan los videojuegos de galería, simuladores de
vuelo, juegos interactivos de misterio y rompecabezas difíciles de solucionar.
Muchos programas educativos pueden ser considerados como software de
entretenimiento. Estos programas pueden ser excelentes herramientas para la
educación.
A los sistemas que ejecutan tareas en paralelo se le conoce como multitarea.
GRÁFICO No. 4
INTERFACES GRÁFICAS
47
Fuentes: http://www.hipertexto.info/documentos/interfaz.htm
Elaboración http://www.hipertexto.info/documentos/interfaz.htm
La interfaz gráfica GUI (Graphical User Interface) es un programa que
interactúa con la interfaz de usuario, usando objetos gráficos para representar
la información y acciones disponibles en la interfaz. Su principal uso, consiste
en proporcionar un entorno visual sencillo para permitir la comunicación con
el sistema operativo de una máquina o computador.
La interfaz de usuario es el medio que utiliza el usuario para interactuar de
manera amistosa con el computador.
Entre los principales elementos de la interfaz de usuario tenemos:

Menú

Ventana

Teclado

Ratón
Existen 3 tipos de interfaces de usuarios:
48
Interfaz de hardware.- Son las interfaces de entrada y salida, aquí encontramos
puertos seriales, puertos paralelos, USB, tarjeta para los buses ISA y PCI, tarjeta
de red, protocolos top/ir, etc.
Interfaz de Software.- Es la que procesa los datos que el usuario requiera entre
ella tenemos las herramientas de negocio, personales, de entretenimiento y utilería
Interfaz de Hardware y software.-Es el que establece un puente entre la máquina
y las personas, permite a la máquina entender la instrucción y al hombre entender
el código binario traducido a información legible
Habitualmente las acciones se realizan mediante manipulación directa, para
facilitar la interacción del usuario con la computadora. Surge como evolución de
las interfaces de línea de comandos que se usaban para operar los primeros
sistemas operativos y es pieza fundamental en un entorno gráfico. Como ejemplos
de interfaz gráfica de usuario, cabe citar los entornos de escritorio Windows, el XWindows de GNU/Linux o el de Mac OS X, Aqua.
Una interfaz es un dispositivo que permite comunicar dos sistemas que no hablan
el mismo lenguaje. Restringido a aspectos técnicos, se emplea el término interfaz
para definir el juego de conexiones y dispositivos que hacen posible la
comunicación entre dos sistemas, sin embargo, cuando hablamos de interfaz nos
referimos a la cara visible de los programas tal y como se presenta a los usuarios
49
para que interactúen con la máquina. La interfaz gráfica implica la presencia de un
monitor de ordenador o pantalla constituida por una serie de menús e iconos que
representan las opciones que el usuario puede tomar dentro del sistema.
Las características básicas de una buena interfaz podrían sintetizarse en:

Facilidad de comprensión, aprendizaje y uso

Representación fija y permanente de un determinado contexto de acción
(fondo)

El objeto de interés ha de ser de fácil identificación

Diseño ergonómico mediante el establecimiento de menús, barras de
acciones e iconos de fácil acceso

Las interacciones se basarán en acciones físicas sobre elementos de
código visual o auditivo (iconos, botones, imágenes, mensajes de texto o
sonoros, barras de desplazamiento y navegación...) y en selecciones de
tipo menú con sintaxis y órdenes

Las operaciones serán rápidas, incrementales y reversibles, con efectos
inmediatos

Existencia de herramientas de Ayuda y Consulta

Tratamiento del error bien cuidado y adecuado al nivel de usuario
Para diseñar una buena interfaz enfocada hacia el usuario es necesario tener claros
los objetivos del hipertexto, teniendo en cuenta no sólo lo que se persigue
ofreciendo información, sino las necesidades que van a tener los usuarios a la hora
50
de consultarlo. También es clave determinar el contenido y la funcionalidad,
especificar la estructura organizativa, la navegación, las secciones y los sistemas
de búsqueda.
Hay que tener en cuenta que cada usuario puede tener diferentes necesidades y un
buen sistema de navegación debe contar con las herramientas adecuadas para
diferentes funciones. Como cada usuario pude tener diferentes necesidades, es
importante ofrecer diferentes formas de acceso y búsqueda, desde búsquedas
precisas, hasta exploraciones guiadas o a elección del lector.
El diseñador de interfaces debe facilitar y simplificar el acceso y los recorridos de
los usuarios. A menudo se usa la metáfora del viaje o del camino a recorrer y se
presentan iconos o símbolos de interfaz y otros dispositivos que tienen que ver
con las señales utilizadas en mapas, urbanismo o arquitectura.
Un buen hipertexto debe suministrar herramientas de uso sencillo y fácil para que
el usuario sepa en todo momento en dónde se encuentra y hacia dónde puede ir, y
herramientas para que pueda realizar una serie de acciones como búsquedas,
ponerse en contacto con otros usuarios, participar en un foro de debate, etc.
Algunas de estas herramientas útiles para la navegación y que deben mostrarse en
la interfaz de usuario son las siguientes:
51

Herramientas de representación de la estructura de la información
documental: Se trata de representar la estructura de los nodos más
amplios o genéricos que contienen las diferentes partes o nodos
específicos, de forma similar a las secciones, capítulos, etc. de un texto.

Herramientas de navegación: es necesario representar de forma visual y
gráfica el conjunto de la red hipertextual. Para ello, son muy útiles los
mapas de navegación que funcionan a modo de brújula para ayudar al
usuario a moverse por el hipertexto. La información se presenta como
nodos dentro de una red en la que una idea lleva a otra y está a otra
diferente. Sin embargo, el sistema sería un caos si no existieran formas de
organizar la información en una forma lógica y con posibilidad de conocer
en todo momento dónde se está y cómo se ha llegado.

Herramientas que posibiliten guardar y almacenar la dirección y
localización de los documentos a los que se ha accedido, mediante el
registro de marcas, favoritos o bookmarks, para su posterior acceso
directo.

Herramientas que permitan definir los enlaces con indicación del
punto de destino: el usuario debe poder visualizar el destino o destinos
posibles de cualquier enlace para saber hacia dónde se desplazará en caso
de optar por esa conexión.
52

Herramientas que permitan la creación de un histórico de
Navegación: para que el usuario pueda tener constancia del camino
recorrido tanto sobre la red de documentos como sobre la red semántica, y
poder así volver en cualquier momento, sobre algún paso del camino
recorrido.

Herramientas para la recuperación de la información: se pueden
incluir buscadores y otras herramientas de búsqueda y consulta tanto
dentro de la propia red hipertextual como en el resto de la web. Estas
herramientas permiten la construcción de documentos dinámicos creados a
partir de las propias acciones del usuario, que pueden contar con la ayuda
de agentes inteligentes.

Herramientas que permitan que el usuario participe en la creación
del conocimiento en un entorno colaborativo. Estas herramientas
permitirán la interacción entre el autor del hipertexto y el usuario o entre
varios usuarios, o incluso, que el usuario contribuya al contenido del
hipertexto directamente. El usuario puede participar en el contenido del
hipertexto haciendo comentarios y anotaciones ya sea en línea o por correo
electrónico, es posible iniciar una discusión, es posible añadir contenidos o
añadir enlaces mientras se lee, individualmente o en colaboración.
53

Mecanismos de búsqueda y recuperación de la información
Los mecanismos de búsqueda que faciliten el acceso, la búsqueda y la
recuperación de la información, son herramientas básicas en un hipertexto
para completar la navegación por el espacio de la información
hipertextual. En muchos casos, el usuario no busca navegar, sino acceder a
la información de forma directa.
Para realizar la búsqueda, se siguen estos pasos:
 el usuario introduce uno o más términos de búsqueda;
 el sistema busca los términos por medio de índices y otros
mecanismos;
 el sistema responde mostrando los resultados.
Para llevar a cabo este proceso se necesita, además de establecer tanto
interfaces de consulta como de respuesta adecuada, establecer los mecanismos que
hagan posible esta labor. La presentación de resultados puede ser muy variada: el
sistema devuelve la primera ocurrencia del término, una lista de ocurrencias o
puede integrar los resultados de la búsqueda en el mapa del hiperdocumento,
resaltando los nodos en los que aparece el término buscado.

Una herramienta muy útil es el empleo de metáforas o la utilización de conceptos
y modelos del mundo real, con los cuales los usuarios estén familiarizados, para
representar información digital y hacer que el documento sea más comprensible.
Se trata de representaciones analógicas por medios digitales. La utilización de
54
tarjetas o fichas, o el dibujo de páginas para representar documentos, el uso de
archivadores para simbolizar los directorios, papeleras y demás artículos de
escritorio, el empleo de una lupa para simbolizar la búsqueda, la interrogación
para la ayuda, el buzón o la carta para el correo electrónico, la casa para la página
principal o de inicio, una puerta para la salida, etc. han sido y son algunas de las
metáforas más utilizadas.
GRÁFICO No. 5
Metáforas
Fuente: http://www.hipertexto.info
Elaborado Por: http://www.hipertexto.info
Las técnicas para el diseño y navegabilidad de un hipertexto son muchas y
variadas. Pero hay 3 reglas básicas importantes:

proveer un foco inicial para la llamar la atención del usuario

dirigir la atención a los ítems importantes, secundarios o periféricos

asistir a la navegación a través del material presentado
El principal objetivo de una interfaz de usuario es que éste se pueda comunicar a
través de ella con algún tipo de dispositivo. Conseguida esta comunicación, el
segundo objetivo que se debería perseguir es el de que dicha comunicación se
pueda desarrollar de la forma más fácil y cómoda posible para el usuario.
También es importante reconocer las interfaces de línea de comandos, como el
mejor medio para que el administrador del sistema pueda llevar a cabo tareas
complejas
55
Además, no todo se puede hacer a través de la interfaz gráfica: hay ciertas
funciones para usuarios avanzados y administradores a las que sólo es posible
realizarlas mediante comandos.
El diseño de la interfaz es crítico para el manejo del equipo: hay algunas muy bien
diseñadas que incorporan controles intuitivos y de fácil manejo, en cambio existen
otras que no se entienden bien y el usuario no acierta a manejarlas correctamente
sin estudiar un manual o recibir formación del experto.
Desarrollo de Aplicaciones.
Para desarrollar aplicaciones informáticas se necesita seguir los pasos de
•Análisis.
•Diseño.
•Codificación-construcción.
•Implantación-explotación.
•Mantenimiento.
Análisis.
En esta fase se establece el producto a desarrollar, siendo necesario especificar los
procesos y estructuras de datos que se van a emplear. Debe existir una gran
comunicación entre el usuario y el analista para poder conocer todas las
necesidades que precisa la aplicación
56
En el caso de falta de información por parte del usuario se puede recurrir al
desarrollo de prototipos para saber con más precisión sus requerimientos.
En el análisis estructurado se pueden emplear varias técnicas como:
Diagramas de flujo de datos: Sirven para conocer el comportamiento del sistema
mediante
representaciones
gráficas.
Modelos de datos: Sirven para conocer las estructuras de datos y sus
características.
(Entidad
relación
y
formas
normales).
Diccionario de datos: Sirven para describir todos los objetos utilizados en los
gráficos,
así
como
las
estructuras
de
datos.
Definición de los interfaces de usuario: Sirven para determinar la información
de entrada y salida de datos.
Al final de esta fase tenemos que tener claro las especificaciones de la aplicación.
Diseño
En esta fase se alcanza con mayor precisión una solución óptima de la aplicación,
teniendo en cuenta los recursos físicos del sistema y los recursos lógicos. (Sistema
operativo.,
programas
de
utilidad,
bases
de
datos,
etc.…)
En el diseño estructurado se pueden definir estas etapas:
Diseño externo: Se especifican los formatos de información de entrada y salida.
(Pantalla
y
listados)
Diseño de datos: Establece las estructuras de datos de acuerdo con su soporte
físico y lógico. (Estructuras en memoria, ficheros y hojas de datos)
57
Diseño modular: Es una técnica de representación en la que se refleja de forma
descendente la división de la aplicación en módulos. Está basado en diagramas de
flujo
de
datos
obtenidos
en
el
análisis.
Diseño procedimental: Establece las especificaciones para cada módulo,
escribiendo el algoritmo necesario que permita posteriormente una rápida
codificación.
Al final de esta etapa se obtiene el denominado cuaderno de carga.
Desarrollo
Consiste en traducir los resultados obtenidos a un determinado lenguaje de
programación, teniendo en cuenta las especificaciones obtenidas en el cuaderno de
carga. Se deben de realizar las pruebas necesarias para comprobar la calidad y
estabilidad del programa.
Las pruebas se pueden clasificar en:
Pruebas unitarias: Sirven para comprobar que cada módulo realice bien
su
tarea.
Pruebas de interconexión: Sirven para comprobar en el programa el buen
funcionamiento
en
conjunto
de
todos
sus
módulos.
Pruebas de integración: Sirven para comprobar el funcionamiento
correcto del conjunto de programas que forman la aplicación. (El
funcionamiento de todo el sistema)
58
Implementación
En esta fase se realiza la implantación de la aplicación en el sistema o sistemas
físicos donde van a funcionar habitualmente y su puesta en marcha para
comprobar el buen funcionamiento.
Actividades a tener en cuenta o realizar:

Instalación del/los programa/s.

Pruebas de aceptación al nuevo sistema.

Conversión de la información del antiguo sistema al nuevo

Eliminación del sistema anterior.
Al final de esta fase se debe de completar la información al usuario respecto al
nuevo sistema y su uso. Así como facilitarle toda la documentación necesaria para
una correcta explotación del sistema (manual técnico, manual de usuario, etc.)
Mantenimiento.
Esta es la fase que completa el ciclo de vida y en ella nos encargaremos de
solventar los posibles errores o deficiencias de la aplicación. Existe la posibilidad
de que ciertas aplicaciones necesiten reiniciar el ciclo de vida.
Tipos de mantenimiento:
Mantenimiento correctivo: Consiste en corregir errores no detectados en
pruebas anteriores y que aparezcan con el uso normal de la aplicación.
Mantenimiento adaptativo: Consiste en modificar el programa a causa de
cambio de entorno
gráfico
y lógico
en
el
que estén implantados.
59
Mantenimiento perfectivo: Consiste en una mejora sustancial de la aplicación
al recibir por parte de los usuarios propuestas sobre nuevas posibilidades y
modificaciones de las existentes.
Los tipos de mantenimiento adaptativo y perfectivo reinician el ciclo de vida,
debiendo proceder de nuevo al desarrollo de cada una de sus fases para obtener un
nuevo
producto.
Java.
Java es un lenguaje de programación y la primera plataforma informática creada
por Sun Microsystems en 1995. Esta herramienta permite el desarrollo de
aplicaciones como herramientas, juegos y aplicaciones de negocios.
"Java es, en muchos sentidos, C++-" (Michael Feldman)
La plataforma Java es el nombre de un entorno o plataforma de computación
originaria de Sun Microsystems, capaz de ejecutar aplicaciones desarrolladas
usando el lenguaje de programación Java u otros lenguajes que compilen a
bytecode y un conjunto de herramientas de desarrollo. En este caso, la plataforma
no es un hardware específico o un sistema operativo, sino más bien una máquina
virtual encargada de la ejecución de las aplicaciones, y un conjunto de bibliotecas
estándar que ofrecen una funcionalidad común
60
ByteCode
El bytecode es un código intermedio más abstracto que el código máquina.
Habitualmente es tratado como un fichero binario que contiene un programa
ejecutable similar a un módulo objeto, este fichero intermedio contiene código de
máquina.
El bytecode recibe su nombre porque usualmente cada código de operación tiene
una longitud de un byte, si bien la longitud del código de las instrucciones varía.
Cada instrucción tiene un código de operación entre 0 y 255 seguido de
parámetros tales como los registros o las direcciones de memoria. Esta sería la
descripción de un caso típico, si bien la especificación del ByteCode depende
ampliamente del lenguaje.
Máquina Virtual
Una máquina virtual es un software que emula a una computadora y puede
ejecutar programas como si fuese una computadora real. Este software en un
principio fue definido como "un duplicado eficiente y aislado de una máquina
física". La acepción del término actualmente incluye a máquinas virtuales que no
tienen ninguna equivalencia directa con ningún hardware real.
Una característica esencial de las máquinas virtuales es que los procesos que
ejecutan están limitados por los recursos y abstracciones proporcionados por ellas.
Estos procesos no pueden escaparse de esta computadora virtual.
Existen 2 tipos de máquinas virtuales.
61
Máquinas Virtuales de Sistemas.
Las máquinas virtuales de sistema, también llamadas máquinas virtuales de
hardware, permiten a la máquina física subyacente multiplicarse entre varias
máquinas virtuales, cada una ejecutando su propio sistema operativo. A la capa de
software que permite la virtualización se la llama monitor de máquina virtual .Un
monitor de máquina virtual puede ejecutarse o bien directamente sobre el
hardware o bien sobre un sistema operativo.
Máquina Virtual de Proceso.
Una máquina virtual de proceso, se ejecuta como un proceso normal dentro de un
sistema operativo y soporta un solo proceso. La máquina se inicia
automáticamente cuando se lanza el proceso que se desea ejecutar y se detiene
para cuando éste finaliza. Su objetivo es el de proporcionar un entorno de
ejecución independiente de la plataforma de hardware y del sistema operativo, que
oculte los detalles de la plataforma subyacente y permita que un programa se
ejecute siempre de la misma forma sobre cualquier plataforma.
El ejemplo más conocido actualmente de este tipo de máquina virtual es la
máquina virtual de Java. Otra máquina virtual muy conocida es la del entorno .Net
de Microsoft que se llama "Common Language Runtime".
62
Máquina Virtual Java
Una Máquina virtual Java (en inglés Java Virtual Machine, JVM) es un máquina
virtual de proceso nativo, es decir, ejecutable en una plataforma específica, capaz
de interpretar y ejecutar instrucciones expresadas en un código binario especial (el
bytecode Java), el cual es generado por el compilador del lenguaje Java.
El código binario de Java no es un lenguaje de alto nivel, sino un verdadero
código máquina de bajo nivel, viable incluso como lenguaje de entrada para un
microprocesador físico. Como todas las piezas del rompecabezas Java, fue
desarrollado originalmente por Sun Microsystems.
La JVM es una de las piezas fundamentales de la plataforma Java. Básicamente se
sitúa en un nivel superior al Hardware del sistema sobre el que se pretende
ejecutar la aplicación, y este actúa como un puente que entiende tanto el
ByteCode, como el sistema sobre el que se pretende ejecutar. Así, cuando se
escribe una aplicación Java, se hace pensando que será ejecutada en una máquina
virtual Java en concreto, siendo ésta la que en última instancia convierte de código
ByteCode a código nativo del dispositivo final.
La gran ventaja de la máquina virtual java es aportar portabilidad al lenguaje de
manera que desde Sun Microsystems se han creado diferentes máquinas virtuales
java para diferentes arquitecturas y así un programa .class escrito en un Windows
puede ser interpretado en un entorno Linux. Tan solo es necesario disponer de
63
dicha máquina virtual para dichos entornos. De ahí el famoso axioma que sigue a
Java, "escríbelo una vez, ejecútalo en cualquier parte".
Pero, los intentos de la compañía propietaria de Java y productos derivados de
construir microprocesadores que aceptaran el Java ByteCode como su lenguaje de
máquina fueron más bien infructuosos.
La máquina virtual de Java puede estar implementada en software, hardware, una
herramienta de desarrollo o un Web browser; lee y ejecuta código pre compilado
ByteCode que es independiente de la plataforma multiplataforma. La JVM provee
definiciones para un conjunto de instrucciones, un conjunto de registros, un
formato para archivos de clases, la pila, un heap con recolector de basura y un
área de memoria. Cualquier implementación de la JVM que sea aprobada por
SUN debe ser capaz de ejecutar cualquier clase que cumpla con la especificación.
JRE
En su forma más simple, el entorno en tiempo de ejecución de Java está
conformado por una Máquina Virtual de Java o JVM, un conjunto de bibliotecas
Java y otros componentes necesarios para que una aplicación escrita en lenguaje
Java pueda ser ejecutada. El JRE actúa como un "intermediario" entre el sistema
operativo y Java.
La JVM es el programa que ejecuta el código Java previamente compilado
(ByteCode) mientras que las librerías de clases estándar son las que implementan
64
el API de Java. Ambas JVM y API deben ser consistentes entre sí, de ahí que sean
distribuidas de modo conjunto. Un usuario sólo necesita el JRE para ejecutar las
aplicaciones desarrolladas en lenguaje Java, mientras que para desarrollar nuevas
aplicaciones en dicho lenguaje es necesario un entorno de desarrollo, denominado
JDK, que además del JRE (mínimo imprescindible) incluye, entre otros, un
compilador para Java. La plataforma es así llamada la plataforma Java (antes
conocida como Plataforma Java 2, e incluye:

Plataforma Java, Edición Estándar (Java Platform, Standard Edition), o
Java SE (antes J2SE)

Plataforma Java, Edición Empresa (Java Platform, Enterprise Edition), o
Java EE (antes J2EE)

Plataforma Java, Edición Micro (Java Platform, Micro Edition), o
Java ME (antes J2ME)
J2SE.
Java Platform, Standard Edition o Java SE (conocido anteriormente hasta la
versión 5.0 como Plataforma Java 2, Standard Edition o J2SE), es una colección
de APIs del lenguaje de programación Java útiles para muchos programas de la
Plataforma Java. La Plataforma Java 2, Enterprise Edition incluye todas las clases
en el Java SE, además de algunas de las cuales son útiles para programas que se
ejecutan en servidores sobre Workstation.
65
J2EE.
Java Platform, Enterprise Edition o Java EE (anteriormente conocido como Java 2
Platform, Enterprise Edition o J2EE hasta la versión 1.4), es una plataforma de
programación parte de la Plataforma Java para desarrollar y ejecutar software de
aplicaciones en el lenguaje de programación Java con arquitectura de N capas
distribuidas y que se apoya ampliamente en componentes de software modulares
ejecutándose sobre un servidor de aplicaciones. La plataforma Java EE está
definida por una especificación. Similar a otras especificaciones del Java
Community Process, Java EE es también considerada informalmente como un
estándar debido a que los proveedores deben cumplir ciertos requisitos de
conformidad para declarar que sus productos son conformes a Java EE;
estandarizado por The Java Community Process / JCP.
Java EE incluye varias especificaciones de API, tales como JDBC, RMI, e-mail,
JMS, Servicios Web, XML, etc. y define cómo coordinarlos. Java EE también
configura algunas especificaciones únicas para Java EE para componentes. Estas
incluyen Enterprise JavaBeans, servlets, portlets (siguiendo la especificación de
Portlets Java), JavaServer Pagés y varias tecnologías de servicios web. Ello
permite al desarrollador crear una Aplicación de Empresa portable entre
plataformas y escalable, a la vez que integrable con tecnologías anteriores. Otros
beneficios añadidos son, por ejemplo, que el servidor de aplicaciones puede
manejar transacciones, la seguridad, escalabilidad, concurrencia y gestión de los
componentes
desplegados,
significando
que
los
desarrolladores
pueden
66
concentrarse más en la lógica de negocio de los componentes en lugar de en tareas
de mantenimiento de bajo nivel.
J2ME.
La plataforma Java Micro Edition, o anteriormente Java 2 Micro Edition (J2ME),
es una especificación de un subconjunto de la plataforma Java orientada a proveer
una colección certificada de APIs de desarrollo de software para dispositivos con
recursos restringidos. Está orientado a productos de consumo como PDAs,
teléfonos móviles o electrodomésticos.
Java ME se ha convertido en una buena opción para crear juegos en teléfonos
móviles debido a que se puede emular en un PC durante la fase de desarrollo y
luego subirlos fácilmente al teléfono. Al utilizar tecnologías Java el desarrollo de
aplicaciones o videojuegos con estas APIs resulta bastante económico de portar a
otros dispositivos.
Java ME fue desarrollado mediante el Java Community Process bajo la
especificación JSR 68. La evolución de la plataforma ha propiciado el abandono
de las Java Especificación Raques (peticiones de especificación para Java) en
favor de JSRs separadas para las distintas versiones de Java ME.
67
API-Interfaces de Programación de aplicaciones
Es el conjunto de funciones y procedimientos o métodos, en la programación
orientada a objetos que ofrece cierta biblioteca para ser utilizado por otro software
como una capa de abstracción. Son usadas generalmente en las bibliotecas
(también denominadas comúnmente "librerías").
JDBC.
Java Data Base Connectivity, más conocida por sus siglas JDBC, es una API que
permite la ejecución de operaciones sobre bases de datos desde el lenguaje de
programación Java, independientemente del sistema operativo donde se ejecute o
de la base de datos a la cual se accede, utilizando el dialecto SQL del modelo de
base de datos que se utilice.
El Api Jdbc se presenta como una colección de interfaces Java y métodos de
gestión de manejadores de conexión hacia cada modelo específico de base de
datos. Un manejador de conexiones hacia un modelo de base de datos en
particular es un conjunto de clases que implementan las interfaces Java y que
utilizan los métodos de registro para declarar los tipos de localizadores a base de
datos (URL) que pueden manejar. Para utilizar una base de datos particular, el
usuario ejecuta su programa junto con la biblioteca de conexión apropiada al
modelo de su base de datos, y accede a ella estableciendo una conexión, para ello
provee el localizador a la base de datos y los parámetros de conexión específicos.
A partir de allí puede realizar con cualquier tipo de tareas con la base de datos a
68
las que tenga permiso: consulta, actualización, creación, modificación y borrado
de tablas, ejecución de procedimientos almacenados en la base de datos, etc.
RMI.
RMI (Java Remote Method Invocation) es un mecanismo ofrecido por Java para
invocar un método de manera remota. Forma parte del entorno estándar de
ejecución de Java y proporciona un mecanismo simple para la comunicación de
servidores en aplicaciones distribuidas basadas exclusivamente en Java. Si se
requiere comunicación entre otras tecnologías debe utilizarse CORBA o SOAP en
lugar de RMI.
RMI se caracteriza por la facilidad de su uso en la programación por estar
específicamente diseñado para Java; proporciona paso de objetos por referencia
(no permitido por SOAP), recolección de basura distribuida (Garbage Collector
distribuido) y paso de tipos arbitrarios (funcionalidad no provista por CORBA).
A través de RMI, un programa Java puede exportar un objeto, con lo que dicho
objeto estará accesible a través de la red y el programa permanece a la espera de
peticiones en un puerto TCP. A partir de ese momento, un cliente puede
conectarse e invocar los métodos proporcionados por el objeto.
La invocación se compone de los siguientes pasos:

Encapsulado (marshalling) de los parámetros (utilizando la funcionalidad
de socialización de Java).
69

Invocación del método (del cliente sobre el servidor). El invocador se
queda esperando una respuesta.

Al terminar la ejecución, el servidor serializa el valor de retorno (si lo hay)
y lo envía al cliente.

El código cliente recibe la respuesta y continúa como si la invocación
hubiera sido local.
JMS
La API Java Message Service, también conocida por sus siglas JMS, es la
solución creada por Sun Microsystems para el uso de colas de mensajes. Este es
un estándar de mensajería que permite a los componentes de aplicaciones basados
en la plataforma Java2 crear, enviar, recibir y leer mensajes. También hace posible
la comunicación confiable de manera síncrona y asíncrona.
El servicio de mensajería instantánea también es conocido como Middleware
Orientado a Mensajes (MOM por sus siglas en inglés) y es una herramienta
universalmente reconocida para la construcción de aplicaciones empresariales.
Dicha API es parte integral de la versión 2 de Java.
Existen dos modelos de la API JMS, los cuales son:
Modelo Punto a Punto: Este modelo cuenta con solo dos clientes, uno que envía
el mensaje y otro que lo recibe. Este modelo asegura la llegada del mensaje ya que
si el receptor no está disponible para aceptar el mensaje o atenderlo, de cualquier
70
forma se le envía el mensaje y este se encola en una pila del tipo FIFO para luego
ser recibido según haya entrado.
Modelo Publicador/Suscriptor: Este modelo cuenta con varios clientes, unos
que publican temas o eventos, y los que ven estos tópicos, a diferencia del modelo
punto a punto este modelo tiende a tener más de un consumidor.
Ambos modelos pueden ser síncronos mediante el método receiver y asíncronos
por medio de un MessageListener.
Las versiones de java que han salido son las siguientes.

JDK1.0 en 1996

JDK 1.1 en 1997

J2SE 1.2en 1998

2SE 1.3 en 2000

J2SE 1.4 en 2002

J2SE en 2004

Java SE 6 en 2006
La característica de java viene dado por tres elementos claves que diferencian a
este lenguaje.

Es un lenguaje de programación que ofrece la potencia del diseño
orientado a objetos con una sintaxis fácilmente accesible y un entorno
robusto y agradable.

Proporciona un conjunto de clases potente y flexible.
71

Pone al alcance de cualquiera la utilización de aplicaciones que se pueden
incluir directamente en páginas Web
Java es orientado a Objetos.
En este aspecto Java fue diseñado partiendo de cero, no siendo derivado de otro
lenguaje anterior y no tiene compatibilidad con ninguno de ellos.
En Java el concepto de objeto resulta sencillo y fácil de ampliar. Además se
conservan elementos como números, caracteres y otros tipos de datos simples.
Java Contiene Riqueza Semántica.
Pese a su simpleza se ha conseguido un considerable potencial, y aunque cada
tarea se puede realizar de un número reducido de formas, se ha conseguido un
gran potencial de expresión e innovación desde el punto de vista del programador
Java es robusto.
Java verifica su código al mismo tiempo que lo escribe, y una vez más antes de
ejecutarse, de manera que se consigue un alto margen de codificación sin errores.
Se realiza un descubrimiento de la mayor parte de los errores durante el tiempo de
compilación, ya que Java es estricto en cuanto a tipos y declaraciones, y así lo que
es rigidez y falta de flexibilidad se convierte en eficacia. Respecto a la gestión de
memoria, Java libera al programador del compromiso de tener que controlar
especialmente la asignación que de ésta hace a sus necesidades específicas.
72
Java Contiene un Modelado de Objetos.
Existen varias clases que contienen las abstracciones básicas para facilitar a los
programas. Para ello se contará con un conjunto de clases comunes que pueden
crecer para admitir todas las necesidades del programador.
Además la biblioteca de clases de Java proporciona un conjunto de protocolos.
El conjunto de clases más complicado de Java son sus paquetes gráficos AWT
(Abstract Window Toolkit) y Swing. Estos paquetes implementan componentes de
una interfaz de usuario gráfica básica común a todos los ordenadores personales
modernos.
Java es de fácil Aprendizaje.
El único requerimiento para aprender Java es tener conocimiento de los conceptos
básicos de la programación orientada a objetos, con el conocimiento de esta teoría
y los conceptos inmersos en ellos así como herencia, polimorfismo, métodos
sobrecargados.
Java es completado con utilidades.
El paquete de Java viene con un conjunto completo de estructuras de datos
complejas y sus métodos asociados, que serán de inestimable ayuda para
implementar aplicaciones más complejas. Se dispone también de estructuras de
datos habituales, como pilas y tablas hash, como clases ya implementadas. El
JDK (Java Development Kit) suministrado por Sun Microsystems incluye un
73
compilador, un intérprete de aplicaciones, un depurador en línea de comandos, y
un visualizador de applets entre otros elementos.
Java es interactivo y Animado.
Uno de los requisitos de Java desde sus inicios fue la posibilidad de crear
programas en red interactivos, por lo que es capaz de hacer varias cosas a la vez
sin perder rastro de lo que debería suceder y cuándo. Las aplicaciones de Java
permiten situar figuras animadas en las páginas Web, y éstas pueden concebirse
con logotipos animados o con texto que se desplace por la pantalla. También
pueden tratarse gráficos generados por algún proceso. Estas animaciones pueden
ser interactivas, permitiendo al usuario un control sobre su apariencia.
Java Contiene Arquitectura Neutral
Java está diseñado para que un programa escrito en este lenguaje sea ejecutado
correctamente independientemente de la plataforma en la que se esté actuando,
solo se necesita que la maquina donde se va a ejecutar la tenga el runtime o JRE
como más se lo conoce, por ello se puede ejecutar en cualquier sistema operativo.
Java Permite Trabajos en Red.
Java anima las páginas Web y hace posible la incorporación de aplicaciones
interactivas y especializadas. Aporta la posibilidad de distribuir contenidos
ejecutables, de manera que los suministradores de información de la Web pueden
crear una página de hipertexto (página Web) con una interacción continuada y
74
compleja en tiempo real; el contenido ejecutable es transferido literalmente al
ordenador del usuario.
Java proporciona un conjunto de clases para tratar con conectores de red
conocidos como originales de la versión UNIX de Berckley, encapsular la noción
de una dirección de Internet o conectar sockets con flujos de datos de
Entrada/Salida.
Java Ofrece más Seguridad.
Existe una preocupación lógica en Internet por el tema de la seguridad: virus,
caballos de Troya, y programas similares navegan de forma usual por la red,
constituyendo una amenaza palpable. Java ha sido diseñado poniendo un énfasis
especial en el tema de la seguridad, por lo que el control sobre los programas
ejecutables no es equiparable a otros lenguajes.
Los niveles de seguridad que presenta son:

Fuertes restricciones al acceso a memoria, como son la eliminación de
punteros aritméticos y de operadores ilegales de transmisión.

Rutina de verificación de los códigos de byte que asegura que no se viole
ninguna construcción del lenguaje.

Verificación del nombre de clase y de restricciones de acceso durante la
carga.
75

Sistema de seguridad de la interfaz que refuerza las medidas de seguridad
en muchos niveles.
Java Esta Basado el Lenguaje C++.
Java fue desarrollado basándose en C++. Básicamente, encontramos las siguientes
diferencias con C++:

Java no soporta los tipos struct, union ni punteros.

No soporta typedef ni #define.

Se distingue por su forma de manejar ciertos operadores y no permite una
sobrecarga de operadores.

No soporta herencia múltiple.

Java maneja argumentos en la línea de comandos de forma diversa a como
lo hacen C o C++.

Tiene una clase String que es parte del paquete java.lang y se diferencia de
la matriz de caracteres terminada con un nulo que usan C y C++.

Java cuenta con un sistema automático para asignar y liberar memoria, con
lo que no es necesario utilizar las funciones previstas con este fin en C y
C++.
Java Es Multitareas.
Java permite ejecutar procesos en paralelo aplicando hilos (Threads), esta
ejecución en paralelo disminuye el tiempo de respuesta en procesos extensos.
76
Java es Portable.
Un programa Java puede ser ejecutado en diferentes entornos. Para desarrollar una
aplicación java se consideran los siguientes conceptos:
Interfaces.
Una interfaz en Java es una colección de métodos abstractos y propiedades. En
ellas se especifica qué se debe hacer pero no su implementación.
Serán las clases que implementen estas interfaces las que describan la lógica del
comportamiento de los métodos.
Clases.
Una clase define la forma y comportamiento de un objeto, se utiliza como un
modelo de plantillas de conceptos comunes, en una clases de definen los atributos
y los métodos, el modelo de una clase describe el estado y contiene y define el
comportamiento de los objetos. Por lo usual una clase se define a los sustantivos
así como por ejemplo una persona, animal o cosa.
Métodos.
Los métodos son las acciones funciones o procedimientos que realiza nuestro
programa;
Los métodos son subrutinas que manipulan los datos definidos por una clase.
Características de los métodos:

Contiene una o más declaraciones
77

Cada método tiene un nombre y este nombre se utiliza para llamar al
método (las palabras clave no pueden ser utilizadas como el nombre del
método).

Debe llevar paréntesis después del nombre.

El método main () está reservado por java como el método que inicializa la
ejecución del programa.
Atributos.
Son características de una clase que están dadas por las variables y/o constantes de
la misma.
Los diferentes tipos de aplicaciones que se pueden desarrollar con java son:
Aplicaciones:
Se ejecutan sin necesidad de un navegador.
GRÁFICO No.6
Aplicaciones.
Fuente:http://escribojava.blogspot.com/2011/01/como-enviar-correos-emails-desde-java.html
Elaborado: http://://escribojava.blogspot.com/2011/01/como-enviar-correos-emails-desde-java.html
78
Applets
Se pueden descargar de Internet y se observan en un navegador. Usando la
máquina virtual de java, o utilizando una herramienta propia de SUN que es la
AppletViewer. Las diferentes ventajas que ofrece un applet es la seguridad para el
acceso a la información, así como no se permite la descarga del código fuente
inmersa en el applet.
GRÁFICO No. 7
Applets
Fuente:
http://www.google.com.ec/imgres?imgurl=http://www.escolessas.com/cesf/images/quefanalumnes/cda2a_g.jpg&imgrefurl=http://ww
w.escolessas.com/cesf/index.php%3Foption%3Dcom_content%26task%3Dview%26id%3D51%26Itemid%3D66%26lang%3Dspani
sh&usg=__yU_tAj4q5iLbPv8mn4RvGA6Lg6k=&h=543&w=544&sz=71&hl=es&start=3&zoom=1&tbnid=N6A5AASg_Pf39M:&tbn
h=133&tbnw=133&ei=InbjTpH2O4SbtwesnuidBQ&prev=/search%3Fq%3Daplicaciones%2Bapplet%2Bjava%26um%3D1%26hl
%3Des%26sa%3DN%26biw%3D1280%26bih%3D697%26tbm%3Disch&um=1&itbs=1
JavaBeans
Componentes software Java, que se puedan incorporar gráficamente a otros
componentes, se utilizan para encapsular varios objetos en un solo objeto en
79
lugar de varios objetos simples, la definición correcta de java beans es
componentes de software reutilizables que se puedan manipular visualmente en
una herramienta de construcción. El comportamiento de los java beans se definen
las interfaces, clases bases y heredadas.
GRÁFICO No. 8
JavaBeans
Grafico No.8 JavaBeans
Fuente : http://www.google.com.ec/imgres?imgurl=http://3.bp.blogspot.com/_jbOU0tiejJQ/TKJVNOphTxI/AAAAAAAAABw/zQ87z7Hxs8/s1600/tiposContenedores.jpg&imgrefurl=http://ricardo84-javabasico.blogspot.com/2010/09/tipos-de-contenedores-javaee.html&usg=__5JXrYmNTT7tqBz_XSEpSAtW3dsU=&h=500&w=800&sz=100&hl=es&start=1&zoom=1&tbnid=nk5c9RHPIlTwIM:&tbnh=89&tbnw=1
43&ei=W3njTr_nA8WtwflhZDEBA&prev=/search%3Fq%3Daplicaciones%2BBeans%2Bjava%26um%3D1%26hl%3Des%26sa%3DN%26biw%3D1280%26bih%3D697%2
6tbm%3Disch&um=1&itbs=
Elaborado Por: http://www.google.com.ec/imgres?imgurl=http://3.bp.blogspot.com
Java Script
Conjunto del lenguaje Java que puede codificarse directamente sobre cualquier
documento HTML, este código se ejecuta principalmente en el lado de
los
clientes, haciendo que las paginas desarrolladas sean más dinámicas, JavaScript es
80
un lenguaje fundamental utilizado para el desarrollo de aplicaciones web, junto
con css conforman las partes fundamentales en el desarrollo de una página web.
GRÁFICO No.9
JavaScript
Fuente: Héctor William Pilligua Robalino
Elaborado Por: Héctor William Pilligua Robalino.
Servlet
Son módulos que permiten sustituir o utilizar el lenguaje Java en lugar de
programas a la hora de dotar de interactividad a las páginas Web, un servlet
funciona de la misma manera que funciona un aplicativo, con limitaciones, como
por ejemplo no se pueden procesar archivos planos o imágenes, mas es útil para
procesamiento de datos, uso de formularios y otras funciones básicas de las
aplicaciones java.
GRÁFICO 10
81
Servlets
Grafico No 10. Servlets.
Fuente : http://www.google.com.ec/imgres?imgurl=http://www.xtrawebsolutions.com/wp-content/uploads/2011/05/javaservlet.jpg&imgrefurl=http://www.xtrawebsolutions.com/2011/05/30/javaservlet/&usg=__HuQz1bLnI_YyyG5_4X6jJSwF3Bk=&h=260&w=540&sz=18&hl=es&start=1&zoom=1&tbnid=hnmBivTUesqI7M:&tbnh=64&tbnw=132
&ei=ZHrjTpaOAZHMtgeluMziDg&prev=/search%3Fq%3DSERVLET%2Bjava%26um%3D1%26hl%3Des%26sa%3DN%26biw%3D1280%26bih%3D
697%26tbm%3Disch&um=1&itbs=1
Elaborado Por: http://www.google.com.ec/imgres
PLATAFORMA .NET
La ´plataforma de desarrollo de .NET Framework supone el cambio más
importante en la tecnología en la metodología de desarrollo de software para un
sistema operativo de Microsoft, este entorno está construido usando una
arquitectura que permite a los lenguajes de software trabajar juntos compartiendo
códigos y recursos, proporcionando a los programadores herramientas avanzadas
necesarias para construir la siguiente generación de aplicaciones de escritorio y de
internet,
Entre los diferentes lenguajes de programación que se encuentra en CSharp, visual
Basic, java#, c++, cristal report. En los lenguajes contenidos dentro de los
framework de .net se utiliza en mayor instancia la programación orientada a
objetos.
82
Microsoft desarrollo CSharp desde su base para aprovechar el nuevo entorno de
.net. El framework de Microsoft se compone de 4 partes, el entorno común de
ejecución, conjunto de bibliotecas de clases, grupos de lenguajes de programación
y el entorno ASP.NET, esto fue diseñado con 3 objetivos en mente.

Deberá desarrollar aplicaciones Windows más estables, proporcionando
mayor seguridad.

Deberá simplificar el desarrollo de aplicaciones y servicios web, funcional
en entorno de escritorio como entorno móvil.

Proporcionar un solo grupo de bibliotecas que puedan trabajar con varios
lenguajes
BIBLIOTECAS DE CLASES .NET
Muchos lenguajes han tenido acceso a cuerpo de código previamente comprobado
y listo para ser ejecutado, visual C++ se ha beneficiado de las bibliotecas de
clases, como las Clases de Fundación Microsoft( MFC), que permite a los
programadores desarrollar aplicaciones de escritorio de una manera rápida, que
proporciona facilidad para crear objetos COM
COM
COM son protocolos que permiten la colaboración entre objetos desarrollados con
diferentes lenguajes y herramientas, y que pueden residir en diferentes procesos o
incluso máquinas. Los componentes COM existentes son recursos muy valiosos
en código administrado como aplicaciones empresariales de nivel medio o
83
funcionalidad aislada. Un componente ideal tiene un ensamblado de
interoperabilidad
primario
y
cumple
rigurosamente
los
estándares
de
programación que impone COM.
Common Language Runtime (CLR)
El CLR es el núcleo de la plataforma .NET, es el entorno encargado de gestionar
la ejecución de las aplicaciones desarrolladas en la misma y ofrece numerosos
servicios que simplifican su desarrollo, favoreciendo su fiabilidad y seguridad. El
El CLR es el encargado de compilar un código intermedio llamado Common
Intermédiate Language (CIL) o conocida anteriormente como MSLI al código de
maquina nativo, mediante un compilador en tiempo de ejecución, una vez que el
código se encuentra compilado, se ejecuta nativamente sin intervención de una
capa de abstracción sobre el hardware.
Las principales características y servicios que ofrece el CLR son:
• Modelo de programación consistente: A todos los servicios y facilidades
ofrecidas por el CLR se accede de la misma forma, a través de un modelo de
programación orientado a objetos. Esto es una diferencia importante respecto al
modo de acceso a los servicios ofrecidos por algunos sistemas operativos actuales.
• Modelo de programación sencillo: Con el CLR desaparecen muchos elementos
complejos incluidos en los sistemas operativos actuales (registro de Windows,
84
GUIDs, HRESULTS, etc.). El CLR no es que abstraiga al programador de estos
conceptos, sino que son conceptos que no existen en la plataforma .NET.
• Eliminación del “infierno de las DLLs”: En la plataforma .NET desaparece el
problema conocido como “infierno de las DLLs” que se da en los sistemas
operativos actuales de la familia Windows, problema que consiste en que al
sustituirse versiones viejas de DLLs compartidas por versiones nuevas puede que
aplicaciones que fueron diseñadas para ser ejecutadas usando las viejas dejen de
funcionar si las nuevas no son 100% compatibles con las anteriores.
En la plataforma .NET las versiones nuevas de las DLLs pueden coexistir con las
viejas, de modo que las aplicaciones diseñadas para ejecutarse usando las viejas
podrán seguir usándolas tras la instalación de las nuevas. Esto, obviamente,
simplifica mucho la instalación y desinstalación de software.
• Ejecución multiplataforma: El CLR actúa como una máquina virtual,
encargándose de ejecutar las aplicaciones diseñadas para la plataforma .NET. Es
decir, cualquier plataforma para la que exista una versión del CLR podrá ejecutar
cualquier aplicación .NET.
“Creo que Microsoft nombró. Net para que no se muestran en
una lista de directorios Unix” (Oktal)
85
Microsoft ha desarrollado versiones del CLR para la mayoría de las versiones de
Windows: Windows 95, Windows 98, Windows ME, Windows NT 4.0, Windows
2000, Windows XP y Windows CE (que puede ser usado en CPUs que no sean de
la familia x86).
Por otro lado Microsoft ha firmado un acuerdo con Corel para portar el CLR a
Linux y también hay terceros que están desarrollando de manera independiente
versiones de libre distribución del CLR para Linux. Asimismo, dado que la
arquitectura del CLR está totalmente abierta, es posible que en el futuro se
diseñen versiones del mismo para otros sistemas operativos.
• Integración de lenguajes: Desde cualquier lenguaje para el que exista un
compilador que genere código para la plataforma .NET es posible utilizar código
generado para la misma usando cualquier otro lenguaje. Microsoft ha desarrollado
un compilador de C# que genera código de este tipo, así como versiones de sus
compiladores de Visual Basic (Visual Basic.NET) y C++ (C++ con extensiones
gestionadas) que también lo generan, y una versión del intérprete de JScript
(JScript.NET) que puede interpretarlo.
La integración de lenguajes consiste en escribir una clase en C#, que herede de
otra escrita en Visual Basic.NET, que a su vez, herede de otra escrita en C++ con
extensiones gestionadas.
86
• Gestión de memoria: El CLR incluye un recolector de basura que evita que el
programador tenga que tener en cuenta cuándo ha de destruir los objetos que dejen
de serle útiles. Este recolector es una aplicación que se activa cuando se quiere
crear algún objeto nuevo y se detecta que no queda memoria libre para hacerlo,
caso en que el recolector recorre la memoria dinámica asociada a la aplicación,
detecta qué objetos hay en ella que no puedan ser accedidos por el código de la
aplicación, y los elimina para limpiar la memoria de “objetos basura” y permitir
la creación de otros nuevos.
Seguridad de tipos: El CLR facilita la detección de errores de programación
difíciles de localizar comprobando que toda conversión de tipos que se realice
durante la ejecución de una aplicación .NET se haga de modo que los tipos origen
y destino sean compatibles.
• Aislamiento de procesos: El CLR asegura que desde el código perteneciente a
un determinado proceso no se pueda acceder a código o datos pertenecientes a
otro, lo que evita errores de programación muy frecuentes e impide que unos
procesos puedan atacar a otros.
• Tratamiento de excepciones: En el CLR todos los errores que se puedan
producir durante la ejecución de una aplicación se propagan de igual manera
mediante excepciones. Esto es muy diferente a como se venía haciendo en los
sistemas Windows hasta la aparición de la plataforma .NET, donde ciertos errores
87
se transmitían mediante códigos de error en formato Win32, otros mediante
HRESULTs y otros mediante excepciones.
El CLR permite que excepciones lanzadas desde código para .NET escrito en un
cierto lenguaje se puedan capturar en código escrito usando otro lenguaje, e
incluye mecanismos de depuración que pueden saltar desde código escrito para
.NET en un determinado lenguaje a código escrito en cualquier otro. Por ejemplo,
se puede recorrer la pila de llamadas de una excepción aunque ésta incluya
métodos definidos en otros módulos usando otros lenguajes.
• Soporte multihilo: El CLR es capaz de trabajar con aplicaciones divididas en
múltiples hilos de ejecución que pueden ir evolucionando por separado, en
paralelo o intercalándose, según el número de procesadores de la máquina sobre la
que se ejecuten. Las aplicaciones pueden lanzar nuevos hilos, destruirlos,
suspenderlos por un tiempo o hasta que les llegue una notificación, enviarles
notificaciones, sincronizarlos, etc.
• Distribución transparente: El CLR ofrece la infraestructura necesaria para
crear objetos remotos y acceder a ellos de manera completamente transparente a
su localización real, tal y como si se encontrasen en la máquina que los utiliza.
• Seguridad avanzada: El CLR proporciona mecanismos para restringir la
ejecución de ciertos códigos o los permisos asignados a los mismos según su
88
procedencia o el usuario que los ejecute. Es decir, puede no darse el mismo nivel
de confianza a código procedente de internet que a código instalado localmente o
procedente de una red local; puede no darse los mismos permisos a código
procedente de un determinado fabricante que a código de otro; y puede no darse
los mismos permisos a un mismo código según el usuario que lo esté ejecutando
o según el rol que éste desempeñe. Esto permite asegurar al administrador de un
sistema que el código que se esté ejecutando no pueda poner en peligro la
integridad de sus archivos, la del registro de Windows, etc.
• Interoperabilidad con código antiguo: El CLR incorpora los mecanismos
necesarios para poder acceder desde código escrito para la plataforma .NET a
código escrito previamente a la aparición de la misma y, por tanto, no preparado
para ser ejecutado dentro de ella. Estos mecanismos permiten tanto el acceso a
objetos COM como el acceso a funciones sueltas de DLLs preexistentes.
Microsoft Intermediate Language (MSIL)
Todos los compiladores que generan código para la plataforma .NET no generan
código máquina para algún tipo de CPU concreta, sino que generan código escrito
en el lenguaje intermedio conocido como Microsoft Intermediate Lenguage
(MSIL).
El CLR da a las aplicaciones la sensación de que se están ejecutando sobre una
máquina virtual, y precisamente MSIL es el código máquina de esa máquina
89
virtual. Es decir, MSIL es el único código que es capaz de interpretar el CLR, y
por tanto cuando se dice que un compilador genera código para la plataforma
.NET lo que se está diciendo es que genera MSIL.
MSIL ha sido creado por Microsoft tras consultar a numerosos especialistas en la
escritura de compiladores y lenguajes tanto del mundo académico como
empresarial. Es un lenguaje de un nivel de abstracción mucho más alto que el de
la mayoría de los códigos máquina de las CPUs existentes, e incluye instrucciones
que
permiten
trabajar
directamente
con
objetos
(crearlos,
destruirlos,
inicializarlos, llamar a métodos virtuales, etc.), tablas y excepciones (lanzarlas,
capturarlas y tratarlas).
La principal ventaja del MSIL es que facilita la ejecución multiplataforma y la
integración entre lenguajes al ser independientes de la CPU y proporcionar un
formato común para el código máquina generado por todos los compiladores que
generen código para .NET. A partir de los fundamentos anteriores se enuncian las
principales ventas y desventajas que ofrece la plataforma .NET.
Ventajas
 Movilidad.- Las aplicaciones pueden ser ejecutadas en diferentes tipos de
dispositivos.
90
 Basado en objetos. Ofrece un modelo de desarrollo basado en objetos que
utilizan un sistema común de datos y estos pueden ser reutilizados solo llamando
al objeto en donde se necesite.
 Herencia de clases.- Las clases incluidas en el framework pueden ser
utilizadas independientemente del lenguaje que se utilice, esto gracias al
mecanismo de herencia propio de la programación orientada a objetos.
 Interoperabilidad
Multilenguaje:
.NET
soporta
aplicaciones
con
componentes en múltiples lenguajes lo que permite integrar desarrolladores de
distintos perfiles.
 Rendimiento: Todos los códigos que se ejecutan en el ambiente .NET son
compilados, lo cual proporciona un gran rendimiento a diferencia de versiones
interpretadas.
 Escalabilidad y flexibilidad: Escalabilidad es la capacidad de un sistema para
soportar más carga de trabajo, usualmente debida al aumento de usuarios que lo
utilizan. .NET ofrece métodos de escalabilidad como la carga balanceada que
permite a un clúster de servidores (varios servidores) colaborar y dar un servicio
de forma simultánea.
 Seguridad: .NET da respaldo para ejecutar código no seguro.
 Estándar abierto: La plataforma .NET está basada en estándares (HTML,
XML, SOAP, WSDL, UDDI)

 Desventajas
 No es multiplataforma, solo está disponible para Windows.
91
 Alto costo para empresas, punto net no cuenta con licenciamiento libre, por lo
tanto, el desarrollar en esta plataforma se genera un alto costo.
 Portabilidad, ofrece una portabilidad muy reducida ya que solo se puede
ejecutar en sistemas Windows.
En la plataforma .NET son utilizados distintos tipos de lenguaje de programación.
Considerando su actualidad se caracteriza a continuación el lenguaje de
programación C#.
Lenguaje de Programación C#
Marco Antonio Besteiro (2002) en su libro “Microsoft Visual C# .NET.
Referencia del lenguaje”, C# (pronunciado si Sharp en inglés), su nombre fue
inspirado por la notación musical, donde '#' (sostenido, en inglés Sharp) indica
que la nota (C es la nota do en inglés) es un semitono más alta, sugiriendo que C#
es superior a C/C++. Además, el signo '#' se compone de cuatro signos '+'
pegados.
Es un lenguaje de programación orientado a objetos desarrollado y estandarizado
por Microsoft como parte de su plataforma .NET. C# es uno de los lenguajes de
programación diseñados para la infraestructura de lenguaje común.
Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma
.NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes.
92
Aunque es posible escribir código para la plataforma .NET en muchos otros
lenguajes, C# es el único que ha sido diseñado específicamente para ser utilizado
en ella, por lo que programarla usando C# es mucho más sencillo e intuitivo que
hacerlo con cualquiera de los otros lenguajes ya que C# carece de elementos
heredados innecesarios en .NET. Por esta razón, se suele decir que C# es el
lenguaje nativo de .NET.
La sintaxis y estructuración de C# es muy similar a la C++, ya que la intención de
Microsoft con C# es facilitar la migración de códigos escritos en estos lenguajes a
C# y facilitar su aprendizaje a los desarrolladores habituados a ellos. Sin embargo,
su sencillez y el alto nivel de productividad son equiparables a los de Visual
Basic.
Un lenguaje que hubiese sido ideal utilizar para estos menesteres es Java, pero
debido a problemas con la empresa creadora del mismo (Sun)-, Microsoft ha
tenido que desarrollar un nuevo lenguaje que añadiese a las ya probadas virtudes
de Java las modificaciones que Microsoft tenía pensado añadirle para mejorarlo
aún más y hacerlo un lenguaje orientado al desarrollo de componentes.
Las ventajas y desventajas de esta tecnología se enuncian a continuación:
Ventajas:
 Tipos de datos: En C# existe un rango más amplio y definido de tipos de datos
que los que se encuentran en C, C++ o Java.
93
 Atributos: Cada miembro de una clase tiene un atributo de acceso del tipo
público, protegido, interno, interno protegido y privado.
 Pase de parámetros: Aquí se puede declarar a los métodos para que acepten
un número variable de parámetros. De forma predeterminada, el pase de
parámetros es por valor, a menos que se use la palabra reservada ref, la cual indica
que el pase es por referencia.
 Métodos virtuales y redefiniciones: Antes de que un método pueda ser
redefinido en una clase base, debe declararse como virtual. El método redefinido
en la subclase debe ser declarado con la palabra override.
 Propiedades: Un objeto tiene propiedades, y debido a que las clases en C#
pueden ser utilizadas como objetos, C# permite la declaración de propiedades
dentro de cualquier clase.
 Inicializador: Un inicializador es como una propiedad, con la diferencia de
que en lugar de un nombre de propiedad, un valor de índice entre corchetes se
utiliza en forma anónima para hacer referencia al miembro de una clase.
 Control de versiones: C# permite mantener múltiples versiones de clases en
forma binaria, colocándolas en diferentes espacios de nombres. Esto permite que
versiones nuevas y anteriores de software puedan ejecutarse en forma simultánea.
Desventajas:
 Conseguir una versión reciente de Visual Studio .NET, por otra parte se tiene
que tener algunos requerimientos mínimos del sistema para poder trabajar
94
adecuadamente tales como contar con Windows NT 4 o superior, tener alrededor
de 4 gigas de espacio libre para la pura instalación.
 Además para quien no está familiarizado con ningún lenguaje de
programación, le costará más trabajo iniciarse en su uso, y si se quiere consultar
algún tutorial más explícito sobre la programación en C# se tendría que contar
además con conexión a Internet.
En la actualidad se ha desarrollado tecnologías gratuitas que permiten a los
programadores crear páginas web dinámicas, desde sitios web personales hasta
aplicaciones web empresariales, desarrollado y comercializado por Microsoft.
BLACKBERRY.
Es una línea de teléfonos inteligentes que integran el servicio de correo
electrónico móvil. BlackBerry fue desarrollado por la compañía canadiense
Research
In
Motion
(RIM).
Aunque
incluye
aplicaciones
típicas
es
fundamentalmente conocido por su capacidad para enviar y recibir correo
electrónico de Internet accediendo a las redes móviles de compañías de teléfono
celular que brindan este servicio.
El primer dispositivo BLACKBERRY fue el 1990 y se introdujo en 1999 y
funcionaba como un localizador de cinco vías. En 2002, el BlackBerry más
conocido fue puesto en el mercado. Este BlackBerry soporta push e-mail,
telefonía móvil, mensajería de texto, faxes por Internet, navegación web y otros
95
servicios de información inalámbrica. Actualmente el dispositivo BlackBerry más
vendido y utilizado por los usuarios es el BlackBerry Curve 8520.
GRÁFICO No. 11
Grafico No. 11 BlackBerry
Fuente : http://www.google.com.ec/imgres?imgurl=http://www.wayerless.com/up/2009/10/rim-blackberry-bold-9700ofc.jpg&imgrefurl=http://www.wayerless.com/2009/12/felices-10-anos-blackberry/&usg=__YKQIfto8yzI0grd1vzHas2Ge1A=&h=500&w=575&sz=149&hl=es&start=11&zoom=1&tbnid=d1DCEXNU6istPM:&tbnh=117&tbnw=134&ei=w3rjTuXDEMm4tgekkM
HrBA&prev=/search%3Fq%3DBlackBerry%26um%3D1%26hl%3Des%26sa%3DN%26biw%3D1280%26bih%3D697%26tbm%3Disch&um=1&itbs=1
La mayoría de los modelos actuales de BlackBerry tienen incorporado un teclado
QWERTY, optimizado para " hojear ", utilizando únicamente de los pulgares para
escribir. También hay varios modelos que incluyen un teclado SureType para
escribir. No todos los modelos tienen un teclado ya que hay varios modelos de
pantalla táctil sin teclado físico aunque sí que incluyen un teclado en la pantalla.
El sistema de navegación se logra principalmente por una bola de desplazamiento,
o "bola" en el centro del dispositivo, los dispositivos más antiguos utilizan una
rueda de pista en el lado y los nuevos dispositivos como el BlackBerry Bold o
Curve 9700 8520/8530, como también el Pearl 9100/9105 utilizan una pequeña
almohadilla para la navegación en lugar de una rueda de desplazamiento. Algunos
modelos también incorporan un "Push to Talk (PTT)”, similar a una radio de dos
vías. En ocasiones no funciona.
96
Los dispositivos BlackBerry proporcionan un entorno inalámbrico Java ME que
es compatible con las aplicaciones cliente/servidor. Los desarrolladores de
aplicaciones pueden crear BlackBerry Java Application, con interfaces de usuario
sofisticadas, para la entrada y búsqueda de datos compatibles con un
subprocesamiento múltiple, internacionalización, comunicación de red y el
almacenamiento local de datos. Las aplicaciones pueden comunicarse con las
redes mediante conexiones estándar TCP y HTTP, a pesar de la red inalámbrica
subyacente.
BlackBerry ha incorporado correo móvil en todos sus dispositivos así como las
redes sociales mantienen a todas las personas cerca. Comuníquese con sus amigos,
familiares o contactos por teléfono, correo electrónico o mensaje de texto.
Las empresas pueden ampliar sus aplicaciones comerciales mediante conexiones
inalámbricas a través de BlackBerry, garantizando de este modo que su personal
itinerante tiene acceso a la información de la empresa mientras trabaja sobre el
terreno.
"Hay una antigua historia sobre una persona que quería que
su ordenador fuese tan fácil de utilizar como su teléfono.
Estos deseos se han hecho realidad, ya no sé cómo usar mi
teléfono"(Bjarne Stroustrup)
97

Ambiente de Desarrollo Gráfico.
Actualmente se realizan aplicaciones con entornos gráficos para los diferentes
programas de equipos de cómputo entre los cuales tenemos .net, netbeans,
myeclipse entre otros. Lo cual ha facilitado el desarrollo de estas aplicaciones, sin
embargo aún no se ha llegado a tener todos los sistemas de desarrollo con
ambientes gráficos ya que en su mayoría se siguen utilizando líneas de código
para desarrollar las interfaces de usuarios.
En un ambiente gráfico se detectan todas las interfaces quien necesite el usuario
para desarrollar determinada tarea.
En el desarrollo de una interfaz gráfica se debe tener consideración en no colocar
los elementos en cualquier lugar o con un elemento obstruir otro ya que
complicaría las funciones a los usuarios para ello existen estándares de
programación para manipular estos entornos gráficos.
Entre los estándares de calidad se encuentran los siguientes:

El Estándar de Calidad ISO 9001
El estándar, que ha sido adoptado por más de 130 países para su uso, se está
convirtiendo en el medio principal con el que los clientes pueden juzgar la
competencia de un desarrollador de software. Uno de los problemas con el
estándar ISO 9001 está en que no es específico de la industria: está expresado en
términos generales, y puede ser interpretado por los desarrolladores de diversos
productos como cojinetes de bolas, secadores de pelo, automóviles, equipamiento
deportivo, televisores, así como por los desarrolladores de software. Se han
98
realzado muchos documentos que relacionan el estándar con la industria del
software, pero no entran en una gran cantidad de detalles.
Para la industria del software los estándares relevantes son:
• ISO 9001: este es un estándar que describe el sistema de calidad utilizado
para mantener el desarrollo de un producto que implique diseño.
• ISO 9000-3: este es un documento específico que interpreta el ISO 9001
para el desarrollador de software.
• ISO 9004-2: este documento proporciona las directrices para el servicio de
facilidades del software como soporte de usuarios.
Los requisitos se agrupan bajo 20 títulos:
• Responsabilidad de la gestión
• Inspección, medición y equipo de pruebas
• Sistema de calidad
• Inspección y estado de pruebas
• Revisión de contrato
• Acción correctiva
• Control de diseño
• Control de producto no aceptado
• Control de documento
• Tratamiento, almacenamiento, empaquetamiento y entrega
• Compras
• Producto proporcionado al comprador
99
• Registros de calidad
• Identificación y posibilidad de seguimiento del producto
• Auditorías internas de calidad
• Formación
• Control del proceso
• Servicios
• Inspección y estado de pruebas
• Técnicas estadísticas.

Factores de calidad ISO 9126
El estándar ISO 9126 ha sido desarrollado en un intento de identificar los
atributos clave de calidad para el software. El estándar identifica 6 atributos clave
de calidad:
• Funcionalidad: el grado en que el software satisface las necesidades indicadas
por los siguientes suba tributos: idoneidad, corrección, interoperabilidad,
conformidad y seguridad.
• Confiabilidad: cantidad de tiempo que el software está disponible para su uso.
Está referido por la siguiente suba tributos: madurez, tolerancia a fallos y facilidad
de recuperación.
• Usabilidad: grado en que el software es fácil de usar. Viene reflejado por la
siguiente suba tributos: facilidad de comprensión, facilidad de aprendizaje y
operatividad.
100
• Eficiencia: grado en que el software hace óptimo el uso de los recursos del
sistema. Está indicado por la siguiente suba tributos: tiempo de uso y recursos
utilizados.
• Facilidad de mantenimiento: la facilidad con que una modificación puede ser
realizada. Está indicada por la siguiente suba tributos: facilidad de análisis,
facilidad de cambio, estabilidad y facilidad de prueba.
• Portabilidad: la facilidad con que el software puede ser llevado de un entorno a
otro. Está referido por la siguiente suba tributos: facilidad de instalación, facilidad
de ajuste, facilidad de adaptación al cambio.
El desarrollo de aplicaciones móviles para teléfonos inteligentes se acrecentó
con la aparición de dispositivos BlackBerry, cuyas aplicaciones corrían en
versiones de java j2me versión 1.4, en la actualidad esta versión de java se
encuentra en j2me 1.6, las aplicaciones de java RIM permiten interactuar entre
otras cosas con archivos, conexiones de redes, aplicaciones cliente servidor,
comunicaciones con servicios web, manejo de bases de datos locales, manejo de
imágenes, etc.
En el desarrollo de aplicaciones móviles se pueden realizar las aplicaciones web y
las aplicaciones de dispositivo.
Para realizar una aplicación web se debe tener en cuenta lo siguiente:
El cliente móvil este debe cumplir, en lo posible, con los requerimientos del
cliente en cuanto a procesos en el dispositivo móvil, es decir si necesita realizar
una descarga o carga de información debe de contar con una buena conexión así
como la información necesaria.
101
La aplicación Web que es la que hace el trabajo y procesa el trabajo de los
clientes móviles.
La sincronización. Este es el mecanismo por el cual se mantiene la consistencia e
integridad de datos entre los clientes móviles y la aplicación de servidor.
En el desarrollo de aplicaciones móviles la plataforma Java para Móviles (J2ME)
ha probado ser la más difundida en la actualidad.
Para esto Java provee una arquitectura basada en componentes, que conduce al
desarrollo de aplicaciones multicapa, que aseguran la interoperabilidad de estos
componentes a través de distintas plataformas. El surgimiento de esta arquitectura
creó nuevos perfiles profesionales laborales que deben ser cubiertos.
En las aplicaciones java Rim de BlackBerry un desarrollador puede integrar por
completo aplicaciones cliente servidor, listas de mensajes, organizadores, el
equipo y los exploradores para una mejor interacción con el usuario.
Al momento de desarrollar aplicaciones para el equipo móvil que no sean web se
deben tener en cuenta los siguientes criterios:
• tienen un tamaño de pantalla más pequeño que puede mostrar un número
limitado de caracteres
• tienen velocidades de procesador más lentas
• utilizan redes inalámbricas que tienen un período de latencia más largo que las
LAN estándar
• tienen menos memoria disponible
• tiene una batería que dura menos
102
• muestran una pantalla al mismo tiempo
• Utilizar o ampliar los componentes existentes de la interfaz de usuario de forma
que la aplicación pueda heredar el comportamiento predeterminado del
componente.
• Seguir el modelo estándar de navegación tanto como le sea posible para que los
usuarios puedan hacer un uso completo del teclado y la bola de desplazamiento.
• Realizar todas las acciones disponibles desde el menú.
• Comprobar que las acciones disponibles en el menú son relevantes para el
contexto actual de los usuarios.
• Centrarse en tareas inmediatas de los usuarios.
• Simplifique la selección y presentación de datos para mostrar sólo la
información que los usuarios necesitan en cualquier otro momento.
• Muestre la información de manera que haga un uso efectivo de la pequeña
pantalla.
Los usuarios de dispositivos móviles no utilizan del mismo modo las aplicaciones
en su dispositivo móvil y las aplicaciones en un ordenador. En un dispositivo
móvil, los usuarios esperan encontrar la información rápidamente, puedan realizar
las tareas fácilmente y acceder a la información rápidamente.
Desarrollo de Widgets para Dispositivos BlackBerry
Los Widgets son pequeñas aplicaciones web. Escritas en una combinación de
HTML, CSS y java script y tienen la misma funcionalidad que una aplicación para
el dispositivo, su instalación
103
Es la misma que se hace como si fuera una aplicación nativa del dispositivo.
Básicamente un paquete Widgets tiene los siguientes elementos:
Archivos de Configuración
Página de Inicio
Imágenes (Iconos)
Otros recursos y objetos referenciados
Con un Widgets de este tipo podríamos conseguir sostificados Uis para entrada de
datos y búsqueda de información que soporten por ejemplo, internacionalización,
comunicación por red, almacenamiento local de datos, y comunicación de redes
ya sean tcp o http
FUNDAMENTACIÓN LEGAL
Artículo 96. Objeto de la protección
1. A los efectos de la presente Ley se entenderá por programa de ordenador toda
secuencia de instrucciones o indicaciones destinadas a ser utilizadas, directa o
indirectamente, en un sistema informático para realizar una función o una tarea o
para obtener un resultado determinado, cualquiera que fuere su forma de
expresión y fijación.
A los mismos efectos, la expresión programas de ordenador comprenderá también
su documentación preparatoria. La documentación técnica y los manuales de uso
de un programa gozarán de la misma protección que este Título dispensa a los
programas de ordenador.
104
2. El programa de ordenador será protegido únicamente si fuese original, en el
sentido de ser una creación intelectual propia de su autor.
3. La protección prevista en la presente Ley se aplicará a cualquier forma de
expresión de un programa de ordenador. Asimismo, esta protección se extiende a
cualesquiera versiones sucesivas del programa así como a los programas
derivados, salvo aquellas creadas con el fin de ocasionar efectos nocivos a un
sistema informático.
Cuando los programas de ordenador formen parte de una patente o un modelo de
utilidad gozarán, sin perjuicio de lo dispuesto en la presente Ley, de la protección
que pudiera corresponderles por aplicación del régimen jurídico de la propiedad
industrial.
4. No estarán protegidos mediante los derechos de autor con arreglo a la presente
Ley las ideas y principios en los que se basan cualquiera de los elementos de un
programa de ordenador incluidos los que sirven de fundamento a sus interfaces.
Preguntas a Contestarse
Se reducirá el tiempo de desarrollo usando una interfaz grafica
Será más factible realizar una interfaz gráfica desarrollando con líneas de código
Se entenderá de mejor manera el desarrollo de una aplicación móvil usando una
interfaz amigable
Sale más factible seleccionar un curso o utilizar una herramienta para auto
aprendizaje.
105
Variables de la Investigación
Se define como variable independiente
Interfaces Gráficas Para Desarrollo De Aplicaciones Java Para BlackBerry.
Esto permitirá desarrollar aplicaciones javas para BlackBerry de manera
amigable y optimizaría el tiempo de desarrollo del mismo, reduciendo
considerablemente costos.
Y como variable dependientes:
Complejidad Del Desarrollo de Aplicaciones java Móvil.
El Desarrollo de aplicaciones java para móvil ha sido truncado debido a la poca
experiencia en este ambiente, lo cual hace que haya poco conocimiento de las
aplicaciones posibles a realizarse.
Implementación De Ambiente De Desarrollo Gráfico Para Java Móvil De
BlackBerry. Desarrollar un binario para que pueda ser cargado en los dispositivos
BlackBerry de manera dinámica y poder ser usado en un tiempo mínimo de
desarrollo
DEFINICIONES CONCEPTUALES
GUI.- Graphical user interface o interface gráfica de usuario, son las ventanas en
las cuales interactúa el usuario final cuando está usando el aplicativo en el
dispositivo móvil.
106
BLACKBERRY.- Marca de dispositivo móvil para la cual se desarrollara el
aplicativo del proyecto actual.
RIM.- Research In Motion empresa dueña de sistema operativo BlackBerry OS y
propietaria de la marca BlackBerry, también es conocido por el programa
desarrollado por esta empresa para el desarrollo de aplicaciones para dispositivos
móviles BlackBerry
IDE.- Integrated development environment o ambiente de desarrollo integrado, es
el objetivo final del proyecto propuesto
El de brindar a los desarrolladores de sistemas una herramienta en la cual se haga
fácil y reduzca la carga cognitiva al momento de desarrollar las aplicaciones de
java RIM
COMPLEMENTOS.- Características o métodos adicionales que se incluyen a un
objeto que forme parte de una aplicación java RIM Móvil.
CLASES.- Sección de código donde se encuentras atributos y métodos a ser
utilizados en una aplicación java RIM para dispositivos Móviles.
INTERFACE.- Son declaraciones de métodos para obtener seguridades al
momento de desarrollar aplicaciones java RIM para dispositivos móviles.
OBJETOS.- Son instancias o variables que se crean y que por medio de ellas se
pueden utilizar los atributos y los métodos de las clases.
LIBRERÍAS.- son paquetes de códigos pre-establecidos que se usan en la
implementación de aplicaciones java RIM para móviles.
PALM OS.- el sistema operativo para equipos PDA
PDA.- Personal digital assistant o asistente persona digital
107
CLDC.- Connected Limited Device Configuration o conexión limitada de
configuración de dispositivo
MIDP.- Mobile Information Device Profile o perfil de información de dispositivo
móvil.
108
CAPÍTULO III
METODOLOGÍA
DISEÑO DE LA INVESTIGACIÓN
Modalidad de la investigación
La modalidad de investigación usada fue la de proyecto factible pues a través de
la realización de un diagnóstico se pudo determinar en primera instancia la
complejidad de desarrollo de aplicaciones para dispositivos móviles en general.
Se debe a que las aplicaciones de dispositivos móviles se está llevando a cabo
hace poco tiempo, es decir en los últimos años se está dando a conocer esta
tecnología y esto se debe a la aparición de dispositivos inteligentes lo cual dio
cabida a que el desarrollo de los software se dé no solo a los fabricantes de los
equipos sino también a los diferentes usuarios que se vean atraídos por esta
tecnología. Se desarrolló un aplicativo que brinde la facilidad de desarrollar
aplicaciones de interfaces graficas de una manera sencilla e intuitiva.
Del nivel teórico se utilizaron los siguientes métodos:

Métodos lógicos del pensamiento, como: análisis, síntesis, inducción,
generalización, para arribar a las diferencias y conclusiones pertinentes.

Histórico lógico en función de establecer orden y secuencia lógica en el
devenir histórico del fenómeno estudiado.
Fueron empleados como métodos del nivel empírico los siguientes:
109
El trabajo con las fuentes documentales para analizar los trabajos existentes
acerca del objeto de investigación, y en particular sobre el proceso de desarrollo
de un aplicativo de dispositivos móviles.
 Entrevista a un especialista, para determinar el estado actual del proceso
de desarrollo de aplicaciones en dispositivos móviles.
 El método de consulta a expertos para valorar la factibilidad de la
propuesta de un aplicativo para el desarrollo de las interfaces gráficas y
disminución de la complejidad en el desarrollo de las aplicaciones
móviles orientado a dispositivos BlackBerry.
Población y Muestra
Población
En la presente tesis se determinó como dificultad generalizada, no poder acceder a
las poblaciones totales. Esta circunstancia obliga en la mayoría de los casos a
trabajar con partes representativas de aquellas, es decir, las muestras.
Conforme al método por el que se toma la muestra, las observaciones selectivas se
dividen en:

Selección estratificada.

Selección sistemática

Selección aleatoria

Selección por conglomerados
En el caso objeto de estudio se utilizó la selección por conglomerados, ya que en
el mismo se consideran
los conjuntos de datos que posean las mismas
110
características medibles o cuantificables, por ejemplo los desarrolladores de
aplicaciones
La población fue tomada de un grupo de empresas consultoras informáticas
(Sudamericana de Software, CIMA, Integrity, Viamatica, IRoute), personal del
área de sistemas de algunas entidades financieras (Banco de Guayaquil, banco
del Pacifico), grupo de estudiantes del horario nocturno y matutino en la carrera
de ingeniería de sistemas computacionales de la universidad de Guayaquil, un
número aproximado de programadores independientes.
CUADRO No. 1
Cuadro de Población
POBLACIÓN
Población Aproximada de Desarrolladores en Sudamericana de
N
40
Software
Población Aproximada de Desarrolladores en CIMA Consulting
60
Población Aproximada de Desarrolladores en Integrista Solución
30
Población Aproximada de Desarrolladores en Viamatica
40
Población Aproximada de Desarrolladores en IRoute Solution
45
Población Aproximada de Desarrolladores en Banco de Guayaquil
20
Población Aproximada de Desarrolladores en Banco del Pacifico
35
Población Aproximada de estudiantes horario matutino en carrera de
700
ingeniería de sistemas.
Población aproximada de estudiantes horario nocturno en carrera de
ingeniería de sistemas
740
111
Población Aproximada de Programadores independientes. En la ciudad
de Guayaquil. Que no han seguido alguna carrera de ingeniería de
sistemas
Total
300
2190
Fuente: Héctor William Pilligua Robalino
Elaborado Por: Héctor William Pilligua Robalino
Muestra
El subconjunto de la población determinado mediante el tamaño de la muestra y
el tipo de muestreo que se utilizó para seleccionar a la cantidad promedio de
desarrolladores informáticos.
TAMAÑO DE LA MUESTRA
Población Aproximada de Desarrolladores en empresas consultoras informáticas
Fórmula:
n
m
E (m  1)  1
2
DONDE:
CUADRO No. 2
Población Aproximada 1
POBLACIÓN
N
Población Aproximada de Desarrolladores en empresas consultoras
informáticas
215
Fuente: Héctor William Pilligua Robalino
Elaborado Por: Héctor William Pilligua Robalino

Cálculos:
m= Tamaño de la población
(215)
E= error de estimación
(7%)
n = Tamaño de la muestra
(104)
215
(0.07) (40  1)  1
112
215
n
(0.0049)( 214)  1
215
n
2
Resultado: 104 personas a encuestar.
Cálculo del factor de proporción:
f 
n 104

 0.488672
N 215
TAMAÑO DE LA MUESTRA
Población Aproximada de Desarrolladores en Entidades Financieras.
Fórmula:
n
m
E 2 (m  1)  1
DONDE:
CUADRO No. 2
Población Aproximada 2
POBLACIÓN
N
Población Aproximada de Desarrolladores en Entidades Financieras
55
Fuente: Héctor William Pilligua Robalino
Elaborado Por: Héctor William Pilligua Robalino

Cálculos:
m= Tamaño de la población
(55)
E= error de estimación
(7%)
n = Tamaño de la muestra
(43)
55
(0.07) (55  1)  1
55
113
n
(0.0049)(54)  1
55
n
n
2
Resultado: 43 personas a encuestar.
Cálculo del factor de proporción:
f 
n 43

 0.781818
N 55
TAMAÑO DE LA MUESTRA
Población Aproximada de Desarrolladores en la carrera de ingeniería en sistemas
computacionales horario matutino y nocturno
Fórmula:
n
m
E 2 (m  1)  1
DONDE:
CUADRO No. 3
Población Aproximada 3
POBLACIÓN
N
Población Aproximada de Desarrolladores en la carrera de ingeniería en
sistemas computacionales horario matutino y nocturno
1440
Fuente: Héctor William Pilligua Robalino
Elaborado Por: Héctor William Pilligua Robalino

Cálculos:
m= Tamaño de la población
(1440)
E= error de estimación
(7%)
n = Tamaño de la muestra
(179)
1440
(0.07) 2 (1440  1)  1
1440
n
(0.0049)(1439)  1 114
1440
n
7.0511  1
n
Resultado: 179 personas a encuestar.
Cálculo del factor de proporción:
f 
n
179

 0.124306
N 1440
TAMAÑO DE LA MUESTRA
Población Aproximada de Desarrolladores en Viamatica
Fórmula:
n
m
E 2 (m  1)  1
DONDE:
CUADRO No. 4
Cuadro Población 4
POBLACIÓN
N
Población Aproximada de Programadores independientes. En la ciudad
de Guayaquil. Que no han seguido alguna carrera de ingeniería de
sistemas
300
Fuente: Héctor William Pilligua Robalino
Elaborado Por: Héctor William Pilligua Robalino

Cálculos:
m= Tamaño de la población
(300)
E= error de estimación
(7%)
n = Tamaño de la muestra
(122)
300
(0.07) 2 (300  1)  1
300
n
(0.0049)( 299)  1
300
n
115
1.4651  1
300
n
2.4651
n
Resultado: 122 personas a encuestar.
Cálculo del factor de proporción:
f 
n 122

 0.9
N 300
Operacionalización de variables
A continuación se muestra a través de un cuadro las variables determinadas en el
presente trabajo, e incluye además sus dimensiones, indicadores y técnicas de
investigación utilizadas.
CUADRO NO. 5
MATRIZ DE OPERACIONALIZACIÓN DE VARIABLES
Variables
Dimensiones
Indicadores
Técnicas
y/o
Instrumentos
V. I.
Interfaces
Gráficas Para
Desarrollo De
Aplicaciones
Java
Para
BlackBerry
Desarrollo
de
Sistemas
informáticos
orientados
a
tecnologías
Móviles
Adaptación
a
Herramientas de
Programación.
(70%)
Programación
Intuitiva (50%)
Interacción con
dispositivos
BlackBerry
Conocimiento de
tecnología móvil
(80%)
Análisis de
comportamiento
y adaptación a
nuevas
herramientas de
trabajo
Niveles de
destrezas en
captación de
elementos y
lógicas de
programación
Exposiciones,
guías,
visualización de
nuevos
dispositivos,
116
encuestas
Conocimiento de
tecnología móvil
de
los
Smartphone
(70%)
V.D.
Complejidad
Del Desarrollo
de Aplicaciones
java Móvil
Estándares de
programación
Implementación
de
sistemas
informáticos en
dispositivos
móviles
Diferentes tipos
de conectividad
Adaptación
a
nuevas
tecnologías en el
mercado (40%)
Programación
modular (15%)
Programación
Orientada
a
Objetos
(60%)
Conocimiento de
tecnología móvil
(80%)
Conocimiento de
tipos
de
almacenamiento
en
dispositivos
móviles
(50%)
Conocimiento de
conectividad
móvil (70%)
Visualización de
campo, foros,
preguntas
frecuentes, salas
de conversas,
redes sociales.
Talleres,
exposiciones,
ejercicios,
encuestas
Pruebas escritas,
pruebas
prácticas,
desarrollo y
soluciones de
problemas,
ayudas a usuarios
Talleres,
encuestas,
exposiciones,
reuniones, foros,
correos, internet.
Exposiciones,
manuales , guías,
encuestas,
talleres
Conocimiento de
arquitectura
móvil (20%)
V.D.
Implementación
De Ambiente
De Desarrollo
Objetos gráficos
de aplicaciones
informáticas
Conocimientos de
objetos gráficos
(80%)
Resoluciones de
problemas,
encuestas escritas
y prácticas.
117
Gráfico
Para
Java Móvil De
BlackBerry
Uso de punteros
para
brindar
movilidad e
Interacción con
la aplicación.
Ofrecer ayuda
en el desarrollo
de aplicaciones
móviles
Conocimiento de
distribución
de
pixeles
en
monitor (50%)
Orientación
y
reconocimiento
de colores (60%)
Uso de ayuda
(80%)
Interpretación de
ejemplos (80%)
Búsqueda
ayuda (80%)
Mediciones con
cuestionarios
gráficos
Ubicación de
ayuda en un
punto estratégico
y visible para el
usuario, uso de
metáforas
de
Elaboración: Héctor William Pilligua Robalino
Fuente: Héctor William Pilligua Robalino
Instrumentos de recolección de datos.
En la presente investigación fueron utilizados diversos métodos de obtención de
información, los cuales se conceptualizarán y caracterizarán brevemente a
continuación:
La Entrevista
La entrevista es uno de los métodos de obtención de información más eficaces.
“una entrevista para recolección de información es una
conversación dirigida con un propósito específico que usa un
formato de preguntas y respuestas”. (Kendall)
118
Como la entrevista no es una conversación informal entre dos amigos que se
encuentran, sino un diálogo con un objetivo investigativo muy claro, debe ser
insertada en un proceso investigativo mucho más amplio.
Debido a ello se hace necesario organizar adecuadamente la entrevista. Esa
organización adecuada de la entrevista implica dividirla por partes o etapas.
Esas partes o etapas son:

Preparación.

Realización.

Elaboración.

Diseño de las preguntas.
Las preguntas en las entrevistas se establecen de forma estructurada y tienen
múltiples formas las cuales se muestran a continuación:

Preguntas cerradas.

Preguntas abiertas.

Preguntas mixtas.

Indagaciones o averiguaciones generales.
Las preguntas estructuradas tienen un objetivo informativo muy concreto. La
respuesta está definida por la pregunta.
Las preguntas estructurales cerradas son las que mayormente se utilizan. Estas
ofrecen al entrevistado un universo finito de respuestas, entre las cuales debe
119
escoger la que considera posible o correcta. Ejemplo: En alternativas múltiples
incluyentes
¿Con qué frecuencia elabora aplicaciones para dispositivos móviles?
_______Diarios ________Semanales _______Mensuales.
Las preguntas estructurales abiertas son aquellas donde el entrevistador permite al
entrevistado la libertad de escoger opiniones y la forma de responder.
Proporcionan más riqueza informativa, pero son más ambiguas. Ejemplo: ¿Cómo
piensa que puede ser mejorado el sistema de información automatizado de su
entidad?
Las indagaciones o averiguaciones generales son preguntas abiertas llevadas a su
máxima expresión.
Ejemplo: La descentralización sería una solución al problema del control aquí.
¿Qué usted piensa sobre eso?
Las entrevistas estructuradas o dirigidas se realizan sobre la base de un
cuestionario guía, y las respuestas se registran tal y como los da el entrevistado.
Las entrevistas no estructuradas se distinguen por la preponderancia de las
preguntas abiertas y por un alto grado de flexibilidad por parte de los
entrevistadores.
Cuestionarios
Los cuestionarios se emplean fundamentalmente cuando la cantidad de las
personas a investigar es muy grande o cuando la dispersión geográfica de las
120
mismas es tal que impiden física y económicamente, las entrevistas reales o
virtuales.
Con los cuestionarios pueden investigarse hechos, formas de comportamiento,
opiniones, procedimientos, flujos de información, sentimientos, características,
creencias.
Ventajas con relación a las entrevistas:
Bajo costo, su rapidez y su ubicuidad.
Desventajas:
No permiten acoplar información informal o base de observaciones.
Los cuestionarios deben cumplir, al menos, con cinco atributos: idoneidad,
procesable automatizada mente, ser objetivos, alcance razonable, diseño agradable
y a la vez sencillo.
Para la elaboración del cuestionario se deben tener en cuenta las siguientes etapas:

Preparación.

Diseño y elaboración.

Prueba.

Aplicación.

Análisis de la información obtenida.
En un cuestionario pueden utilizarse cualquier tipo de preguntas, pero el más
recomendable es el de preguntas estructurales cerradas, pues resulta más fácil de
procesar en programas como el Excel o el SPSS.
121
El cuestionario no ofrece la flexibilidad de la entrevistas, por lo que exigirá
mucho más esfuerzo de diseño y elaboración.
Además deberá estudiarse la posibilidad de que el cuestionario sea anónimo o
identificado. Los investigadores en ambos casos deberán actuar con sinceridad y
transparencia.
Algunas recomendaciones generales son:

Dejar suficiente espacio para llenar las preguntas estructurales abiertas.

Comprobar la existencia de todas las alternativas en las peguntas
estructurales cerradas.

Ser consistente en el estilo de las preguntas.

Ordenar las preguntas con el mismo estilo que se expuso en las entrevistas
(enfoque deductivo, enfoque inductivo y combinación de ambos).

Agrupar conjuntos de preguntas de contenido similar.

Comenzar por las preguntas menos controvertidas.

Evitar las preguntas negativas pues tienden a confundir.
Cuando es necesario se deben utilizar escalas en las preguntas estructurales
cerradas con alternativas. Estas permiten cuantificar aspectos que a primera vista
son cualitativos. Las escalas más comunes son:

Nominal.

Ordinal.

De intervalo.

De relación.
122
Observaciones
Las técnicas de investigación observación constituyen un método muy útil para
captar información. Observar no es simplemente “mirar”. Se observa con un
objetivo, con una misión investigativa que cumplir.
Claude Bernard expresaba refiriéndose a la observación:
“el observador debe ser un fotógrafo de los fenómenos; su
observación debe representar exactamente a la Naturaleza”
La observación ayuda a confirmar o refutar la información que se ha obtenido por
medio de las entrevistas, los cuestionarios, el análisis de documentos, etcétera.
La observación se realiza planeada, organizada y sistemáticamente.
Las observaciones que realizan los investigadores deben cumplir, entre otros los
siguientes requisitos:

Tener propósitos claros y bien definidos.

Proyectarse hacia un plan específico, definido y orientado a cumplir los
objetivos.

Estar sujeta a comprobación.

Poderse controlar sistemáticamente.

Reunir los requisitos básicos de confiabilidad y validez.

Plasmar sus resultados por escrito, preferiblemente en el momento exacto en
que transcurre.
Las observaciones presentan ventajas evidentes:
No son obstruidas, puesto que no interfieren en la actividad de los observados.
Aceptan información informal, no estructurada, pero sumamente útil.
123
Permite trabajar con grandes volúmenes de información.
Las observaciones en las investigaciones pueden ser de varios tipos:

Por el lugar en que se realizan: documental o de campo.

Por la forma de participar del observador: participante o no participante.

Por la forma en que se organiza: dirigida (regulada y estructurada) o no
definida (libre)

Por el número de observadores: individual o en equipo.
Como en toda herramienta de investigación, cuando se hacen observaciones se
debe dejar constancia escrita.
Otras opciones pueden ser el empleo de filmadoras, cámaras fotográficas o
máquinas de video, etcétera.
En la presente investigación para obtener la información necesaria se recurrió en
primera instancia a la metodología de observación del objeto de estudio,
determinándose los siguientes sucesos:

Desarrollo de aplicaciones para dispositivos móviles.

Conocimientos de los desarrolladores de aplicaciones.

Manejo de interfaces gráficas para desarrollo de aplicaciones.

Uso de herramientas para desarrollo de aplicaciones en java.
Posteriormente se recurrió a la aplicación de un cuestionario, el cual se muestra a
continuación:
Procedimientos de la Investigación
124
Los pasos que se siguieron para desarrollar mi tesis; desde la concepción del
problema hasta la elaboración del informe de la investigación son:
El problema:
Planteamiento del problema
Interrogantes de la investigación
Objetivos de la Investigación
Justificación o importancia de la investigación
Marco teórico:
Fundamentación teórica
Fundamentación legal
Preguntas a contestarse
Definición de términos
Metodología:
Diseño de Investigación (Tipo de Investigación)
Población y Muestra
Instrumentos de recolección de datos
Operacionalización de variables, dimensiones e indicadores
Procedimiento de la Investigación
Criterios para la elaboración y validación de la propuesta
Marco administrativo:
Cronograma, Presupuesto
125
Conclusiones y recomendaciones
Recolección de la Información
Posteriormente se recurrió a la aplicación de una encuesta, la misma que se
elaboró en una manualmente observando las necesidades de los desarrolladores de
aplicaciones móviles, para luego depurar cada pregunta que fuese necesaria para
realizar la encuesta ver anexo #7
PROCESAMIENTO Y ANÁLISIS
A través de los resultados obtenidos de la encuesta se realizó un análisis
específico a cada respuesta de las preguntas, este se muestra a continuación:
1- Condición del Informante
Opciones
1
2
3
CUADRO Nº 6.
Condición del Informante
Frecuencia
Categorías
Absoluta
Población
Aproximada
de
Desarrolladores en empresas
consultoras informáticas
Población
Aproximada
de
Desarrolladores en Entidades
Financieras
Población
Aproximada
de
Desarrolladores en la carrera de
Frecuencia
Relativa
104
23%
43
10%
179
40%
126
4
ingeniería
en
sistemas
computacionales
horario
matutino y nocturno
Población
Aproximada
de
Programadores independientes.
En la ciudad de Guayaquil. Que
no han seguido alguna carrera de
ingeniería de sistemas
Total
122
27%
448
100%
Fuente: Datos de la encuesta realizada
Elaboración: Héctor William Pilligua Robalino.
GRÁFICO Nº 12. Condición del Informante
23 Desarrolladores
en consultorias
104
122
43
179
10 desarrolladores
en entidades
financieras
Fuente: Datos de la encuesta realizada Cuadro Nº 2
Elaboración: Héctor William Pilligua Robalino
Análisis: de acuerdo al análisis, la mayor parte de los desarrolladores de
aplicaciones ya sean móviles o de escritorio son los que están cursando la carrera
de ingeniería de sistemas, esto corresponde al 40%, la mayoría de los
desarrolladores que se encuentran en este grupo consiguen trabajar en consultoras
informáticas, otros desarrolladores consiguen en empresas públicas o privadas, o
trabajos bajo pedido, cabe recalcar que los que terminan la carrera de ingeniería
en sistemas no se dedican al desarrollo de aplicaciones, seguido de los
desarrolladores independientes o los FreeLancer, que se dedican a la
programación y comercialización de aplicaciones, por lo usual estos
desarrolladores han hecho cursos vía web o recibiendo cursos de capacitación, el
conocimiento que consiguen de la herramienta de desarrollo les da una ventaja al
127
momento de implementación de sistemas, este grupo corresponde al 27%,
continuando con el grupo de desarrolladores de consultoras informáticas, en este
caso la mayoría se dedica al desarrollo por cuestiones laborales, y la empresas se
encarga de realizar las capacitaciones correspondientes para una labor correcta,
este grupo corresponde al 23%, por último el grupo de desarrolladores de
entidades financieras, este grupo es pequeño en comparación con el resto, ya que
en las entidades financieras se sirven más de los consultores informáticos para el
desarrollo, los programadores que se encuentran en este grupo se encargan de
realizar investigaciones de aplicaciones y nuevas herramientas, desarrollo de
tareas a seguirse, mantenimiento de sistemas, procesos burocráticos, reuniones,
lluvias de ideas y trato con el departamento organizacional para definición de los
proyectos que se tiene en curso, este grupo corresponde al 10%.
2. Utiliza Dispositivos BlackBerry.
CUADRO N° 7
Utiliza Dispositivos BlackBerry.
Frecuencia
Opciones Categorías
Absoluta
Si
1
220
No
2
228
Total
448
Frecuencia
Relativa
49%
51%
100%
Fuente: Datos de la encuesta realizada
Elaboración: Héctor William Pilligua Robalino
GRÁFICO Nº 13. Uso de Dispositivos BlackBerry
128
49
51
Si
No
Fuente: Datos de la encuesta realizada Cuadro Nº 3
Elaboración: Héctor William Pilligua Robalino
Análisis: De acuerdo al gráfico se denota que hay un gran número de
desarrolladores poseen equipos móviles BlackBerry, este grupo corresponde al
49%,, esto es por que utilizan el equipo para ver el resultado de la aplicaciones
realizadas para el dispositivo y por comodidad, el 51% restante optaron por otros
tipos de dispositivos por tecnología andorid o iPhone..
3. Adaptación a Nuevas Herramientas
CUADRO N° 8
Adaptación a Nuevas Herramientas.
Frecuencia
Frecuencia
Opciones
Categorías
Absoluta
Relativa
Complicado
1
40
9%
Con
tiempo
2
80
18%
Considerable
Adaptación
3
135
30%
129
4
rápida
No se Complica
la adaptación
Total
193
43%
448
100%
Fuente: Datos de la encuesta realizada
Elaboración: Héctor William Pilligua Robalino
GRÁFICO No.14 Adaptacion a Nuevas Herramientas.
Complicado
9
18
43
Con tiempo Considerable
30
Adaptación rápida
No se Complica la
adaptación
Fuente: Datos de la encuentra realizada
Elaborado. Héctor William Pilligua Robalino
Análisis: con la información obtenida se llega a comprobar que la mayoría de los
desarrolladores no tiene ninguna complicación en la adaptación a nuevas
herramientas de desarrollo, la adaptación no puede ser complicada pero se puede
tomar un tiempo considerable, su adaptación es más rápida si se cuenta con
herramientas gráficas, en este grupo se encuentra a los programadores junior y
semijunior, este grupo cuenta con el 43%. Otro grupo mayoritario tiene una
adaptación rápida a las nuevas herramientas de desarrollo, estos desarrolladores
cuentan con bastante conocimientos de códigos, por lo general aquí se
130
encontraron a los analistas, programadores sénior, este grupo cuenta con 30% de
participación. Otro grupo toma un tiempo considerable en la adaptación de las
nuevas herramienta de desarrollos, este tiempo de adaptación por lo general no
garantiza la adaptación total hacia la herramienta, y andan en constante adaptación
aprendiendo de la nueva interface para el desarrollo, por lo usual aquí hay
programadores sénior y junior que están acostumbrados a utilizar una herramienta
para las diferentes aplicaciones realizadas, por ejemplo si está acostumbrado a .net
se tomara un tiempo considerable en aprender a programar en eclipse, este grupo
cuenta con el 18% de participación. En el último grupo contamos con los
desarrolladores que se les complica la adaptación hacia nuevas herramientas de
desarrollo, en este grupo se encuentran programadores que ya tienen una edad
avanzada y ha estado desarrollando con una sola herramienta de programación,
por ejemplo programar en fox pro y luego quedar adaptarse a netbeans, este grupo
cuenta con un 9% de participación.
4. Lenguaje de Programación más Utilizados.
Opciones
1
2
3
4
5
Total
CUADRO N° 9
Lenguaje de Programación más Utilizados.
Frecuencia
Categorías
Absoluta
.Net
117
Java
120
Oracle-PLQSL-SQLSERVER
94
Aplicaciones Web
112
Cobol
5
448
Frecuencia
Relativa
26%
27%
21%
25%
1%
100%
Fuente: Datos de la encuesta realizada
Elaboración: Héctor William Pilligua Robalino
131
GRÁFICO No.15 Lenguaje de Programación más Utilizados.
1
25
26
.net
java
plsql-sql-oracle
21
27
web
cobol
.
Fuente: Datos de la encuentra realizada
Elaborado. Héctor William Pilligua Robalino
Análisis: de acuerdo con la información obtenida se ve que hay un gran uso de
lenguaje java, se debe a que en los outsoursing son los lenguajes más usados por
ser open, este grupo corresponde al 27%, seguido del grupo de desarrollo que
prefieren utilizar lenguaje de .net, esto se debe a las ventajas de desarrollo y
menos complejidad en las implementaciones, debido a que se trata de una
herramienta licenciada solo se dedican a los mantenimientos de sistemas
existentes, esto corresponde al 26%,
los programadores en ambiente web
corresponde al 25%, este grupo se dedica al diseño gráfico, está más conformado
con diseñadores, el lenguaje de programación que saben utilizar aparte de java y
.net son php, html5, JavaScript, el grupo de programación a nivel de base de datos
132
corresponde al 21%, estos son encargados de desarrollos de trabajos programados,
por ejemplo Jobs, así como el mejoramiento en tiempos de respuestas, seguridad
en la información revisión de estándares y optimización de consultas, por ultimo
tenemos al grupo que utiliza cobol, este grupo está en su mayoría en las entidades
financieras, corresponde al 5%., debido a que es un lenguaje de programación que
tiene bastante tiempo en el mercado, solo hay un pequeño grupo que se ha
dedicado al aprendizaje de este lenguaje, cabe recalcar que cobol es ideal para el
procesamiento de información masiva, carga de archivos con bastante
información que en ocasiones llega a superar el millones de registros, al ser un
lenguaje de muy bajo nivel, asemejado a C++ , el uso de recursos se reduce
considerablemente lo cual brinda la gran velocidad de procesamiento.
5. Desarrollo de Aplicaciones con tecnología J2ME.
CUADRO N° 10
Desarrollo de Aplicaciones con tecnología J2ME.
Frecuencia
Opciones
Categorías
Absoluta
.Si
1
230
No
2
218
Total
448
Frecuencia
Relativa
51%
49%
100%
Fuente: Datos de la encuesta realizada
Elaboración: Héctor William Pilligua Robalino
GRÁFICO No.16 Desarrollo de Aplicaciones con tecnología J2ME.
133
49
51
Si
No
Fuente: Datos de la encuesta realizada
Elaborado. Héctor William Pilligua Robalino
Análisis: la mayoría en toda su trayectoria de desarrollo han utilizado tecnología
J2ME, en su mayoría el trabajo que han hecho ha sido con el IDE de eclipse,
también han desarrollado en netbeans, y en .net, este grupo corresponde al 51%, el
otro grupo ha desarrollado en otras herramientas por ejemplo .net utilizando
propiedades en los sitios web para adaptación en los dispositivos, en la actualidad
también utilizan HTML5, este grupo corresponde al 49%...
6. Conocimiento de Herramientas para Desarrollo de Aplicaciones para
Dispositivos Móviles.
CUADRO N° 11
Conocimiento de Herramientas para Desarrollo de Aplicaciones para
Dispositivos Móviles.
Frecuencia Frecuencia
Opciones
Categorías
Absoluta
Relativa
Muchas
1
214
48%
Algunas
2
130
29%
Pocas
3
104
23
Ninguna
4
0
0
Total
448
100%
Fuente: Datos de la encuesta realizada
Elaboración: Héctor William Pilligua Robalino
134
GRÁFICO No.17 Conocimiento de Herramientas para Desarrollo de
Aplicaciones para Dispositivos Móviles
0
23
48
Muchas
Algunas
Pocas
29
Ninguna
Fuente: Datos de la encuesta realizada
Elaborado. Héctor William Pilligua Robalino
Análisis: con la información obtenida se pudo constatar que hay un gran numero
de que conocen diferentes herramientas, este grupo corresponde al 48%, seguido
del grupo que programas como eclipse o .net, corresponde al 29%,el 23% restante
conoce o a escuchado de herramientas para el desarrollo con tecnología J2ME,
este grupo corresponde al 23%.
7. Uso de IDE Gráfico para Desarrollo de Aplicaciones.
CUADRO N° 12
Uso de IDE Gráfico para Desarrollo de Aplicaciones.
Frecuencia Frecuencia
Opciones
Categorías
Absoluta
Relativa
Siempre
1
210
47%
Algunas veces
2
140
31%
Muy Poco
3
75
17%
Nunca
4
23
5%
Total
448
100%
Fuente: Datos de la encuesta realizada
Elaboración: Héctor William Pilligua Robalino
GRÁFICO No.18 Uso de IDE para Desarrollo de Aplicaciones.
135
17
5
47
Siempre
Algunas veces
31
Muy Poco
Nunca
Fuente: Datos de la encuesta realizada
Elaborado. Héctor William Pilligua Robalino
Análisis: la mayoría de los desarrolladores prefieren desarrollar con una
herramienta que le faciliten visualizar el resultado final del sistema desarrollado,
este grupo corresponde al 47%, el 31% son desarrolladores que no ven
complejidad en desarrollar aplicaciones con interfaces graficas o mediante líneas
de código formar las interfaces de usuarios, el 17% son desarrolladores que no
ven la necesidad de un IDE gráfico para el desarrollo de interfaces, por lo general
en este grupo se encuentra personal de bases de datos, el 5% corresponde a
desarrolladores que no ven la necesidad del desarrollo de interfaces gráficas.
8. Desarrollos Frecuentes de Sistemas Informáticos.
CUADRO N° 13
Desarrollos Frecuentes de Sistemas Informáticos.
Frecuencia
Opciones
Categorías
Absoluta
Empresarial
1
210
Oficina
2
90
Juegos
3
25
Varios
4
123
Total
448
Frecuencia
Relativa
46%
20%
6%
28%
100%
Fuente: Datos de la encuesta realizada
Elaboración: Héctor William Pilligua Robalino
GRÁFICO No.19 Desarrollos Frecuentes de Sistemas Informáticos.
136
28
Empresarial
46
Oficina
6
Juegos
20
Varios
Fuente: Datos de la encuesta realizada
Elaborado. Héctor William Pilligua Robalino
Análisis: de acuerdo a los datos obtenidos se ve claramente que la mayoría de los
desarrolladores desarrollan o dan mantenimiento a sistemas empresariales, está
conformado por el 46%, el grupo que le sigue son los que realizan sistemas varios,
en este grupo se encuentran los desarrolladores de sitios web, sistemas
empotrados, programación a bajo nivel, desarrollo móvil, entre otros, constituye el
23%, el grupo de desarrollo de oficina desarrollan sistemas compatibles con
office, corresponde al 20%, el 6% conforma los desarrollos de juegos, ya sean de
aprendizaje, infantiles o para dispositivos móviles.
9. Sistemas Operativos Móviles.
CUADRO N° 14
Sistemas Operativos Móviles.
Opciones
1
2
3
4
5
6
Total
Categorías
Android
IOS
RIM BlackBerry
Sysmbian
Windows Mobile
Otros
Frecuencia
Absoluta
200
65
155
13
10
5
448
Frecuencia
Relativa
45%
15%
35%
3%
2%
1%
100%
Fuente: Datos de la encuesta realizada
Elaboración: Héctor William Pilligua Robalino
137
GRÁFICO No.20 Sistemas Operativos Móviles.
3 21
Android
45
35
IOS
RIM BlackBerry
15
Sysmbian
Windows movile
Otros
Fuente: Datos de la encuesta realizada
Elaborado. Héctor William Pilligua Robalino
Análisis: de acuerdo a los datos obtenidos se ve que hay una gran cantidad de
personas que utilizan dispositivos con sistema operativo android, este grupo
constituye el 45%, seguido de las personas que utilizan dispositivos con
BlackBerry, constituyendo el 35%, el grupo utiliza iPhone constituye el 15%,
dispositivos con sistemas symbias constituyen el 3%, dispositivos con sistemas de
Windows Mobile consta el 2% y los que utilizan dispositivos comunes constan el
1%.
10. Herramientas de Programación más Utilizadas para Desarrollo de
Aplicativos Móviles.
CUADRO N° 15
Sistemas Herramientas de Programación más Utilizadas para Desarrollo de
Aplicativos Móviles.
Frecuencia Frecuencia
Opciones
Categorías
Absoluta
Relativa
Eclipse
1
230
40%
NetBeans
2
150
26%
.Net
3
100
14%
Programación Web
4
80
17%
Otros
5
13
3%
138
Total
448
100%
Fuente: Datos de la encuesta realizada
Elaboración: Héctor William Pilligua Robalino
GRÁFICO No.21 Herramientas de Programación más Utilizadas para
Desarrollo de Aplicativos Móviles.
3
Eclipse
17
40
14
NetBeans
.Net
26
Programacion Web
Otros
Fuente: Datos de la encuesta realizada
Elaborado. Héctor William Pilligua Robalino
Análisis: De acuerdo a los datos obtenidos se puede comprobar que la mayoría de
los desarrolladores al momento de implementar aplicaciones para dispositivos
móviles prefieren Eclipse, este grupo conforma el 40%, seguido del grupo que
prefiere usar netbeans por la facilidad de comunicación con java, esto conforma el
26%, los desarrolladores, ellos conforman el 17%, el programadores en .net
conforman el 14%, y los desarrolladores que programan en otras herramientas no
mencionadas conforman el 3%.
CRITERIOS PARA LA ELABORACIÓN DE LA PROPUESTA
Para el desarrollo de la propuesta se tuvieron en cuenta los términos generales que
a continuación se muestran:

Fundamentos metodológicos en la elaboración del modelo.

Metodología para el uso del lenguaje de programación C#.

Metodología para el desarrollo de la plataforma .NET.
139

Metodología para la elaboración de módulos
Con estos elementos, el autor de la presente investigación, desarrollo el diagrama
de flujo de la información, ver anexo 1, con este elemento se procede con el
análisis y el diseño del aplicativo que facilite el desarrollo de aplicaciones para
dispositivos móviles.
CRITERIOS DE VALIDACIÓN DE LA PROPUESTA
Para valorar la factibilidad del modelo se aplica el método Delphi o de criterio de
expertos.
El método Delphy o de criterio de expertos consiste en la utilización del juicio
intuitivo de un grupo de expertos para obtener un consenso de opiniones,
reflejando las valoraciones individuales de los mismos.
Se seleccionaron 25 especialistas a quienes se les aplicó la encuesta a fin de
determinar si verdaderamente podían ser considerados como expertos. A partir del
criterio de autovaloración los mismos contestaron la encuesta que aparece en el
anexo número 2. La selección realizada se efectuó en atención al comportamiento
de las variables siguientes:
 Investigaciones realizadas vinculadas con la actividad informática.
 Experiencia en el desarrollo de software, particularmente en tecnología web.
 Investigaciones relacionadas con el tema de investigación de la presente tesis.
140
La autovaloración realizada por los expertos permite determinar si deben ser
considerados como tales a partir del coeficiente de competencia KC y del
coeficiente de argumentación KA. Los resultados del coeficiente se muestran en
la tabla 1 del anexo número 3.
De acuerdo a sus autovaloraciones no se toman en consideración a 5 de los
especialistas encuestados, ver anexo número 4.
Dentro de los expertos seleccionados, el 2 posee grado científico de máster. De
ellos el 23 son profesores a tiempo parciales.
A los especialistas que fueron seleccionados como expertos, 20 en total, se les
entrego un cuestionario que contenía las principales cuestiones relativas al modelo
y al sitio web que aparecen en el anexo número 4.
Con el fin de evaluar los aspectos anteriormente mencionados los expertos
emitieron sus juicios valorativos a partir de un conjunto de cuestionamientos que
se plantean a continuación:
1. Valoración de las dimensiones planteadas en el modelo.
2. Valoración de los métodos científicos utilizados en la elaboración del modelo.
3. Valoración de la eficacia del modelo en la compatibilidad la solución
Generada con el IDE Eclipse.
4. Valoración de los módulos diseñados.
5. Valoración del grado de correspondencia entre el modelo y el aplicativo
Gráfico.
141
6. Valoración de la misión del aplicativo de desarrollo de interfaces gráficas.
Se utilizaron cinco categorías de valoración.
1.- Muy adecuado
2.- Bastante adecuado
3.- Adecuado
4.- Poco adecuado
5.- Inadecuado
Una vez obtenida la valoración de los expertos, se procesó la información
mediante el software estadístico Excel (2007), el cual arrojó los cálculos de la
matriz de frecuencias, las frecuencias acumuladas y frecuencias relativas
acumuladas que aparecen en el anexo número 6.
Finalmente a través del uso del software estadístico Excel (2007) se determinó la
imagen de cada uno de los valores de las celdas de la tabla de frecuencias
acumulativas relativas, por la inversa de la curva de la normal (ver anexo 6), se
obtienen los puntos de corte donde se concluye, que las preguntas 1, 4 y 6 se
evalúan de muy adecuados, el resto de las mismas son evaluados de bastante
adecuados.
A continuación se muestran los resultados de la valoración de las preguntas por
los expertos, de acuerdo con las categorías establecidas.
CUADRO Nº. 16
Valoración de las Preguntas por los Expertos.
Nº de
pregunta
Pregunta
Categoría
142
1
2
3
4
5
6
Valoración de las dimensiones planteadas en el
modelo.
Muy adecuada
Valoración de los métodos científicos utilizados en
Bastante adecuada
la elaboración del modelo.
Valoración de la eficacia del modelo en la
Bastante adecuada
compatibilidad la solución generada con el IDE
Eclipse.
Valoración de los módulos diseñados.
Muy adecuada
Valoración del grado de correspondencia entre el
modelo y el aplicativo gráfico.
Bastante
Adecuada
Valoración de la misión del aplicativo de desarrollo
de interfaces gráficas.
Muy adecuada
Fuente: Elaboración propia.
Elaboración: Héctor William Pilligua Robalino.
El total de expertos valoran así, de forma positiva, la propuesta tanto en
calidad, en la concepción en la concepción de los módulos para la generación
de la solución, la compatibilidad de la solución generada en el aplicativo con
el IDE eclipse, y concluyeron que se el aplicativo de generación de interfaces
gráficas para dispositivos BlackBerry, ayudaría a mejorar la complejidad del
desarrollo de las aplicaciones java para los dispositivos móviles BlackBerry.
La presente propuesta tiene fundamentos considerables ya que optimizara el
desarrollo de las aplicaciones para dispositivos móviles BlackBerry,
mejorando el tiempo de desarrollo y disminuyendo la carga cognitiva del
desarrollador para optimizar los aplicativos realizados.
143
CAPÍTULO IV
MARCO ADMINISTRATIVO
Cronograma
La dinámica actual requiere del desarrollo de procesos de calidad. Este proceso
requiere de la ejecución en tiempo de proyectos lo que garantizará el desarrollo de
eficiencia y eficacia en cuanto a la administración de recursos económicos
financieros., en este contexto el autor de la presente investigación ha desarrollado
el siguiente cronograma.
Cronograma de Actividades en función del desarrollo del proyecto
144
Una vez establecido el cronograma se hace necesario establecer formas de
búsqueda de financiamiento, lo que garantizará el funcionamiento adecuado
del proyecto
Presupuesto
La búsqueda de la forma de financiar un proyecto puede dar como resultado una
variedad bastante importante de opciones diferentes. El evaluador de proyectos
debe verse enfrentado, y de hecho así ocurre, con la búsqueda de la mejor
alternativa de financiamiento para el proyecto que está evaluando.
145
En el caso objeto de estudio y por las características de la actividad que se
desarrolla la fuente de financiamiento que se utilizará es con capital propio, pues
en este caso solo se requiere del personal calificado y los medios necesarios para
el desarrollo de software. Esta es una tendencia en el desarrollo de nuevas
tecnologías, que a la vez favorecen la reducción de costos y la rapidez con que se
desarrollan diversas actividades en las organizaciones. Por consiguiente se
desglosan a continuación las partidas de Activos y el Capital total que se requiere
para dar inicio al negocio
CUADRO 17
Proyección Inicio del Negocio
Activo Circulante
Efectivo
$ 700.00
Activos Fijos
CPU
$ 300.00
Teclado
15.00
Ratón
15.00
Monitor
250.00
Modem
30.00
Cable USB Ca 101
15.00
Equipo Smartphone
350.00
Activos Intangibles
Consumo internet
$ 200.00
Dominio
180.00
Capital
$ 2020.00
Fuente: Héctor William Pilligua Robalino
Elaborado: Héctor William Pilligua Robalino
146
Una vez determinados los importes a utilizar referentes a los Activos y el Capital
Total, se realizó una proyección del Estado de Resultado para el primer año, el
cual incluye la de diferencia de Ingresos con Gastos
CUADRO No. 18
Cuadro de Ingresos
Ingresos
Financiamiento Propio
$ 2,500
Fuente: Héctor William Pilligua Robalino
Elaborado Por: Héctor William Pilligua Robalino
CUADRO No. 19
Cuadro de Egresos
Egresos
Hardware:
CPU
Teclado
Ratón
Monitor
Equipo BlackBerry
Cable USB Ca 101
$ 250
$ 15
$ 15
$ 250
$ 250
$ 15
Sistema Operativo Win7
$ 700
Software
Sistema Operativo Linux
Licencia BlackBerry
Consumo internet
Licencia
Windows
0.0
$0
(opcional)
$ 30
$ 140
Varios
Documentación
Cursos de Capacitación
Móvil
Tiempo empleado
Total
$ 85
$ 700
$ 50
$
2,500
Fuente: Héctor William Pilligua Robalino
Elaborado Por: Héctor William Pilligua Robalino
147
Ingresos:
Estos ingresos serán utilizados para la adquisición de todo lo mencionado
en el listado de egresos para proceder con el desarrollo del tema de tesis, estas
adquisiciones no se quedaran en la institución educativa, solo se entregara a la
institución el proyecto desarrollado
Egresos:
Constituye todos los materiales e insumos utilizados en el desarrollo del
tema de tesis
CAPÍTULO V
CONCLUSIONES Y RECOMENDACIONES
CONCLUSIONES:

¿Se Reducirá el Tiempo de Desarrollo de las Aplicaciones usando una
interfaz gráfica?
Se pudo concluir que los usuarios finales han optado por tener dispositivos
Smartphone, por ello se ve imperativo el desarrollo de aplicaciones para la
nueva gama de telefonía móvil, debido a que el desarrollo de aplicaciones para
los dispositivos móviles es un área que se ha estado incursionando en los
últimos años, la información necesaria no se encuentra en su totalidad
148
disponible, por ello el desarrollo se hace extenso, sin embargo, los
desarrolladores optan por herramientas que facilitan el desarrollo de estas
aplicaciones.
El objetivo de la investigación es reducir el tiempo de desarrollo de las
aplicaciones para dispositivos móviles BlackBerry, al facilitar una interface
gráfica donde se pueden ubicar los elementos en la pantalla de manera que se
ajustar de mejor manera a los requerimientos solicitados por el contratante
hacia el desarrollador, al no tener que dedicar tiempo en el desarrollo gráfico,
el tiempo de desarrollo es optimizado.

¿Será más factible realizar una interfaz gráfica desarrollando con
líneas de código?
Con los resultados obtenidos en la encuentra se puede constatar que los
desarrolladores prefieren una interfaz que le permitan ver el producto final en
el momento de desarrollo.
Se pudo constatar que en el desarrollo de interfaces de usuarios utilizando un
aplicativo que facilite la ubicación de los elementos y visualizando el
resultado final de la aplicación, se pudo constatar que resulta más beneficio
para el desarrollador de aplicaciones contar con una herramienta que le
permita visualizar el resultado final en el aspecto gráfico y no introducir líneas
de código para tener una interfaces de usuario, en ocasiones las interfaces
149
graficas contiene
varios elementos y colocar esos objetos en la pantalla
mediante líneas de código es más complejo que seleccionar el elemento y
ubicarlo donde se adapte a lo solicitado por el cliente.

¿Se entenderá de mejor manera el desarrollo de una aplicación móvil
usando una interfaz amigable?
Con los resultados obtenidos se pudo apreciar que los desarrolladores al crear
aplicaciones, con un entorno gráfico se facilitan la compresión de los
elementos utilizados.
Se pudo constatar que el desarrollo de una aplicación con una herramienta que
genera un código fuente es de ayuda para los desarrolladores ya que el ver la
ubicación de los diferentes elementos, ´puede revisar el código y de esta
manera poder implementarlo en un IDE que no posea la facilidad de una
interfaz gráfica.

¿Sale más factible seleccionar un curso o utilizar una herramienta
para auto aprendizaje?
Se ha comprobado que a pesar de contar con una herramienta que facilite el
desarrollo de las interfaces gráficas, es necesario instruirse en cursos del
lenguaje que se está utilizando, para el caso de la tesis realizada , la tecnología
J2ME, estos cursos pueden ser vía online o presenciales.
150
RECOMENDACIONES:

Para la optimización de los tiempos de desarrollo de aplicaciones para
dispositivos móviles BlackBerry usando interfaces graficas se recomienda
que el desarrollador tenga una clara idea de la funcionalidad de los
diferentes controles que se pueden utilizar en la interface de usuario, se
puede obtener esta información con la ayuda de internet.

En el desarrollo de las interfaces gráficas, al utilizar una herramienta que
facilita la ubicación de los mismos se recomienda que se manejen
estándares de desarrollo, lo cual facilita considerablemente el desarrollo de
los sistemas,

El desarrollo para dispositivos móviles es una área de la programación que
cada vez va cogiendo más adeptos, pero la funcionalidad de las
aplicaciones para móviles no son las mismas que se realizan en los pc
estacionarios, por ello se recomienda tener conceptos básicos claros de la
tecnología J2ME y como se la aplica en los diferentes dispositivos,
teniendo en cuenta que las aplicaciones java RIM cuentan con sus propias
librerías es necesario tener conocimiento de las limitaciones del equipo.

Se recomienda cursos de J2ME para conocer los diferentes eventos que se
pueden manejar para los diferentes controles que se encuentra en una
151
interfaz de usuario de un dispositivo móvil BlackBerry, estos cursos
pueden ser en lugares certificados para estos cursos o puede ser vía
online, adicional a esto se recomienda tener clara las diferentes ventajas
que se ofrece en cada versión de Sistema Operativo que hay en los
dispositivos móviles, para de esta manera tener claro las limitaciones del
aplicativo a los que el desarrollador se ve al momento de implementar los
aplicativos realizados.
BIBLIOGRAFÍA
 Alonso Álvarez García; José Ángel Morales Grela. (2002). J2ME (Guías
Practicas)

Miguel Ángel Lozano Ortega. (2005). Programación de Dispositivos
Móviles con J2ME

Agustín Froufe Quintas; Patricia Jorge Cardenes. ( 2004). J2ME Java 2
Micro Edition: Manual de Usuario y Tutorial

Research In Motion Limited (2011). BlackBerry Java SDK.

Horacio Daniel Vallejo. (2006). Funcionamientos del teléfono. [En línea].
Recuperado 02 de noviembre del 2012, de
http://www.gratisprogramas.org/descargar/telefonia-celular-8-libros-pdfesencial-estudiantes-de-electronicatecnicos/
152

José Manuel Huidobro. (2001). Manual de Telefonía: Telefonía Fija y
Móvil (4ª ED.).

Research In Motion. (2013). Herramientas de desarrollo BlackBerry[En
Línea] Recuperado 01 Febrero 2013 de
http://mx.blackberry.com/software/developer.html

Jeff Ferbuson, Brian Pattersson, Jason Beres (2012) La Biblia de C#.

Research In Motion. (2013). Guía de Desarrollo. [En Línea] Recuperado el
01 de febrero del 2013 de http://docs.blackberry.com/kokr/developers/deliverables/16725/Start_the_BBSmrtphnSmltr_and_open_a
_web_page_607475_11.jsp

José Antonio González Seco. (2007). El lenguaje de programación C#.

José Antonio González Seco( 2007) LibroCSharp [En Línea] Recuperado
de http://dis.um.es/~bmoros/privado/bibliografia/LibroCsharp.pdf

Nacho Cabanes (2013) C:Sharp[En Línea] Recuperado 06 de marzo del
2013 de http://chvere.blogspot.com/2011/11/manual-completo-de-c-sharpen-espanol.html
153

ANEXOS
Anexo # 1:FLUJO DE PROCESOS
154
Nº 2: Modelo de Procesos
Fuente: Héctor William Pilligua Robalino

Anexo # 2: ENCUESTA PARA SELECCIÓN DE EXPERTOS
Objetivo: Selección de expertos para validar criterios respecto a la propuesta realizadas por el
investigador.
Estimado especialista(a):
Usted ha sido seleccionado para colaborar con la investigación “Interfaces Gráficas para
Desarrollo de Aplicaciones Java en BlackBerry, Complejidad del Desarrollo y Propuesta de
Ambiente de Desarrollo Gráfico”.
En tal sentido se elabora esta encuesta para que la validación cualitativa de la propuesta del
prototipo elaborado en la presente investigación. Por ello le pedimos que lea con detenimiento la
información que se le solicita y responda con sinceridad todas las preguntas.
Muchas Gracias
Solicitamos responda las siguientes interrogantes.
I. Datos generales del encuestado:
1. Nombre: ___________________________________________________________
2. Centro al que pertenece: _______________________________________________
3. Años de experiencia en el desarrollo de
software.______________________________
155
4. Investigaciones realizadas vinculadas de alguna manera con la temática
tratada._______________________________________________________
5. Categoría Científica. ____________________
6. Grado científico. ____________________
II- Test de Autovaloración del consultado:
Evalúe su nivel de dominio acerca de la esfera sobre la cual se le consultó marcando con una cruz
sobre la siguiente escala (1: dominio mínimo; 10: dominio máximo)
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
1
2
3
4
5
6
7
8
9
10
Evalúe la influencia de las siguientes fuentes de argumentación en los criterios valorativos
aportados por usted:
Fuentes de argumentación
Grado de influencia de las fuentes de
argumentación
Alto
Medio
Bajo
Análisis teóricos realizados por usted.
Su propia experiencia.
Trabajos de autores nacionales.
Trabajos de autores extranjeros.
Su conocimiento del estado del problema en el
extranjero.
Su intuición.
Muchas gracias por su colaboración.
156
Anexo # 3: DETERMINACIÓN DEL COEFICIENTE K.
Tabla 1. COMPETENCIA DE LOS EXPERTOS.
Valores
del
coeficiente de
conocimiento (kc), del coeficiente de
argumentación (ka) y coeficiente de competencia (k) de los expertos.
Expertos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Coeficiente de
conocimiento (Kc)
0.70
0.80
0,80
0.60
0,80
0,80
0,80
0,70
0,90
O,80
0.60
O,80
0,80
0,80
090
0,70
Coeficiente de
argumentación
(Ka)
0.90
0.90
1,00
0.80
0,90
0,90
0,90
0,90
1,00
1,00
0.80
1,00
1.00
0,80
0,90
0,70
Coeficiente de
competencia
(K)
0,80
0.85
0,90
0.70
0,85
0,85
0,85
0,80
0,95
0,90
0.70
0,90
0,90
0,80
0,90
0,70
157
0,70
0,90
0.80
17
0,90
1,00
0,95
18
0.50
070
0.60
19
0,80
0,80
0.80
20
0.80
090
0,85
21
0,40
0,70
0,55
22
0,90
1,00
0,95
23
0.80
1,00
0.90
24
0,80
1,00
0,90
25
El código para la interpretación del coeficiente de competencia de cada experto es
el siguiente:
 Si 0.8< k < 1.0, el coeficiente de competencia es alto.
 Si 0.5< k < 0.8, el coeficiente de competencia es medio.
 Si k < 0.5, el coeficiente de competencia es bajo.
Nota: De acuerdo al coeficiente de competencia de cada experto, no se
consideraron para la valoración los expertos 4, 11, 16, 19 y 22.

Anexo # 4: ENCUESTA A LOS EXPERTOS SELECCIONADOS.
Objetivo: Valorar cualitativamente el proyecto de Interfaces Gráficas para Desarrollo de
Aplicaciones Java en BlackBerry, Complejidad del Desarrollo y Propuesta de Ambiente de
Desarrollo Gráfico.
Estimado especialista(a):
Usted ha sido seleccionado para colaborar con la investigación “Interfaces Gráficas para
Desarrollo de Aplicaciones Java en BlackBerry, Complejidad del Desarrollo y Propuesta de
Ambiente de Desarrollo Gráfico”.
Por ello le pedimos que lea con detenimiento la información que se le solicita y responda con
sinceridad todas las preguntas.
Muchas Gracias
I. Cuestionario sobre la propuesta presentada
Para la evaluación de sus criterios acerca de la propuesta presentada (modelo), se indican a
continuación varias interrogantes, las cuales contemplan los aspectos que serán objeto de análisis:
Responda el cuestionario atendiendo a la siguiente escala:
5. Muy adecuada
1. Inadecuada
4. Bastante adecuada
3 Adecuada
2 Poco adecuada
Cuestionario
1. Valoración de las dimensiones planteadas en el modelo.
5
4
3
2
1
2. Valoración de los métodos científicos utilizados en la elaboración del modelo.
5
4
3
2
1
158
3. Valoración de la eficacia del modelo en la compatibilidad la solución
generada con el IDE Eclipse.
5
4
3
2
1
2
1
4. Valoración de los módulos diseñados.
5
4
3
5. Valoración del grado de correspondencia entre el modelo y el aplicativo
gráfico.
5
4
3
2
1
6. Valoración de la misión del aplicativo de desarrollo de interfaces gráficas.
5
4
3
2
1
Anexo #5 CRITERIOS DE LOS EXPERTOS CONSULTADOS. MATRIZ
DE FRECUENCIAS DE LA ENCUESTA
Tabla 2. TABLA DE FRECUENCIAS ABSOLUTAS.
Cuestionario
P-1
P-2
P-3
P-4
P-5
P-6
C1
Muy
adecuada
13
2
1
16
2
14
C2
C3
C4
C5
Bastante
Poco
No
TOTAL
adecuada Adecuada adecuada adecuada
7
20
9
3
5
20
14
3
20
2
5
20
11
1
2
4
20
2
20
2
1
1
Tabla 3. TABLA DE FRECUENCIAS ABSOLUTAS ACUMULADAS
P-1
P-2
P-3
P-4
P-5
P-6
C-1
13
2
1
16
2
14
C-2
18
9
17
14
20
9
C-3
20
15
11
18
12
9
C-4
20
15
15
20
10
20
C-5
20
20
20
20
20
20
Tabla 4.TABLA DE FRECUENCIAS RELATIVAS ACUMULADA
159
C-1
C-2
0,65
0,10
0,05
0,80
0,10
0,70
P-1
P-2
P-3
P-4
P-5
P-6
C-3
0.90
0,45
0,85
0,70
1.00
0,45
C-4
1,00
0,75
0,55
0,90
0,60
0,45
C-5
1.00
1.00
1.00
1.00
1.00
1.00
1,00
0,75
0,75
1,00
0,50
1,00
Anexo #6: IMAGEN DE CADA UNO DE LOS VALORES DE LAS
CELDAS DE LA TABLA DE FRECUENCIAS ACUMULATIVAS
RELATIVAS, POR LA INVERSA DE LA CURVA NORMAL
Tabla 5. IMAGEN DE CADA UNO DE LOS VALORES.
P-1
P-2
P-3
P-4
P-5
P-6
∑
Puntos
de
corte
C-1
0,13
-1,64
-1,64
0,67
-1,64
0,67
C-2
3,48
0,00
0,39
1,64
0,13
1,28
C-3
3,48
0,25
0,52
3,48
0,25
3,48
C-4
3,48
0,67
0,67
3,48
0,52
3,48
-3,46
6,92
11,47
12,31
-0,58
1,15
1,91
2,05
Suma Promedio
2,64
10,57
-0,18
-0,72
-0,02
-0,06
2,32
9,28
-0,19
-0,74
2,23
8,92
N-P
-1,73
1,09
0,92
-1,41
1,09
-1,32
27,24
N= 27.24/6x5= 0,9080
Los puntos de corte sirven para determinar la categoría o grado de adecuación de
cada pregunta, según la opinión de los expertos consultados. Con ello se opera del
modo siguiente:
Muy adecuada
-0,58
Bastante
adecuada
1,15
Adecuada
Poco adecuada
1,91
2,05
No adecuada
160
Nota: De acuerdo a los puntos de corte se valora positivamente el proyecto de
Interfaces Gráficas para Desarrollo de Aplicaciones Java en BlackBerry, Complejidad del
Desarrollo y Propuesta de Ambiente de Desarrollo Gráfico .
Anexo # 7:
Objetivo: Recolectar información de las personas que se dedican al desarrollo de
aplicaciones, que utilicen los diferentes tipos de lenguajes de programación y comprobar
el nivel de conocimiento de programación orientada a objetos que poseen.
Instructivo: Para responder adecuadamente sírvase escribir el número de la alternativa
seleccionada en el cuadrado que se encuentra a la derecha.
1) Condición del informante(Empresa donde desarrolla aplicaciones).
1. Consultor informático
2. Desarrollador en entidad financiera
3. Estudiante de Ingeniería en sistemas
4. Desarrollador independiente
2) ¿Utiliza Dispositivos BlackBerry?
1. Si
2. No
3)
¿nivel de adaptación a nuevas herramientas de desarrollo?
1. Complicado
2. Con tiempo considerable
3. Adaptación rápida
4. No se complica la adaptación.
4) ¿Qué lenguaje de Programación utiliza más?
1. .Net
2. Java
3. Oracle-Pl-SQL, SQLSERVER
4. Aplicaciones Web
5. Cobol
5) ¿Ha desarrollado Aplicaciones con tecnología J2ME?
161
1.
2.
Si
No
6) ¿Conocimiento de Herramientas para desarrollo de aplicaciones para dispositivos móviles?
1. Muchas
2. Algunas
3. Pocas
4. ninguna
7)
¿Uso de IDE para desarrollo de aplicaciones?
1: Siempre
2: Algunas veces
3: DMuy Poco
4: nunca
8)
¿Desarrollo Frecuente de aplicaciones informáticas?
1. Empresarial
2. Oficina
3. Juegos
4. Varios
9)
¿Qué sistema Operativo Móvil más utiliza?
1. Android
2. IOS
3. RIM BlackBerry
4. Symbian
5. Windows Mobile
6. Otros
10)
¿Herramienta de Programación que más utiliza para el desarrollo de aplicaciones
móviles
1: Eclipse
2: NetBeans
3: .NEY
4: Programación web
5. Otros
162
MANUAL TECNICO
1
Indice General
Introducción
5
Objetivo del Manual
5
Modelo de Desarrollo Espiral
6
Determinar Objetivos
7
Análisis del Riesgo
7
Desarrollar y verificar
7
Planificar
7
Angular
7
Radial
7
Principios básicos del Modelo Espiral
8
Diagramas UML
8
Diagramas de Casos de Usos
8
Definición de actores
8
Diagrama de Colaboración
12
Diagrama de Contexto
13
Diagrama de Eventos
13
Diagrama de Proceso
13
Diagrama de Secuencias
15
EL FRAMEWORK
18
ESTRUCTURA
28
Contenido del archivo org.eclipse.jdt.core.prefs
20
1
Contenido del archivo .classpath
20
Contenido del archivo .proyect
20
Contenido del archivo BlackBerry_App_Descriptor.xml
21
DATOS TÉCNICOS DEL APLICATIVO
22
Modelo Entidad Relación
23
Diccionario de Datos
23
CODIFICACIÓN DE COMPONENTES
23
Codificación AppConfig
165
2
Indice de Gráficos
GRAFICO 1 Gráfico de Programación Espiral
7
GRAFICO 2 Caso de Uso 1er Nivel: Creación de interfaz Grafica
10
GRAFICO 3 Caso de Uso 2do. Nivel: Generación de Solución
11
GRAFICO 4 Diagrama de Colaboración
12
GRAFICO 5 Diagrama de contexto nivel 0 – AGBB
13
GRAFICO 6 Diagrama de colaboración Nivel Superior
13
GRAFICO 7 Diagrama de Eventos
14
GRAFICO 8 Diagrama de Proceso
14
GRAFICO 9 Carpeta Plantilla
14
GRÁFICO 10 Contenido Plantillas
19
GRAFICO 11 Contenido de Carpeta Setting
19
GRAFICO 12 Icon App
21
3
Índice de Cuadros
CUADRO 1 Actor 1
9
CUADRO 2 Actor 2
9
CUADRO 3 Descripción de Casos de Uso 1
10
CUADRO 4 Definición de 2do Caso de Uso
11
CUADRO 5 Características Generales
22
4
CAPITULO 1
MANUAL TÉCNICO
INTRODUCCIÓN
La finalidad de este documento es explicar las distintas tecnologías involucradas en
el desarrollo de nuestra aplicación de escritorio. Las Herramientas utilizadas son C#
hecha con aplicaciones Windows.
Para el desarrollo del aplicativo fue necesario instalar visual estudio .net 2012 con el
framework 3.5 o superior.
El aplicativo fue desarrollado para sistemas operativos Windows vista o superior.
Paquete de software necesarios
Framework 3.5 o superior
Java jdk1.7.0
BlackBerry Java Plug-in 1.5.2
Sistema Operativo Windows vista o superior. Entre los diferentes lenguajes que se
encuentran en visual estudio .net se utilizara el lenguaje C# con generación de
archivos, se generara un archivo resultado que es un código java, para la compilación
del código generado se utilizara java versión 1.7.0.
Existen varios plug-in para desarrollo de aplicaciones en lenguaje java para
BlackBerry, pero que utilizaremos será el 1.5.2 el cual se encuentra con él la versión
5
de compilador 6 de java para BlackBerry.
OBJETIVO DEL MANUAL
Estos manuales tienen como principales objetivos brindar a los usuarios finales y una
concepción técnica del sistema AGBB (Ambiente Grafico para BlackBerry), en los
siguientes aspectos:
 Descripción del funcionamiento de los principales procesos llevado a cabo por
el usuario final.
 Descripción de las validaciones requeridas para el correcto uso de la
aplicación
 Descripción de los diferentes modelos utilizados.
MODELO DE DESARROLLO ESPIRAL
Fue desarrollado por Boehm en 1986, este es un modelo de proceso evolutivo.
Es un generador de modelo de proceso guiado por el riesgo que se emplea para
conducir sistemas intensivos de ingeniería de software concurrente y a la vez con
muchos usuarios.
Se caracteriza principalmente por:

Un enfoque cíclico para el crecimiento incremental del grado de definición e
implementación de un sistema, mientras que disminuye su grado de riesgo.

Un conjunto de puntos de fijación para asegurar el compromiso del usuario con
soluciones de sistema que sean factibles y mutuamente satisfactorias.
6
El proceso de cada vuelta es:
o
Determinar Objetivos: establecer las necesidades que envuelven el programa.
o
Análisis del Riesgo: Se estudian todos los riesgos potenciales y se seleccionan
una o varias alternativas propuestas para reducir o eliminar los riesgos.
o
Desarrollar y verificar: programar e ir probando el programa para ir
disminuyendo los errores.
o
Planificar: Se planifican los siguientes pasos para volver al inicio de la
espiral, mantiene dos dimensiones:
Angular.- avance del Software dentro de un ciclo.
Radial.- aumento del coste del Proyecto, ya que con cada nueva
interacción se pasa más tiempo desarrollando.
Al ser un modelo de Ciclo de Vida orientado al riesgo se dice que uno de los aspectos
fundamentales de su éxito radica en que el equipo que lo aplique sea capaz de
detectar y catalogar correctamente dicho riesgo.
Este sistema es muy utilizado en proyectos largos, que necesitan constantes cambios.
GRAFICO 1
Gráfico de Programación Espiral
7
Principios básicos del Modelo Espiral

Decidir qué problema se quiere resolver antes de ir a resolverlo.

Examinar tus múltiples alternativas de acción y elegir una de las más
convenientes.

Evaluar qué tienes hecho y qué tienes que haber aprendido después de hacer
algo.

Conocer los niveles de riesgo, que tendrás que tolerar.
Diagramas UML
Con el objeto de manejar una mejor organización y tener un soporte teórico
del sistema he considerado necesario incluir diagramas que pertenecen al lenguaje de
modelado visual (UML Lenguaje Unificado de Modelado).
Diagramas de Casos de Usos
Sirve como una técnica para la captura de requisitos potenciales de un nuevo sistema o
actualización de software. Cada caso de uso proporciona uno o más escenarios que indican
cómo debería interactuar el sistema con el usuario o con otro sistema para conseguir un
objetivo específico.
Definición de actores
Los actores son los diferentes participantes que se encuentran en el uso del sistema,
dependiendo del sistema desarrollado, los roles de estos actores pueden variar,
8
CUADRO 1
Actor 1
ACT-01
Desarrollador de Aplicaciones
Descripción
Este actor es el encargado de
desarrollar
los
diferentes
requerimientos solicitados por los
usuarios propietarios.
Caso de Uso
Desarrollo de aplicación en AGBB
Propósito
Desarrollo de la aplicación para el
dispositivo móvil BlackBerry.
CUADRO 2
Actor 2
ACT-02
Descripción
Usuario Propietario
Este actor es el propietario del
dispositivo móvil donde se estará
ejecutando el aplicativo resultado
desarrollado
por
el
usuario
desarrollador de aplicaciones, este
usuario en la mayoría de los casos
es el propietario del dispositivo.
Caso de Uso
Uso de aplicación en AGBB
Propósito
Dar uso al aplicativo desarrollado
en el AGBB.
9
GRAFICO 2
Caso de Uso 1er Nivel: Creación de interfaz Grafica
Diseño de Interfase grafica
CUADRO 3
Descripción de Casos de Uso 1
Caso de uso
Creación de Interfaz grafica
Actores
Usuario, Aplicativo, sistema de archivos
Tipo
Básico
Descripción
El usuario desarrolla la interfaz gráfica , una vez desarrollado
generara el código, modificara lo que se necesite y se compilara,
una vez compilado se desarrolla la solución para ser utilizada en
eclipse
10
GRAFICO 3
Caso de Uso 2do. Nivel: Generación de Solución
Proceso de Generacion de solucion en Eclipse
CUADRO 4
Definición de 2do Caso de Uso
Caso de uso
Generación de solución hacia móvil
Actores
Usuario, Solución generada, aplicativo eclipse , dispositivo móvil
Tipo
Básico
Descripción
Este caso el desarrollador utiliza la solución generada en el
aplicativo inicial, esto es importado en eclipse y se genera el
archivo final para ser utilizado en el dispositivo BlackBerry.
11
GRAFICO 4
Diagrama de Colaboración
12
Diagrama de Contexto
GRAFICO 5
Diagrama de contexto nivel 0 - AGBB
GRAFICO 6
Diagrama de colaboración Nivel Superior
13
GRAFICO 7
Diagrama de Eventos
Usuario
Aplicativo AGBB
Aplicativo en movil
Solucion Generada
Aplicativo Eclipse
Diagrama de Proceso
GRAFICO 8
Diagrama de Proceso
 Se genera el código con ayuda de la AGBB
 Se modifica el código y se compila
 Se genera el sistema de archivos a ser importado
 Se realiza la carga de la solución a eclipse
 Se genera la solución final al dispositivo.
14
Diagrama de secuencias
Con la elaboración del diagrama de secuencias se pretende mostrar los diversos
objetos y sus interacciones por medio de mensajes que se envían en el momento que
son considerados como importantes para ellos
15
16
Llena propiedades
17
EL FRAMEWORK
Nuestro proyecto se vio la necesidad de utilizar un Framework profesional, ya que el
desarrollo del proyecto se basa en un aplicativo de escritorio, este aplicativo está
utilizando lenguaje C#, el cual se encuentra entre las librerías del paquete indicado, se
manejara el uso de archivos y directorios.
ESTRUCTURA
La estructura del aplicativo se desarrollo de manera sencilla para el fácil
entendimiento del mismo, para ello se tiene un esquema de clase base y demás clases
derivadas.
Aclaramos que no solo creamos formularios, sino implementamos funcionalidades
para el desarrollo de los procesos necesarios para la generación de las soluciones a ser
importadas en el IDE Eclipse
En el aplicativo se gestionaran
Archivos
Formularios
Generación de código java
Edición de código java
Compilaciones
Creación de soluciones
Se
necesita
tener
un
aplicativo
directorio
que
es
la
siguiente
C:\FuentesDesarrolladosTHWPR
Se necesita tener la carpeta Plantillas
18
GRAFICO 9
Carpeta Plantilla
La carpeta Plantillas se necesita tener la organización de los siguientes archivos:
GRÁFICO 10
Contenido Plantillas
GRAFICO 11
Contenido de Carpeta Setting
19
Contenido del archivo org.eclipse.jdt.core.prefs
#Sat Dec 01 22:45:47 COT 2012
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.4
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=ignore
org.eclipse.jdt.core.compiler.problem.enumIdentifier=ignore
org.eclipse.jdt.core.compiler.source=1.3
Este archivo no se debe modificar, de modificarse la compilación se generara de
manera errónea
Contenido del archivo .classpath
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="res"/>
<classpathentry kind="con" path =
"org.eclipse.jdt.launching.JRE_CONTAINER/net.rim.ejde.BlackBerryVMInstallType/BlackBerry JRE
7.1.0"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Contenido del archivo .proyect
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>[[NOMBREAPP]]</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>net.rim.ejde.internal.builder.BlackBerryPreprocessBuilder</name>
<arguments>
20
</arguments>
</buildCommand>
<buildCommand>
<name>net.rim.ejde.internal.builder.BlackBerryResourcesBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>net.rim.ejde.BlackBerryPreProcessNature</nature>
<nature>net.rim.ejde.BlackBerryProjectCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
Contenido del archivo BlackBerry_App_Descriptor.xml
<!-- This file has been generated by the BlackBerry Plugin for Eclipse v3.7.100. -->
<Properties ModelVersion="1.1.2">
<General Title="" Version="1.0.0" Vendor="BlackBerry Developer" Description=""/>
<Application Type="BlackBerry Application"
MainMIDletName=""
MainArgs=""
HomeScreenPosition="0"
StartupTier="7"
IsSystemModule="false"
IsAutostartup="false"/>
<Resources hasTitleResource="false"
TitleResourceBundleName=""
TitleResourceBundleRelativePath=""
TitleResourceBundleClassName=""
TitleResourceBundleKey=""
DescriptionId="">
<Icons>
<Icon CanonicalFileName="res/img/[[ICONOAPP]]"
IsFocus="false"/>
</Icons>
</Resources>
<KeywordResources KeywordResourceBundleName=""
KeywordResourceBundleRelativePath=""
KeywordResourceBundleClassName=""
KeywordResourceBundleKey=""/>
<Compile OutputCompilerMessages="false"
ConvertImages="true"
CreateWarningForNoExportedRoutine="true"
CompressResources="false"
AliasList="">
<PreprocessorDefines/>
</Compile>
<Packaging PreBuildStep=""
PostBuildStep=""
CleanStep=""
21
OutputFileName="[[NOMBREAPP]]"
OutputFolder="deliverables"
GenerateALXFile="true">
<AlxFiles/>
</Packaging>
<HiddenProperties>
<ClassProtection/>
<PackageProtection/>
</HiddenProperties>
<AlternateEntryPoints/>
</Properties>
GRAFICO 12
Icon App
DATOS TÉCNICOS DEL APLICATIVO
Plataforma: Windows Vista o Superior.
CUADRO 5
Características Generales
Espacio en Disco
15.1 MB
Banda Ancho
No Aplica
Dominios Compartidos
No Aplica
Constructor de Sitios
No aplica
Soporte 24x7
No Aplica
Backups Programados
No Aplica
Mysql Bases
No Aplica
22
Cuentas FTP
No Aplica
Php5
No Aplica
Streaming Audio/Video
No Aplica
Cuentas Pop3
No Aplica
WebMail
No Aplica
Administración Cpanel
No Aplica
phpMyAdmin
No Aplica
Logs de Errores
No Aplica
Ip Dedicada
No Aplica
Máximo de Conexiones
No Aplica
Simultaneas a base de datos
Modelo Entidad Relación
No Aplica
Diccionario de Datos
No Aplica
CODIFICACIÓN DE COMPONENTES
Objeto Base.
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
23
using System.Windows.Forms;
namespace TesisEjemplo1
{
class ObjetoBase : Panel
{
string ls_nombreControl;
string ls_tipo = "";
int ln_posX = 0;
int ln_posY = 0;
int ln_ancho = 0;
int ln_alto = 0;
bool lb_movible = false;
string ls_contenido = "";
bool lb_poseeFuncionClick = false;
string ls_funcionClick = "";
public bool lb_poseeEstilo = false;
string textoEstilo = "";
public bool lb_poseeOtraFamiliaTexto = false;
string texto_nombreFamilia = "";
public bool lb_otrotamanioTexto = false;
string te4xto_tamanioTexto = "";
#region "modifica las propiedades basicas de cada objeto"
/// <summary>
/// controla el nombre del objeto
/// </summary>
public string _Nombrecontrol
{
set
{
ls_nombreControl = value;
}
get
{
return ls_nombreControl;
}
}
/// <summary>
/// controla el tipo del objeto
/// </summary>
public string _TipoControl
{
set{
ls_tipo = value;
}
get
{
return ls_tipo;
}
}
/// <summary>
/// controla la posicion horizontal del objeto
/// </summary>
public int _posX
{
24
set
{
this.ln_posX = this.Left;
}
get
{
return this.Left;
}
}
/// <summary>
/// controla la posicion vertiacl del objeto
/// </summary>
public int _posY
{
set
{
this.ln_posY = this.Top;
}
get
{
return this.Top;
}
}
/// <summary>
/// controla el ancho del objeto
/// </summary>
public int _ancho
{
set
{
ln_ancho = value;
}
get
{
return ln_ancho;
}
}
/// <summary>
/// controla el alto del objeto
/// </summary>
public int _alto
{
set
{
ln_alto = value;
}
get
{
return ln_alto;
}
}
public bool _AccionClick
{
set
{
this.lb_poseeFuncionClick = value;
25
}
get
{
return lb_poseeFuncionClick;
}
}
public string _FuncionClick
{
set
{
this.ls_funcionClick = value;
}
get
{
return this.ls_funcionClick;
}
}
public string _NombreFamiliaTexto
{
set
{
this.lb_poseeOtraFamiliaTexto = true;
this.texto_nombreFamilia = value;
}
get
{
return this.texto_nombreFamilia;
}
}
public string _NombreEstiloTexto
{
set
{
this.lb_poseeEstilo = true;
this.textoEstilo = value;
}
get
{
return this.textoEstilo;
}
}
public string _TamanioTexto
{
set
{
this.lb_otrotamanioTexto = true;
this.te4xto_tamanioTexto = value;
}
get
{
return te4xto_tamanioTexto;
}
}
26
#endregion
private void InitializeComponent()
{
this.SuspendLayout();
//
// ObjetoBase
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
Codificacion Panel AutoCompletar
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelAutoCompletar: ObjetoBase
{
public bool poseeColorfondo = false;
Color coloFondo;
public bool poseeColorTextop = false;
Color colorEtiqueta;
public PanelAutoCompletar(string texto)
{
_TipoControl = "TEXTOAUTOCOMPLETAR_";
_alto = 20;
seteaFormato();
}
public PanelAutoCompletar() {
_TipoControl = "TEXTOAUTOCOMPLETAR_";
_alto = 20;
seteaFormato();
}
public PanelAutoCompletar(bool conColor)
{
this.BackColor = Color.White;
_TipoControl = "TEXTOAUTOCOMPLETAR_";
27
_alto = 20;
seteaFormato();
}
public void seteaFormato()
{
this.BackColor = Color.White;
_ancho = 100;
_alto = 20;
this.Width = _ancho;
this.Height = _alto;
this.Cursor = Cursors.SizeAll;
}
public Color ColorFondo
{
set
{
this.poseeColorfondo = true;
this.coloFondo = value;
}
get
{
return coloFondo;
}
}
public Color ColorEtiqueta
{
set
{
this.poseeColorTextop = true;
this.colorEtiqueta = value;
}
get
{
return this.colorEtiqueta;
}
}
public void cambiarColorFondo(Color color)
{
this.BackColor = color;
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelAutoCompletar
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
28
Codificacion PanelBoton
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelBoton : ObjetoBase
{
string ls_TextoBoton = "";
Label Etiqueta = new Label();
public string _Texto
{
set
{
this.ls_TextoBoton = value;
}
get
{
return ls_TextoBoton;
}
}
public PanelBoton()
{
_TipoControl = "BOTON";
ColocaEtiqueta();
}
public PanelBoton(bool conColor)
{
this.BackColor = Color.Gray;
_TipoControl = "BOTON";
ColocaEtiqueta();
}
public PanelBoton(string texto)
{
this._TipoControl = "BOTON";
_Texto = texto;
ColocaEtiqueta();
}
public void llenaFuncionClick(string contenidoFuncion)
{
_AccionClick = true;
_FuncionClick = contenidoFuncion;
}
public void ColocaEtiqueta()
{
Etiqueta.Text = "Etiqueta";
29
Etiqueta.ForeColor = Color.White;
Etiqueta.BackColor = Color.Gray;
Etiqueta.Width = 70;
Etiqueta.Left = 10;
Etiqueta.TextAlign = ContentAlignment.MiddleCenter;
Etiqueta.Cursor = Cursors.Default;
this.Cursor = Cursors.SizeAll;
this.Controls.Add(Etiqueta);
this._ancho = 90;
this._alto = 20;
this.Width = 90;
this.Height = 20;
}
public string TextoEtiqueta
{
set
{
this.Etiqueta.Text = value;
}
get
{
return this.Etiqueta.Text;
}
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelBoton
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
public void cambiaEtiquetaVisible(string textoMuestra)
{
try
{
this.Etiqueta.Text = textoMuestra;
}
catch (Exception ex)
{
this.Etiqueta.Text = ex.Message;
}
}
}
}
Codificacion PanelBrowserField
using System;
30
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelBrowserField: ObjetoBase
{
bool lb_noDefecto = false;
string ls_cadenaUrl = "http://www.google.com";
public string UrlVisitaInicial
{
set
{
this.lb_noDefecto = true;
ls_cadenaUrl = value;
}
get
{
return ls_cadenaUrl;
}
}
public PanelBrowserField()
{
_TipoControl = "BROWSER";
this.BackColor = Color.WhiteSmoke;
this._alto = 100;
this._ancho = 100;
this.Width = this._ancho;
this.Height = this._alto;
this.Cursor = Cursors.SizeAll;
this.BackgroundImageLayout = ImageLayout.Stretch;
this.BackgroundImage = global::TesisEjemplo1.Properties.Resources.MensajeControslWeb;
}
}
}
Codificacion PanelCajaTexto
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelCajatexto : ObjetoBase
{
31
public bool poseeColorfondo = false;
Color coloFondo;
public bool poseeColorTextop = false;
Color colorEtiqueta;
public PanelCajatexto(string texto)
{
_TipoControl = "CAJATEXTO";
seteaFormato();
}
public PanelCajatexto() {
_TipoControl = "CAJATEXTO";
seteaFormato();
}
public PanelCajatexto(bool conColor)
{
this.BackColor = Color.White;
_TipoControl = "CAJATEXTO";
seteaFormato();
}
public void seteaFormato()
{
this.BackColor = Color.White;
_ancho = 100;
_alto = 20;
this.Width = _ancho;
this.Height = _alto;
this.Cursor = Cursors.SizeAll;
}
public Color ColorFondo
{
set
{
this.poseeColorfondo = true;
this.coloFondo = value;
}
get
{
return coloFondo;
}
}
public Color ColorEtiqueta
{
set
{
this.poseeColorTextop = true;
this.colorEtiqueta = value;
}
get
{
return this.colorEtiqueta;
}
}
32
public void cambiarColorFondo(Color color)
{
this.BackColor = color;
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelCajatexto
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
Codificacion PanelCampoFecha
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelCampoFecha:ObjetoBase
{
public bool poseeColorfondo = false;
Color coloFondo;
public bool poseeColorTextop = false;
Color colorEtiqueta;
public PanelCampoFecha(string texto)
{
_TipoControl = "CAMPOFECHA";
seteaFormato();
}
public PanelCampoFecha() {
_TipoControl = "CAMPOFECHA";
seteaFormato();
}
public PanelCampoFecha(bool conColor)
{
this.BackColor = Color.White;
_TipoControl = "CAMPOFECHA";
seteaFormato();
}
33
public void seteaFormato()
{
this.BackColor = Color.White;
_ancho = 100;
_alto = 20;
this.Width = _ancho;
this.Height = _alto;
this.Cursor = Cursors.SizeAll;
this.BackgroundImageLayout = ImageLayout.Stretch;
this.BackgroundImage = global::TesisEjemplo1.Properties.Resources.CampoFecha;
}
public Color ColorFondo
{
set
{
this.poseeColorfondo = true;
this.coloFondo = value;
}
get
{
return coloFondo;
}
}
public Color ColorEtiqueta
{
set
{
this.poseeColorTextop = true;
this.colorEtiqueta = value;
}
get
{
return this.colorEtiqueta;
}
}
public void cambiarColorFondo(Color color)
{
this.BackColor = color;
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelCampoFecha
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
34
Codificacion Panel Campo Imagen
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelCampoImagen: ObjetoBase
{
string nombreImagen = "";
string rutaImagenTmp = "";
PictureBox imagenMuestra = new PictureBox();
public PanelCampoImagen()
{
_TipoControl = "IMAGEN";
this.BackColor = Color.WhiteSmoke;
this._alto = 100;
this._ancho = 100;
this.Width = this._ancho;
this.Height = this._alto;
this.Cursor = Cursors.SizeAll;
/*imagenMuestra.Width = 90;
imagenMuestra.Height = 90;
imagenMuestra.Left = 5;
imagenMuestra.Top=5;
imagenMuestra.Cursor = Cursors.Default;
imagenMuestra.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.Controls.Add(imagenMuestra);*/
}
public string rutaImagentemporal
{
set
{
rutaImagenTmp = value;
this.imagenMuestra.ImageLocation = rutaImagenTmp;
}
get
{
return rutaImagenTmp;
}
}
public string NombreImagenVer
{
set
{
nombreImagen = value;
}
get
{
return nombreImagen;
}
35
}
public int altoImagen
{
set;
get;
}
public int anchoImagen
{
set;
get;
}
public bool redimencionaImagen(int alto, int ancho)
{
if(alto - 6 >1 && ancho - 6 > 1)
{
this.Width = ancho;
this.Height = alto;
this.imagenMuestra.Width = ancho-6;
this.imagenMuestra.Height = alto-6;
_ancho = ancho;
_alto = alto;
return true;
}
else
{
return false;
}
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelCampoImagen
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
Codificacion PanelCampoOpcion
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
36
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelCampoOpcion : ObjetoBase
{
private Microsoft.VisualBasic.PowerPacks.ShapeContainer shapeContainer1 = new
Microsoft.VisualBasic.PowerPacks.ShapeContainer();
private Microsoft.VisualBasic.PowerPacks.RectangleShape rectangeShape1 = new
Microsoft.VisualBasic.PowerPacks.RectangleShape();
string ls_textoEtiqueta = "";
Label lblEtiqueta = new Label();
string nombreGrupoOpcion = "Grupo1";
public string _Texto
{
set
{
this.ls_textoEtiqueta = value;
}
get
{
return this.ls_textoEtiqueta;
}
}
public bool poseeColorfondo = false;
Color coloFondo;
public bool poseeColorTextop = false;
Color colorEtiqueta;
public PanelCampoOpcion(string contenido)
{
_TipoControl = "OPCION";
seteaFormato(contenido);
}
public PanelCampoOpcion()
{
_TipoControl = "OPCION";
seteaFormato("Etiqueta");
}
public PanelCampoOpcion(bool conColor)
{
this.BackColor = Color.White;
_TipoControl = "OPCION";
seteaFormato("Etiqueta");
}
public void llenaFuncionClick(string contenidoFuncion)
{
}
public Color ColorFondo
{
set
{
this.poseeColorfondo = true;
this.coloFondo = value;
37
}
get
{
return coloFondo;
}
}
public Color ColorEtiqueta
{
set
{
this.poseeColorTextop = true;
this.colorEtiqueta = value;
}
get
{
return this.colorEtiqueta;
}
}
public void seteaFormato(string contenido)
{
ColocaImagen();
this.lblEtiqueta.Text = contenido;
lblEtiqueta.BackColor = Color.Transparent;
lblEtiqueta.Cursor = Cursors.Default;
lblEtiqueta.Left = 13;
this.Controls.Add(lblEtiqueta);
_Texto = contenido;
this.Cursor = Cursors.SizeAll;
this.BackColor = Color.Transparent;
this._ancho = 100;
this._alto = 20;
this.Width = _ancho;
this.Height = _alto;
lblEtiqueta.Width = 70;
}
public void cambiaEtiquetaVisible(string textoMuestra)
{
try
{
this.lblEtiqueta.Text = textoMuestra;
}
catch (Exception ex)
{
this.lblEtiqueta.Text = ex.Message;
}
}
public void cambiarColorEtiqueta(Color color)
{
this.lblEtiqueta.ForeColor = color;
}
public void cambiarColorFondo(Color color)
{
this.lblEtiqueta.BackColor = color;
this.BackColor = color;
38
}
public void cambiaFamiliaTexto(string nomrbreFamilia)
{
try
{
//this.lblEtiqueta.Font = new System.Drawing.Font(nomrbreFamilia, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblEtiqueta.Font = new System.Drawing.Font(nomrbreFamilia, 8.25F,
this.lblEtiqueta.Font.Style, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
catch (Exception ex)
{
}
}
public void cambiarEstiloTexto(string nombreEstilo)
{
try
{
switch (nombreEstilo)
{
case "ANTIALIAS_LOW_RES":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ANTIALIAS_NONE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ANTIALIAS_STANDARD":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ANTIALIAS_SUBPIXEL":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "APPLICATION":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ARABIC_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ARMENIAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "BENGALI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "BOLD":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "BROKEN_LINE_UNDERLINED":
39
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "CJK_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "CURSIVE_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "CYRILLIC_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "DEVANAGARI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "DOTTED_UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ETHIOPIC_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "EXTRA_BOLD":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "FANTASY_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GEORGIAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GREEK_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GUID_FONT_CHANGED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GUJARATI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GURMUKHI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "HANGUL_SCRIPT":
40
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "HEBREW_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "HIRAGANA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ITALIC":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "KANNADA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "KATAKANA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "KHMER_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "LAO_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "LATIN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "MALAYALAM_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "MONGOLIAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "MYANMAR_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ORIYA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "PLAIN":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SANS_SERIF_STYLE":
41
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SERIF_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SERIF_STYLE_MASK":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SINHALA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "STRIKE_THROUGH":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Strikeout, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "TAMIL_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "TELUGU_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "THAI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "TIBETAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "UNSPECIFIED_SERIF_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "WAVY_UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
}
}
catch (Exception ex)
{
}
}
public void modificaTamanioTexto(string tamanio)
{
try
42
{
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name,
float.Parse(tamanio), this.lblEtiqueta.Font.Style, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
catch (Exception ex)
{
}
}
public string GrupoOpcion{
set
{
this.nombreGrupoOpcion = value;
}
get
{
return this.nombreGrupoOpcion;
}
}
public void ColocaImagen()
{
PictureBox pbx = new PictureBox();
pbx.SizeMode = PictureBoxSizeMode.StretchImage;
pbx.Image = global::TesisEjemplo1.Properties.Resources.Option;
pbx.Width = 15;
pbx.Height = 15;
pbx.Top = 0;
pbx.Left = 0;
this.Controls.Add(pbx);
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelCampoOpcion
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
Codificacion PanelCampoMapa
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
43
{
class PanelCamposMapa : ObjetoBase
{
public PanelCamposMapa()
{
_TipoControl = "MAPA";
this.BackColor = Color.WhiteSmoke;
this._alto = 100;
this._ancho = 100;
this.Width = this._ancho;
this.Height = this._alto;
this.Cursor = Cursors.SizeAll;
this.BackgroundImageLayout = ImageLayout.Stretch;
this.BackgroundImage = global::TesisEjemplo1.Properties.Resources.MensajeControslMapa;
}
}
}
Codificacion PanelCheckBox
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelCheckBox: ObjetoBase
{
private Microsoft.VisualBasic.PowerPacks.ShapeContainer shapeContainer1= new
Microsoft.VisualBasic.PowerPacks.ShapeContainer();
private Microsoft.VisualBasic.PowerPacks.RectangleShape rectangeShape1 = new
Microsoft.VisualBasic.PowerPacks.RectangleShape();
string ls_textoEtiqueta = "";
Label lblEtiqueta = new Label();
public string _Texto
{
set
{
this.ls_textoEtiqueta = value;
}
get
{
return this.ls_textoEtiqueta;
}
}
public bool poseeColorfondo = false;
Color coloFondo;
public bool poseeColorTextop = false;
44
Color colorEtiqueta;
public PanelCheckBox(string contenido)
{
_TipoControl = "CHECKBOX";
seteaFormato(contenido);
}
public PanelCheckBox()
{
_TipoControl = "CHECKBOX";
seteaFormato("Etiqueta");
}
public PanelCheckBox(bool conColor)
{
this.BackColor = Color.White;
_TipoControl = "CHECKBOX";
seteaFormato("Etiqueta");
}
public void llenaFuncionClick(string contenidoFuncion){
}
public Color ColorFondo
{
set{
this.poseeColorfondo = true;
this.coloFondo = value;
}
get {
return coloFondo;
}
}
public Color ColorEtiqueta{
set
{
this.poseeColorTextop = true;
this.colorEtiqueta = value;
}
get
{
return this.colorEtiqueta;
}
}
public void seteaFormato(string contenido)
{
ColocaImagen();
this.lblEtiqueta.Text = contenido;
lblEtiqueta.BackColor = Color.Transparent;
lblEtiqueta.Cursor = Cursors.Default;
lblEtiqueta.Left = 13;
this.Controls.Add(lblEtiqueta);
_Texto = contenido;
this.Cursor = Cursors.SizeAll;
this.BackColor = Color.Transparent;
this._ancho = 100;
45
this._alto = 20;
this.Width = _ancho;
this.Height = _alto;
lblEtiqueta.Width = 70;
}
public void cambiaEtiquetaVisible(string textoMuestra)
{
try
{
this.lblEtiqueta.Text = textoMuestra;
}
catch (Exception ex) {
this.lblEtiqueta.Text = ex.Message;
}
}
public void cambiarColorEtiqueta(Color color)
{
this.lblEtiqueta.ForeColor = color;
}
public void cambiarColorFondo(Color color)
{
this.lblEtiqueta.BackColor = color;
this.BackColor = color;
}
public void cambiaFamiliaTexto(string nomrbreFamilia)
{
try
{
//this.lblEtiqueta.Font = new System.Drawing.Font(nomrbreFamilia, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblEtiqueta.Font = new System.Drawing.Font(nomrbreFamilia, 8.25F,
this.lblEtiqueta.Font.Style, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
catch (Exception ex)
{
}
}
public void cambiarEstiloTexto(string nombreEstilo)
{
try
{
switch (nombreEstilo)
{
case "ANTIALIAS_LOW_RES":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ANTIALIAS_NONE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ANTIALIAS_STANDARD":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ANTIALIAS_SUBPIXEL":
46
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "APPLICATION":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ARABIC_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ARMENIAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "BENGALI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "BOLD":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "BROKEN_LINE_UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "CJK_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "CURSIVE_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "CYRILLIC_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "DEVANAGARI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "DOTTED_UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ETHIOPIC_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "EXTRA_BOLD":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "FANTASY_STYLE":
47
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GEORGIAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GREEK_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GUID_FONT_CHANGED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GUJARATI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GURMUKHI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "HANGUL_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "HEBREW_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "HIRAGANA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ITALIC":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "KANNADA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "KATAKANA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "KHMER_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "LAO_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "LATIN_SCRIPT":
48
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "MALAYALAM_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "MONGOLIAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "MYANMAR_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ORIYA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "PLAIN":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SANS_SERIF_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SERIF_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SERIF_STYLE_MASK":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SINHALA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "STRIKE_THROUGH":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Strikeout, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "TAMIL_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "TELUGU_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "THAI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "TIBETAN_SCRIPT":
49
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "UNSPECIFIED_SERIF_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "WAVY_UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
}
}
catch (Exception ex)
{
}
}
public void modificaTamanioTexto(string tamanio)
{
try
{
this.lblEtiqueta.Font = new
System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name,float.Parse(tamanio), this.lblEtiqueta.Font.Style,
System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
catch (Exception ex)
{
}
}
public void ColocaImagen(){
PictureBox pbx = new PictureBox();
pbx.SizeMode = PictureBoxSizeMode.StretchImage;
pbx.Image = global::TesisEjemplo1.Properties.Resources.Check;
pbx.Width = 15;
pbx.Height = 15;
pbx.Top = 0;
pbx.Left = 0;
this.Controls.Add(pbx);
//this.shapeContainer1.Location = new System.Drawing.Point(0, 0);
//this.shapeContainer1.Margin = new System.Windows.Forms.Padding(0);
//this.shapeContainer1.Name = "shapeContainer1";
//this.shapeContainer1.Shapes.AddRange(new Microsoft.VisualBasic.PowerPacks.Shape[]
{this.rectangeShape1});
//this.shapeContainer1.Size = new System.Drawing.Size(301, 72);
////this.shapeContainer1.TabIndex = 0;
//this.shapeContainer1.TabStop = false;
//this.rectangeShape1.BorderWidth = 4;
//this.rectangeShape1.Location = new System.Drawing.Point(0, 0);
//this.rectangeShape1.Name = "ovalShape1";
//this.rectangeShape1.Size = new System.Drawing.Size(12, 12);
50
////this.Controls.Add(shapeContainer1);
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelCheckBox
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
Codificacion Panel ComboBox
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelComboBox: ObjetoBase
{
public bool poseeColorfondo = false;
Color coloFondo;
public bool poseeColorTextop = false;
Color colorEtiqueta;
public bool poseeContenido=false;
Array contenidoAuto ;
public PanelComboBox(string texto)
{
_TipoControl = "COMBOBOX";
seteaFormato();
}
public PanelComboBox() {
_TipoControl = "COMBOBOX";
seteaFormato();
}
public PanelComboBox(bool conColor)
{
this.BackColor = Color.White;
_TipoControl = "COMBOBOX";
seteaFormato();
}
51
public void seteaFormato()
{
this.BackColor = Color.White;
_ancho = 80;
_alto = 20;
this.Width = _ancho;
this.Height = _alto;
this.Cursor = Cursors.SizeAll;
this.BackgroundImageLayout = ImageLayout.Stretch;
this.BackgroundImage = global::TesisEjemplo1.Properties.Resources.CampoCombo;
}
public Color ColorFondo
{
set
{
this.poseeColorfondo = true;
this.coloFondo = value;
}
get
{
return coloFondo;
}
}
public Color ColorEtiqueta
{
set
{
this.poseeColorTextop = true;
this.colorEtiqueta = value;
}
get
{
return this.colorEtiqueta;
}
}
public void cambiarColorFondo(Color color)
{
this.BackColor = color;
}
public Array Contenido
{
set
{
this.poseeContenido = true;
contenidoAuto = value;
}
get
{
return this.contenidoAuto;
}
}
52
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelComboBox
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
Codificacion PanelComboBoxNumerico
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelComboBoxNumerico: ObjetoBase
{
public bool poseeColorfondo = false;
Color coloFondo;
public bool poseeColorTextop = false;
Color colorEtiqueta;
public PanelComboBoxNumerico(string texto)
{
_TipoControl = "COMBOBOXNUMERICO";
seteaFormato();
}
public PanelComboBoxNumerico() {
_TipoControl = "COMBOBOXNUMERICO";
seteaFormato();
}
public PanelComboBoxNumerico(bool conColor)
{
this.BackColor = Color.White;
_TipoControl = "COMBOBOXNUMERICO";
seteaFormato();
}
public void seteaFormato()
{
this.BackColor = Color.White;
_ancho = 100;
_alto = 20;
this.Width = _ancho;
53
this.Height = _alto;
this.Cursor = Cursors.SizeAll;
this.BackgroundImageLayout = ImageLayout.Stretch;
this.BackgroundImage = global::TesisEjemplo1.Properties.Resources.CampoComboNum;
}
public Color ColorFondo
{
set
{
this.poseeColorfondo = true;
this.coloFondo = value;
}
get
{
return coloFondo;
}
}
public Color ColorEtiqueta
{
set
{
this.poseeColorTextop = true;
this.colorEtiqueta = value;
}
get
{
return this.colorEtiqueta;
}
}
public void cambiarColorFondo(Color color)
{
this.BackColor = color;
}
public int indiceInicio {
set;
get;
}
public int indiceFinal {
set;
get;
}
public int incremento
{
set;
get;
}
public int comienzo
{
set;
get;
}
private void InitializeComponent()
54
{
this.SuspendLayout();
//
// PanelComboBoxNumerico
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
Codificacion PaneEmail
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelEmail: ObjetoBase
{
public bool poseeColorfondo = false;
Color coloFondo;
public bool poseeColorTextop = false;
Color colorEtiqueta;
public PanelEmail(string texto)
{
_TipoControl = "EMAIL";
seteaFormato();
}
public PanelEmail() {
_TipoControl = "EMIAL";
seteaFormato();
}
public PanelEmail(bool conColor)
{
this.BackColor = Color.WhiteSmoke;
_TipoControl = "EMAIL";
seteaFormato();
}
public void seteaFormato()
{
this.BackColor = Color.White;
_ancho = 100;
55
_alto = 20;
this.Width = _ancho;
this.Height = _alto;
this.Cursor = Cursors.SizeAll;
}
public Color ColorFondo
{
set
{
this.poseeColorfondo = true;
this.coloFondo = value;
}
get
{
return coloFondo;
}
}
public Color ColorEtiqueta
{
set
{
this.poseeColorTextop = true;
this.colorEtiqueta = value;
}
get
{
return this.colorEtiqueta;
}
}
public void cambiarColorFondo(Color color)
{
this.BackColor = color;
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelEmail
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
Codificacion PanelesBase
using System;
using System.Collections.Generic;
using System.Linq;
56
using System.Text;
using System.Threading.Tasks;
namespace TesisEjemplo1
{
class PanelesBases : System.Windows.Forms.Panel
{
string nombre = "";
string identificacion = "";
string tipoObjeto = "";
string metodoClick = "";
string etiqueta = "";
}
}
Codificacion PaneEtiquetas
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelEtiqueta : ObjetoBase
{
string ls_textoEtiqueta = "";
Label lblEtiqueta = new Label();
public string _Texto
{
set
{
this.ls_textoEtiqueta = value;
}
get
{
return this.ls_textoEtiqueta;
}
}
public bool poseeColorfondo = false;
Color coloFondo;
public bool poseeColorTextop = false;
Color colorEtiqueta;
public PanelEtiqueta(string contenido)
{
_TipoControl = "ETIQUETA";
seteaFormato(contenido);
}
public PanelEtiqueta() {
_TipoControl = "ETIQUETA";
seteaFormato("Etiqueta");
57
}
public PanelEtiqueta(bool conColor)
{
this.BackColor = Color.White;
_TipoControl = "ETIQUETA";
seteaFormato("Etiqueta");
}
public void llenaFuncionClick(string contenidoFuncion){
}
public Color ColorFondo
{
set{
this.poseeColorfondo = true;
this.coloFondo = value;
}
get {
return coloFondo;
}
}
public Color ColorEtiqueta{
set
{
this.poseeColorTextop = true;
this.colorEtiqueta = value;
}
get
{
return this.colorEtiqueta;
}
}
public void seteaFormato(string contenido)
{
this.lblEtiqueta.Text = contenido;
lblEtiqueta.BackColor = Color.Transparent;
lblEtiqueta.Cursor = Cursors.Default;
this.Controls.Add(lblEtiqueta);
_Texto = contenido;
this.Cursor = Cursors.SizeAll;
this.BackColor = Color.Transparent;
this._ancho = 100;
this._alto = 20;
Width = _ancho;
Height = _alto;
lblEtiqueta.Width = _ancho - 20;
}
public void cambiaEtiquetaVisible(string textoMuestra)
{
try
{
this.lblEtiqueta.Text = textoMuestra;
}
58
catch (Exception ex) {
this.lblEtiqueta.Text = ex.Message;
}
}
public void cambiarColorEtiqueta(Color color)
{
this.lblEtiqueta.ForeColor = color;
}
public void cambiarColorFondo(Color color)
{
this.lblEtiqueta.BackColor = color;
this.BackColor = color;
}
public void cambiaFamiliaTexto(string nomrbreFamilia)
{
try
{
//this.lblEtiqueta.Font = new System.Drawing.Font(nomrbreFamilia, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblEtiqueta.Font = new System.Drawing.Font(nomrbreFamilia, 8.25F,
this.lblEtiqueta.Font.Style, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
catch (Exception ex)
{
}
}
public void cambiarEstiloTexto(string nombreEstilo)
{
try
{
switch (nombreEstilo)
{
case "ANTIALIAS_LOW_RES":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ANTIALIAS_NONE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ANTIALIAS_STANDARD":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ANTIALIAS_SUBPIXEL":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "APPLICATION":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ARABIC_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ARMENIAN_SCRIPT":
59
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "BENGALI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "BOLD":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "BROKEN_LINE_UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "CJK_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "CURSIVE_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "CYRILLIC_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "DEVANAGARI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "DOTTED_UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ETHIOPIC_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "EXTRA_BOLD":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "FANTASY_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GEORGIAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GREEK_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GUID_FONT_CHANGED":
60
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GUJARATI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GURMUKHI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "HANGUL_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "HEBREW_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "HIRAGANA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ITALIC":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "KANNADA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "KATAKANA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "KHMER_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "LAO_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "LATIN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "MALAYALAM_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "MONGOLIAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "MYANMAR_SCRIPT":
61
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ORIYA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "PLAIN":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SANS_SERIF_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SERIF_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SERIF_STYLE_MASK":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SINHALA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "STRIKE_THROUGH":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Strikeout, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "TAMIL_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "TELUGU_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "THAI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "TIBETAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "UNSPECIFIED_SERIF_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "WAVY_UNDERLINED":
62
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
}
}
catch (Exception ex)
{
}
}
public void modificaTamanioTexto(string tamanio)
{
try
{
this.lblEtiqueta.Font = new
System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name,float.Parse(tamanio), this.lblEtiqueta.Font.Style,
System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
catch (Exception ex)
{
}
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelEtiqueta
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
Codificacion PanelPassword
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelPassword : ObjetoBase
{
public bool poseeColorfondo = false;
Color coloFondo;
public bool poseeColorTextop = false;
Color colorEtiqueta;
63
public PanelPassword(string texto)
{
_TipoControl = "PASSWORD";
///seteaFormato();
this.Cursor = Cursors.SizeAll;
}
public PanelPassword() {
_TipoControl = "PASSWORD";
this.Cursor = Cursors.SizeAll;
}
public PanelPassword(bool conColor)
{
this.BackColor = Color.WhiteSmoke;
_TipoControl = "PASSWORD";
_ancho = 80;
_alto = 20;
this.Width = _ancho;
this.Height = _alto;
this.Cursor = Cursors.SizeAll;
}
public Color ColorFondo
{
set
{
this.poseeColorfondo = true;
this.coloFondo = value;
}
get
{
return coloFondo;
}
}
public Color ColorEtiqueta
{
set
{
this.poseeColorTextop = true;
this.colorEtiqueta = value;
}
get
{
return this.colorEtiqueta;
}
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelPassword
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
64
}
}
}
Codificacion PanelRichTextBox
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelRichTextBox : ObjetoBase
{
string ls_textoEtiqueta = "";
Label lblEtiqueta = new Label();
public string _Texto
{
set
{
this.ls_textoEtiqueta = value;
}
get
{
return this.ls_textoEtiqueta;
}
}
public bool poseeColorfondo = false;
Color coloFondo;
public bool poseeColorTextop = false;
Color colorEtiqueta;
public PanelRichTextBox(string contenido)
{
_TipoControl = "RICHTEXTBOX";
seteaFormato(contenido);
}
public PanelRichTextBox() {
_TipoControl = "RICHTEXTBOX";
seteaFormato("Etiqueta");
}
public PanelRichTextBox(bool conColor)
{
this.BackColor = Color.White;
_TipoControl = "RICHTEXTBOX";
seteaFormato("Etiqueta");
}
public void llenaFuncionClick(string contenidoFuncion){
65
}
public Color ColorFondo
{
set{
this.poseeColorfondo = true;
this.coloFondo = value;
}
get {
return coloFondo;
}
}
public Color ColorEtiqueta{
set
{
this.poseeColorTextop = true;
this.colorEtiqueta = value;
}
get
{
return this.colorEtiqueta;
}
}
public void seteaFormato(string contenido)
{
this.lblEtiqueta.Text = contenido;
lblEtiqueta.BackColor = Color.Transparent;
lblEtiqueta.Cursor = Cursors.Default;
this.Controls.Add(lblEtiqueta);
_Texto = contenido;
this.Cursor = Cursors.SizeAll;
this.BackColor = Color.Transparent;
this._ancho = 100;
this._alto = 25;
this.Width = _ancho;
this.Height = _alto;
lblEtiqueta.Width = this.Width - 5;
}
public void cambiaEtiquetaVisible(string textoMuestra)
{
try
{
this.lblEtiqueta.Text = textoMuestra;
}
catch (Exception ex) {
this.lblEtiqueta.Text = ex.Message;
}
}
public void cambiarColorEtiqueta(Color color)
{
this.lblEtiqueta.ForeColor = color;
}
public void cambiarColorFondo(Color color)
{
this.lblEtiqueta.BackColor = color;
66
this.BackColor = color;
}
public void cambiaFamiliaTexto(string nomrbreFamilia)
{
try
{
//this.lblEtiqueta.Font = new System.Drawing.Font(nomrbreFamilia, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblEtiqueta.Font = new System.Drawing.Font(nomrbreFamilia, 8.25F,
this.lblEtiqueta.Font.Style, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
catch (Exception ex)
{
}
}
public void cambiarEstiloTexto(string nombreEstilo)
{
try
{
switch (nombreEstilo)
{
case "ANTIALIAS_LOW_RES":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ANTIALIAS_NONE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ANTIALIAS_STANDARD":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ANTIALIAS_SUBPIXEL":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "APPLICATION":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ARABIC_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ARMENIAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "BENGALI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "BOLD":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
67
case "BROKEN_LINE_UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "CJK_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "CURSIVE_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "CYRILLIC_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "DEVANAGARI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "DOTTED_UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ETHIOPIC_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "EXTRA_BOLD":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "FANTASY_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GEORGIAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GREEK_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GUID_FONT_CHANGED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GUJARATI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "GURMUKHI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "HANGUL_SCRIPT":
68
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "HEBREW_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "HIRAGANA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ITALIC":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "KANNADA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "KATAKANA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "KHMER_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "LAO_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "LATIN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "MALAYALAM_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "MONGOLIAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "MYANMAR_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "ORIYA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "PLAIN":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SANS_SERIF_STYLE":
69
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SERIF_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SERIF_STYLE_MASK":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "SINHALA_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "STRIKE_THROUGH":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Strikeout, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "TAMIL_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "TELUGU_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "THAI_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "TIBETAN_SCRIPT":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "UNSPECIFIED_SERIF_STYLE":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
case "WAVY_UNDERLINED":
this.lblEtiqueta.Font = new System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name, 8.25F,
System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
break;
}
}
catch (Exception ex)
{
}
}
public void modificaTamanioTexto(string tamanio)
{
try
70
{
this.lblEtiqueta.Font = new
System.Drawing.Font(lblEtiqueta.Font.FontFamily.Name,float.Parse(tamanio), this.lblEtiqueta.Font.Style,
System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
catch (Exception ex)
{
}
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelRichTextBox
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
Codificacion PanelTextoAutocompletar
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelTextoAutocompletar: ObjetoBase
{
public bool poseeColorfondo = false;
Color coloFondo;
public bool poseeColorTextop = false;
Color colorEtiqueta;
public bool poseeContenido=false;
Array contenidoAuto ;
public PanelTextoAutocompletar(string texto)
{
_TipoControl = "TEXTOAUTOCOMPLETAR";
seteaFormato();
}
public PanelTextoAutocompletar() {
_TipoControl = "TEXTOAUTOCOMPLETAR";
seteaFormato();
}
public PanelTextoAutocompletar(bool conColor)
71
{
this.BackColor = Color.White;
_TipoControl = "TEXTOAUTOCOMPLETAR";
seteaFormato();
}
public void seteaFormato()
{
this.BackColor = Color.White;
_ancho = 80;
_alto = 20;
this.Width = _ancho;
this.Height = _alto;
this.Cursor = Cursors.SizeAll;
}
public Color ColorFondo
{
set
{
this.poseeColorfondo = true;
this.coloFondo = value;
}
get
{
return coloFondo;
}
}
public Color ColorEtiqueta
{
set
{
this.poseeColorTextop = true;
this.colorEtiqueta = value;
}
get
{
return this.colorEtiqueta;
}
}
public void cambiarColorFondo(Color color)
{
this.BackColor = color;
}
public Array Contenido
{
set
{
this.poseeContenido = true;
contenidoAuto = value;
}
get
{
return this.contenidoAuto;
72
}
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelTextoAutocompletar
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
Codificacion PanelTextoAutoCorregir
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
class PanelTextoAutocorregir: ObjetoBase
{
public bool poseeColorfondo = false;
Color coloFondo;
public bool poseeColorTextop = false;
Color colorEtiqueta;
public PanelTextoAutocorregir(string texto)
{
_TipoControl = "CAJATEXTOAUTOCORREGIR";
seteaFormato();
}
public PanelTextoAutocorregir() {
_TipoControl = "CAJATEXTOAUTOCORREGIR";
seteaFormato();
}
public PanelTextoAutocorregir(bool conColor)
{
this.BackColor = Color.White;
_TipoControl = "CAJATEXTOAUTOCORREGIR";
seteaFormato();
}
public void seteaFormato()
{
73
this.BackColor = Color.White;
_ancho = 80;
_alto = 20;
Width = _ancho;
Height = _alto;
this.Cursor = Cursors.SizeAll;
}
public Color ColorFondo
{
set
{
this.poseeColorfondo = true;
this.coloFondo = value;
}
get
{
return coloFondo;
}
}
public Color ColorEtiqueta
{
set
{
this.poseeColorTextop = true;
this.colorEtiqueta = value;
}
get
{
return this.colorEtiqueta;
}
}
public void cambiarColorFondo(Color color)
{
this.BackColor = color;
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// PanelTextoAutocorregir
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ResumeLayout(false);
}
}
}
Codificacion PlatillasFunciones
using System;
74
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TesisEjemplo1
{
class PantillasFunciones
{
public static string PlantillaAccionBoton(string nombreObjeto)
{
return "\n\tpublic void Action" + nombreObjeto + "_(ActionEvento evento){\n\t}" ;
}
public static string PlatillaFormato(string nombreObjeto)
{
return "";
}
}
}
Codificacion Presentacion
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
public partial class Presentacion : Form
{
int i = 0;
public Presentacion()
{
InitializeComponent();
}
private void Presentacion_Load(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
i++;
if (i == 5)
{
//Form1 f = new Form1();
//f.Show();
75
this.Close();
}
}
}
}
Codificacion Programs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
static class Program
{
/// <summary>
/// Punto de entrada principal para la aplicación.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
Codificacion VentanaColores
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
public partial class VentanaColores : Form
{
public Color colorClick
{
set;
get;
}
76
public string ColorSeleccionado
{
set;
get;
}
public VentanaColores()
{
InitializeComponent();
}
private void VentanaColores_Load(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
ColorSeleccionado = "ALICEBLUE";
colorClick = Color.AliceBlue;
this.Close();
}
private void pictureBox2_Click(object sender, EventArgs e)
{
ColorSeleccionado = "ANTIQUEWHITE";
colorClick = Color.AntiqueWhite;
this.Close();
}
private void pictureBox3_Click(object sender, EventArgs e)
{
ColorSeleccionado = "AQUA";
colorClick = Color.Aqua;
this.Close();
}
private void pictureBox4_Click(object sender, EventArgs e)
{
ColorSeleccionado = "AQUAMARINE";
colorClick = Color.Aquamarine;
this.Close();
}
private void pictureBox5_Click(object sender, EventArgs e)
{
ColorSeleccionado = "AZURE";
colorClick = Color.Azure;
this.Close();
}
private void pictureBox6_Click(object sender, EventArgs e)
{
77
ColorSeleccionado = "BEIGE";
colorClick = Color.Beige;
this.Close();
}
private void pictureBox7_Click(object sender, EventArgs e)
{
ColorSeleccionado = "BISQUE";
colorClick = Color.Bisque;
this.Close();
}
private void pictureBox8_Click(object sender, EventArgs e)
{
ColorSeleccionado = "BLACK";
colorClick = Color.Black;
this.Close();
}
private void pictureBox9_Click(object sender, EventArgs e)
{
ColorSeleccionado = "BLANCHEDALMOND";
colorClick = Color.BlanchedAlmond;
this.Close();
}
private void pictureBox10_Click(object sender, EventArgs e)
{
ColorSeleccionado = "BLUE";
colorClick = Color.Blue;
this.Close();
}
private void pictureBox11_Click(object sender, EventArgs e)
{
this.ColorSeleccionado = "BLUEVIOLET";
colorClick = Color.BlueViolet;
this.Close();
}
private void pictureBox12_Click(object sender, EventArgs e)
{
ColorSeleccionado = "BROWN";
colorClick = Color.Brown;
this.Close();
}
private void pictureBox13_Click(object sender, EventArgs e)
{
ColorSeleccionado = "BURLYWOOD";
colorClick = Color.BurlyWood;
this.Close();
}
private void pictureBox14_Click(object sender, EventArgs e)
{
ColorSeleccionado = "CADETBLUE";
78
colorClick = Color.CadetBlue;
this.Close();
}
private void pictureBox15_Click(object sender, EventArgs e)
{
ColorSeleccionado = "CHARTREUSE";
colorClick = Color.Chartreuse;
this.Close();
}
private void pictureBox17_Click(object sender, EventArgs e)
{
ColorSeleccionado = "CHOCOLATE";
colorClick = Color.Chocolate;
this.Close();
}
private void pictureBox18_Click(object sender, EventArgs e)
{
ColorSeleccionado = "CORAL";
colorClick = Color.Coral;
this.Close();
}
private void pictureBox19_Click(object sender, EventArgs e)
{
ColorSeleccionado = "CORNFLOWERBLUE";
colorClick = Color.CornflowerBlue;
this.Close();
}
private void pictureBox20_Click(object sender, EventArgs e)
{
ColorSeleccionado = "CORNSILK";
colorClick = Color.Cornsilk;
this.Close();
}
private void pictureBox16_Click(object sender, EventArgs e)
{
ColorSeleccionado = "CRIMSON";
colorClick = Color.Crimson;
this.Close();
}
private void pictureBox30_Click(object sender, EventArgs e)
{
ColorSeleccionado = "CYAN";
colorClick = Color.Cyan;
this.Close();
}
private void pictureBox29_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKBLUE";
colorClick = Color.DarkBlue;
79
this.Close();
}
private void pictureBox28_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKCYAN";
colorClick = Color.DarkCyan;
this.Close();
}
private void pictureBox27_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKGOLDENROD";
colorClick = Color.DarkGoldenrod;
this.Close();
}
private void pictureBox26_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKGRAY";
colorClick = Color.DarkGray;
this.Close();
}
private void pictureBox25_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKGREEN";
colorClick = Color.DarkGreen;
this.Close();
}
private void pictureBox24_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKKHAKI";
colorClick = Color.DarkKhaki;
this.Close();
}
private void pictureBox23_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKMAGENTA";
colorClick = Color.DarkMagenta;
this.Close();
}
private void pictureBox22_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKOLIVEGREEN";
colorClick = Color.DarkOliveGreen;
this.Close();
}
private void pictureBox21_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKORANGE";
colorClick = Color.DarkOrange;
this.Close();
80
}
private void pictureBox60_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKORCHID";
colorClick = Color.DarkOrchid;
this.Close();
}
private void pictureBox59_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKRED";
colorClick = Color.DarkRed;
this.Close();
}
private void pictureBox58_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKSALMON";
colorClick = Color.DarkSalmon;
this.Close();
}
private void pictureBox57_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKSEAGREEN";
colorClick = Color.DarkSeaGreen;
this.Close();
}
private void pictureBox56_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKSLATEBLUE";
colorClick = Color.DarkSlateBlue;
this.Close();
}
private void pictureBox55_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKSLATEGRAY";
colorClick = Color.DarkSlateGray;
this.Close();
}
private void pictureBox54_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKTURQUOISE";
colorClick = Color.DarkTurquoise;
this.Close();
}
private void pictureBox53_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DARKVIOLET";
colorClick = Color.DarkViolet;
this.Close();
}
81
private void pictureBox52_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DEEPPINK";
colorClick = Color.DeepPink;
this.Close();
}
private void pictureBox51_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DEEPSKYBLUE";
colorClick = Color.DeepSkyBlue;
this.Close();
}
private void pictureBox50_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DIMGRAY";
colorClick = Color.DimGray;
this.Close();
}
private void pictureBox49_Click(object sender, EventArgs e)
{
ColorSeleccionado = "DODGERBLUE";
colorClick = Color.DodgerBlue;
this.Close();
}
private void pictureBox48_Click(object sender, EventArgs e)
{
ColorSeleccionado = "FIREBRICK";
colorClick = Color.Firebrick;
this.Close();
}
private void pictureBox47_Click(object sender, EventArgs e)
{
ColorSeleccionado = "FLORALWHITE";
colorClick = Color.FloralWhite;
this.Close();
}
private void pictureBox46_Click(object sender, EventArgs e)
{
ColorSeleccionado = "FORESTGREEN";
colorClick = Color.ForestGreen;
this.Close();
}
private void pictureBox44_Click(object sender, EventArgs e)
{
ColorSeleccionado = "FUCHSIA";
colorClick = Color.Fuchsia;
this.Close();
}
82
private void pictureBox43_Click(object sender, EventArgs e)
{
ColorSeleccionado = "GAINSBORO";
colorClick = Color.Gainsboro;
this.Close();
}
private void pictureBox42_Click(object sender, EventArgs e)
{
ColorSeleccionado = "GHOSTWHITE";
colorClick = Color.GhostWhite;
this.Close();
}
private void pictureBox41_Click(object sender, EventArgs e)
{
ColorSeleccionado = "GOLD";
colorClick = Color.Gold;
this.Close();
}
private void pictureBox45_Click(object sender, EventArgs e)
{
ColorSeleccionado = "GOLDENROD";
colorClick = Color.Goldenrod;
this.Close();
}
private void pictureBox40_Click(object sender, EventArgs e)
{
ColorSeleccionado = "GRAY";
colorClick = Color.Gray;
this.Close();
}
private void pictureBox39_Click(object sender, EventArgs e)
{
ColorSeleccionado = "GREEN";
colorClick = Color.Green;
this.Close();
}
private void pictureBox38_Click(object sender, EventArgs e)
{
ColorSeleccionado = "GREENYELLOW";
colorClick = Color.GreenYellow;
this.Close();
}
private void pictureBox37_Click(object sender, EventArgs e)
{
ColorSeleccionado = "HONEYDEW";
colorClick = Color.Honeydew;
this.Close();
}
private void pictureBox36_Click(object sender, EventArgs e)
83
{
ColorSeleccionado = "HOTPINK";
colorClick = Color.HotPink;
this.Close();
}
private void pictureBox35_Click(object sender, EventArgs e)
{
ColorSeleccionado = "INDIANRED";
colorClick = Color.IndianRed;
this.Close();
}
private void pictureBox34_Click(object sender, EventArgs e)
{
ColorSeleccionado = "INDIGO";
colorClick = Color.Indigo;
this.Close();
}
private void pictureBox33_Click(object sender, EventArgs e)
{
ColorSeleccionado = "IVORY";
colorClick = Color.Ivory;
this.Close();
}
private void pictureBox32_Click(object sender, EventArgs e)
{
ColorSeleccionado = "KHAKI";
colorClick = Color.Khaki;
this.Close();
}
private void pictureBox31_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LAVENDER";
colorClick = Color.Lavender;
this.Close();
}
private void pictureBox90_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LAVENDERBLUSH";
colorClick = Color.LavenderBlush;
this.Close();
}
private void pictureBox89_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LAWNGREEN";
colorClick = Color.LawnGreen;
this.Close();
}
private void pictureBox88_Click(object sender, EventArgs e)
{
84
ColorSeleccionado = "LEMONCHIFFON";
colorClick = Color.LemonChiffon;
this.Close();
}
private void pictureBox87_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTBLUE";
colorClick = Color.LightBlue;
this.Close();
}
private void pictureBox86_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTCORAL";
colorClick = Color.LightCoral;
this.Close();
}
private void pictureBox85_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTCYAN";
colorClick = Color.LightCyan;
this.Close();
}
private void pictureBox84_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTGOLDENRODYELLOW";
colorClick = Color.LightGoldenrodYellow;
this.Close();
}
private void pictureBox83_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTGRAY";
colorClick = Color.LightGray;
this.Close();
}
private void pictureBox82_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTGREEN";
colorClick = Color.LightGreen;
this.Close();
}
private void pictureBox81_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTGREY";
colorClick = Color.LightGray;
this.Close();
}
private void pictureBox80_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTPINK";
85
colorClick = Color.LightPink;
this.Close();
}
private void pictureBox79_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTSALMON";
colorClick = Color.LightSalmon;
this.Close();
}
private void pictureBox78_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTSEAGREEN";
colorClick = Color.LightSeaGreen;
this.Close();
}
private void pictureBox77_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTSKYBLUE";
colorClick = Color.LightSkyBlue;
this.Close();
}
private void pictureBox76_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTSLATEGRAY";
colorClick = Color.LightSlateGray;
this.Close();
}
private void pictureBox74_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTSTEELBLUE";
colorClick = Color.LightSteelBlue;
this.Close();
}
private void pictureBox73_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIGHTYELLOW";
colorClick = Color.LightYellow;
this.Close();
}
private void pictureBox72_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIME";
colorClick = Color.Lime;
this.Close();
}
private void pictureBox71_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LIMEGREEN";
colorClick = Color.LimeGreen;
86
this.Close();
}
private void pictureBox75_Click(object sender, EventArgs e)
{
ColorSeleccionado = "LINEN";
colorClick = Color.Linen;
this.Close();
}
private void pictureBox70_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MAGENTA";
colorClick = Color.Magenta;
this.Close();
}
private void pictureBox69_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MAROON";
colorClick = Color.Maroon;
this.Close();
}
private void pictureBox68_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MEDIUMAQUAMARINE";
colorClick = Color.MediumAquamarine;
this.Close();
}
private void pictureBox67_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MEDIUMBLUE";
colorClick = Color.MediumBlue;
this.Close();
}
private void pictureBox66_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MEDIUMORCHID";
colorClick = Color.MediumOrchid;
this.Close();
}
private void pictureBox65_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MEDIUMPURPLE";
colorClick = Color.MediumPurple;
this.Close();
}
private void pictureBox64_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MEDIUMSEAGREEN";
colorClick = Color.MediumSeaGreen;
this.Close();
87
}
private void pictureBox63_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MEDIUMSLATEBLUE";
colorClick = Color.MediumSlateBlue;
this.Close();
}
private void pictureBox62_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MEDIUMSPRINGGREEN";
colorClick = Color.MediumSpringGreen;
this.Close();
}
private void pictureBox61_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MEDIUMTURQUOISE";
colorClick = Color.MediumTurquoise;
this.Close();
}
private void pictureBox120_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MEDIUMVIOLETRED";
colorClick = Color.MediumVioletRed;
this.Close();
}
private void pictureBox119_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MIDNIGHTBLUE";
colorClick = Color.MidnightBlue;
this.Close();
}
private void pictureBox118_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MINTCREAM";
colorClick = Color.MintCream;
this.Close();
}
private void pictureBox117_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MISTYROSE";
colorClick = Color.MistyRose;
this.Close();
}
private void pictureBox116_Click(object sender, EventArgs e)
{
ColorSeleccionado = "MOCCASIN";
colorClick = Color.Moccasin;
this.Close();
}
88
private void pictureBox115_Click(object sender, EventArgs e)
{
ColorSeleccionado = "NAVAJOWHITE";
colorClick = Color.NavajoWhite;
this.Close();
}
private void pictureBox114_Click(object sender, EventArgs e)
{
ColorSeleccionado = "NAVY";
colorClick = Color.Navy;
this.Close();
}
private void pictureBox113_Click(object sender, EventArgs e)
{
ColorSeleccionado = "OLDLACE";
colorClick = Color.OldLace;
this.Close();
}
private void pictureBox112_Click(object sender, EventArgs e)
{
ColorSeleccionado = "OLIVE";
colorClick = Color.Olive;
this.Close();
}
private void pictureBox111_Click(object sender, EventArgs e)
{
ColorSeleccionado = "OLIVEDRAB";
colorClick = Color.OliveDrab;
this.Close();
}
private void pictureBox110_Click(object sender, EventArgs e)
{
ColorSeleccionado = "ORANGE";
colorClick = Color.Orange;
this.Close();
}
private void pictureBox109_Click(object sender, EventArgs e)
{
ColorSeleccionado = "ORANGERED";
colorClick = Color.OrangeRed;
this.Close();
}
private void pictureBox108_Click(object sender, EventArgs e)
{
ColorSeleccionado = "ORCHID";
colorClick = Color.Orchid;
this.Close();
}
89
private void pictureBox107_Click(object sender, EventArgs e)
{
ColorSeleccionado = "PALEGOLDENROD";
colorClick = Color.PaleGoldenrod;
this.Close();
}
private void pictureBox106_Click(object sender, EventArgs e)
{
ColorSeleccionado = "PALEGREEN";
colorClick = Color.PaleGreen;
this.Close();
}
private void pictureBox104_Click(object sender, EventArgs e)
{
ColorSeleccionado = "PALETURQUOISE";
colorClick = Color.PaleTurquoise;
this.Close();
}
private void pictureBox103_Click(object sender, EventArgs e)
{
ColorSeleccionado = "PALEVIOLETRED";
colorClick = Color.PaleVioletRed;
this.Close();
}
private void pictureBox102_Click(object sender, EventArgs e)
{
ColorSeleccionado = "PAPAYAWHIP";
colorClick = Color.PapayaWhip;
this.Close();
}
private void pictureBox101_Click(object sender, EventArgs e)
{
ColorSeleccionado = "PEACHPUFF";
colorClick = Color.PeachPuff;
this.Close();
}
private void pictureBox105_Click(object sender, EventArgs e)
{
ColorSeleccionado = "PERU";
colorClick = Color.Peru;
this.Close();
}
private void pictureBox100_Click(object sender, EventArgs e)
{
ColorSeleccionado = "PINK";
colorClick = Color.Pink;
this.Close();
}
private void pictureBox99_Click(object sender, EventArgs e)
90
{
ColorSeleccionado = "PLUM";
colorClick = Color.Plum;
this.Close();
}
private void pictureBox98_Click(object sender, EventArgs e)
{
ColorSeleccionado = "POWDERBLUE";
colorClick = Color.PowderBlue;
this.Close();
}
private void pictureBox97_Click(object sender, EventArgs e)
{
ColorSeleccionado = "PURPLE";
colorClick = Color.Purple;
this.Close();
}
private void pictureBox96_Click(object sender, EventArgs e)
{
ColorSeleccionado = "RED";
colorClick = Color.Red;
this.Close();
}
private void pictureBox95_Click(object sender, EventArgs e)
{
ColorSeleccionado = "ROSYBROWN";
colorClick = Color.RosyBrown;
this.Close();
}
private void pictureBox94_Click(object sender, EventArgs e)
{
ColorSeleccionado = "ROYALBLUE";
colorClick = Color.RoyalBlue;
this.Close();
}
private void pictureBox93_Click(object sender, EventArgs e)
{
ColorSeleccionado = "SADDLEBROWN";
colorClick = Color.SaddleBrown;
this.Close();
}
private void pictureBox92_Click(object sender, EventArgs e)
{
ColorSeleccionado = "SALMON";
colorClick = Color.Salmon;
this.Close();
}
private void pictureBox91_Click(object sender, EventArgs e)
{
91
ColorSeleccionado = "SANDYBROWN";
colorClick = Color.SandyBrown;
this.Close();
}
private void pictureBox150_Click(object sender, EventArgs e)
{
ColorSeleccionado = "SEAGREEN";
colorClick = Color.SeaGreen;
this.Close();
}
private void pictureBox149_Click(object sender, EventArgs e)
{
ColorSeleccionado = "SEASHELL";
colorClick = Color.SeaShell;
this.Close();
}
private void pictureBox148_Click(object sender, EventArgs e)
{
ColorSeleccionado = "SIENNA";
colorClick = Color.Sienna;
this.Close();
}
private void pictureBox147_Click(object sender, EventArgs e)
{
ColorSeleccionado = "SILVER";
colorClick = Color.Silver;
this.Close();
}
private void pictureBox146_Click(object sender, EventArgs e)
{
ColorSeleccionado = "SKYBLUE";
colorClick = Color.SkyBlue;
this.Close();
}
private void pictureBox145_Click(object sender, EventArgs e)
{
ColorSeleccionado = "SLATEBLUE";
colorClick = Color.SlateBlue;
this.Close();
}
private void pictureBox144_Click(object sender, EventArgs e)
{
ColorSeleccionado = "SLATEGRAY";
colorClick = Color.SlateGray;
this.Close();
}
private void pictureBox143_Click(object sender, EventArgs e)
{
ColorSeleccionado = "SNOW";
92
colorClick = Color.Snow;
this.Close();
}
private void pictureBox142_Click(object sender, EventArgs e)
{
ColorSeleccionado = "SPRINGGREEN";
colorClick = Color.SpringGreen;
this.Close();
}
private void pictureBox141_Click(object sender, EventArgs e)
{
ColorSeleccionado = "STEELBLUE";
colorClick = Color.SteelBlue;
this.Close();
}
private void pictureBox140_Click(object sender, EventArgs e)
{
ColorSeleccionado = "TAN";
colorClick = Color.Tan;
this.Close();
}
private void pictureBox139_Click(object sender, EventArgs e)
{
ColorSeleccionado = "TEAL";
colorClick = Color.Teal;
this.Close();
}
private void pictureBox138_Click(object sender, EventArgs e)
{
ColorSeleccionado = "THISTLE";
colorClick = Color.Thistle;
this.Close();
}
private void pictureBox137_Click(object sender, EventArgs e)
{
ColorSeleccionado = "TOMATO";
colorClick = Color.Tomato;
this.Close();
}
private void pictureBox136_Click(object sender, EventArgs e)
{
ColorSeleccionado = "TURQUOISE";
colorClick = Color.Turquoise;
this.Close();
}
private void pictureBox126_Click(object sender, EventArgs e)
{
ColorSeleccionado = "VIOLET";
colorClick = Color.Violet;
93
this.Close();
}
private void pictureBox125_Click(object sender, EventArgs e)
{
ColorSeleccionado = "WHEAT";
colorClick = Color.Wheat;
this.Close();
}
private void pictureBox124_Click(object sender, EventArgs e)
{
ColorSeleccionado = "WHITE";
colorClick = Color.White;
this.Close();
}
private void pictureBox123_Click(object sender, EventArgs e)
{
ColorSeleccionado = "WHITESMOKE";
colorClick = Color.WhiteSmoke;
this.Close();
}
private void pictureBox122_Click(object sender, EventArgs e)
{
ColorSeleccionado = "YELLOW";
colorClick = Color.Yellow;
this.Close();
}
private void pictureBox121_Click(object sender, EventArgs e)
{
ColorSeleccionado = "YELLOWGREEN";
colorClick = Color.YellowGreen;
this.Close();
}
}
}
Codificacion DialogAccionBoton
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
public partial class DialogoAccionBoton : Form
94
{
public string contenidoT
{
set;
get;
}
public DialogoAccionBoton()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.contenidoT = this.textBox1.Text;
this.Close();
}
private void DialogoAccionBoton_Load(object sender, EventArgs e)
{
this.textBox1.Text = contenidoT;
}
}
}
Codificacion Form1
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TesisEjemplo1
{
public partial class Form1 : Form
{
#region "declaracion de variable"
bool cambiaTexto = true;
int posMouseFormX, posMouseFormY;
int posMouseBotonX, posMouseBotonY;
int posActBotonX, posActBotonY;
bool botonPresionado = false;
bool cambiaIcono = false;
string nombreIconoDefecto = "IconApp.png";
int indiceSeleccionado = -1;
Panel pnlSeleccionado = new Panel();
95
ArrayList arreglo = new ArrayList();
#region variableFormularioManipulacion
string ls_DireccionArchivoJava = "";
public Color _Color
{
set;
get;
}
public string _DirectorioJava
{
set
{
this.ls_DireccionArchivoJava = value;
}
get
{
return this.ls_DireccionArchivoJava;
}
}
string ls_NombreArchivoJava = "";
public string _NombreJava
{
set
{
this.ls_NombreArchivoJava = value;
}
get
{
return this.ls_NombreArchivoJava;
}
}
public string nombreImagenFondo
{
set;
get;
}
#endregion
#region variables formulario
public string nombreIcono
{
set
{
this.cambiaIcono = true;
this.nombreIconoDefecto = value;
}
get
{
return this.nombreIconoDefecto;
}
}
#endregion
#endregion
public Form1()
{
InitializeComponent();
96
}
/////////////////////////////////////////////////////////////////////////////
#region
#region "evento de accion click"
// Result of the event click Button, get the text of button and find record
private void ClickButton(Object sender, System.EventArgs e)
{
Panel btn = (Panel)sender;
string strFind = btn.Text + "";
///string strSql = "SELECT * FROM Phone WHERE [Name] LIKE " +
/// "'" + strFind + "'" + " Order by Name";
///FindAnyName(strSql); //using (DataReader) to find records
MessageBox.Show(strFind);
}
#endregion
#region "eventos movimiento"
private void moverBoton(Panel botonAccion)
{
botonAccion.Location = new System.Drawing.Point(posMouseFormX - posMouseBotonX,
posMouseFormY - posMouseBotonY);
posActBotonX = botonAccion.Location.X;
posActBotonY = botonAccion.Location.Y;
}
private void Form_MouseMove(object sender, MouseEventArgs e)
{
posMouseFormX = e.Location.X;
posMouseFormY = e.Location.Y;
}
private void btnMover_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button.Equals(MouseButtons.Left))
{
Panel btn = (Panel)sender;
posMouseFormX = posActBotonX + e.Location.X;
posMouseFormY = posActBotonY + e.Location.Y;
if (botonPresionado) moverBoton(btn);
}
}
private void btnMover_MouseDown(object sender, MouseEventArgs e)
{
Panel pnl = (Panel)sender;
for (int i = 0; i < arreglo.Count; i++)
{
Panel pnlIndice = (Panel)arreglo[i];
if (pnl.Equals(pnlIndice))
{
pnlIndice.BorderStyle = BorderStyle.FixedSingle;
indiceSeleccionado = i;
pnlSeleccionado = pnlIndice;
97
llenaPropiedades((object)pnl);
}
else
{
pnlIndice.BorderStyle = BorderStyle.None;
}
}
if (e.Button.Equals(MouseButtons.Left))
{
posMouseBotonX = e.Location.X;
posMouseBotonY = e.Location.Y;
botonPresionado = true;
}
}
private void btnMover_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button.Equals(MouseButtons.Left))
{
botonPresionado = false;
}
}
#endregion
int mostrar = 0;
private void Form1_Load(object sender, EventArgs e)
{
Presentacion p = new Presentacion();
p.Show();
this.Visible = false;
this.Hide();
this.cmbTipoFondo.SelectedIndex = 0;
this.pnlSeleccionarColor.Visible = false;
this.pnlBuscarImgFondo.Visible = false;
crearDirectorios();
this.cmbTipoFondo.SelectedIndex = 0;
}
#region creacion de solucion
public void generasolucion(string pathInput, string pathOutput, string nombreApp)
{
try
{
string iconoaplicacion = "";
#region crea directorio solucion
///de no existeir la ruta de solucion se la crea
if (System.IO.Directory.Exists(pathOutput))
{
System.IO.Directory.Delete(pathOutput,true);
}
System.IO.Directory.CreateDirectory(pathOutput);
#endregion
#region crear directorio para archivo java
string rutaPaquetes = "", contenidoArchivoJava = "";
98
System.IO.StreamReader archivoclassLectura = new System.IO.StreamReader(pathInput + "\\" +
"src" + "\\" + "Clase1.java");
while (!archivoclassLectura.EndOfStream)
{
contenidoArchivoJava = archivoclassLectura.ReadLine();
if (contenidoArchivoJava.Replace(" ", "") != "")
{
if (rutaPaquetes == "")
{
if (contenidoArchivoJava.Substring(0, 7) == "package")
{
rutaPaquetes = contenidoArchivoJava.Substring(7, contenidoArchivoJava.Length 7).Replace(";", "").Replace(".", "\\").Replace(" ", "");
if (!System.IO.Directory.Exists(pathOutput + "\\src\\" + rutaPaquetes))
{
System.IO.Directory.CreateDirectory(pathOutput + "\\src\\" + rutaPaquetes);
}
}
}
}
}
#endregion
#region copiar archivos y carpetas a la solucion
System.IO.File.Copy(pathInput + "\\" + "src\\Clase1.java", pathOutput + "\\src\\" + rutaPaquetes +
"\\Clase1.java", true);
if (!System.IO.Directory.Exists(""))
{
System.IO.Directory.CreateDirectory(pathOutput + "\\" + ".preprocessed");
}
if (!System.IO.Directory.Exists(pathOutput + "\\.settings"))
{
System.IO.Directory.CreateDirectory(pathOutput + "\\.settings");
}
System.IO.File.Copy("C:\\FuentesDesarrolladosTHWPR\\Plantillas\\.settings\\org.eclipse.jdt.core.prefs",
pathOutput + "\\.settings\\org.eclipse.jdt.core.prefs", true);
if (!System.IO.Directory.Exists(pathOutput + "\\res\\img"))
{
System.IO.Directory.CreateDirectory(pathOutput + "\\res\\img");
}
string[] archivosIconos = System.IO.Directory.GetFiles(pathInput + "\\res\\img");
string dirimg="", rchimg="";
for (int i = 0; i < archivosIconos.Length; i++)
{
separaDirArchivo(archivosIconos[i], ref dirimg, ref rchimg);
System.IO.File.Copy(pathInput + "\\res\\img\\" + rchimg, pathOutput + "\\res\\img\\" + rchimg,
true);
iconoaplicacion = rchimg;
}
string[] archivosImagenes = System.IO.Directory.GetFiles(pathInput + "\\res");
for (int i = 0; i < archivosImagenes.Length; i++)
{
if (archivosImagenes[i] != "img")
{
separaDirArchivo(archivosImagenes[i], ref dirimg, ref rchimg);
System.IO.File.Copy(pathInput + "\\res\\" + rchimg, pathOutput + "\\res\\" + rchimg, true);
99
}
}
System.IO.File.Copy("C:\\FuentesDesarrolladosTHWPR\\Plantillas\\.classpath", pathOutput +
"\\.classpath", true);
System.IO.StreamReader archivoproyectFile = new
System.IO.StreamReader("C:\\FuentesDesarrolladosTHWPR\\Plantillas\\.project");
string contenidoArchivoproyect = "";
while (!archivoproyectFile.EndOfStream)
{
contenidoArchivoproyect = contenidoArchivoproyect +
archivoproyectFile.ReadLine().Replace("[[NOMBREAPP]]", nombreApp) + "\n";
}
//contenidoArchivoproyect.Replace("[[NOMBREAPP]]", nombreApp);
System.IO.StreamWriter archivoProyectFinal = new System.IO.StreamWriter(pathOutput +
"\\.project", true);
archivoProyectFinal.WriteLine(contenidoArchivoproyect);
archivoProyectFinal.Close();
System.IO.StreamReader archivoDescriptorFile = new
System.IO.StreamReader("C:\\FuentesDesarrolladosTHWPR\\Plantillas\\BlackBerry_App_Descriptor.xml")
;
string contenidoArchivoDescriptor = "";
while (!archivoDescriptorFile.EndOfStream)
{
contenidoArchivoDescriptor = contenidoArchivoDescriptor +
archivoDescriptorFile.ReadLine().Replace("[[ICONOAPP]]",
this.txtIconoSolucionApp.Text).Replace("[[NOMBREAPP]]", nombreApp) + "\n";
}
//contenidoArchivoproyect.Replace("[[ICONOAPP]]", iconoaplicacion);
//contenidoArchivoproyect.Replace("[[NOMBREAPP]]", nombreApp);
System.IO.StreamWriter archivoDescriptortFinal = new System.IO.StreamWriter(pathOutput +
"\\BlackBerry_App_Descriptor.xml", true);
archivoDescriptortFinal.WriteLine(contenidoArchivoDescriptor);
archivoDescriptortFinal.Close();
MessageBox.Show("Se Genero la Solucion en la Siguiente Ruta:" + pathOutput, "Generacion
Exitosa", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
#endregion
}
catch (Exception ex)
{
MessageBox.Show("Error de Generacion " + ex.Message,"Error de
Solucion",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
#endregion
//private void button1_Click(object sender, EventArgs e)
//{
// string resultadoFinal = "";
// for (int i = 0; i < arreglo.Count; i++)
// {
//
Panel btn = (Panel)arreglo[i];
//
resultadoFinal = resultadoFinal + "Boton " + btn.Name + i.ToString() + "::: pos X = " +
btn.Location.X.ToString() + " pos Y = " + btn.Location.Y.ToString() + "\n";
// }
100
// this.txtResultadoMovimiento.Text = resultadoFinal;
//}
private void txtResultadoMovimiento_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click_1(object sender, EventArgs e)
{
string resultadoFinal = "";
for (int i = 0; i < arreglo.Count; i++)
{
Panel btn = (Panel)arreglo[i];
resultadoFinal = resultadoFinal + "Boton " + btn.Name + i.ToString() + "::: pos X = " +
btn.Location.X.ToString() + " pos Y = " + btn.Location.Y.ToString() + "\n";
}
this.txtResultadoMovimiento.Text = resultadoFinal;
}
private void aumentaPanel(System.Windows.Forms.Panel panel , int ancho ,int alto )
{
int posX=0,posY=0;
///------buscaPosicionUltmoObj(ref posX, ref posY);
ObjetoBase bj = (ObjetoBase)panel;
if(bj._TipoControl != "BROWSER" && bj._TipoControl != "MAPA"){
panel.Width = ancho;
panel.Height = alto;
///panel.Width = 500;
//panel.Height = 400;
panel.BorderStyle = BorderStyle.FixedSingle;
//panel.Left = 1;
//panel.Top = 1;
panel.Left = posX;
panel.Top = posY;
panel1.Controls.Add(panel);
///panel.Text = ((char)(i + 65)).ToString();
//boton.Click += new System.EventHandler(ClickButton);
panel.MouseMove += new MouseEventHandler(btnMover_MouseMove);
panel.MouseDown += new MouseEventHandler(btnMover_MouseDown);
panel.MouseUp += new MouseEventHandler(btnMover_MouseUp);
this.MouseMove += new MouseEventHandler(Form_MouseMove);
panel.ContextMenuStrip = mnuClickDerecho;
arreglo.Add(panel);
}
else
{
bj._ancho = this.panel1.Width;
bj._alto = this.panel1.Height;
panel.Top = 0;
panel.Left = 0;
panel.Width = this.panel1.Width;
panel.Height = this.panel1.Height;
panel1.Controls.Add(panel);
panel.ContextMenuStrip = mnuClickDerecho;
arreglo.Add(panel);
101
}
}
//private void button3_Click(object sender, EventArgs e)
//{
// if (indiceSeleccionado > -1)
// {
//
arreglo.RemoveAt(indiceSeleccionado);
//
pnlSeleccionado.Visible = false;
//
indiceSeleccionado = -1;
// }
//}
private void mnuClickDerecho_Opening(object sender, CancelEventArgs e)
{
}
private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
private void menuStrip1_ItemClicked_1(object sender, ToolStripItemClickedEventArgs e)
{
arreglo.RemoveAt(indiceSeleccionado);
pnlSeleccionado.Visible = false;
indiceSeleccionado = -1;
}
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
}
#endregion
public void AsignaNombre()
{
if (arreglo.Count >= 1)
{
ObjetoBase objeto = (ObjetoBase)arreglo[arreglo.Count - 1];
string tipo = objeto._TipoControl;
string nombre ="";
if(tipo == "ETIQUETA"){
nombre = "Etiqueta_";
}
if (tipo == "RICHTEXTBOX")
{
nombre = "RichTextBox_";
}
if(tipo == "CAJATEXTO"){
nombre = "CajaTexto_";
}
if (tipo == "BOTON")
{
nombre = "Boton_";
102
}
if (tipo == "PASSWORD")
{
nombre = "Password_";
}
if (tipo == "EMAIL")
{
nombre = "Email_";
}
if (tipo == "TEXTOAUTOCOMPLETAR")
{
nombre = "TxtAutoCompleta_";
}
if (tipo == "CAJATEXTOAUTOCORREGIR")
{
nombre = "TxtAutoCorregir_";
}
if (tipo == "TEXTOAUTOCOMPLETAR_")
{
nombre = "TxtCompletar_";
}
if (tipo == "CHECKBOX")
{
nombre = "CheckBox_";
}
if (tipo == "COMBOBOX")
{
nombre = "ComboBox_";
}
if (tipo == "COMBOBOXNUMERICO")
{
nombre = "ComboBoxNum_";
}
if (tipo == "CAMPOFECHA")
{
nombre = "CampoFecha_";
}
if (tipo == "OPCION")
{
nombre = "Opcion_";
}
if (tipo == "IMAGEN")
{
nombre = "Imagen_";
}
if (tipo == "BROWSER")
{
nombre = "Browser_";
}
if (tipo == "MAPA")
{
nombre = "Mapa_";
}
int indiceObjeto = 1;
bool repetido=false;
do
{
103
for (int i = 0; i < arreglo.Count; i++)
{
ObjetoBase bs = (ObjetoBase)arreglo[i];
if (nombre + indiceObjeto.ToString() == bs._Nombrecontrol)
{
indiceObjeto++;
repetido = true;
}
else
{
repetido = false;
}
}
} while (repetido);
nombre = nombre + indiceObjeto;
if (tipo == "ETIQUETA")
{
PanelEtiqueta pe = (PanelEtiqueta)arreglo[arreglo.Count - 1];
pe._Nombrecontrol = nombre;
}
if (tipo == "RICHTEXTBOX")
{
PanelRichTextBox prtb = (PanelRichTextBox)arreglo[arreglo.Count - 1];
prtb._Nombrecontrol = nombre;
}
if (tipo == "CAJATEXTO")
{
PanelCajatexto pct = (PanelCajatexto)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "PASSWORD")
{
PanelPassword pct = (PanelPassword)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "EMAIL")
{
PanelEmail pct = (PanelEmail)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "TEXTOAUTOCOMPLETAR")
{
PanelTextoAutocompletar pct = (PanelTextoAutocompletar)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "CAJATEXTOAUTOCORREGIR")
{
PanelTextoAutocorregir pct = (PanelTextoAutocorregir)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "TEXTOAUTOCOMPLETAR_")
{
PanelAutoCompletar pct = (PanelAutoCompletar)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "CHECKBOX")
104
{
PanelCheckBox pct = (PanelCheckBox)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "COMBOBOX")
{
PanelComboBox pct = (PanelComboBox)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "COMBOBOXNUMERICO")
{
PanelComboBoxNumerico pct = (PanelComboBoxNumerico)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "CAMPOFECHA")
{
PanelCampoFecha pct = (PanelCampoFecha)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "OPCION")
{
PanelCampoOpcion pct = (PanelCampoOpcion)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "BOTON")
{
PanelBoton pct = (PanelBoton)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "IMAGEN")
{
PanelCampoImagen pct = (PanelCampoImagen)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "BROWSER")
{
PanelBrowserField pct = (PanelBrowserField)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
if (tipo == "MAPA")
{
PanelCamposMapa pct = (PanelCamposMapa)arreglo[arreglo.Count - 1];
pct._Nombrecontrol = nombre;
}
}
}
public void buscaPosicionUltmoObj(ref int posX, ref int posY)
{
if (arreglo.Count < 1)
{
posY = 0;
posX = 0;
}
else
{
for (int i = 0; i < arreglo.Count; i++)
105
{
ObjetoBase obj = (ObjetoBase)arreglo[i];
if (posY < obj._posY)
{
posY = obj._posY;
}
}
posY += 20;
}
}
public string retornaTipoSeleccionado()
{
ObjetoBase obj = (ObjetoBase)arreglo[indiceSeleccionado];
return obj._TipoControl;
}
#region "se encarga de la generacion de los codigos java para RIM"
public void generaCodigoJava()
{
try
{
if (arreglo.Count > 0)
{
string nombreGrupos = "";
string contenidoArchivo =
"package miPaquete;\n" +
"import net.rim.device.api.system.Bitmap;\n" +
"import net.rim.device.api.ui.Color;\n" +
"import net.rim.device.api.ui.Font;\n" +
"import net.rim.device.api.ui.FontFamily;\n" +
"import net.rim.device.api.ui.Ui;\n" +
"import net.rim.device.api.ui.Graphics;\n" +
"import net.rim.device.api.ui.UiApplication;\n" +
"import net.rim.device.api.ui.decor.Background;\n" +
"import net.rim.device.api.ui.decor.BackgroundFactory;\n" +
"import net.rim.device.api.ui.container.AbsoluteFieldManager;\n" +
"import net.rim.device.api.collection.util.BasicFilteredList;\n" +
"import net.rim.device.api.ui.component.StandardTitleBar;\n" +
"import net.rim.device.api.ui.container.MainScreen;\n\n\n" +
"\n\n" +
"import java.util.Vector;\n\n" +
"import net.rim.device.api.ui.Field;\n" +
"import net.rim.device.api.ui.Manager;\n" +
"import net.rim.device.api.ui.XYPoint;\n\n\n" +
"public class Clase1 extends net.rim.device.api.ui.UiApplication{\n" +
" public static void main(String[] args)\n" +
" {\n" +
"
Clase1 theApp = new Clase1();\n" +
"
theApp.enterEventDispatcher();\n" +
" }\n" +
" public Clase1()\n" +
" {\n" +
"
pushScreen(new MyScreen());\n" +
" }\n" +
"}\n" +
106
"final class MyScreen extends MainScreen\n" +
"{\n" +
" public MyScreen()\n" +
" {\n" +
"
super( net.rim.device.api.ui.container.FullScreen.DEFAULT_CLOSE |
net.rim.device.api.ui.container.FullScreen.DEFAULT_MENU );\n" +
"
StandardTitleBar myTitleBar = new StandardTitleBar()\n" +
" .addIcon(\"" +
((this.txtImagenIcono.Text!="")?this.txtImagenIcono.Text:nombreIconoDefecto).ToString() + "\")\n" +
" .addTitle(\"" + this.txtTituloPantalla.Text + "\")\n";
if(chkReloj.Checked)
{
contenidoArchivo = contenidoArchivo + " .addClock()\n" ;
}
if(chkNotificaciones.Checked)
{
contenidoArchivo = contenidoArchivo + " .addNotifications()\n";
}
if (chkSenal.Checked)
{
contenidoArchivo = contenidoArchivo + " .addSignalIndicator()\n";
}
contenidoArchivo = contenidoArchivo + ";\n" +
"
myTitleBar.setPropertyValue(StandardTitleBar.PROPERTY_BATTERY_VISIBILITY,\n" +
" StandardTitleBar.BATTERY_VISIBLE_LOW_OR_CHARGING);\n" +
" setTitleBar(myTitleBar);\n" +
" ControlLibreFieldManager manejador1 = new ControlLibreFieldManager();\n";
if (this.cmbTipoFondo.Items[this.cmbTipoFondo.SelectedIndex].ToString() == "IMAGEN")
{
contenidoArchivo = contenidoArchivo +
"
Bitmap bitmapImage = Bitmap.getBitmapResource(\"" + nombreImagenFondo +
"\");\n" +
"
getMainManager().setBackground(BackgroundFactory.createBitmapBackground(bitmapImage,0, 0,
Background.REPEAT_SCALE_TO_FIT));\n";
}
for (int i = 0; i < arreglo.Count; i++)
{
ObjetoBase obj = (ObjetoBase)arreglo[i];
#region "generacion de etiquetas"
if (obj._TipoControl == "ETIQUETA")
{
PanelEtiqueta pe = (PanelEtiqueta)arreglo[i];
if (!pe.poseeColorfondo && !pe.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.LabelField " + pe._Nombrecontrol + "= new
net.rim.device.api.ui.component.LabelField(\"" + pe._Texto.Replace(Encoding.ASCII.GetString(new byte[]
{ (byte)13 }), "").Replace(Encoding.ASCII.GetString(new byte[] { (byte)10 }), "") + "\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.LabelField " + pe._Nombrecontrol + " = new
107
net.rim.device.api.ui.component.LabelField(\"" + pe._Texto.Replace(Encoding.ASCII.GetString(new byte[]
{ (byte)13 }), "").Replace(Encoding.ASCII.GetString(new byte[] { (byte)10 }), "") + "\"){\n" +
"
public void paint(Graphics g){\n";
if (pe.poseeColorfondo)
{
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color." +
pe.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
}
if(pe.poseeColorTextop){
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
pe.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
"
}\n" +
"
};\n";
}
if (pe.lb_poseeEstilo || pe.lb_poseeOtraFamiliaTexto || pe.lb_otrotamanioTexto)
{
contenidoArchivo = contenidoArchivo +
"
try\n" +
"
{\n" +
"
Font f = " + pe._Nombrecontrol + ".getFont();\n";
if (pe.lb_poseeOtraFamiliaTexto)
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily =
FontFamily.forName(\"" + pe._NombreFamiliaTexto + "\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily = " +
pe._Nombrecontrol + ".getFont().getFontFamily();\n";
}
String textoPlano = (pe.lb_poseeEstilo == true) ? pe._NombreEstiloTexto.ToString() :
"PLAIN";
string tamanio = (pe.lb_otrotamanioTexto == true) ? pe._TamanioTexto.ToString() :
"10";
contenidoArchivo = contenidoArchivo + "
Font myFont =
fontFamily.getFont(" + pe._Nombrecontrol + ".getFont().getLeading(), " + pe._Nombrecontrol +
".getFont().getHeight()).derive(Font." + textoPlano + ", " + tamanio + ", Ui.UNITS_pt);\n";
contenidoArchivo = contenidoArchivo + "
" + pe._Nombrecontrol +
".setFont(myFont);\n";
contenidoArchivo = contenidoArchivo + "
}\n" +
"
catch(Exception ex)\n" +
"
{\n" +
"
}\n";
}
contenidoArchivo = contenidoArchivo + "
manejador1.add(" + pe._Nombrecontrol +
"," + (pe._posX * 2).ToString() + "," + (pe._posY * 2).ToString() + ");\n";
//"
this.add(" + pe._Nombrecontrol + ");\n";
}
#endregion
#region "generacion de campo de solo lectura"
108
if (obj._TipoControl == "RICHTEXTBOX")
{
PanelRichTextBox prt = (PanelRichTextBox)arreglo[i];
if (!prt.poseeColorfondo && !prt.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.RichTextField " + prt._Nombrecontrol + "= new
net.rim.device.api.ui.component.RichTextField(\"" + prt._Texto.Replace(Encoding.ASCII.GetString(new
byte[] { (byte)13 }), "\\n").Replace(Encoding.ASCII.GetString(new byte[] { (byte)10 }), "") + "\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.RichTextField " + prt._Nombrecontrol + " = new
net.rim.device.api.ui.component.RichTextField(\"" + prt._Texto.Replace(Encoding.ASCII.GetString(new
byte[] { (byte)10 }), "\\n").Replace(Encoding.ASCII.GetString(new byte[] { (byte)10 }), "") + "\"){\n" +
"
public void paint(Graphics g){\n";
if (prt.poseeColorfondo)
{
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color." +
prt.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
}
if (prt.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
prt.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
"
}\n" +
"
};\n";
}
if (prt.lb_poseeEstilo || prt.lb_poseeOtraFamiliaTexto || prt.lb_otrotamanioTexto)
{
contenidoArchivo = contenidoArchivo +
"
try\n" +
"
{\n" +
"
Font f = " + prt._Nombrecontrol + ".getFont();\n";
if (prt.lb_poseeOtraFamiliaTexto)
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily =
FontFamily.forName(\"" + prt._NombreFamiliaTexto + "\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily = " +
prt._Nombrecontrol + ".getFont().getFontFamily();\n";
}
String textoPlano = (prt.lb_poseeEstilo == true) ? prt._NombreEstiloTexto.ToString() :
"PLAIN";
string tamanio = (prt.lb_otrotamanioTexto == true) ? prt._TamanioTexto.ToString() :
"10";
109
contenidoArchivo = contenidoArchivo + "
Font myFont =
fontFamily.getFont(" + prt._Nombrecontrol + ".getFont().getLeading(), " + prt._Nombrecontrol +
".getFont().getHeight()).derive(Font." + textoPlano + ", " + tamanio + ", Ui.UNITS_pt);\n";
contenidoArchivo = contenidoArchivo + "
" + prt._Nombrecontrol +
".setFont(myFont);\n";
contenidoArchivo = contenidoArchivo + "
}\n" +
"
catch(Exception ex)\n" +
"
{\n" +
"
}\n";
}
contenidoArchivo = contenidoArchivo + "
manejador1.add(" + prt._Nombrecontrol +
"," + (prt._posX * 2).ToString() + "," + (prt._posY * 2).ToString() + ");\n";
//"
this.add(" + pe._Nombrecontrol + ");\n";
}
#endregion
#region "generacion de campos de textos"
if (obj._TipoControl == "CAJATEXTO")
{
PanelCajatexto pct = (PanelCajatexto)arreglo[i];
if (!pct.poseeColorfondo && !pct.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.TextField " + pct._Nombrecontrol + "= new
net.rim.device.api.ui.component.TextField();\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.TextField " + pct._Nombrecontrol + " = new
net.rim.device.api.ui.component.TextField(){\n" +
"
public void paint(Graphics g){\n";
if (pct.poseeColorfondo)
{
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color." +
pct.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
}
if (pct.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
pct.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
"
}\n" +
"
};\n";
}
if (pct.lb_poseeEstilo || pct.lb_poseeOtraFamiliaTexto || pct.lb_otrotamanioTexto)
{
contenidoArchivo = contenidoArchivo +
"
try\n" +
"
{\n" +
"
Font f = " + pct._Nombrecontrol + ".getFont();\n";
110
if (pct.lb_poseeOtraFamiliaTexto)
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily =
FontFamily.forName(\"" + pct._NombreFamiliaTexto + "\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily = " +
pct._Nombrecontrol + ".getFont().getFontFamily();\n";
}
String textoPlano = (pct.lb_poseeEstilo == true) ? pct._NombreEstiloTexto.ToString() :
"PLAIN";
string tamanio = (pct.lb_otrotamanioTexto == true) ? pct._TamanioTexto.ToString() :
"10";
contenidoArchivo = contenidoArchivo + "
Font myFont =
fontFamily.getFont(" + pct._Nombrecontrol + ".getFont().getLeading(), " + pct._Nombrecontrol +
".getFont().getHeight()).derive(Font." + textoPlano + ", " + tamanio + ", Ui.UNITS_pt);\n";
contenidoArchivo = contenidoArchivo + "
" + pct._Nombrecontrol +
".setFont(myFont);\n";
contenidoArchivo = contenidoArchivo + "
}\n" +
"
catch(Exception ex)\n" +
"
{\n" +
"
}\n";
}
contenidoArchivo = contenidoArchivo + "
manejador1.add(" + pct._Nombrecontrol +
"," + (pct._posX * 2).ToString() + "," + (pct._posY * 2).ToString() + ");\n";
}
#endregion
#region "generacion de campos de password"
if (obj._TipoControl == "PASSWORD")
{
/*PanelCajatexto pct = (PanelCajatexto)arreglo[i];
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.TextField
" + pct._Nombrecontrol + "= new net.rim.device.api.ui.component.TextField();\n" +
"
manejador1.add(" + pct._Nombrecontrol + "," + (pct._posX * 2).ToString() + "," +
(pct._posY * 2).ToString() + ");\n";*/
//"
this.add(" + pct._Nombrecontrol + ");\n";
PanelPassword ppwd = (PanelPassword)arreglo[i];
if (!ppwd.poseeColorfondo && !ppwd.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.PasswordEditField " + ppwd._Nombrecontrol + "= new
net.rim.device.api.ui.component.PasswordEditField();\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.PasswordEditField " + ppwd._Nombrecontrol + " = new
net.rim.device.api.ui.component.PasswordEditField(){\n" +
"
public void paint(Graphics g){\n";
if (ppwd.poseeColorfondo)
{
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color." +
ppwd.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
111
}
if (ppwd.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
ppwd.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
"
}\n" +
"
};\n";
}
contenidoArchivo = contenidoArchivo + "
manejador1.add(" + ppwd._Nombrecontrol
+ "," + (ppwd._posX * 2).ToString() + "," + (ppwd._posY * 2).ToString() + ");\n";
}
#endregion
#region "generacion de campos de correos"
if (obj._TipoControl == "EMAIL")
{
/*PanelCajatexto pct = (PanelCajatexto)arreglo[i];
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.TextField
" + pct._Nombrecontrol + "= new net.rim.device.api.ui.component.TextField();\n" +
"
manejador1.add(" + pct._Nombrecontrol + "," + (pct._posX * 2).ToString() + "," +
(pct._posY * 2).ToString() + ");\n";*/
//"
this.add(" + pct._Nombrecontrol + ");\n";
PanelEmail pemail = (PanelEmail)arreglo[i];
if (!pemail.poseeColorfondo && !pemail.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.EmailAddressEditField " + pemail._Nombrecontrol + "= new
net.rim.device.api.ui.component.EmailAddressEditField(\"\",\"\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.EmailAddressEditField " + pemail._Nombrecontrol + " = new
net.rim.device.api.ui.component.EmailAddressEditField(\"\",\"\"){\n" +
"
public void paint(Graphics g){\n";
if (pemail.poseeColorfondo)
{
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color." +
pemail.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
}
if (pemail.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
pemail.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
"
}\n" +
"
};\n";
}
if (pemail.lb_poseeEstilo || pemail.lb_poseeOtraFamiliaTexto ||
pemail.lb_otrotamanioTexto)
112
{
contenidoArchivo = contenidoArchivo +
"
try\n" +
"
{\n" +
"
Font f = " + pemail._Nombrecontrol + ".getFont();\n";
if (pemail.lb_poseeOtraFamiliaTexto)
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily =
FontFamily.forName(\"" + pemail._NombreFamiliaTexto + "\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily = " +
pemail._Nombrecontrol + ".getFont().getFontFamily();\n";
}
String textoPlano = (pemail.lb_poseeEstilo == true) ?
pemail._NombreEstiloTexto.ToString() : "PLAIN";
string tamanio = (pemail.lb_otrotamanioTexto == true) ?
pemail._TamanioTexto.ToString() : "10";
contenidoArchivo = contenidoArchivo + "
Font myFont =
fontFamily.getFont(" + pemail._Nombrecontrol + ".getFont().getLeading(), " + pemail._Nombrecontrol +
".getFont().getHeight()).derive(Font." + textoPlano + ", " + tamanio + ", Ui.UNITS_pt);\n";
contenidoArchivo = contenidoArchivo + "
" + pemail._Nombrecontrol +
".setFont(myFont);\n";
contenidoArchivo = contenidoArchivo + "
}\n" +
"
catch(Exception ex)\n" +
"
{\n" +
"
}\n";
}
contenidoArchivo = contenidoArchivo + "
manejador1.add(" +
pemail._Nombrecontrol + "," + (pemail._posX * 2).ToString() + "," + (pemail._posY * 2).ToString() +
");\n";
}
#endregion
#region "generacion de campos de textos busqueda"
if (obj._TipoControl == "TEXTOAUTOCOMPLETAR")
{
PanelTextoAutocompletar pct = (PanelTextoAutocompletar)arreglo[i];
contenidoArchivo = contenidoArchivo + "
BasicFilteredList filterList_" +
pct._Nombrecontrol + " = new BasicFilteredList();\n";
contenidoArchivo = contenidoArchivo + "
String[] varArray_" + pct._Nombrecontrol
+ " = {" ;
Array arregloTmp = pct.Contenido;
for (int j = 0; j < pct.Contenido.Length; j++)
{
contenidoArchivo = contenidoArchivo + "\"" + pct.Contenido.GetValue(j).ToString() +
"\",";
}
contenidoArchivo = contenidoArchivo.Substring(0, contenidoArchivo.Length - 1);
contenidoArchivo = contenidoArchivo + "};\n" +
"
filterList_" + pct._Nombrecontrol +
".addDataSet(1,varArray_" + pct._Nombrecontrol
+",\"days\",BasicFilteredList.COMPARISON_IGNORE_CASE);\n";
if (!pct.poseeColorfondo && !pct.poseeColorTextop)
113
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.AutoCompleteField " + pct._Nombrecontrol + "= new
net.rim.device.api.ui.component.AutoCompleteField(filterList_" + pct._Nombrecontrol +");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.AutoCompleteField " + pct._Nombrecontrol + " = new
net.rim.device.api.ui.component.AutoCompleteField(filterList_" + pct._Nombrecontrol +"){\n" +
"
public void paint(Graphics g){\n";
if (pct.poseeColorfondo)
{
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color." +
pct.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
}
if (pct.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
pct.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
"
}\n" +
"
};\n";
}
if (pct.lb_poseeEstilo || pct.lb_poseeOtraFamiliaTexto || pct.lb_otrotamanioTexto)
{
contenidoArchivo = contenidoArchivo +
"
try\n" +
"
{\n" +
"
Font f = " + pct._Nombrecontrol + ".getFont();\n";
if (pct.lb_poseeOtraFamiliaTexto)
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily =
FontFamily.forName(\"" + pct._NombreFamiliaTexto + "\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily = " +
pct._Nombrecontrol + ".getFont().getFontFamily();\n";
}
String textoPlano = (pct.lb_poseeEstilo == true) ? pct._NombreEstiloTexto.ToString() :
"PLAIN";
string tamanio = (pct.lb_otrotamanioTexto == true) ? pct._TamanioTexto.ToString() :
"10";
contenidoArchivo = contenidoArchivo + "
Font myFont =
fontFamily.getFont(" + pct._Nombrecontrol + ".getFont().getLeading(), " + pct._Nombrecontrol +
".getFont().getHeight()).derive(Font." + textoPlano + ", " + tamanio + ", Ui.UNITS_pt);\n";
contenidoArchivo = contenidoArchivo + "
" + pct._Nombrecontrol +
".setFont(myFont);\n";
contenidoArchivo = contenidoArchivo + "
}\n" +
"
catch(Exception ex)\n" +
114
"
"
{\n" +
}\n";
}
contenidoArchivo = contenidoArchivo + "
manejador1.add(" + pct._Nombrecontrol +
"," + (pct._posX * 2).ToString() + "," + (pct._posY * 2).ToString() + ");\n";
}
#endregion
#region "generacion de campos de textos autocorregir"
if (obj._TipoControl == "CAJATEXTOAUTOCORREGIR")
{
PanelTextoAutocorregir pct = (PanelTextoAutocorregir)arreglo[i];
if (!pct.poseeColorfondo && !pct.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.AutoTextEditField " + pct._Nombrecontrol + "= new
net.rim.device.api.ui.component.AutoTextEditField();\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.AutoTextEditField " + pct._Nombrecontrol + " = new
net.rim.device.api.ui.component.AutoTextEditField(){\n" +
"
public void paint(Graphics g){\n";
if (pct.poseeColorfondo)
{
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color." +
pct.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
}
if (pct.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
pct.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
"
}\n" +
"
};\n";
}
if (pct.lb_poseeEstilo || pct.lb_poseeOtraFamiliaTexto || pct.lb_otrotamanioTexto)
{
contenidoArchivo = contenidoArchivo +
"
try\n" +
"
{\n" +
"
Font f = " + pct._Nombrecontrol + ".getFont();\n";
if (pct.lb_poseeOtraFamiliaTexto)
{
contenidoArchivo = contenidoArchivo + "
FontFamily.forName(\"" + pct._NombreFamiliaTexto + "\");\n";
}
else
{
FontFamily fontFamily =
115
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily = " +
pct._Nombrecontrol + ".getFont().getFontFamily();\n";
}
String textoPlano = (pct.lb_poseeEstilo == true) ? pct._NombreEstiloTexto.ToString() :
"PLAIN";
string tamanio = (pct.lb_otrotamanioTexto == true) ? pct._TamanioTexto.ToString() :
"10";
contenidoArchivo = contenidoArchivo + "
Font myFont =
fontFamily.getFont(" + pct._Nombrecontrol + ".getFont().getLeading(), " + pct._Nombrecontrol +
".getFont().getHeight()).derive(Font." + textoPlano + ", " + tamanio + ", Ui.UNITS_pt);\n";
contenidoArchivo = contenidoArchivo + "
" + pct._Nombrecontrol +
".setFont(myFont);\n";
contenidoArchivo = contenidoArchivo + "
}\n" +
"
catch(Exception ex)\n" +
"
{\n" +
"
}\n";
}
contenidoArchivo = contenidoArchivo + "
manejador1.add(" + pct._Nombrecontrol +
"," + (pct._posX * 2).ToString() + "," + (pct._posY * 2).ToString() + ");\n";
}
#endregion
#region "generacion de campos de textos completar"
if (obj._TipoControl == "TEXTOAUTOCOMPLETAR_")
{
PanelAutoCompletar pct = (PanelAutoCompletar)arreglo[i];
if (!pct.poseeColorfondo && !pct.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.ActiveAutoTextEditField " + pct._Nombrecontrol + "= new
net.rim.device.api.ui.component.ActiveAutoTextEditField(\"\",\"\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.ActiveAutoTextEditField " + pct._Nombrecontrol + " = new
net.rim.device.api.ui.component.ActiveAutoTextEditField(\"\",\"\"){\n" +
"
public void paint(Graphics g){\n";
if (pct.poseeColorfondo)
{
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color." +
pct.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
}
if (pct.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
pct.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
"
}\n" +
"
};\n";
}
if (pct.lb_poseeEstilo || pct.lb_poseeOtraFamiliaTexto || pct.lb_otrotamanioTexto)
116
{
contenidoArchivo = contenidoArchivo +
"
try\n" +
"
{\n" +
"
Font f = " + pct._Nombrecontrol + ".getFont();\n";
if (pct.lb_poseeOtraFamiliaTexto)
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily =
FontFamily.forName(\"" + pct._NombreFamiliaTexto + "\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily = " +
pct._Nombrecontrol + ".getFont().getFontFamily();\n";
}
String textoPlano = (pct.lb_poseeEstilo == true) ? pct._NombreEstiloTexto.ToString() :
"PLAIN";
string tamanio = (pct.lb_otrotamanioTexto == true) ? pct._TamanioTexto.ToString() :
"10";
contenidoArchivo = contenidoArchivo + "
Font myFont =
fontFamily.getFont(" + pct._Nombrecontrol + ".getFont().getLeading(), " + pct._Nombrecontrol +
".getFont().getHeight()).derive(Font." + textoPlano + ", " + tamanio + ", Ui.UNITS_pt);\n";
contenidoArchivo = contenidoArchivo + "
" + pct._Nombrecontrol +
".setFont(myFont);\n";
contenidoArchivo = contenidoArchivo + "
}\n" +
"
catch(Exception ex)\n" +
"
{\n" +
"
}\n";
}
contenidoArchivo = contenidoArchivo + "
manejador1.add(" + pct._Nombrecontrol +
"," + (pct._posX * 2).ToString() + "," + (pct._posY * 2).ToString() + ");\n";
}
#endregion
#region "generacion de campo check box"
if (obj._TipoControl == "CHECKBOX")
{
PanelCheckBox pe = (PanelCheckBox)arreglo[i];
if (!pe.poseeColorfondo && !pe.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.CheckboxField " + pe._Nombrecontrol + "= new
net.rim.device.api.ui.component.CheckboxField(\"" + pe._Texto.Replace(Encoding.ASCII.GetString(new
byte[] { (byte)13 }), "").Replace(Encoding.ASCII.GetString(new byte[] { (byte)10 }), "") + "\",false);\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.CheckboxField " + pe._Nombrecontrol + " = new
net.rim.device.api.ui.component.CheckboxField(\"" + pe._Texto.Replace(Encoding.ASCII.GetString(new
byte[] { (byte)13 }), "").Replace(Encoding.ASCII.GetString(new byte[] { (byte)10 }), "") + "\",false){\n" +
"
public void paint(Graphics g){\n";
if (pe.poseeColorfondo)
{
117
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color." +
pe.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
}
if (pe.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
pe.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
"
}\n" +
"
};\n";
}
if (pe.lb_poseeEstilo || pe.lb_poseeOtraFamiliaTexto || pe.lb_otrotamanioTexto)
{
contenidoArchivo = contenidoArchivo +
"
try\n" +
"
{\n" +
"
Font f = " + pe._Nombrecontrol + ".getFont();\n";
if (pe.lb_poseeOtraFamiliaTexto)
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily =
FontFamily.forName(\"" + pe._NombreFamiliaTexto + "\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily = " +
pe._Nombrecontrol + ".getFont().getFontFamily();\n";
}
String textoPlano = (pe.lb_poseeEstilo == true) ? pe._NombreEstiloTexto.ToString() :
"PLAIN";
string tamanio = (pe.lb_otrotamanioTexto == true) ? pe._TamanioTexto.ToString() :
"10";
contenidoArchivo = contenidoArchivo + "
Font myFont =
fontFamily.getFont(" + pe._Nombrecontrol + ".getFont().getLeading(), " + pe._Nombrecontrol +
".getFont().getHeight()).derive(Font." + textoPlano + ", " + tamanio + ", Ui.UNITS_pt);\n";
contenidoArchivo = contenidoArchivo + "
" + pe._Nombrecontrol +
".setFont(myFont);\n";
contenidoArchivo = contenidoArchivo + "
}\n" +
"
catch(Exception ex)\n" +
"
{\n" +
"
}\n";
}
contenidoArchivo = contenidoArchivo +
"
net.rim.device.api.ui.container.GridFieldManager miGrid_" + pe._Nombrecontrol
+ " = new net.rim.device.api.ui.container.GridFieldManager(1,1,0);\n" +
"
miGrid_" + pe._Nombrecontrol + ".add(" + pe._Nombrecontrol + ");\n" +
"
manejador1.add(miGrid_" + pe._Nombrecontrol + "," + (pe._posX * 2).ToString()
+ "," + (pe._posY * 2).ToString() + ");\n";
//"
this.add(" + pe._Nombrecontrol + ");\n";
}
#endregion
#region "generacion de campo Combo Box"
118
if (obj._TipoControl == "COMBOBOX")
{
PanelComboBox pct = (PanelComboBox)arreglo[i];
contenidoArchivo = contenidoArchivo + "
String[] varArray_" + pct._Nombrecontrol
+ " = {";
Array arregloTmp = pct.Contenido;
for (int j = 0; j < pct.Contenido.Length; j++)
{
contenidoArchivo = contenidoArchivo + "\"" + pct.Contenido.GetValue(j).ToString() +
"\",";
}
contenidoArchivo = contenidoArchivo.Substring(0, contenidoArchivo.Length - 1) +
"};\n";
if (!pct.poseeColorfondo && !pct.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.ObjectChoiceField " + pct._Nombrecontrol + "= new
net.rim.device.api.ui.component.ObjectChoiceField(\"\",varArray_" + pct._Nombrecontrol + ",0);\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.ObjectChoiceField " + pct._Nombrecontrol + " = new
net.rim.device.api.ui.component.ObjectChoiceField(\"\",varArray_" + pct._Nombrecontrol + ",0){\n" +
"
public void paint(Graphics g){\n";
if (pct.poseeColorfondo)
{
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color." +
pct.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
}
if (pct.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
pct.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
"
}\n" +
"
};\n";
}
if (pct.lb_poseeEstilo || pct.lb_poseeOtraFamiliaTexto || pct.lb_otrotamanioTexto)
{
contenidoArchivo = contenidoArchivo +
"
try\n" +
"
{\n" +
"
Font f = " + pct._Nombrecontrol + ".getFont();\n";
if (pct.lb_poseeOtraFamiliaTexto)
{
contenidoArchivo = contenidoArchivo + "
FontFamily.forName(\"" + pct._NombreFamiliaTexto + "\");\n";
}
else
{
FontFamily fontFamily =
119
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily = " +
pct._Nombrecontrol + ".getFont().getFontFamily();\n";
}
String textoPlano = (pct.lb_poseeEstilo == true) ? pct._NombreEstiloTexto.ToString() :
"PLAIN";
string tamanio = (pct.lb_otrotamanioTexto == true) ? pct._TamanioTexto.ToString() :
"10";
contenidoArchivo = contenidoArchivo + "
Font myFont =
fontFamily.getFont(" + pct._Nombrecontrol + ".getFont().getLeading(), " + pct._Nombrecontrol +
".getFont().getHeight()).derive(Font." + textoPlano + ", " + tamanio + ", Ui.UNITS_pt);\n";
contenidoArchivo = contenidoArchivo + "
" + pct._Nombrecontrol +
".setFont(myFont);\n";
contenidoArchivo = contenidoArchivo + "
}\n" +
"
catch(Exception ex)\n" +
"
{\n" +
"
}\n";
}
contenidoArchivo = contenidoArchivo +
"
net.rim.device.api.ui.container.GridFieldManager miGrid_" + pct._Nombrecontrol
+ " = new net.rim.device.api.ui.container.GridFieldManager(1,1,0);\n" +
"
miGrid_" + pct._Nombrecontrol + ".add(" + pct._Nombrecontrol + ");\n" +
"
manejador1.add(miGrid_" + pct._Nombrecontrol + "," + (pct._posX *
2).ToString() + "," + (pct._posY * 2).ToString() + ");\n";
}
#endregion
#region "generacion de campos Combo Box Numerico"
if (obj._TipoControl == "COMBOBOXNUMERICO")
{
PanelComboBoxNumerico pct = (PanelComboBoxNumerico)arreglo[i];
if (!pct.poseeColorfondo && !pct.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.NumericChoiceField " + pct._Nombrecontrol + "= new
net.rim.device.api.ui.component.NumericChoiceField(\"\"," + pct.indiceInicio + "," + pct.indiceFinal + "," +
pct.incremento + "," + pct.comienzo + ");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.NumericChoiceField " + pct._Nombrecontrol + " = new
net.rim.device.api.ui.component.NumericChoiceField(\"\"," + pct.indiceInicio + "," + pct.indiceFinal + "," +
pct.incremento + "," + pct.comienzo + "){\n" +
"
public void paint(Graphics g){\n";
if (pct.poseeColorfondo)
{
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color." +
pct.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
}
if (pct.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
pct.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
120
"
"
}\n" +
};\n";
}
if (pct.lb_poseeEstilo || pct.lb_poseeOtraFamiliaTexto || pct.lb_otrotamanioTexto)
{
contenidoArchivo = contenidoArchivo +
"
try\n" +
"
{\n" +
"
Font f = " + pct._Nombrecontrol + ".getFont();\n";
if (pct.lb_poseeOtraFamiliaTexto)
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily =
FontFamily.forName(\"" + pct._NombreFamiliaTexto + "\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily = " +
pct._Nombrecontrol + ".getFont().getFontFamily();\n";
}
String textoPlano = (pct.lb_poseeEstilo == true) ? pct._NombreEstiloTexto.ToString() :
"PLAIN";
string tamanio = (pct.lb_otrotamanioTexto == true) ? pct._TamanioTexto.ToString() :
"10";
contenidoArchivo = contenidoArchivo + "
Font myFont =
fontFamily.getFont(" + pct._Nombrecontrol + ".getFont().getLeading(), " + pct._Nombrecontrol +
".getFont().getHeight()).derive(Font." + textoPlano + ", " + tamanio + ", Ui.UNITS_pt);\n";
contenidoArchivo = contenidoArchivo + "
" + pct._Nombrecontrol +
".setFont(myFont);\n";
contenidoArchivo = contenidoArchivo + "
}\n" +
"
catch(Exception ex)\n" +
"
{\n" +
"
}\n";
}
contenidoArchivo = contenidoArchivo +
"
net.rim.device.api.ui.container.GridFieldManager miGrid_" + pct._Nombrecontrol
+ " = new net.rim.device.api.ui.container.GridFieldManager(1,1,0);\n" +
"
miGrid_" + pct._Nombrecontrol + ".add(" + pct._Nombrecontrol + ");\n" +
"
manejador1.add(miGrid_" + pct._Nombrecontrol + "," + (pct._posX *
2).ToString() + "," + (pct._posY * 2).ToString() + ");\n";
}
#endregion
#region "generacion de campos fechas"
if (obj._TipoControl == "CAMPOFECHA")
{
PanelCampoFecha pcf = (PanelCampoFecha)arreglo[i];
if (!pcf.poseeColorfondo && !pcf.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.DateField " + pcf._Nombrecontrol + "= new
net.rim.device.api.ui.component.DateField(\"\",System.currentTimeMillis(),net.rim.device.api.ui.component
.DateField.DATE_TIME);\n";
}
else
{
121
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.DateField " + pcf._Nombrecontrol + " = new
net.rim.device.api.ui.component.DateField(\"\",System.currentTimeMillis(),net.rim.device.api.ui.component
.DateField.DATE_TIME){\n" +
"
public void paint(Graphics g){\n";
if (pcf.poseeColorfondo)
{
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color." +
pcf.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
}
if (pcf.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
pcf.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
"
}\n" +
"
};\n";
}
if (pcf.lb_poseeEstilo || pcf.lb_poseeOtraFamiliaTexto || pcf.lb_otrotamanioTexto)
{
contenidoArchivo = contenidoArchivo +
"
try\n" +
"
{\n" +
"
Font f = " + pcf._Nombrecontrol + ".getFont();\n";
if (pcf.lb_poseeOtraFamiliaTexto)
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily =
FontFamily.forName(\"" + pcf._NombreFamiliaTexto + "\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily = " +
pcf._Nombrecontrol + ".getFont().getFontFamily();\n";
}
String textoPlano = (pcf.lb_poseeEstilo == true) ? pcf._NombreEstiloTexto.ToString() :
"PLAIN";
string tamanio = (pcf.lb_otrotamanioTexto == true) ? pcf._TamanioTexto.ToString() :
"10";
contenidoArchivo = contenidoArchivo + "
Font myFont =
fontFamily.getFont(" + pcf._Nombrecontrol + ".getFont().getLeading(), " + pcf._Nombrecontrol +
".getFont().getHeight()).derive(Font." + textoPlano + ", " + tamanio + ", Ui.UNITS_pt);\n";
contenidoArchivo = contenidoArchivo + "
" + pcf._Nombrecontrol +
".setFont(myFont);\n";
contenidoArchivo = contenidoArchivo + "
}\n" +
"
catch(Exception ex)\n" +
"
{\n" +
"
}\n";
}
contenidoArchivo = contenidoArchivo +
"
net.rim.device.api.ui.container.GridFieldManager miGrid_" +
pcf._Nombrecontrol + " = new net.rim.device.api.ui.container.GridFieldManager(1,1,0);\n" +
122
"
miGrid_" + pcf._Nombrecontrol + ".add(" + pcf._Nombrecontrol + ");\n" +
"
manejador1.add(miGrid_" + pcf._Nombrecontrol + "," + (pcf._posX *
2).ToString() + "," + (pcf._posY * 2).ToString() + ");\n";
}
#endregion
#region "generacion de campo opcion"
if (obj._TipoControl == "OPCION")
{
PanelCampoOpcion pe = (PanelCampoOpcion)arreglo[i];
int indicePerdido = nombreGrupos.IndexOf('|');
if (indicePerdido < 0)
{
nombreGrupos = nombreGrupos + pe.GrupoOpcion + "|";
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.RadioButtonGroup " + pe.GrupoOpcion + " = new
net.rim.device.api.ui.component.RadioButtonGroup();\n";
if (!pe.poseeColorfondo && !pe.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.RadioButtonField " + pe._Nombrecontrol + "= new
net.rim.device.api.ui.component.RadioButtonField(\"" + pe._Texto.Replace(Encoding.ASCII.GetString(new
byte[] { (byte)13 }), "").Replace(Encoding.ASCII.GetString(new byte[] { (byte)10 }), "") + "\"," +
pe.GrupoOpcion + ",false);\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.RadioButtonField " + pe._Nombrecontrol + " = new
net.rim.device.api.ui.component.RadioButtonField(\"" + pe._Texto.Replace(Encoding.ASCII.GetString(new
byte[] { (byte)13 }), "").Replace(Encoding.ASCII.GetString(new byte[] { (byte)10 }), "") + "\"," +
pe.GrupoOpcion + ",false){\n" +
"
public void paint(Graphics g){\n";
if (pe.poseeColorfondo)
{
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color."
+ pe.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
}
if (pe.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
pe.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
"
}\n" +
"
};\n";
}
}
else
{
if (!pe.poseeColorfondo && !pe.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.RadioButtonField " + pe._Nombrecontrol + "= new
net.rim.device.api.ui.component.RadioButtonField(\"" + pe._Texto.Replace(Encoding.ASCII.GetString(new
123
byte[] { (byte)13 }), "").Replace(Encoding.ASCII.GetString(new byte[] { (byte)10 }), "") + "\"," +
pe.GrupoOpcion + ",false);\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.RadioButtonField " + pe._Nombrecontrol + " = new
net.rim.device.api.ui.component.RadioButtonField(\"" + pe._Texto.Replace(Encoding.ASCII.GetString(new
byte[] { (byte)13 }), "").Replace(Encoding.ASCII.GetString(new byte[] { (byte)10 }), "") + "\"," +
pe.GrupoOpcion + ",false){\n" +
"
public void paint(Graphics g){\n";
if (pe.poseeColorfondo)
{
contenidoArchivo = contenidoArchivo + "
g.setBackgroundColor(Color."
+ pe.ColorFondo.Name.ToUpper() + ");\n" +
"
g.fillRect(0,0,getWidth(),getHeight());\n";
}
if (pe.poseeColorTextop)
{
contenidoArchivo = contenidoArchivo + "
g.setColor(Color." +
pe.ColorEtiqueta.Name.ToUpper() + ");\n";
}
contenidoArchivo = contenidoArchivo + "
g.clear();\n" +
"
super.paint(g);\n" +
"
}\n" +
"
};\n";
}
}
if (pe.lb_poseeEstilo || pe.lb_poseeOtraFamiliaTexto || pe.lb_otrotamanioTexto)
{
contenidoArchivo = contenidoArchivo +
"
try\n" +
"
{\n" +
"
Font f = " + pe._Nombrecontrol + ".getFont();\n";
if (pe.lb_poseeOtraFamiliaTexto)
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily =
FontFamily.forName(\"" + pe._NombreFamiliaTexto + "\");\n";
}
else
{
contenidoArchivo = contenidoArchivo + "
FontFamily fontFamily = " +
pe._Nombrecontrol + ".getFont().getFontFamily();\n";
}
String textoPlano = (pe.lb_poseeEstilo == true) ? pe._NombreEstiloTexto.ToString() :
"PLAIN";
string tamanio = (pe.lb_otrotamanioTexto == true) ? pe._TamanioTexto.ToString() :
"10";
contenidoArchivo = contenidoArchivo + "
Font myFont =
fontFamily.getFont(" + pe._Nombrecontrol + ".getFont().getLeading(), " + pe._Nombrecontrol +
".getFont().getHeight()).derive(Font." + textoPlano + ", " + tamanio + ", Ui.UNITS_pt);\n";
contenidoArchivo = contenidoArchivo + "
" + pe._Nombrecontrol +
".setFont(myFont);\n";
contenidoArchivo = contenidoArchivo + "
}\n" +
124
"
"
"
catch(Exception ex)\n" +
{\n" +
}\n";
}
contenidoArchivo = contenidoArchivo +
"
net.rim.device.api.ui.container.GridFieldManager miGrid_" + pe._Nombrecontrol
+ " = new net.rim.device.api.ui.container.GridFieldManager(1,1,0);\n" +
"
miGrid_" + pe._Nombrecontrol + ".add(" + pe._Nombrecontrol + ");\n" +
"
manejador1.add(miGrid_" + pe._Nombrecontrol + "," + (pe._posX * 2).ToString()
+ "," + (pe._posY * 2).ToString() + ");\n";
//"
this.add(" + pe._Nombrecontrol + ");\n";
}
#endregion
#region "Generacion de campo boton"
if (obj._TipoControl == "BOTON")
{
PanelBoton pbtn = (PanelBoton)arreglo[i];
contenidoArchivo = contenidoArchivo + "
net.rim.device.api.ui.component.ButtonField " + pbtn._Nombrecontrol + "= new
net.rim.device.api.ui.component.ButtonField(\"" + pbtn.TextoEtiqueta + "\");\n";
if (pbtn._AccionClick)
{
contenidoArchivo = contenidoArchivo + pbtn._FuncionClick;
}
contenidoArchivo = contenidoArchivo + "
manejador1.add(" + pbtn._Nombrecontrol
+ "," + (pbtn._posX * 2).ToString() + "," + (pbtn._posY * 2).ToString() + ");\n";
}
#endregion
#region "Generacion de campo imagen"
if (obj._TipoControl == "IMAGEN")
{
PanelCampoImagen pci = (PanelCampoImagen)arreglo[i];
contenidoArchivo = contenidoArchivo +
"
net.rim.device.api.system.Bitmap bitmap_" + pci._Nombrecontrol + " =
Bitmap.getBitmapResource(\"" + pci.NombreImagenVer + "\");\n" +
"
int scaledX_" + pci._Nombrecontrol + " = " + (pci._ancho*2).ToString() + ";\n" +
"
int scaledY_" + pci._Nombrecontrol + " = " + (pci._alto*2).ToString() + ";\n" +
"
Bitmap bitmapScaled_" + pci._Nombrecontrol + " = new
Bitmap(Bitmap.ROWWISE_32BIT_ARGB8888, scaledX_" + pci._Nombrecontrol + ", scaledY_" +
pci._Nombrecontrol + ");\n" +
"
bitmap_" + pci._Nombrecontrol + ".scaleInto(bitmapScaled_" +
pci._Nombrecontrol + ", Bitmap.FILTER_BILINEAR, Bitmap.SCALE_TO_FIT);\n" +
"
net.rim.device.api.ui.component.BitmapField " + pci._Nombrecontrol + "= new
net.rim.device.api.ui.component.BitmapField(bitmapScaled_" + pci._Nombrecontrol +
",Field.FOCUSABLE);\n" +
//contenidoArchivo = contenidoArchivo +
"
net.rim.device.api.ui.container.GridFieldManager miGrid_" + pci._Nombrecontrol
+ " = new net.rim.device.api.ui.container.GridFieldManager(1,1,0);\n" +
"
miGrid_" + pci._Nombrecontrol + ".add(" + pci._Nombrecontrol + ");\n" +
"
manejador1.add(miGrid_" + pci._Nombrecontrol + "," + (pci._posX *
2).ToString() + "," + (pci._posY * 2).ToString() + ");\n";
}
#endregion
#region "Generacion de campo Browser"
if (obj._TipoControl == "BROWSER")
{
125
PanelBrowserField pci = (PanelBrowserField)arreglo[i];
contenidoArchivo = contenidoArchivo +
" net.rim.device.api.browser.field2.BrowserFieldConfig myBrowserFieldConfig_" +
pci._Nombrecontrol + " = new net.rim.device.api.browser.field2.BrowserFieldConfig();\n" +
" myBrowserFieldConfig_" + pci._Nombrecontrol +
".setProperty(net.rim.device.api.browser.field2.BrowserFieldConfig.NAVIGATION_MODE,net.rim.device.
api.browser.field2.BrowserFieldConfig.NAVIGATION_MODE_POINTER);\n" +
" net.rim.device.api.browser.field2.BrowserField browserField_" +
pci._Nombrecontrol + " = new net.rim.device.api.browser.field2.BrowserField(myBrowserFieldConfig_" +
pci._Nombrecontrol + ");\n" +
" add(browserField_" + pci._Nombrecontrol + ");\n" +
" browserField_" + pci._Nombrecontrol + ".requestContent(\"" + pci.UrlVisitaInicial
+ "\");\n";
}
#endregion
#region "Generacion de campos mapas "
if (obj._TipoControl == "MAPA")
{
PanelCamposMapa kl = (PanelCamposMapa)arreglo[i];
contenidoArchivo = contenidoArchivo +
" net.rim.device.api.lbs.maps.ui.MapField map_" + kl._Nombrecontrol + " = new
net.rim.device.api.lbs.maps.ui.MapField();\n" +
" net.rim.device.api.lbs.maps.ui.MapAction action_" + kl._Nombrecontrol + " =
map_" + kl._Nombrecontrol + ".getAction();\n" +
" action_" + kl._Nombrecontrol + ".setCentreAndZoom(new
net.rim.device.api.lbs.maps.model.MapPoint(43.46518, -80.52237), 3);\n" +
" add(map_" + kl._Nombrecontrol + ");\n";
}
#endregion
}
contenidoArchivo = contenidoArchivo + "
this.add(manejador1);\n" +
" }\n" +
" protected boolean onSavePrompt()\n" +
" {\n" +
"
return true;\n" +
" }\n";
if(this.cmbTipoFondo.Items[this.cmbTipoFondo.SelectedIndex].ToString()=="COLOR")
{
contenidoArchivo = contenidoArchivo +
" protected void paint( Graphics graphics )\n" +
" {\n" +
"
graphics.setBackgroundColor( net.rim.device.api.ui.Color." +
this.txtColorSeleccionado.Text + " );\n" +
"
graphics.clear();\n" +
"
subpaint( graphics );\n" +
" }\n" ;
}
contenidoArchivo = contenidoArchivo +"}\n\n" + this.txtClaseManager.Text;
this.txtResultadoMovimiento.Text = contenidoArchivo;
}
else
{
MessageBox.Show("No se a diseñado ningun Objeto para la pantalla", "Sin Objetos",
MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
}
126
catch (Exception ex) {
MessageBox.Show("Ocurrio un error " + ex.Message, "Error ", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
#endregion
public void crearDirectorios()
{
try
{
int indiceProyecto = 1;
bool continua = true;
if (!Directory.Exists("C:\\FuentesDesarrolladosTHWPR"))
{
Directory.CreateDirectory("C:\\FuentesDesarrolladosTHWPR");
}
do
{
if (!Directory.Exists("C:\\FuentesDesarrolladosTHWPR\\Proyecto" +
indiceProyecto.ToString()))
{
Directory.CreateDirectory("C:\\FuentesDesarrolladosTHWPR\\Proyecto" +
indiceProyecto.ToString());
continua = false;
}
else
{
indiceProyecto++;
continua = true;
}
} while (continua);
if (!Directory.Exists("C:\\FuentesDesarrolladosTHWPR\\Proyecto" + indiceProyecto + "\\src"))
{
Directory.CreateDirectory("C:\\FuentesDesarrolladosTHWPR\\Proyecto" + indiceProyecto
+"\\src");
}
if (!Directory.Exists("C:\\FuentesDesarrolladosTHWPR\\Proyecto" + indiceProyecto +
"\\res\\img"))
{
Directory.CreateDirectory("C:\\FuentesDesarrolladosTHWPR\\Proyecto" + indiceProyecto +
"\\res\\img");
}
_DirectorioJava = "C:\\FuentesDesarrolladosTHWPR\\Proyecto" + indiceProyecto + "\\src";
#region Creacion de Plantillas
if (!System.IO.Directory.Exists("C:\\FuentesDesarrolladosTHWPR\\Plantillas"))
{
System.IO.Directory.CreateDirectory("C:\\FuentesDesarrolladosTHWPR\\Plantillas\\.preprossed");
System.IO.Directory.CreateDirectory("C:\\FuentesDesarrolladosTHWPR\\Plantillas\\.settings");
}
System.IO.File.Copy(Application.StartupPath.ToString() + "\\Plantillas\\.classpath",
"C:\\FuentesDesarrolladosTHWPR\\Plantillas\\.classpath", true);
127
System.IO.File.Copy(Application.StartupPath.ToString() +
"\\Plantillas\\BlackBerry_App_Descriptor.xml",
"C:\\FuentesDesarrolladosTHWPR\\Plantillas\\BlackBerry_App_Descriptor.xml", true);
System.IO.File.Copy(Application.StartupPath.ToString() + "\\Plantillas\\.project",
"C:\\FuentesDesarrolladosTHWPR\\Plantillas\\.project", true);
System.IO.File.Copy(Application.StartupPath.ToString() +
"\\Plantillas\\.settings\\org.eclipse.jdt.core.prefs",
"C:\\FuentesDesarrolladosTHWPR\\Plantillas\\.settings\\org.eclipse.jdt.core.prefs", true);
System.IO.File.Copy(Application.StartupPath.ToString() + "\\Plantillas\\IconApp.png",
"C:\\FuentesDesarrolladosTHWPR\\Plantillas\\IconApp.png", true);
#endregion
System.IO.File.Copy("C:\\FuentesDesarrolladosTHWPR\\Plantillas\\IconApp.png",
"C:\\FuentesDesarrolladosTHWPR\\Proyecto" + indiceProyecto + "\\res\\img\\IconApp.png", true);
this.txtNombreSolucion.Text = this.txtNombreSolucion.Text + indiceProyecto;
}
catch (Exception ex) {
MessageBox.Show("Se genero un Error al Crear Directorios " + ex.Message, "Error Creacion",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
public void creaArchivoJava()
{
try
{
//crearDirectorios();
_NombreJava = "Clase1" + ".java";
if(System.IO.File.Exists(_DirectorioJava + "\\" + _NombreJava)){
System.IO.File.Delete(_DirectorioJava + "\\" + _NombreJava);
}
System.IO.StreamWriter la_archivoSalida = new System.IO.StreamWriter(_DirectorioJava + "\\"
+ _NombreJava, true);
la_archivoSalida.WriteLine(this.txtResultadoMovimiento.Text);
la_archivoSalida.Close();
}
catch (Exception ex) {
MessageBox.Show("Se genero un Error al crear el archivo java " + ex.Message, "Error Creacion",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void cmbTipoFondo_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.cmbTipoFondo.SelectedIndex > -1)
{
if (this.cmbTipoFondo.Items[this.cmbTipoFondo.SelectedIndex].ToString() == "COLOR")
{
this.pnlSeleccionarColor.Visible = true;
this.pnlBuscarImgFondo.Visible = false;
}
if (this.cmbTipoFondo.Items[this.cmbTipoFondo.SelectedIndex].ToString() == "IMAGEN")
{
this.pnlSeleccionarColor.Visible = false;
this.pnlBuscarImgFondo.Visible = true;
}
128
if (this.cmbTipoFondo.Items[this.cmbTipoFondo.SelectedIndex].ToString() == "NINGUNO")
{
this.pnlSeleccionarColor.Visible = false;
this.pnlBuscarImgFondo.Visible = false;
this.panel1.BackgroundImage = null;
this.panel1.BackColor = Color.White;
}
}
}
private void button9_Click(object sender, EventArgs e)
{
VentanaColores clrs = new VentanaColores();
clrs.ShowDialog();
this.txtColorSeleccionado.Text = clrs.ColorSeleccionado;
this.panel1.BackColor = clrs.colorClick;
}
public void extraerFicherBinJava(ref string carpeta,ref string dirArchivoJar)
{
try
{
string[] directorios = Directory.GetDirectories("C:\\Program Files\\Java");
for (int i = 0; i < directorios.Length; i++)
{
if (directorios[i].Replace("C:\\Program Files\\Java\\", "").Substring(0, 3).ToLower() == "jdk")
{
if (directorios[i].Replace("C:\\Program Files\\Java\\", "").Substring(0, 6).ToLower() ==
"jdk1.7")
{
carpeta = directorios[i];
}
}
}
dirArchivoJar = Application.StartupPath.ToString() + "\\LibreriasRIM\\";
}
catch (Exception ex) {
MessageBox.Show("Se genero un error de consulta de bin de java " + ex.Message, "Error
Creacion", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void button1_Click_3(object sender, EventArgs e)
{
creaArchivoJava();
string res = "Archivo compilado exitosamente";
string dirJava = "",dirJarRIM="";
extraerFicherBinJava(ref dirJava, ref dirJarRIM);
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = "\"" + dirJava + "\\bin\\javac\"";
proc.StartInfo.Arguments = " -Xlint:unchecked -classpath \".\\;" + dirJarRIM + "net_rim_api.jar\" \""
+ _DirectorioJava + "\\" + _NombreJava + "\"";
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = true;
129
proc.StartInfo.UseShellExecute = false;
proc.Start();
//System.IO.StreamReader myOutput = proc.StandardOutput;
proc.BeginOutputReadLine();
res = proc.StandardError.ReadToEnd();
proc.WaitForExit();
if(res.Length <= 0){
this.txtResultadoMovimiento.Text = "Archivo compilado exitosamente";
}
else{
int posError = -1;
posError = res.ToUpper().IndexOf("ERROR");
if (posError > -1)
{
this.txtResultadoMovimiento.Text = "Archivo compilado con Errores \n" + res;
}
else
{
this.txtResultadoMovimiento.Text = "Archivo compilado con Advertencias \n" + res;
}
}
}
private void button3_Click_2(object sender, EventArgs e)
{
if (indiceSeleccionado > -1)
{
arreglo.RemoveAt(indiceSeleccionado);
pnlSeleccionado.Visible = false;
indiceSeleccionado = -1;
}
}
private void button4_Click_1(object sender, EventArgs e)
{
}
private void button2_Click_2(object sender, EventArgs e)
{
PanelEtiqueta pnl = new PanelEtiqueta("Texto etiqueta");
aumentaPanel(pnl,pnl._ancho,pnl._alto);
AsignaNombre();
}
private void button6_Click_1(object sender, EventArgs e)
{
}
private void button7_Click_1(object sender, EventArgs e)
{
try
{
if (arreglo.Count <= 0)
{
130
}
else
{
ObjetoBase objb = (ObjetoBase)arreglo[indiceSeleccionado];
if (objb._TipoControl == "BOTON")
{
string textoAccion = "";
PanelBoton pbtn = (PanelBoton)arreglo[indiceSeleccionado];
if (pbtn._FuncionClick.Length > 0)
{
textoAccion = pbtn._FuncionClick;
}
else
{
textoAccion =
"
" + pbtn._Nombrecontrol + ".setChangeListener(new
net.rim.device.api.ui.FieldChangeListener() {\n" +
"
public void fieldChanged( net.rim.device.api.ui.Field field, int
context) {\n" +
"
net.rim.device.api.ui.component.Dialog.alert(\"Accion en " +
pbtn._Nombrecontrol + "\");\n" +
"
}\n" +
"
});\n";
}
DialogoAccionBoton dlg = new DialogoAccionBoton();
dlg.contenidoT = textoAccion;
DialogResult dr = dlg.ShowDialog();
pbtn._AccionClick = true;
pbtn._FuncionClick = dlg.contenidoT;
}
}
}
catch (Exception ex)
{
MessageBox.Show("No se a seleccionado ningun boton para la accion", "Sin Objetos",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void button8_Click(object sender, EventArgs e)
{
try
{
opfdImagen.Filter = "Imagenes Ligeras (*.jpg)|*.jpg|Mapas de Bits(*.bmp)|*.bmp|Imagenes
Web(*.gif)|*.gif";
opfdImagen.ShowDialog();
string pathImagen = opfdImagen.FileName;
string nombreArchivo = "";
string nombreDirectorio = "";
separaDirArchivo(pathImagen, ref nombreDirectorio, ref nombreArchivo);
nombreImagenFondo = nombreArchivo;
this.txtImagenSeleccionada.Text = nombreImagenFondo;
/*if(File.Exists("C:\\FuentesDesarrolladosTHWPR\\Proyecto\\res\\" + nombreArchivo)){
File.Delete("C:\\FuentesDesarrolladosTHWPR\\Proyecto\\res\\" + nombreArchivo);
}
File.Copy(pathImagen, "C:\\FuentesDesarrolladosTHWPR\\Proyecto\\res\\" + nombreArchivo);
131
Image img1 = Image.FromFile("C:\\FuentesDesarrolladosTHWPR\\Proyecto\\res\\" +
nombreArchivo);*/
if (File.Exists(_DirectorioJava.Replace("\\src","\\res\\") + nombreArchivo))
{
File.Delete(_DirectorioJava.Replace("\\src", "\\res\\") + nombreArchivo);
}
File.Copy(pathImagen, _DirectorioJava.Replace("\\src", "\\res\\") + nombreArchivo);
Image img1 = Image.FromFile(_DirectorioJava.Replace("\\src", "\\res\\") + nombreArchivo);
this.panel1.BackgroundImage =
CambiarTamanoImagen(img1,this.panel1.Width,this.panel1.Height);
}
catch (Exception ex) {
MessageBox.Show("no se pudo copiar la imagen seleccionada " + ex.Message, "Sin Objetos",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
public Image CambiarTamanoImagen(Image pImagen, int pAncho, int pAlto)
{
//creamos un bitmap con el nuevo tamaño
Bitmap vBitmap = new Bitmap(pAncho, pAlto);
//creamos un graphics tomando como base el nuevo Bitmap
using (Graphics vGraphics = Graphics.FromImage((Image)vBitmap))
{
//especificamos el tipo de transformación, se escoge esta para no perder calidad.
vGraphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
//Se dibuja la nueva imagen
vGraphics.DrawImage(pImagen, 0, 0, pAncho, pAlto);
}
//retornamos la nueva imagen
return (Image)vBitmap;
}
public void separaDirArchivo(string pathBase, ref string directorio, ref string archivo)
{
char[] arregloPath = pathBase.ToCharArray();
int posFinalBackSlash = 0;
for (int i = 0; i < arregloPath.Length; i++)
{
if(arregloPath[i] == '\\'){
posFinalBackSlash = i;
}
}
directorio = pathBase.Substring(0, posFinalBackSlash + 1);
archivo = pathBase.Substring(posFinalBackSlash + 1, (pathBase.Length - directorio.Length) );
}
private void txtTituloPantalla_TextChanged(object sender, EventArgs e)
{
this.lblTituloPantalla.Text = this.txtTituloPantalla.Text;
}
#region asigna propiedades visibles
public void llenaPropiedades(object objetoPropiedades)
{
132
try
{
ObjetoBase obj1 = (ObjetoBase)objetoPropiedades;
cambiaTexto = false;
this.txtTextoEtiquetaBB.Text = "";
this.comboBox1.Text = ""; ;
this.comboBox2.Text="";
this.cmbTamanioFuenteBB.Text="";
this.comboBox1.SelectedText = "";
this.comboBox2.SelectedText = "";
cambiaTexto = true;
this.cmbTamanioFuenteBB.SelectedText = "";
this.pnlImagenControl.Top = 123;
this.pnlImagenControl.Left = 5;
this.pnlImagenControl.Visible = false;
this.pnlItemsComboBox.Top = 239;
this.pnlItemsComboBox.Left = 5;
this.pnlItemsComboBox.Visible = false;
this.pnlValoresComboNum.Top = 239;
this.pnlValoresComboNum.Left = 5;
this.pnlValoresComboNum.Visible = false;
this.pnlDimensiones.Top= 73;
this.pnlDimensiones.Left= 6;
this.pnlDimensiones.Visible=false;
this.pnlFuentes.Visible = false;
this.pnlColorControles.Visible = true;
this.btnAccionBotonVarios.Visible = false;
switch (obj1._TipoControl)
{
#region propiedades Etiqueta
case "ETIQUETA":
PanelEtiqueta pe = (PanelEtiqueta)obj1;
this.txtNombreEtiquetaBB.Text = pe._Nombrecontrol;
this.txtTextoEtiquetaBB.Text = pe._Texto;
this.pnlFuentes.Visible = true;
if (pe.lb_poseeEstilo)
{
for (int i = 0; i < this.comboBox2.Items.Count; i++)
{
if (this.comboBox2.Items[i].ToString() == pe._NombreEstiloTexto)
{
this.comboBox2.SelectedIndex = i;
}
}
}
if(pe.lb_poseeOtraFamiliaTexto)
{
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
if (this.comboBox1.Items[i].ToString() == pe._NombreFamiliaTexto)
{
this.comboBox1.SelectedIndex = i;
}
}
}
if (pe.lb_otrotamanioTexto)
{
133
for (int i = 0; i < this.cmbTamanioFuenteBB.Items.Count; i++)
{
if (this.cmbTamanioFuenteBB.Items[i].ToString() == pe._TamanioTexto)
{
this.cmbTamanioFuenteBB.SelectedIndex = i;
}
}
}
if (pe.poseeColorTextop)
{
this.txtColorFuenteEtiquetaBB.Text = "";
this.txtColorFuenteEtiquetaBB.Text = pe.ColorEtiqueta.Name;
}
if (pe.poseeColorfondo)
{
this.txtColorFodoEtiquetaBB.Text = "";
this.txtColorFodoEtiquetaBB.Text = pe.ColorFondo.Name;
}
break;
#endregion
#region propiedades caja de texto
case "CAJATEXTO":
PanelCajatexto pct = (PanelCajatexto)obj1;
this.txtNombreEtiquetaBB.Text = pct._Nombrecontrol;
this.pnlFuentes.Visible = true;
//this.txtTextoEtiquetaBB.Text = "";
//this.comboBox1.SelectedText = "";
//this.comboBox2.SelectedText = "";
//this.cmbTamanioFuenteBB.SelectedText = "";
if (pct.lb_poseeEstilo)
{
for (int i = 0; i < this.comboBox2.Items.Count; i++)
{
if (this.comboBox2.Items[i].ToString() == pct._NombreEstiloTexto)
{
this.comboBox2.SelectedIndex = i;
}
}
}
if(pct.lb_poseeOtraFamiliaTexto)
{
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
if (this.comboBox1.Items[i].ToString() == pct._NombreFamiliaTexto)
{
this.comboBox1.SelectedIndex = i;
}
}
}
if (pct.lb_otrotamanioTexto)
{
for (int i = 0; i < this.cmbTamanioFuenteBB.Items.Count; i++)
{
if (this.cmbTamanioFuenteBB.Items[i].ToString() == pct._TamanioTexto)
{
this.cmbTamanioFuenteBB.SelectedIndex = i;
134
}
}
}
if (pct.poseeColorTextop)
{
this.txtColorFuenteEtiquetaBB.Text = "";
this.txtColorFuenteEtiquetaBB.Text = pct.ColorEtiqueta.Name;
}
if (pct.poseeColorfondo)
{
this.txtColorFodoEtiquetaBB.Text = "";
this.txtColorFodoEtiquetaBB.Text = pct.ColorFondo.Name;
}
break;
#endregion
#region propiedades cata texto lectura
case "RICHTEXTBOX":
this.pnlFuentes.Visible = true;
PanelRichTextBox prtb = (PanelRichTextBox)obj1;
this.txtNombreEtiquetaBB.Text = prtb._Nombrecontrol;
this.txtTextoEtiquetaBB.Text = prtb._Texto;
if (prtb.lb_poseeEstilo)
{
for (int i = 0; i < this.comboBox2.Items.Count; i++)
{
if (this.comboBox2.Items[i].ToString() == prtb._NombreEstiloTexto)
{
this.comboBox2.SelectedIndex = i;
}
}
}
if (prtb.lb_poseeOtraFamiliaTexto)
{
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
if (this.comboBox1.Items[i].ToString() == prtb._NombreFamiliaTexto)
{
this.comboBox1.SelectedIndex = i;
}
}
}
if (prtb.lb_otrotamanioTexto)
{
for (int i = 0; i < this.cmbTamanioFuenteBB.Items.Count; i++)
{
if (this.cmbTamanioFuenteBB.Items[i].ToString() == prtb._TamanioTexto)
{
this.cmbTamanioFuenteBB.SelectedIndex = i;
}
}
}
if (prtb.poseeColorTextop)
{
this.txtColorFuenteEtiquetaBB.Text = "";
this.txtColorFuenteEtiquetaBB.Text = prtb.ColorEtiqueta.Name;
}
135
if (prtb.poseeColorfondo)
{
this.txtColorFodoEtiquetaBB.Text = "";
this.txtColorFodoEtiquetaBB.Text = prtb.ColorFondo.Name;
}
break;
#endregion
#region propiedades boton
case "BOTON":
PanelBoton pb = (PanelBoton)obj1;
this.txtNombreEtiquetaBB.Text = pb._Nombrecontrol;
this.txtTextoEtiquetaBB.Text = pb._Texto;
this.btnAccionBotonVarios.Top = 53;//239;
this.btnAccionBotonVarios.Visible = true;
break;
#endregion
#region propiedades password
case "PASSWORD":
PanelPassword ppw = (PanelPassword)obj1;
this.txtNombreEtiquetaBB.Text = ppw._Nombrecontrol;
if (ppw.lb_poseeEstilo)
{
for (int i = 0; i < this.comboBox2.Items.Count; i++)
{
if (this.comboBox2.Items[i].ToString() == ppw._NombreEstiloTexto)
{
this.comboBox2.SelectedIndex = i;
}
}
}
if (ppw.lb_poseeOtraFamiliaTexto)
{
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
if (this.comboBox1.Items[i].ToString() == ppw._NombreFamiliaTexto)
{
this.comboBox1.SelectedIndex = i;
}
}
}
if (ppw.lb_otrotamanioTexto)
{
for (int i = 0; i < this.cmbTamanioFuenteBB.Items.Count; i++)
{
if (this.cmbTamanioFuenteBB.Items[i].ToString() == ppw._TamanioTexto)
{
this.cmbTamanioFuenteBB.SelectedIndex = i;
}
}
}
if (ppw.poseeColorTextop)
{
this.txtColorFuenteEtiquetaBB.Text = "";
this.txtColorFuenteEtiquetaBB.Text = ppw.ColorEtiqueta.Name;
}
136
if (ppw.poseeColorfondo)
{
this.txtColorFodoEtiquetaBB.Text = "";
this.txtColorFodoEtiquetaBB.Text = ppw.ColorFondo.Name;
}
break;
#endregion
#region propiedades EMAIL
case "EMAIL":
this.pnlFuentes.Visible = true;
PanelEmail pem = (PanelEmail)obj1;
this.txtNombreEtiquetaBB.Text = pem._Nombrecontrol;
if (pem.lb_poseeEstilo)
{
for (int i = 0; i < this.comboBox2.Items.Count; i++)
{
if (this.comboBox2.Items[i].ToString() == pem._NombreEstiloTexto)
{
this.comboBox2.SelectedIndex = i;
}
}
}
if (pem.lb_poseeOtraFamiliaTexto)
{
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
if (this.comboBox1.Items[i].ToString() == pem._NombreFamiliaTexto)
{
this.comboBox1.SelectedIndex = i;
}
}
}
if (pem.lb_otrotamanioTexto)
{
for (int i = 0; i < this.cmbTamanioFuenteBB.Items.Count; i++)
{
if (this.cmbTamanioFuenteBB.Items[i].ToString() == pem._TamanioTexto)
{
this.cmbTamanioFuenteBB.SelectedIndex = i;
}
}
}
if (pem.poseeColorTextop)
{
this.txtColorFuenteEtiquetaBB.Text = "";
this.txtColorFuenteEtiquetaBB.Text = pem.ColorEtiqueta.Name;
}
if (pem.poseeColorfondo)
{
this.txtColorFodoEtiquetaBB.Text = "";
this.txtColorFodoEtiquetaBB.Text = pem.ColorFondo.Name;
}
break;
#endregion
#region propiedades TEXTOAUTOCOMPLETAR
case "TEXTOAUTOCOMPLETAR":
137
this.pnlFuentes.Visible = true;
pnlItemsComboBox.Visible = true;
pnlItemsComboBox.Top = 53;
pnlItemsComboBox.Left = 310;
PanelTextoAutocompletar pac = (PanelTextoAutocompletar)obj1;
this.txtNombreEtiquetaBB.Text = pac._Nombrecontrol;
if (pac.lb_poseeEstilo)
{
for (int i = 0; i < this.comboBox2.Items.Count; i++)
{
if (this.comboBox2.Items[i].ToString() == pac._NombreEstiloTexto)
{
this.comboBox2.SelectedIndex = i;
}
}
}
if (pac.lb_poseeOtraFamiliaTexto)
{
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
if (this.comboBox1.Items[i].ToString() == pac._NombreFamiliaTexto)
{
this.comboBox1.SelectedIndex = i;
}
}
}
if (pac.lb_otrotamanioTexto)
{
for (int i = 0; i < this.cmbTamanioFuenteBB.Items.Count; i++)
{
if (this.cmbTamanioFuenteBB.Items[i].ToString() == pac._TamanioTexto)
{
this.cmbTamanioFuenteBB.SelectedIndex = i;
}
}
}
if (pac.poseeColorTextop)
{
this.txtColorFuenteEtiquetaBB.Text = "";
this.txtColorFuenteEtiquetaBB.Text = pac.ColorEtiqueta.Name;
}
if (pac.poseeColorfondo)
{
this.txtColorFodoEtiquetaBB.Text = "";
this.txtColorFodoEtiquetaBB.Text = pac.ColorFondo.Name;
}
break;
#endregion
#region propiedades CAJATEXTOAUTOCORREGIR
case "CAJATEXTOAUTOCORREGIR":
this.pnlFuentes.Visible = true;
PanelTextoAutocorregir paco = (PanelTextoAutocorregir)obj1;
this.txtNombreEtiquetaBB.Text = paco._Nombrecontrol;
if (paco.lb_poseeEstilo)
{
138
for (int i = 0; i < this.comboBox2.Items.Count; i++)
{
if (this.comboBox2.Items[i].ToString() == paco._NombreEstiloTexto)
{
this.comboBox2.SelectedIndex = i;
}
}
}
if (paco.lb_poseeOtraFamiliaTexto)
{
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
if (this.comboBox1.Items[i].ToString() == paco._NombreFamiliaTexto)
{
this.comboBox1.SelectedIndex = i;
}
}
}
if (paco.lb_otrotamanioTexto)
{
for (int i = 0; i < this.cmbTamanioFuenteBB.Items.Count; i++)
{
if (this.cmbTamanioFuenteBB.Items[i].ToString() == paco._TamanioTexto)
{
this.cmbTamanioFuenteBB.SelectedIndex = i;
}
}
}
if (paco.poseeColorTextop)
{
this.txtColorFuenteEtiquetaBB.Text = "";
this.txtColorFuenteEtiquetaBB.Text = paco.ColorEtiqueta.Name;
}
if (paco.poseeColorfondo)
{
this.txtColorFodoEtiquetaBB.Text = "";
this.txtColorFodoEtiquetaBB.Text = paco.ColorFondo.Name;
}
break;
#endregion
#region propiedades TEXTOAUTOCOMPLETAR_
case "TEXTOAUTOCOMPLETAR_":
this.pnlFuentes.Visible = true;
PanelAutoCompletar pacom = (PanelAutoCompletar)obj1;
this.txtNombreEtiquetaBB.Text = pacom._Nombrecontrol;
if (pacom.lb_poseeEstilo)
{
for (int i = 0; i < this.comboBox2.Items.Count; i++)
{
if (this.comboBox2.Items[i].ToString() == pacom._NombreEstiloTexto)
{
this.comboBox2.SelectedIndex = i;
}
}
}
if (pacom.lb_poseeOtraFamiliaTexto)
139
{
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
if (this.comboBox1.Items[i].ToString() == pacom._NombreFamiliaTexto)
{
this.comboBox1.SelectedIndex = i;
}
}
}
if (pacom.lb_otrotamanioTexto)
{
for (int i = 0; i < this.cmbTamanioFuenteBB.Items.Count; i++)
{
if (this.cmbTamanioFuenteBB.Items[i].ToString() == pacom._TamanioTexto)
{
this.cmbTamanioFuenteBB.SelectedIndex = i;
}
}
}
if (pacom.poseeColorTextop)
{
this.txtColorFuenteEtiquetaBB.Text = "";
this.txtColorFuenteEtiquetaBB.Text = pacom.ColorEtiqueta.Name;
}
if (pacom.poseeColorfondo)
{
this.txtColorFodoEtiquetaBB.Text = "";
this.txtColorFodoEtiquetaBB.Text = pacom.ColorFondo.Name;
}
break;
#endregion
#region propiedades CHECKBOX
case "CHECKBOX":
this.pnlFuentes.Visible = true;
PanelCheckBox pchb = (PanelCheckBox)obj1;
this.txtNombreEtiquetaBB.Text = pchb._Nombrecontrol;
this.txtTextoEtiquetaBB.Text = pchb._Texto;
//this.comboBox1.SelectedText = "";
//this.comboBox2.SelectedText = "";
//this.cmbTamanioFuenteBB.SelectedText = "";
if (pchb.lb_poseeEstilo)
{
for (int i = 0; i < this.comboBox2.Items.Count; i++)
{
if (this.comboBox2.Items[i].ToString() == pchb._NombreEstiloTexto)
{
this.comboBox2.SelectedIndex = i;
}
}
}
if (pchb.lb_poseeOtraFamiliaTexto)
{
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
if (this.comboBox1.Items[i].ToString() == pchb._NombreFamiliaTexto)
{
140
this.comboBox1.SelectedIndex = i;
}
}
}
if (pchb.lb_otrotamanioTexto)
{
for (int i = 0; i < this.cmbTamanioFuenteBB.Items.Count; i++)
{
if (this.cmbTamanioFuenteBB.Items[i].ToString() == pchb._TamanioTexto)
{
this.cmbTamanioFuenteBB.SelectedIndex = i;
}
}
}
if (pchb.poseeColorTextop)
{
this.txtColorFuenteEtiquetaBB.Text = "";
this.txtColorFuenteEtiquetaBB.Text = pchb.ColorEtiqueta.Name;
}
if (pchb.poseeColorfondo)
{
this.txtColorFodoEtiquetaBB.Text = "";
this.txtColorFodoEtiquetaBB.Text = pchb.ColorFondo.Name;
}
break;
#endregion
#region propiedades COMBOBOX
case "COMBOBOX":
this.pnlFuentes.Visible = true;
this.pnlItemsComboBox.Visible = true;
this.pnlItemsComboBox.Top = 53;
this.pnlItemsComboBox.Left = 310;
PanelComboBox pcb = (PanelComboBox)obj1;
this.txtNombreEtiquetaBB.Text = pcb._Nombrecontrol;
//this.txtTextoEtiquetaBB.Text = "";
//this.comboBox1.SelectedText = "";
//this.comboBox2.SelectedText = "";
//this.cmbTamanioFuenteBB.SelectedText = "";
if (pcb.lb_poseeEstilo)
{
for (int i = 0; i < this.comboBox2.Items.Count; i++)
{
if (this.comboBox2.Items[i].ToString() == pcb._NombreEstiloTexto)
{
this.comboBox2.SelectedIndex = i;
}
}
}
if(pcb.lb_poseeOtraFamiliaTexto)
{
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
if (this.comboBox1.Items[i].ToString() == pcb._NombreFamiliaTexto)
{
this.comboBox1.SelectedIndex = i;
}
141
}
}
if (pcb.lb_otrotamanioTexto)
{
for (int i = 0; i < this.cmbTamanioFuenteBB.Items.Count; i++)
{
if (this.cmbTamanioFuenteBB.Items[i].ToString() == pcb._TamanioTexto)
{
this.cmbTamanioFuenteBB.SelectedIndex = i;
}
}
}
if (pcb.poseeColorTextop)
{
this.txtColorFuenteEtiquetaBB.Text = "";
this.txtColorFuenteEtiquetaBB.Text = pcb.ColorEtiqueta.Name;
}
if (pcb.poseeColorfondo)
{
this.txtColorFodoEtiquetaBB.Text = "";
this.txtColorFodoEtiquetaBB.Text = pcb.ColorFondo.Name;
}
try
{
this.txtContenidoCombo.Text = "";
string contTempItems = "";
for (int i = 0; i < pcb.Contenido.Length; i++)
{
contTempItems = contTempItems + pcb.Contenido.GetValue(i).ToString() +
Encoding.ASCII.GetString(new byte[] { (byte)13 }).ToString() + Encoding.ASCII.GetString(new byte[] {
(byte)10 }).ToString();
}
this.txtContenidoCombo.Text = contTempItems;
}
catch (Exception ex) { }
break;
#endregion
#region propiedades COMBOBOXNUMERICO
case "COMBOBOXNUMERICO":
this.pnlFuentes.Visible = true;
this.pnlValoresComboNum.Visible = true;
this.pnlValoresComboNum.Top=197;
this.pnlValoresComboNum.Left = 6;
PanelComboBoxNumerico pcbn = (PanelComboBoxNumerico)obj1;
this.txtNombreEtiquetaBB.Text = pcbn._Nombrecontrol;
//this.txtTextoEtiquetaBB.Text = "";
//this.comboBox1.SelectedText = "";
//this.comboBox2.SelectedText = "";
//this.cmbTamanioFuenteBB.SelectedText = "";
if (pcbn.lb_poseeEstilo)
{
for (int i = 0; i < this.comboBox2.Items.Count; i++)
{
if (this.comboBox2.Items[i].ToString() == pcbn._NombreEstiloTexto)
{
this.comboBox2.SelectedIndex = i;
142
}
}
}
if(pcbn.lb_poseeOtraFamiliaTexto)
{
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
if (this.comboBox1.Items[i].ToString() == pcbn._NombreFamiliaTexto)
{
this.comboBox1.SelectedIndex = i;
}
}
}
if (pcbn.lb_otrotamanioTexto)
{
for (int i = 0; i < this.cmbTamanioFuenteBB.Items.Count; i++)
{
if (this.cmbTamanioFuenteBB.Items[i].ToString() == pcbn._TamanioTexto)
{
this.cmbTamanioFuenteBB.SelectedIndex = i;
}
}
}
if (pcbn.poseeColorTextop)
{
this.txtColorFuenteEtiquetaBB.Text = "";
this.txtColorFuenteEtiquetaBB.Text = pcbn.ColorEtiqueta.Name;
}
if (pcbn.poseeColorfondo)
{
this.txtColorFodoEtiquetaBB.Text = "";
this.txtColorFodoEtiquetaBB.Text = pcbn.ColorFondo.Name;
}
this.txtMinimo.Text = pcbn.indiceInicio.ToString();
this.txtComienzo.Text = pcbn.comienzo.ToString();
this.txtIncremento.Text = pcbn.incremento.ToString();
this.txtMaximo.Text = pcbn.indiceFinal.ToString();
break;
#endregion
#region propiedades CAMPOFECHA
case "CAMPOFECHA":
PanelCampoFecha pcf = (PanelCampoFecha)obj1;
this.txtNombreEtiquetaBB.Text = pcf._Nombrecontrol;
//this.txtTextoEtiquetaBB.Text = "";
//this.comboBox1.SelectedText = "";
//this.comboBox2.SelectedText = "";
//this.cmbTamanioFuenteBB.SelectedText = "";
if (pcf.lb_poseeEstilo)
{
for (int i = 0; i < this.comboBox2.Items.Count; i++)
{
if (this.comboBox2.Items[i].ToString() == pcf._NombreEstiloTexto)
{
this.comboBox2.SelectedIndex = i;
}
}
143
}
if(pcf.lb_poseeOtraFamiliaTexto)
{
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
if (this.comboBox1.Items[i].ToString() == pcf._NombreFamiliaTexto)
{
this.comboBox1.SelectedIndex = i;
}
}
}
if (pcf.lb_otrotamanioTexto)
{
for (int i = 0; i < this.cmbTamanioFuenteBB.Items.Count; i++)
{
if (this.cmbTamanioFuenteBB.Items[i].ToString() == pcf._TamanioTexto)
{
this.cmbTamanioFuenteBB.SelectedIndex = i;
}
}
}
if (pcf.poseeColorTextop)
{
this.txtColorFuenteEtiquetaBB.Text = "";
this.txtColorFuenteEtiquetaBB.Text = pcf.ColorEtiqueta.Name;
}
if (pcf.poseeColorfondo)
{
this.txtColorFodoEtiquetaBB.Text = "";
this.txtColorFodoEtiquetaBB.Text = pcf.ColorFondo.Name;
}
break;
#endregion
#region propiedades OPCION
case "OPCION":
this.pnlFuentes.Visible = true;
PanelCampoOpcion pco = (PanelCampoOpcion)obj1;
this.txtNombreEtiquetaBB.Text = pco._Nombrecontrol;
this.txtTextoEtiquetaBB.Text = pco._Texto;
//this.comboBox1.SelectedText = "";
//this.comboBox2.SelectedText = "";
//this.cmbTamanioFuenteBB.SelectedText = "";
if (pco.lb_poseeEstilo)
{
for (int i = 0; i < this.comboBox2.Items.Count; i++)
{
if (this.comboBox2.Items[i].ToString() == pco._NombreEstiloTexto)
{
this.comboBox2.SelectedIndex = i;
}
}
}
if (pco.lb_poseeOtraFamiliaTexto)
{
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
144
if (this.comboBox1.Items[i].ToString() == pco._NombreFamiliaTexto)
{
this.comboBox1.SelectedIndex = i;
}
}
}
if (pco.lb_otrotamanioTexto)
{
for (int i = 0; i < this.cmbTamanioFuenteBB.Items.Count; i++)
{
if (this.cmbTamanioFuenteBB.Items[i].ToString() == pco._TamanioTexto)
{
this.cmbTamanioFuenteBB.SelectedIndex = i;
}
}
}
if (pco.poseeColorTextop)
{
this.txtColorFuenteEtiquetaBB.Text = "";
this.txtColorFuenteEtiquetaBB.Text = pco.ColorEtiqueta.Name;
}
if (pco.poseeColorfondo)
{
this.txtColorFodoEtiquetaBB.Text = "";
this.txtColorFodoEtiquetaBB.Text = pco.ColorFondo.Name;
}
break;
#endregion
#region propiedades IMAGEN
case "IMAGEN":
PanelCampoImagen pci = (PanelCampoImagen)obj1;
this.txtNombreEtiquetaBB.Text = pci._Nombrecontrol;
this.pnlFuentes.Visible = false;
this.pnlColorControles.Visible = false;
this.txtAncho.Text = pci._ancho.ToString();
this.txtAlto.Text = pci._alto.ToString();
this.pnlDimensiones.Visible=true;
this.pnlImagenControl.Visible = true;
break;
#endregion
#region propiedades BROWSER
case "BROWSER":
PanelBrowserField pbw = (PanelBrowserField)obj1;
this.txtNombreEtiquetaBB.Text = pbw._Nombrecontrol;
this.pnlFuentes.Visible = false;
this.pnlColorControles.Visible = false;
break;
#endregion
#region propiedades MAPA
case "MAPA":
PanelCamposMapa pm = (PanelCamposMapa)obj1;
this.txtNombreEtiquetaBB.Text = pm._Nombrecontrol;
this.pnlFuentes.Visible = false;
this.pnlColorControles.Visible = false;
break;
#endregion
}
145
}
catch (Exception ex) {
MessageBox.Show("Error " + ex.Message, "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
#endregion
#region cambia nombre controles
private void txtNombreEtiquetaBB_TextChanged(object sender, EventArgs e)
{
ObjetoBase obj = (ObjetoBase)arreglo[indiceSeleccionado];
switch (obj._TipoControl)
{
#region nombre etiqueta
case "ETIQUETA":
PanelEtiqueta pe = (PanelEtiqueta)obj;
pe._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre richttextbox
case "RICHTEXTBOX":
PanelRichTextBox prtb = (PanelRichTextBox)obj;
prtb._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre CAJATEXTO
case "CAJATEXTO":
PanelCajatexto pct = (PanelCajatexto)obj;
pct._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre BOTON
case "BOTON":
PanelBoton pb = (PanelBoton)obj;
pb._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre PASSWORD
case "PASSWORD":
PanelPassword pp = (PanelPassword)obj;
pp._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre EMAIL
case "EMAIL":
PanelEmail pem = (PanelEmail)obj;
pem._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre TEXTOAUTOCOMPLETAR
case "TEXTOAUTOCOMPLETAR":
PanelTextoAutocompletar pta = (PanelTextoAutocompletar)obj;
pta._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre CAJATEXTOAUTOCORREGIR
146
case "CAJATEXTOAUTOCORREGIR":
PanelTextoAutocorregir ptac = (PanelTextoAutocorregir)obj;
ptac._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre TEXTOAUTOCOMPLETAR_
case "TEXTOAUTOCOMPLETAR_":
PanelAutoCompletar paut = (PanelAutoCompletar)obj;
paut._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre CHECKBOX
case "CHECKBOX":
PanelCheckBox pchb = (PanelCheckBox)obj;
pchb._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre COMBOBOX
case "COMBOBOX":
PanelComboBox pcb = (PanelComboBox)obj;
pcb._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre COMBOBOXNUMERICO
case "COMBOBOXNUMERICO":
PanelComboBoxNumerico pcbn = (PanelComboBoxNumerico)obj;
pcbn._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre CAMPOFECHA
case "CAMPOFECHA":
PanelCampoFecha pf = (PanelCampoFecha)obj;
pf._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre OPCION
case "OPCION":
PanelCampoOpcion po = (PanelCampoOpcion)obj;
po._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre IMAGEN
case "IMAGEN":
PanelCampoImagen pim = (PanelCampoImagen)obj;
pim._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre BROWSER
case "BROWSER":
PanelBrowserField pbr = (PanelBrowserField)obj;
pbr._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
break;
#endregion
#region nombre MAPA
case "MAPA":
PanelCamposMapa pmap = (PanelCamposMapa)obj;
pmap._Nombrecontrol = this.txtNombreEtiquetaBB.Text;
147
break;
#endregion
}
}
#endregion
#region cambia texto controles
private void txtTextoEtiquetaBB_TextChanged(object sender, EventArgs e)
{
if (cambiaTexto)
{
ObjetoBase obj = (ObjetoBase)arreglo[indiceSeleccionado];
switch (obj._TipoControl)
{
#region texto ETIQUETA
case "ETIQUETA":
PanelEtiqueta pe = (PanelEtiqueta)obj;
pe._Texto = this.txtTextoEtiquetaBB.Text;
pe.cambiaEtiquetaVisible(this.txtTextoEtiquetaBB.Text);
break;
#endregion
#region texto RICHTEXTBOX
case "RICHTEXTBOX":
PanelRichTextBox prtb = (PanelRichTextBox)obj;
prtb._Texto = this.txtTextoEtiquetaBB.Text;
prtb.cambiaEtiquetaVisible(this.txtTextoEtiquetaBB.Text);
break;
#endregion
#region texto BOTON
case "BOTON":
PanelBoton pb = (PanelBoton)obj;
pb._Texto = this.txtNombreEtiquetaBB.Text;
pb.cambiaEtiquetaVisible(pb._Texto);
break;
#endregion
#region texto CHECKBOX
case "CHECKBOX":
PanelCheckBox pchb = (PanelCheckBox)obj;
pchb._Texto = this.txtNombreEtiquetaBB.Text;
pchb.cambiaEtiquetaVisible(pchb._Texto);
break;
#endregion
#region texto OPCION
case "OPCION":
PanelCampoOpcion pco = (PanelCampoOpcion)obj;
pco._Texto = this.txtNombreEtiquetaBB.Text;
pco.cambiaEtiquetaVisible(pco._Texto);
break;
#endregion
}
}
}
#endregion
#region cambia color texto controles
private void button10_Click(object sender, EventArgs e)
{
ObjetoBase obj = (ObjetoBase)arreglo[indiceSeleccionado];
VentanaColores vc = new VentanaColores();
148
vc.ShowDialog();
switch (obj._TipoControl)
{
#region color texto ETIQUETA
case "ETIQUETA":
PanelEtiqueta pe = (PanelEtiqueta)obj;
pe.ColorEtiqueta = vc.colorClick;
pe.cambiarColorEtiqueta(vc.colorClick);
break;
#endregion
#region color texto RICHTEXTBOX
case "RICHTEXTBOX":
PanelRichTextBox prtb = (PanelRichTextBox)obj;
prtb.ColorEtiqueta = vc.colorClick;
prtb.cambiarColorEtiqueta(vc.colorClick);
break;
#endregion
#region color texto CAJATEXTO
case "CAJATEXTO":
PanelCajatexto pct = (PanelCajatexto)obj;
pct.ColorEtiqueta = vc.colorClick;
break;
#endregion
#region color texto PASSWORD
case "PASSWORD":
PanelPassword pp = (PanelPassword)obj;
pp.ColorEtiqueta = vc.colorClick;
break;
#endregion
#region color texto EMAIL
case "EMAIL":
PanelEmail pem = (PanelEmail)obj;
pem.ColorEtiqueta = vc.colorClick;
break;
#endregion
#region color texto TEXTOAUTOCOMPLETAR
case "TEXTOAUTOCOMPLETAR":
PanelTextoAutocompletar pta = (PanelTextoAutocompletar)obj;
pta.ColorEtiqueta = vc.colorClick;
break;
#endregion
#region color texto CAJATEXTOAUTOCORREGIR
case "CAJATEXTOAUTOCORREGIR":
PanelTextoAutocorregir ptac = (PanelTextoAutocorregir)obj;
ptac.ColorEtiqueta = vc.colorClick;
break;
#endregion
#region color texto TEXTOAUTOCOMPLETAR_
case "TEXTOAUTOCOMPLETAR_":
PanelAutoCompletar paut = (PanelAutoCompletar)obj;
paut.ColorEtiqueta = vc.colorClick;
break;
#endregion
#region color texto CHECKBOX
case "CHECKBOX":
PanelCheckBox pchb = (PanelCheckBox)obj;
pchb.ColorEtiqueta = vc.colorClick;
149
pchb.cambiarColorEtiqueta(vc.colorClick);
break;
#endregion
#region color texto COMBOBOX
case "COMBOBOX":
PanelComboBox pcb = (PanelComboBox)obj;
pcb.ColorEtiqueta = vc.colorClick;
break;
#endregion
#region coolor texto COMBOBOXNUMERICO
case "COMBOBOXNUMERICO":
PanelComboBoxNumerico pcbn = (PanelComboBoxNumerico)obj;
pcbn.ColorEtiqueta = vc.colorClick;
break;
#endregion
#region color texto CAMPOFECHA
case "CAMPOFECHA":
PanelCampoFecha pf = (PanelCampoFecha)obj;
pf.ColorEtiqueta = vc.colorClick;
break;
#endregion
#region color texto OPCION
case "OPCION":
PanelCampoOpcion po = (PanelCampoOpcion)obj;
po.ColorEtiqueta = vc.colorClick;
po.cambiarColorEtiqueta(vc.colorClick);
break;
#endregion
}
this.txtColorFuenteEtiquetaBB.Text = vc.colorClick.Name;
}
#endregion
#region cambia color fondo controles
private void button11_Click(object sender, EventArgs e)
{
ObjetoBase obj = (ObjetoBase)arreglo[indiceSeleccionado];
VentanaColores vc = new VentanaColores();
vc.ShowDialog();
switch (obj._TipoControl)
{
case "ETIQUETA":
PanelEtiqueta pe = (PanelEtiqueta)obj;
pe.ColorFondo = vc.colorClick;
pe.cambiarColorFondo(vc.colorClick);
this.txtColorFodoEtiquetaBB.Text = vc.colorClick.Name;
break;
case "RICHTEXTBOX":
PanelRichTextBox prtb = (PanelRichTextBox)obj;
prtb.ColorFondo = vc.colorClick;
prtb.cambiarColorFondo(vc.colorClick);
this.txtColorFodoEtiquetaBB.Text = vc.colorClick.Name;
break;
case "CAJATEXTO":
PanelCajatexto pct = (PanelCajatexto)obj;
pct.ColorFondo = vc.colorClick;
pct.cambiarColorFondo(vc.colorClick);
this.txtColorFodoEtiquetaBB.Text = vc.colorClick.Name;
150
break;
}
}
#endregion
#region cambia familia texto
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (cambiaTexto)
{
ObjetoBase obj = (ObjetoBase)arreglo[indiceSeleccionado];
switch (obj._TipoControl)
{
#region familia texto ETIQUETA
case "ETIQUETA":
PanelEtiqueta pe = (PanelEtiqueta)obj;
pe._NombreFamiliaTexto =
this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString();
pe.cambiaFamiliaTexto(pe._NombreFamiliaTexto);
break;
#endregion
#region familia texto RICHTEXTBOX
case "RICHTEXTBOX":
PanelRichTextBox prtb = (PanelRichTextBox)obj;
prtb._NombreFamiliaTexto =
this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString();
prtb.cambiaFamiliaTexto(prtb._NombreFamiliaTexto);
break;
#endregion
#region familia texto CAJATEXTO
case "CAJATEXTO":
PanelCajatexto pct = (PanelCajatexto)obj;
pct._NombreFamiliaTexto =
this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString();
break;
#endregion
#region nombre familia texto PASSWORD
case "PASSWORD":
PanelPassword pp = (PanelPassword)obj;
pp._NombreFamiliaTexto =
this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString();
break;
#endregion
#region nombre familia texto EMAIL
case "EMAIL":
PanelEmail pem = (PanelEmail)obj;
pem._NombreFamiliaTexto =
this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString();
break;
#endregion
#region nombre familia texto TEXTOAUTOCOMPLETAR
case "TEXTOAUTOCOMPLETAR":
PanelTextoAutocompletar pta = (PanelTextoAutocompletar)obj;
pta._NombreFamiliaTexto =
this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString();
break;
#endregion
151
#region nombre familia texto CAJATEXTOAUTOCORREGIR
case "CAJATEXTOAUTOCORREGIR":
PanelTextoAutocorregir ptac = (PanelTextoAutocorregir)obj;
ptac._NombreFamiliaTexto =
this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString();
break;
#endregion
#region nombre familia texto TEXTOAUTOCOMPLETAR_
case "TEXTOAUTOCOMPLETAR_":
PanelAutoCompletar paut = (PanelAutoCompletar)obj;
paut._NombreFamiliaTexto =
this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString();
break;
#endregion
#region nombre familia texto CHECKBOX
case "CHECKBOX":
PanelCheckBox pchb = (PanelCheckBox)obj;
pchb._NombreFamiliaTexto =
this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString();
pchb.cambiaFamiliaTexto(this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString());
break;
#endregion
#region nombre familia texto COMBOBOX
case "COMBOBOX":
PanelComboBox pcb = (PanelComboBox)obj;
pcb._NombreFamiliaTexto =
this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString();
break;
#endregion
#region nombre familia COMBOBOXNUMERICO
case "COMBOBOXNUMERICO":
PanelComboBoxNumerico pcbn = (PanelComboBoxNumerico)obj;
pcbn._NombreFamiliaTexto =
this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString();
break;
#endregion
#region nombre familia CAMPOFECHA
case "CAMPOFECHA":
PanelCampoFecha pf = (PanelCampoFecha)obj;
pf._NombreFamiliaTexto =
this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString();
break;
#endregion
#region nombre familia OPCION
case "OPCION":
PanelCampoOpcion po = (PanelCampoOpcion)obj;
po._NombreFamiliaTexto =
this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString();
po.cambiaFamiliaTexto(this.comboBox1.Items[this.comboBox1.SelectedIndex].ToString());
break;
#endregion
}
}
}
152
#endregion
#region modifica estilo textos
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
if (cambiaTexto)
{
ObjetoBase obj = (ObjetoBase)arreglo[indiceSeleccionado];
switch (obj._TipoControl)
{
#region nombre estilo ETIQUETA
case "ETIQUETA":
PanelEtiqueta pe = (PanelEtiqueta)obj;
pe._NombreEstiloTexto =
this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString();
pe.cambiarEstiloTexto(pe._NombreEstiloTexto);
break;
#endregion
#region nombre estilo RICHTEXTBOX
case "RICHTEXTBOX":
PanelRichTextBox prtb = (PanelRichTextBox)obj;
prtb._NombreEstiloTexto =
this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString();
prtb.cambiarEstiloTexto(prtb._NombreEstiloTexto);
break;
#endregion
#region nombre estilo CAJATEXTO
case "CAJATEXTO":
PanelCajatexto pct = (PanelCajatexto)obj;
pct._NombreEstiloTexto =
this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString();
break;
#endregion
#region nombre estilo texto PASSWORD
case "PASSWORD":
PanelPassword pp = (PanelPassword)obj;
pp._NombreEstiloTexto =
this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString();
break;
#endregion
#region nombre estilo texto EMAIL
case "EMAIL":
PanelEmail pem = (PanelEmail)obj;
pem._NombreEstiloTexto =
this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString();
break;
#endregion
#region nombre estilo texto TEXTOAUTOCOMPLETAR
case "TEXTOAUTOCOMPLETAR":
PanelTextoAutocompletar pta = (PanelTextoAutocompletar)obj;
pta._NombreEstiloTexto =
this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString();
break;
#endregion
#region nombre estilo texto CAJATEXTOAUTOCORREGIR
case "CAJATEXTOAUTOCORREGIR":
PanelTextoAutocorregir ptac = (PanelTextoAutocorregir)obj;
153
ptac._NombreEstiloTexto =
this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString();
break;
#endregion
#region nombre estilo texto TEXTOAUTOCOMPLETAR_
case "TEXTOAUTOCOMPLETAR_":
PanelAutoCompletar paut = (PanelAutoCompletar)obj;
paut._NombreEstiloTexto =
this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString();
break;
#endregion
#region nombre estilo texto CHECKBOX
case "CHECKBOX":
PanelCheckBox pchb = (PanelCheckBox)obj;
pchb._NombreEstiloTexto =
this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString();
pchb.cambiarEstiloTexto(this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString());
break;
#endregion
#region nombre estilo texto COMBOBOX
case "COMBOBOX":
PanelComboBox pcb = (PanelComboBox)obj;
pcb._NombreEstiloTexto =
this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString();
break;
#endregion
#region nombre estilo COMBOBOXNUMERICO
case "COMBOBOXNUMERICO":
PanelComboBoxNumerico pcbn = (PanelComboBoxNumerico)obj;
pcbn._NombreEstiloTexto =
this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString();
break;
#endregion
#region nombre estilo CAMPOFECHA
case "CAMPOFECHA":
PanelCampoFecha pf = (PanelCampoFecha)obj;
pf._NombreEstiloTexto =
this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString();
break;
#endregion
#region nombre estilo OPCION
case "OPCION":
PanelCampoOpcion po = (PanelCampoOpcion)obj;
po._NombreEstiloTexto =
this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString();
po.cambiarEstiloTexto(this.comboBox2.Items[this.comboBox2.SelectedIndex].ToString());
break;
#endregion
}
}
}
#endregion
#region modifica tamaño controles
private void cmbTamanioFuenteBB_SelectedIndexChanged(object sender, EventArgs e)
{
if (cambiaTexto)
154
{
ObjetoBase obj = (ObjetoBase)arreglo[indiceSeleccionado];
switch (obj._TipoControl)
{
#region tamaño texto ETIQUETA
case "ETIQUETA":
PanelEtiqueta pe = (PanelEtiqueta)obj;
pe._TamanioTexto =
this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].ToString();
pe.modificaTamanioTexto(pe._TamanioTexto);
break;
#endregion
#region tamaño textoRICHTEXTBOX
case "RICHTEXTBOX":
PanelRichTextBox prtb = (PanelRichTextBox)obj;
prtb._TamanioTexto =
this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].ToString();
prtb.modificaTamanioTexto(prtb._TamanioTexto);
break;
#endregion
#region tamaño texto CAJATEXTO
case "CAJATEXTO":
PanelCajatexto pct = (PanelCajatexto)obj;
pct._TamanioTexto =
this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].ToString();
break;
#endregion
#region tamaño texto PASSWORD
case "PASSWORD":
PanelPassword pp = (PanelPassword)obj;
pp._TamanioTexto =
this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].ToString();
break;
#endregion
#region tamaño texto EMAIL
case "EMAIL":
PanelEmail pem = (PanelEmail)obj;
pem._TamanioTexto =
this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].ToString();
break;
#endregion
#region tamaño texto TEXTOAUTOCOMPLETAR
case "TEXTOAUTOCOMPLETAR":
PanelTextoAutocompletar pta = (PanelTextoAutocompletar)obj;
pta._TamanioTexto =
this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].ToString();
break;
#endregion
#region tamaño texto CAJATEXTOAUTOCORREGIR
case "CAJATEXTOAUTOCORREGIR":
PanelTextoAutocorregir ptac = (PanelTextoAutocorregir)obj;
ptac._TamanioTexto =
this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].ToString();
break;
#endregion
#region tamaño texto TEXTOAUTOCOMPLETAR_
case "TEXTOAUTOCOMPLETAR_":
155
PanelAutoCompletar paut = (PanelAutoCompletar)obj;
paut._TamanioTexto =
this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].ToString();
break;
#endregion
#region tamaño texto CHECKBOX
case "CHECKBOX":
PanelCheckBox pchb = (PanelCheckBox)obj;
pchb._TamanioTexto =
this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].ToString();
pchb.modificaTamanioTexto(this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].
ToString());
break;
#endregion
#region tamaño texto COMBOBOX
case "COMBOBOX":
PanelComboBox pcb = (PanelComboBox)obj;
pcb._TamanioTexto =
this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].ToString();
break;
#endregion
#region tamaño COMBOBOXNUMERICO
case "COMBOBOXNUMERICO":
PanelComboBoxNumerico pcbn = (PanelComboBoxNumerico)obj;
pcbn._TamanioTexto =
this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].ToString();
break;
#endregion
#region tamaño CAMPOFECHA
case "CAMPOFECHA":
PanelCampoFecha pf = (PanelCampoFecha)obj;
pf._TamanioTexto =
this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].ToString();
break;
#endregion
#region tamaño texto OPCION
case "OPCION":
PanelCampoOpcion po = (PanelCampoOpcion)obj;
po._TamanioTexto =
this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].ToString();
po.modificaTamanioTexto(this.cmbTamanioFuenteBB.Items[this.cmbTamanioFuenteBB.SelectedIndex].To
String());
break;
#endregion
}
}
}
#endregion
#region agrega control etiqueta
private void AgregaEtiqueta_Click(object sender, EventArgs e)
{
PanelEtiqueta pnl = new PanelEtiqueta("Texto etiqueta");
aumentaPanel(pnl, pnl._ancho,pnl._alto);
AsignaNombre();
}
156
#endregion
#region agrega control caja texto solo lectura
private void button12_Click(object sender, EventArgs e)
{
PanelRichTextBox pnl = new PanelRichTextBox("Texto Caja");
aumentaPanel(pnl, pnl._ancho, pnl._alto);
AsignaNombre();
}
#endregion
private void txtColorFuenteEtiquetaBB_TextChanged(object sender, EventArgs e)
{
}
#region agrega control caja texto
private void button2_Click(object sender, EventArgs e)
{
PanelCajatexto pnl = new PanelCajatexto(true);
aumentaPanel(pnl,pnl._ancho,pnl._alto);
AsignaNombre();
}
#endregion
#region agrega control password
private void button13_Click(object sender, EventArgs e)
{
PanelPassword pnl = new PanelPassword(true);
aumentaPanel(pnl,pnl._ancho,pnl._alto);
AsignaNombre();
}
#endregion
#region elimina contorl seleccionado
private void toolStripMenuItem1_Click_1(object sender, EventArgs e)
{
try
{
arreglo.RemoveAt(indiceSeleccionado);
pnlSeleccionado.Visible = false;
indiceSeleccionado = -1;
}
catch (Exception ex)
{
MessageBox.Show("No Existen Elementos Para Eliminar", "No Items", MessageBoxButtons.OK,
MessageBoxIcon.Asterisk);
}
}
#endregion
#region agrega control email
private void button14_Click(object sender, EventArgs e)
{
PanelEmail pnl = new PanelEmail(true);
aumentaPanel(pnl,pnl._ancho,pnl._alto);
AsignaNombre();
}
#endregion
#region agrega control texto autocompletar
private void button15_Click(object sender, EventArgs e)
{
PanelTextoAutocompletar ptac = new PanelTextoAutocompletar(true);
157
aumentaPanel(ptac,ptac._ancho,ptac._alto);
AsignaNombre();
}
#endregion
#region cambia texto de combos box
private void button16_Click(object sender, EventArgs e)
{
DialogoAccionBoton vnt = new DialogoAccionBoton();
vnt.Text = "Contenido ";
vnt.ShowDialog();
this.txtContenidoCombo.Text = vnt.contenidoT;
string conteidoIngresado = vnt.contenidoT;
string[] miArregloIngresado = conteidoIngresado.Replace(Encoding.ASCII.GetString(new byte[] {
(byte)13 }).ToString() + Encoding.ASCII.GetString(new byte[] { (byte)10 }).ToString(),"*").Split('*');
Array n = miArregloIngresado.ToArray();
ObjetoBase obj1 = (ObjetoBase)arreglo[indiceSeleccionado];
if (obj1._TipoControl == "TEXTOAUTOCOMPLETAR")
{
PanelTextoAutocompletar ptac = (PanelTextoAutocompletar)arreglo[indiceSeleccionado];
ptac.Contenido = n;
}
if (obj1._TipoControl == "COMBOBOX")
{
PanelComboBox ptac = (PanelComboBox)arreglo[indiceSeleccionado];
ptac.Contenido = n;
}
}
#endregion
#region agrega control autocorregir
private void button18_Click(object sender, EventArgs e)
{
PanelTextoAutocorregir ptac = new PanelTextoAutocorregir(true);
aumentaPanel(ptac,ptac._ancho,ptac._alto);
AsignaNombre();
}
#endregion
#region agrega region autocompletar
private void button19_Click(object sender, EventArgs e)
{
PanelAutoCompletar ptac = new PanelAutoCompletar(true);
aumentaPanel(ptac,ptac._ancho,ptac._alto);
AsignaNombre();
}
#endregion
private void ovalShape1_Click(object sender, EventArgs e)
{
}
#region agrega control check box
private void button4_Click(object sender, EventArgs e)
{
PanelCheckBox ptac = new PanelCheckBox();
aumentaPanel(ptac,ptac._ancho,ptac._alto);
AsignaNombre();
}
#endregion
#region agrega control combo box
158
private void button20_Click(object sender, EventArgs e)
{
PanelComboBox ptac = new PanelComboBox(true);
aumentaPanel(ptac,ptac._ancho,ptac._alto);
AsignaNombre();
}
#endregion
#region agrega contorl combo box numerico
private void button21_Click(object sender, EventArgs e)
{
PanelComboBoxNumerico pcbn = new PanelComboBoxNumerico(true);
pcbn.indiceInicio = 0;
pcbn.indiceFinal = 100;
pcbn.incremento = 1;
pcbn.comienzo = 0;
aumentaPanel(pcbn,pcbn._ancho,pcbn._alto);
AsignaNombre();
}
#endregion
#region agrega control fecha
private void button22_Click(object sender, EventArgs e)
{
PanelCampoFecha ptac = new PanelCampoFecha(true);
aumentaPanel(ptac,ptac._ancho,ptac._alto);
AsignaNombre();
}
#endregion
#region agrega control opcion
private void button23_Click(object sender, EventArgs e)
{
PanelCampoOpcion pco = new PanelCampoOpcion();
aumentaPanel(pco, pco._ancho,pco._alto);
AsignaNombre();
}
#endregion
#region agrega control boton
private void button24_Click(object sender, EventArgs e)
{
PanelBoton pnl = new PanelBoton(true);
aumentaPanel(pnl,pnl._ancho,pnl._alto);//,pnl._ancho);
AsignaNombre();
}
#endregion
#region agrega campo imagen
private void button6_Click(object sender, EventArgs e)
{
PanelCampoImagen pci = new PanelCampoImagen();
aumentaPanel(pci, pci._ancho,pci._alto);
AsignaNombre();
}
#endregion
#region cambia imagen de control imagen
private void button25_Click(object sender, EventArgs e)
{
ObjetoBase obj = (ObjetoBase)arreglo[indiceSeleccionado];
if (obj._TipoControl == "IMAGEN")
{
159
PanelCampoImagen pci = (PanelCampoImagen)arreglo[indiceSeleccionado];
opfdImagen.Filter = "Imagenes Ligeras (*.jpg)|*.jpg|Mapas de Bits(*.bmp)|*.bmp|Imagenes
Web(*.gif)|*.gif";
opfdImagen.ShowDialog();
string pathImagen = opfdImagen.FileName;
string nombreArchivo = "";
string nombreDirectorio = "";
separaDirArchivo(pathImagen, ref nombreDirectorio, ref nombreArchivo);
nombreImagenFondo = nombreArchivo;
this.txtImagenSeleccionada.Text = nombreImagenFondo;
/*if(File.Exists("C:\\FuentesDesarrolladosTHWPR\\Proyecto\\res\\" + nombreArchivo)){
File.Delete("C:\\FuentesDesarrolladosTHWPR\\Proyecto\\res\\" + nombreArchivo);
}
File.Copy(pathImagen, "C:\\FuentesDesarrolladosTHWPR\\Proyecto\\res\\" + nombreArchivo);
Image img1 = Image.FromFile("C:\\FuentesDesarrolladosTHWPR\\Proyecto\\res\\" +
nombreArchivo);*/
if (File.Exists(_DirectorioJava.Replace("\\src", "\\res\\") + nombreArchivo))
{
File.Delete(_DirectorioJava.Replace("\\src", "\\res\\") + nombreArchivo);
}
File.Copy(pathImagen, _DirectorioJava.Replace("\\src", "\\res\\") + nombreArchivo);
Image img1 = Image.FromFile(_DirectorioJava.Replace("\\src", "\\res\\") + nombreArchivo);
pci.BackgroundImage = CambiarTamanoImagen(img1, pci._ancho, pci._alto);
pci.NombreImagenVer = nombreArchivo;
pci.rutaImagentemporal = pathImagen;
}
}
#endregion
#region agrega campo navegador
private void button26_Click(object sender, EventArgs e)
{
PanelBrowserField pci = new PanelBrowserField();
aumentaPanel(pci, pci._ancho, pci._alto);
AsignaNombre();
}
#endregion
#region agrega campo mapa
private void button27_Click(object sender, EventArgs e)
{
PanelCamposMapa pci = new PanelCamposMapa();
aumentaPanel(pci, pci._ancho, pci._alto);
AsignaNombre();
}
#endregion
#region cambia icono de barra de ventana
private void btnBotonImagenIcono_Click(object sender, EventArgs e)
{
opfdImagen.Filter = "Imagenes Ligeras de Iconos(*.png)|*.png|Mapas de
Bits(*.bmp)|*.bmp|Imagenes Web(*.gif)|*.gif";
opfdImagen.ShowDialog();
string pathImagen = opfdImagen.FileName;
System.IO.FileInfo finfo = new System.IO.FileInfo(pathImagen);
if (finfo.Length > 18037)
{
160
MessageBox.Show("El Tamaño de la imagen es Superior al permitido...favor de seleccionar
imagenes de maximo 18kb", "Archivo incorrecto", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
return;
}
string nombreArchivo = "";
string nombreDirectorio = "";
separaDirArchivo(pathImagen, ref nombreDirectorio, ref nombreArchivo);
this.txtImagenSeleccionada.Text = nombreImagenFondo;
/*if(File.Exists("C:\\FuentesDesarrolladosTHWPR\\Proyecto\\res\\" + nombreArchivo)){
File.Delete("C:\\FuentesDesarrolladosTHWPR\\Proyecto\\res\\" + nombreArchivo);
}
File.Copy(pathImagen, "C:\\FuentesDesarrolladosTHWPR\\Proyecto\\res\\" + nombreArchivo);
Image img1 = Image.FromFile("C:\\FuentesDesarrolladosTHWPR\\Proyecto\\res\\" +
nombreArchivo);*/
if (File.Exists(_DirectorioJava.Replace("\\src", "\\res\\") + nombreArchivo))
{
File.Delete(_DirectorioJava.Replace("\\src", "\\res\\") + nombreArchivo);
}
try
{
File.Copy(pathImagen, _DirectorioJava.Replace("\\src", "\\res\\") + nombreArchivo);
}
catch (Exception ex)
{
MessageBox.Show("La Imagen se encuentra en el Proyecto Actual","Imagen
Existente",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
this.txtImagenIcono.Text = nombreArchivo;
}
#endregion
#region genera solucion
private void button28_Click(object sender, EventArgs e)
{
string pathInput = _DirectorioJava.Substring(0,_DirectorioJava.Length-4);
string pathOutput = _DirectorioJava.Substring(0, _DirectorioJava.Length - 4) + "\\Solucion";
string nombreApp = this.txtNombreSolucion.Text;
generasolucion(pathInput, pathOutput, nombreApp);
}
#endregion
private void pnlPropiedadesEtiqueta_Paint(object sender, PaintEventArgs e)
{
}
private void textBox9_TextChanged(object sender, EventArgs e)
{
PanelComboBoxNumerico pbk = (PanelComboBoxNumerico)arreglo[indiceSeleccionado];
pbk.indiceInicio = int.Parse((this.txtMinimo.Text == "") ? "0" : this.txtMinimo.Text);
}
private void textBox8_TextChanged(object sender, EventArgs e)
{
PanelComboBoxNumerico pbk = (PanelComboBoxNumerico)arreglo[indiceSeleccionado];
161
pbk.comienzo = int.Parse((this.txtComienzo.Text == "") ? "0" : this.txtComienzo.Text);
}
private void textBox4_TextChanged(object sender, EventArgs e)
{
}
private void textBox7_TextChanged(object sender, EventArgs e)
{
PanelComboBoxNumerico pbk = (PanelComboBoxNumerico)arreglo[indiceSeleccionado];
pbk.incremento = int.Parse((this.txtIncremento.Text == "") ? "0" : this.txtIncremento.Text);
}
private void label17_Click(object sender, EventArgs e)
{
}
private void imgChoice_TextChanged(object sender, EventArgs e)
{
}
private void txtMaximo_TextChanged(object sender, EventArgs e)
{
PanelComboBoxNumerico pbk = (PanelComboBoxNumerico)arreglo[indiceSeleccionado];
pbk.indiceFinal = int.Parse((this.txtMaximo.Text == "") ? "0" : this.txtMaximo.Text);
}
private void txtAncho_TextChanged(object sender, EventArgs e)
{
PanelCampoImagen pci = (PanelCampoImagen)arreglo[indiceSeleccionado];
pci._ancho = int.Parse((this.txtAncho.Text=="")?"0":this.txtAncho.Text);
pci.Width = pci._ancho;
}
private void txtAlto_TextChanged(object sender, EventArgs e)
{
PanelCampoImagen pci = (PanelCampoImagen)arreglo[indiceSeleccionado];
pci._alto = int.Parse((this.txtAlto.Text == "") ? "0" : this.txtAlto.Text);
pci.Height = pci._alto;
}
private void timer1_Tick(object sender, EventArgs e)
{
if(mostrar>=5){
this.Opacity = 100;
this.Visible=true;
this.Show();
this.timer1.Enabled = false;
}
else
{
this.Visible = false;
this.Hide();
}
162
mostrar++;
}
private void toolTip1_Popup(object sender, PopupEventArgs e)
{
}
private void menuStrip1_ItemClicked_2(object sender, ToolStripItemClickedEventArgs e)
{
}
private void mostrarCodigoToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void compilarToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void generarSoluciónToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void generarCodigoToolStripMenuItem_Click(object sender, EventArgs e)
{
//if (button5.Text == "Mostrar Código")
if(generarCodigoToolStripMenuItem.Text == "Mostrar Código")
{
generarCodigoToolStripMenuItem.Text = "Mostrar Diseño";
pnlImagenBlackBerry.Visible = false;
pnlCodigoGenerado.Visible = true;
pnlCodigoGenerado.Left = 605;
pnlCodigoGenerado.Top = 35;
pnlCodigoGenerado.Width = 505;
pnlCodigoGenerado.Height = 697;
generaCodigoJava();
}
else
{
generarCodigoToolStripMenuItem.Text = "Mostrar Código";
pnlCodigoGenerado.Visible = false;
pnlImagenBlackBerry.Visible = true;
pnlImagenBlackBerry.Left = 605;
pnlImagenBlackBerry.Top = 35;
}
}
private void generarSolucionToolStripMenuItem_Click(object sender, EventArgs e)
{
string pathInput = _DirectorioJava.Substring(0, _DirectorioJava.Length - 4);
string pathOutput = _DirectorioJava.Substring(0, _DirectorioJava.Length - 4) + "\\Solucion";
string nombreApp = this.txtNombreSolucion.Text;
163
generasolucion(pathInput, pathOutput, nombreApp);
}
private void compilarToolStripMenuItem1_Click(object sender, EventArgs e)
{
creaArchivoJava();
string res = "Archivo compilado exitosamente";
string dirJava = "", dirJarRIM = "";
extraerFicherBinJava(ref dirJava, ref dirJarRIM);
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = "\"" + dirJava + "\\bin\\javac\"";
proc.StartInfo.Arguments = " -Xlint:unchecked -classpath \".\\;" + dirJarRIM + "net_rim_api.jar\" \""
+ _DirectorioJava + "\\" + _NombreJava + "\"";
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();
//System.IO.StreamReader myOutput = proc.StandardOutput;
proc.BeginOutputReadLine();
res = proc.StandardError.ReadToEnd();
proc.WaitForExit();
if (res.Length <= 0)
{
this.txtResultadoMovimiento.Text = "Archivo compilado exitosamente";
}
else
{
int posError = -1;
posError = res.ToUpper().IndexOf("ERROR");
if (posError > -1)
{
this.txtResultadoMovimiento.Text = "Archivo compilado con Errores \n" + res;
}
else
{
this.txtResultadoMovimiento.Text = "Archivo compilado con Advertencias \n" + res;
}
}
}
private void button1_Click(object sender, EventArgs e)
{
try
{
opfdImagen.Filter = "Imagenes Ligeras de Iconos (*.png)|*.png|Mapas de
Bits(*.bmp)|*.bmp|Imagenes Web(*.gif)|*.gif";
opfdImagen.ShowDialog();
string pathImagen = opfdImagen.FileName;
System.IO.FileInfo infoImg = new System.IO.FileInfo(pathImagen);
if(infoImg.Length>18037){
MessageBox.Show("La Imagen es Demaciado Grande...favor de Seleccionar una Imagen
menor a 17kb", "Imagen Grande", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
164
string nombreArchivo = "";
string nombreDirectorio = "";
separaDirArchivo(pathImagen, ref nombreDirectorio, ref nombreArchivo);
this.txtIconoSolucionApp.Text = nombreArchivo;
if (File.Exists(_DirectorioJava.Replace("\\src", "\\res\\img\\") + nombreArchivo))
{
File.Delete(_DirectorioJava.Replace("\\src", "\\res\\img\\") + nombreArchivo);
}
try
{
File.Copy(pathImagen, _DirectorioJava.Replace("\\src", "\\res\\img\\") + nombreArchivo);
}
catch (Exception ex)
{
MessageBox.Show("La Imagen ya esta siendo utilizada en el Proyecto Actual", "Imagen
Repetida", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
catch (Exception ex)
{
}
}
private void nuevoToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Controls.Clear();
InitializeComponent();
arreglo = new ArrayList();
crearDirectorios();
this.cmbTipoFondo.SelectedIndex = 0;
}
}
}
Codificación AppConfig
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
165
MANUAL DE USUARIO
1
Índice General
INTRODUCCIÓN
5
OBJETIVOS DE ESTE MANUAL
5
A QUIEN VA DIRIGIDO ESTE MANUAL
5
CONOCIMIENTOS PREVIOS
5
ACERCA DE ESTE MANUAL
6
CARACTERÍSTICAS DEL APLICATIVO
6
BENEFICIOS
7
PANTALLA DE PRESENTACION
7
PANTALLA DE CREACION SELECCIÓN DE SOLICITUD
8
PANTALLA PRINCIPAL
9
Área De Propiedades de controles de Formularios
11
2
Índice de Gráficos
GRÁFICO 1 Verificación Framework
6
GRAFICO 2 Verificación de JDK
7
GRÁFICO 3 PRESENTACION AGBB
8
GRÁFICO 4 Pantalla de Creación , Selección de Solución
8
GRÁFICO 5 Selección de Solución existente
9
GRÁFICO 6 Selección de Clase Creada
9
GRAFICO 7 Pantalla de Diseño
10
GRÁFICO 8 Detalle de Pantalla de Desarrollo - Detalle
10
GRÁFICO 9 Área de Desarrollo
11
GRÁFICO 10 Área de propiedades de Formulario y propiedades
11
de solución
GRAFICO 11 Selección de Tipo de Fondo de Pantalla
12
GRAFICO 12 Selección Color
12
GRAFICO 13 Selección Imagen
12
GRÁFICO 14 Área De Cuadro de Herramientas
13
GRÁFICO 15 Propiedades de control Label
16
GRAFICO 16 Propiedades de Caja de Selección
16
GRÁFICO 17 Propiedades Control de Opción
17
GRÁFICO 18 Propiedades de Botón
17
GRÁFICO 19 Propiedades de Lista de Selección de Texto
18
GRAFICO 20 Propiedades Lista de Selección numérica
18
GRÁFICO 21 Propiedades de Control Texto
19
GRAFICO 12 Propiedades de Texto de Solo Lectura
20
GRAFICO 13 Propiedades de Texto Auto búsqueda
20
GRÁFICO 14 Propiedades de texto Autocorregir
21
GRAFICO 15 Propiedades Texto Autocompletar
21
GRÁFICO 16 Propiedades de control Correo Electrónico
22
GRÁFICO 17 Propiedades de Password
22
3
6
GRAFICO 18 Propiedades de control fecha
23
GRÁFICO 19 Propiedades de Control Web
23
GRÁFICO 20 Propiedades de control imagen
24
GRÁFICO 21 Propiedades de control mapa
24
GRÁFICO 22 Menú de Control
25
GRAFICO 23 Código Generado
26
GRÁFICO 24 Diseño
27
GRÁFICO 25 Menú Acción Compilar
28
GRÁFICO 26 Ventana de Diseño Para compilación
28
GRÁFICO 27 Importación de Solución a Eclipse
29
GRÁFICO 28 Paso 2 de importación de solución a eclipse
30
GRÁFICO 29 Importación de solución a Eclipse Paso 3
30
GRAFICO 30 Selección de Carpeta Solución
31
GRÁFICO 31 Verificación de Archivo Solución
31
GRÁFICO 32 Visualización de solución en Eclipse
32
GRAFICO 33 Ejecución del Proyecto en Eclipse – Selección de
32
Emulador
GRAFICO 34 Ejecución de Proyecto, Verificación de
33
compilación en Eclipse
GRÁFICO 35 Visualización e Solución
33
4
25
GENERALIDADES
INTRODUCCIÓN
Este manual contiene información respecto a cómo operar con el Aplicativo AGBB
(Aplicaciones Grafica BlackBerry), además indicaciones de cómo funciona y los
conocimientos mínimos que debe tener el usuario para transmitir y comprender la
idea del desarrollo de aplicaciones móviles.
OBJETIVOS DE ESTE MANUAL
Ayudar al usuario en general al correcto desenvolvimiento en nuestro aplicativo y
que conozca las facilidades que este brinda al momento de crear aplicaciones para
dispositivos BlackBerry.
El mismo que comprende:
Conocer el alcance de todo el aplicativo por medio de una explicación
detallada e ilustrada de cada una de las opciones que lo forman.
Funciones no previstas o inesperadas.
A QUIEN VA DIRIGIDO ESTE MANUAL
Está dirigido, a todos los desarrolladores de aplicaciones orientado a dispositivos
móviles.
Está dirigido a desarrolladores que buscan hacer aplicaciones amigables para los
usuarios finales.
Está dirigido a todos los desarrolladores que estan familiarizados con desarrollos de
aplicaciones con una interfaz gráfica.
Está dirigido a los desarrolladores que tienen conocimientos básico de lenguaje
java.
Está dirigido a desarrolladores que tiene un conocimiento del IDE Eclipse para la
creación de los ejecutables y publicaciones.
5
Está dirigido a desarrolladores que tiene conocimiento de proyectos J2ME.
CONOCIMIENTOS PREVIOS
Se recomienda, que el usuario tenga conocimiento de desarrollo de aplicaciones
utilizando J2ME (Java 2 Micro Edition).
El usuario deber estar familiarizado con las funcionalidades que brindan los
dispositivos BlackBerry. Se recomienda que el usuario tenga conocimiento de
programación Orientada a objetos.
El usuario debe tener conocimiento del uso del aplicativo Eclipse para Java, debido
a la interacción del aplicativo desarrollado con el IDE en mención. El desarrollador
debe tener conocimiento del sistema operativo Windows
ACERCA DE ESTE MANUAL
Este manual, contiene las instrucciones necesarias, para indicar cuáles son las
mejores opciones a seguir para el desempeño de una funcionalidad en especial.
CARACTERÍSTICAS DEL APLICATIVO
El usuario debe confirmar que tenga instalado el componente net Framework 3.5 o
superior, para ello se debe dirigir a
panel de control Programas y características  revisar el componente instalado.
GRÁFICO 1
Verificación Framework
Para versiones anteriores a Windows vista se verifica el paquete de instalación en
6
panel de control  programas instalados.
El aplicativo trabaja con el jdk versión 7, para lo cual se verificara el paquete de
desarrollo y el paquete de ejecución en la dirección C:/Program File/Java
GRAFICO 2
Verificación de JDK
BENEFICIOS
 Se buscar optimizar el desarrollo de aplicaciones para dispositivos móviles
BlackBerry.
 Se brindara una interfaz amigable e intuitiva para el desarrollo de las
interfaces de usuarios.
 Permitir la interacción de los controles y las propiedades de los objetos
pertenecientes a una aplicación java de dispositivos BlackBerry.
 Se permitirá la revisión del código generado y modificación del mismo,
brindando la posibilidad de modificar este código e incluir lógica de
programación para los diferentes aplicativos a realizarse.
 Permitir la compilación del código para descartar posibles errores de
compilación.
 Permitir la generación de un proyecto compatible con el entorno de Eclipse
7
AGBB de Contenido
PANTALLA DE PRESENTACION
GRÁFICO 3
PRESENTACION AGBB
PANTALLA DE CREACION SELECCIÓN DE SOLICITUD
En esta pantalla se le permite al usuario las opciones de crear una nueva solución o
seleccionar una solución existente.
GRÁFICO 4
Pantalla de Creación , Selección de Solucion
En la opción de crear solución se le permitirá al usuario crear el sistema de archivos,
asi como los diferentes objetos iniciales para que la solución pueda ser compilada,
una vez creada la solución se creara el archivo <nombreSoluicion>.xmlSolucion
8
Este contiene la información necesaria para ser abierto y retomar el diseño, en la
opción abrir solución existente se buscara un archivo xmlSolucion
GRÁFICO 5
Selección de Solución existente
Y una vez abierto este archivo se cargaran las clases creadas en esta solución.
GRÁFICO 6
Selección de Clase Creada
PANTALLA PRINCIPAL
9
Pantalla Desarrollador
Esta pantalla contiene todo lo concerniente a los controles de las aplicaciones para
los dispositivos BlackBerry.
GRAFICO 7
Pantalla de Diseño
GRÁFICO 8
Detalle de Pantalla de Desarrollo - Detalle
A: Área de Desarrollo
B: Área De Propiedades de Formulario y Propiedades de Solución
C: Área De Cuadro de herramientas
D: Área De Propiedades de Controles de Formulario
E: Menú de Control.
10
GRÁFICO 9
Área de Desarrollo
En esta pantalla se colocara los diferentes objetos que vayan a utilizaran en el
aplicativo, la ubicación es a comodidad del desarrollador.
GRÁFICO 10
Área de propiedades de Formulario y propiedades de solución
NOMBRE SOLUCIÓN: Nombre de la solución o proyecto que se exportara a
Eclipse
ICONO SOLUCIÓN: Icono que se displayara en el dispositivo BlackBerry
TITULO: Titulo de la pantalla o formulario
ICONO: Icono que se mostrara en la barra de tareas.
Reloj: Indica si se mostrara el reloj en la barra de título de la aplicación
11
Notificaciones: Indica si se mostraran las notificaciones en la barra de tarea de la
aplicación
Señal: Indica si se muestra el identificador de señalen la barra de titulo
GRAFICO 11
Selección de Tipo de Fondo de Pantalla
Fondo: Indica que tipo de fondo se va a utilizar. Se tienen los siguientes
Ninguno: no se usara ningún fondo.
Color: indica que tendrá color de fondo
GRAFICO 12
Selección Color
Imagen: indica que se usara una imagen, aquí se solicita una imagen
GRAFICO 13
Selección Imagen
12
GRÁFICO 14
Área De Cuadro de Herramientas.
Muestra todos los controles a ser usados en una aplicación para el dispositivo
Blackberry
Etiqueta:
Permite mostrar un texto con el formato que se desee, este texto no es editable en el
momento de ejecución.
Caja de Selección
Es una caja de selección, si este objeto se agregan más de 1 no hay restricción se
13
pueden elegir más de 2 a la vez, es una caja de selección múltiple
Caja de Opción
Este control es de opción única, es decir si hay más de un control solo se permite
coger una sola opción.
Botón
Es un Control de acción para el formulario que se creo
Lista de Selección Txt
Es un control de opción con lista desplegable para selección única
Lista de selección Núm.
Es un control de lista de selección que muestra como contenido de lista solo
números.
Texto
Es un control que permite ingresar texto, este control es de mixtilíneas
Texto Solo Lectura
Es un control que permite ingresar texto en varia líneas, este control en tiempo
de ejecución no permite la edición.
Texto auto búsqueda
14
Es un control que permite la edición y se guarda en memoria lo escrito para que
en un futuro se permita el ingreso del mismo y se busque entre las diferentes
opciones ingresadas.
Texto Autocorregir
Es un control que permite el ingreso del texto y permite con el diccionario
activo la corrección de las palabras ingresadas así como indicar que palabra
está mal escrita
Texto Autocompletar
Es un control que permite el ingreso del texto y dependiendo del diccionario
completa la palabra
Correo Electrónico
Es un control que permite el ingreso de correos electrónico
Password
Es un control de ingreso de texto, este texto en modo de ejecución es
escondido.
Campo Fecha
Es un campo de ingreso de Fecha
Campo Web
15
Es un campo donde se puede ingresar código HTML o en su defecto una uro
para que se muestre una página en el aplicativo de dispositivo BlackBerry
Campo Imagen
Este campo es un campo que permite visualizar una imagen en el aplicativo
para el dispositivo BlackBerry
Campo MAPA
Este campo permite visualiza el mapa en la aplicación para el dispositivo
BlackBerry.
Área De Propiedades de controles de Formularios.
Indica las propiedades de cada control a usarse en las aplicaciones para dispositivos
BlackBerry
GRÁFICO 15
Propiedades de control Label
Nombre: Nombre del control
Texto: texto de la etiqueta
Color Fondo: Color de fondo de la etiqueta
Familia Fuente: Nombre de la familia de texto del control
Estilo Fuente: Nombre del estilo del texto en el control
Tamaño Fuente: Tamaño de fuente del control
Color Fuente: el color de la fuente del texto del control
16
GRAFICO 16
Propiedades de Caja de Selección
Nombre: Nombre del control
Texto: texto de la etiqueta
Color Fondo: Color de fondo de la etiqueta
Familia Fuente: Nombre de la familia de texto del control
Estilo Fuente: Nombre del estilo del texto en el control
Tamaño Fuente: Tamaño de fuente del control
Color Fuente: el color de la fuente del texto del control
GRÁFICO 17
Propiedades Control de Opción
Nombre: Nombre del control
Texto: texto de la etiqueta
17
Color Fondo: Color de fondo de la etiqueta
Familia Fuente: Nombre de la familia de texto del control
Estilo Fuente: Nombre del estilo del texto en el control
Tamaño Fuente: Tamaño de fuente del control
Color Fuente: el color de la fuente del texto del control
GRÁFICO 18
Propiedades de Botón
Nombre: Nombre del control
Texto: texto o etiqueta del control
Color Fondo: Color del fondo del control
Acción Botón: Acción dedicada al control incluido
GRÁFICO 19
Propiedades de Lista de Selección de Texto
Nombre: Nombre del control
Texto: texto de la etiqueta
Color Fondo: Color de fondo de la etiqueta
Familia Fuente: Nombre de la familia de texto del control
Estilo Fuente: Nombre del estilo del texto en el control
Tamaño Fuente: Tamaño de fuente del control
18
Color Fuente: el color de la fuente del texto del control
Elementos: listado de elementos a utilizarse.
GRAFICO 20
Propiedades Lista de Selección numérica
Nombre: Nombre del control
Texto: texto de la etiqueta
Color Fondo: Color de fondo de la etiqueta
Familia Fuente: Nombre de la familia de texto del control
Estilo Fuente: Nombre del estilo del texto en el control
Tamaño Fuente: Tamaño de fuente del control
Color Fuente: el color de la fuente del texto del control
Mínimo: Mínimo en la lista de selección.
Comienzo: valor de inicio de la lista de selección.
Incremento: valor en que se incrementa la lista numérica en el control
Máximo: valor máximo de la lista de selección.
GRÁFICO 21
Propiedades de Control Texto
19
Nombre: Nombre del control
Texto: texto de la etiqueta
Color Fondo: Color de fondo de la etiqueta
Familia Fuente: Nombre de la familia de texto del control
Estilo Fuente: Nombre del estilo del texto en el control
Tamaño Fuente: Tamaño de fuente del control
Color Fuente: el color de la fuente del texto del control
Elementos: listado de elementos a utilizarse.
GRAFICO 12
Propiedades de Texto de Solo Lectura.
Nombre: Nombre del control
Texto: texto de la etiqueta
Color Fondo: Color de fondo de la etiqueta
20
Familia Fuente: Nombre de la familia de texto del control
Estilo Fuente: Nombre del estilo del texto en el control
Tamaño Fuente: Tamaño de fuente del control
Color Fuente: el color de la fuente del texto del control
Elementos: listado de elementos a utilizarse.
GRAFICO 13
Propiedades de Texto Auto búsqueda
Nombre: Nombre del control
Texto: texto de la etiqueta
Color Fondo: Color de fondo de la etiqueta
Familia Fuente: Nombre de la familia de texto del control
Estilo Fuente: Nombre del estilo del texto en el control
Tamaño Fuente: Tamaño de fuente del control
Color Fuente: el color de la fuente del texto del control
Elementos: listado de elementos a utilizarse para la búsqueda.
GRÁFICO 14
Propiedades de texto Autocorregir
21
Nombre: Nombre del control
Texto: texto de la etiqueta
Color Fondo: Color de fondo de la etiqueta
Familia Fuente: Nombre de la familia de texto del control
Estilo Fuente: Nombre del estilo del texto en el control
Tamaño Fuente: Tamaño de fuente del control
Color Fuente: el color de la fuente del texto del control
GRAFICO 15
Propiedades Texto Autocompletar
Nombre: Nombre del control
Texto: texto de la etiqueta
Color Fondo: Color de fondo de la etiqueta
Familia Fuente: Nombre de la familia de texto del control
Estilo Fuente: Nombre del estilo del texto en el control
Tamaño Fuente: Tamaño de fuente del control
Color Fuente: el color de la fuente del texto del control
GRÁFICO 16
22
Propiedades de control Correo Electrónico
Nombre: Nombre del control
Texto: texto de la etiqueta
Color Fondo: Color de fondo de la etiqueta
Familia Fuente: Nombre de la familia de texto del control
Estilo Fuente: Nombre del estilo del texto en el control
Tamaño Fuente: Tamaño de fuente del control
Color Fuente: el color de la fuente del texto del control
GRÁFICO 17
Propiedades de Password
Nombre: Nombre del control
Texto: texto de la etiqueta
Color Fondo: Color de fondo de la etiqueta
GRAFICO 18
Propiedades de control fecha
23
Nombre: Nombre del control
Texto: texto de la etiqueta
Color Fondo: Color de fondo de la etiqueta
GRÁFICO 19
Propiedades de Control Web
Nombre: Nombre del control
Texto: dirección uro de la página a cargar
Color Fondo: Color de fondo de la etiqueta
GRÁFICO 20
Propiedades de control imagen
24
Nombre: Nombre del control
Texto: no aplica
Ancho del control imagen
Alto alto del control imagen
Imagen imagen a cargar en el control
GRÁFICO 21
Propiedades de control mapa
Muestra el control que visualiza el mapa.
Para eliminar un control se hace click derecho en el control y aparece l opción de eliminar.
25
GRAFICO 22
Menú de Control
Permite ver las acciones que se realizaran, las cuales son las siguientes.
Nuevo. Permite crear un nuevo proyecto desde cero
Mostrar Codigo. Muestra el codigo que se genero con el formulario
Compilar Pewmrite compilar el codigo generado o modificado
Generar Solucion. Permite geenerar la solucion para ser importada en Eclipse
Menú Opción Nuevo
Permite limpiar el formulario y crear una nueva solución.
Menú Mostrar Código
Este menú cambia el t3exzto dependiendo de la acción que se va a realizar
Teniendo lo siguiente para este control
Al hacer clic en este control se mostrara el siguiente texto
En la acción mostrar código se mostrara el código generado y se permitirá la edición del
mismo
GRAFICO 23
26
Código Generado
27
El código generado es el resultado de la interacción con los diferentes controles que se
utilizaron para la aplicación
GRÁFICO 24
Diseño
Con la acción de mostrar diseño se muestra el diseñador
28
GRÁFICO 25
Menú Acción Compilar
La acción compilar analiza el código autogenerado y el código modificado por el usuario
en búsqueda de posibles errores
Menú Acción Generar Solución
Se muestra un mensaje indicando que la solución se ha generado en la ruta que se indica
en el mensaje
Esta ruta se cambia dependiendo de la solución generada
GRÁFICO 26
Ventana de Diseño Para compilación
El siguiente diseño se lo exportara a eclipse
29
Para lo cual se utilizara el ide de eclipse de la siguiente manera se genera la solución y se
muestra la dirección donde se genera
GRÁFICO 27
Importación de Solución a Eclipse
30
GRÁFICO 28
Paso 2 de importación de solución a eclipse
GRÁFICO 29
Importación de solución a Eclipse Paso 3
31
GRAFICO 30
Selección de Carpeta Solución
GRÁFICO 31
Verificación de Archivo Solución
32
GRÁFICO 32
Visualización de solución en Eclipse
ejecución de proyecto
Para ejecutar se hace click al botón play y seleccionar el emulador
GRAFICO 33
Ejecucion del Proyecto en Eclipse – Selección de Emulador
33
GRAFICO 34
Ejecución de Proyecto, Verificación de compilación en Eclipse
GRÁFICO 35
Visualización e Solución
34
Descargar