/*
* File: DriverVoz.java
*
* This file is a part of driver Voz for MICE, a program designed for
* people with severe motor disabilities to whom it is impossible
* to use a traditional mouse. This application gives these people
* the control of the physical mouse via another type of device.
*
* Authors: Isabel Gonz�lez
* Date: 2008/2009
*
* Company: Colegio P�blico de Educaci�n Especial Alborada, Zaragoza
* DIIS, Universidad de Zaragoza
*
* License: Copyright (C) 2009
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package drivercontrolvoz;
// http://mindprod.com/jgloss/jni.html
// http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=jni
import drivercontrolvoz.ParsearXML;
import java.awt.GridBagConstraints;
import java.awt.Image;
import java.io.File;
import java.net.URL;
import java.util.Locale;
import java.util.ResourceBundle;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import java.awt.Toolkit;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class DriverVoz extends javax.swing.JFrame {
// Parametros a enviar/ recibir al / del nucleo
public static final int MOVIMIENTO = 0;
public static final int PARADA = 1;
public static final int CLIC = 2;
public static final int ARRASTRAR = 3;
public static final int VELOCIDAD = 4;
public static final int TIPO = 5;
public static final int RELACION = 6;
public static final int FIN = 7;
public static final int NOMBRE = 8;
public static final int MENSAJERATON = 9;
public static final int FRENAR = 10;
public static Locale Idioma;// = new Locale("gl", "ES");
public static int tipoCod= MOVIMIENTO;
public static int parametro= MOVIMIENTO;
public static int minCursor=5;
public static int maxCursor=400;
public static int speedCursor = 100;
public static int relacionVel = 0;
public static boolean arrastrando=false;
public static Locale CopiaIdioma;
public static int CopiaminCursor, CopiamaxCursor, CopiaspeedCursor, CopiarelacionVel;
String ruta = "Imagenes/";
Conexion c;
private boolean iniciado=false;
private JLabel lblarriba;
private JLabel lblarribaIzda;
private JLabel lblabajo;
private JLabel lblizquierda;
private JLabel lblabajoDcha;
private JLabel lblabajoIzda;
private JLabel lblderecha;
private JLabel lblarribaDcha;
private JLabel lblparar;
private JLabel lblnada;
private JLabel lblfrenar;
private JFileChooser fch;
private JFileChooser fchOUT;
static {
try{
// display where loadLibrary is looking for native code
//System.out.println ( "Path de java : " + System.getProperty( "java.library.path" ) );
//System.load("C:\\reconocedor\\demo_raton_modificado\\Debug\\demo_raton.dll");
// cambiar luego por esta:
System.loadLibrary("libs/demo_raton");
} catch (UnsatisfiedLinkError e) {
e.printStackTrace();
System.out.println("No se puede cargar la libreria dinamica");
}
}
public DriverVoz(java.awt.Frame parent, boolean modal) {
//super(parent, modal);
c= new Conexion();
c.establecerConexion();
initComponents();
// posicionarEtiquetasClic();
// this.jLabelClicIzdo
CargarImagenes();
System.out.println("Antes de actualizar Idioma");
System.out.println("Dir actual: " + System.getProperty("user.dir"));
Idioma=new Locale("gl", "ES");
ActualizarIdioma();
System.out.println("Despues de actualizar Idioma");
CargarConfiguracionDefecto();
this.jMenuItemParar.setVisible(false);
// System.out.println("java.library.path:"+System.getProperty("java.library.path"));
// Si quisieramos cargar la libreria buscando en el java.library.path
this.pack();
}
static void enviarConfiguracionANucleo() {
// Envio la velocidad del cursor
Conexion.enviar(VELOCIDAD,speedCursor);
// Envio el tipo de movimiento (simple o doble)
if (relacionVel == 0) Conexion.enviar (TIPO, 0); // simple
else Conexion.enviar (TIPO, 1); // compuesta
// Envio la relacion de la velocidad
Conexion.enviar(RELACION,relacionVel);
}
// <editor-fold defaultstate="collapsed" desc=" C�digo Generado ">//GEN-BEGIN:initComponents
private void initComponents() {
buttonGroupIdiomas = new javax.swing.ButtonGroup();
jPanelClics = new javax.swing.JPanel();
jPanelMovimiento = new javax.swing.JPanel();
jPanelRalentizado = new javax.swing.JPanel();
jMenuBarControl = new javax.swing.JMenuBar();
jMenu = new javax.swing.JMenu();
jMenuItemIniciar = new javax.swing.JMenuItem();
jMenuItemParar = new javax.swing.JMenuItem();
jMenuItemConfigurar = new javax.swing.JMenuItem();
jMenuIdiomas = new javax.swing.JMenu();
jRadioButtonMenuItemCastellano = new javax.swing.JRadioButtonMenuItem();
jRadioButtonMenuItemIngles = new javax.swing.JRadioButtonMenuItem();
jMenuItemAbrir = new javax.swing.JMenuItem();
jMenuItemGuardar = new javax.swing.JMenuItem();
jMenuItemSalir = new javax.swing.JMenuItem();
jMenuAyuda = new javax.swing.JMenu();
jMenuItemAcercaDe = new javax.swing.JMenuItem();
getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.Y_AXIS));
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Driver de control por voz");
setResizable(false);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
}
});
jPanelClics.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 30, 10));
jPanelClics.setBorder(javax.swing.BorderFactory.createTitledBorder("Selecci\u00f3n"));
getContentPane().add(jPanelClics);
jPanelMovimiento.setLayout(new java.awt.GridLayout(3, 3, 2, 2));
jPanelMovimiento.setBorder(javax.swing.BorderFactory.createTitledBorder("Movimiento"));
getContentPane().add(jPanelMovimiento);
jPanelRalentizado.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 30, 10));
jPanelRalentizado.setBorder(javax.swing.BorderFactory.createTitledBorder("Deceleraci\u00f3n"));
getContentPane().add(jPanelRalentizado);
jMenu.setText("Opciones");
jMenu.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuActionPerformed(evt);
}
});
jMenuItemIniciar.setText("Iniciar");
jMenuItemIniciar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemIniciarActionPerformed(evt);
}
});
jMenu.add(jMenuItemIniciar);
jMenuItemParar.setText("Parar");
jMenuItemParar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemPararActionPerformed(evt);
}
});
jMenu.add(jMenuItemParar);
jMenuItemConfigurar.setText("Configuraci\u00f3n");
jMenuItemConfigurar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemConfigurarActionPerformed(evt);
}
});
jMenu.add(jMenuItemConfigurar);
jMenuIdiomas.setText("Idioma");
buttonGroupIdiomas.add(jRadioButtonMenuItemCastellano);
jRadioButtonMenuItemCastellano.setSelected(true);
jRadioButtonMenuItemCastellano.setText("Castellano");
jRadioButtonMenuItemCastellano.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jRadioButtonMenuItemCastellanoActionPerformed(evt);
}
});
jMenuIdiomas.add(jRadioButtonMenuItemCastellano);
buttonGroupIdiomas.add(jRadioButtonMenuItemIngles);
jRadioButtonMenuItemIngles.setText("Ingl\u00e9s");
jRadioButtonMenuItemIngles.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jRadioButtonMenuItemInglesActionPerformed(evt);
}
});
jMenuIdiomas.add(jRadioButtonMenuItemIngles);
jMenu.add(jMenuIdiomas);
jMenuItemAbrir.setText("Abrir");
jMenuItemAbrir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemAbrirActionPerformed(evt);
}
});
jMenu.add(jMenuItemAbrir);
jMenuItemGuardar.setText("Guardar");
jMenuItemGuardar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemGuardarActionPerformed(evt);
}
});
jMenu.add(jMenuItemGuardar);
jMenuItemSalir.setText("Salir");
jMenuItemSalir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemSalirActionPerformed(evt);
}
});
jMenu.add(jMenuItemSalir);
jMenuBarControl.add(jMenu);
jMenuAyuda.setText("Ayuda");
jMenuItemAcercaDe.setText("Acerca de ...");
jMenuItemAcercaDe.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemAcercaDeActionPerformed(evt);
}
});
jMenuAyuda.add(jMenuItemAcercaDe);
jMenuBarControl.add(jMenuAyuda);
setJMenuBar(jMenuBarControl);
pack();
}// </editor-fold>//GEN-END:initComponents
private void jMenuItemGuardarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemGuardarActionPerformed
File file=null;
System.out.println("Guardar");
// fchOUT= new JFileChooser("C:\\");
fchOUT= new JFileChooser("configs/");
fchOUT.setFileFilter(new XMLFileFilter());
int returnVal = fchOUT.showSaveDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
file = fchOUT.getSelectedFile();
System.out.println("nombre: " + file.getName());
// Le paso el string con la ruta absoluta
ParsearXML pOUT=new ParsearXML(file.getAbsolutePath());
pOUT.guardarConfiguracion();
System.out.println("Configuracion guardada");
}
}//GEN-LAST:event_jMenuItemGuardarActionPerformed
private class XMLFileFilter extends javax.swing.filechooser.FileFilter {
public boolean accept(File f) {
return f.isDirectory() || f.getName().toLowerCase().endsWith(".xml");
}
public String getDescription() {
return ".xml files";
}
}
private void jMenuItemAbrirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemAbrirActionPerformed
//fch= new JFileChooser("C:\\");
fch= new JFileChooser("configs/");
File file = null;
fch.setFileFilter(new XMLFileFilter());
int returnVal = fch.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
file = fch.getSelectedFile();
if (!file.equals(null)){
if (file.exists()){
System.out.println("path del fichero: " + file.getAbsolutePath());
// si todo correcto
if (cargarConfiguracionXML(file)){
System.out.println("************ El fichero es correcto");
copiarAlOriginal();
DriverVoz.enviarConfiguracionANucleo();
}
}
}
}
}//GEN-LAST:event_jMenuItemAbrirActionPerformed
// abre una la configuracion de file
// devuelve true si todo ha sido correcto, false si ha habido algun error
// si correcto, se copian los valores a CopiaTablero
public boolean cargarConfiguracionXML(File file){
//List <String> listafinal=null;
System.out.println("Nombre file: " + file.getAbsolutePath());
ParsearXML pXML= new ParsearXML(file);
if ((pXML.devolverTipoDriver()!=-1) && (pXML.abrirConfiguracion()!=-1)){
System.out.println("Todo correcto, cargaremos de copiaTablero a Tablero");
return(true);
}
else{
System.out.println("************ El fichero es falla");
JOptionPane.showMessageDialog(this, "El fichero de configuraci�n no es correcto", "Aviso",JOptionPane.ERROR_MESSAGE);
return(false);
}
}
private void jRadioButtonMenuItemInglesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButtonMenuItemInglesActionPerformed
Idioma=Locale.US;
ActualizarIdioma();
//this.invalidate();
jRadioButtonMenuItemCastellano.setSelected(false);
jRadioButtonMenuItemIngles.setSelected(true);
}//GEN-LAST:event_jRadioButtonMenuItemInglesActionPerformed
private void jRadioButtonMenuItemCastellanoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButtonMenuItemCastellanoActionPerformed
Idioma=Idioma.getDefault();
ActualizarIdioma();
this.jRadioButtonMenuItemCastellano.setSelected(true);
this.jRadioButtonMenuItemIngles.setSelected(false);
}//GEN-LAST:event_jRadioButtonMenuItemCastellanoActionPerformed
private void jMenuItemAcercaDeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemAcercaDeActionPerformed
new AcercaDe(this,true).setVisible(true);
}//GEN-LAST:event_jMenuItemAcercaDeActionPerformed
private void jMenuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuActionPerformed
// TODO: Agrege su codigo aqui:
}//GEN-LAST:event_jMenuActionPerformed
private void jMenuItemConfigurarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemConfigurarActionPerformed
new Configurar(this,true).setVisible(true);
}//GEN-LAST:event_jMenuItemConfigurarActionPerformed
private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
// Para el reconocimiento
if (iniciado){
pararReconocimiento();
}
// envia desconexion a pasarela
ParsearXML pOUT=new ParsearXML("configs/last.xml");
pOUT.guardarConfiguracion();
c.enviar (-1, -1);
}//GEN-LAST:event_formWindowClosing
private void jMenuItemPararActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemPararActionPerformed
// Para el reconocimiento
if (iniciado){
pararReconocimiento();
}
iniciado=false;
}//GEN-LAST:event_jMenuItemPararActionPerformed
private void jMenuItemIniciarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemIniciarActionPerformed
// Inicia el reconocimiento
if (!iniciado){
ThreadLanzar tl=new ThreadLanzar("Lanzar");
tl.start();
iniciado=true;
// minimizo la ventana al entrar en la aplicacion, ver si al iniciar
this.setState(JFrame.ICONIFIED);
}
}//GEN-LAST:event_jMenuItemIniciarActionPerformed
private void jMenuItemSalirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemSalirActionPerformed
if (iniciado){
pararReconocimiento();
}
// envia desconexion a pasarela
ParsearXML pOUT=new ParsearXML("configs/last.xml");
pOUT.guardarConfiguracion();
c.enviar (-1, -1);
this.dispose();
System.exit(0);
}//GEN-LAST:event_jMenuItemSalirActionPerformed
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new DriverVoz(new javax.swing.JFrame(), true).setVisible(true);
}
});
}
// no lo uso
private URL loadImage(String ruta)
{
System.out.println("ENTRANDO EN loadImage; ruta="+ruta);
//Image foo =Toolkit.getDefaultToolkit().getImage(getClass().getResource(ruta));
URL aaa = getClass().getResource(ruta);
System.out.println("LA URL ES " + aaa.toString());
//URL foo = (getClass().getResource(ruta));
if (aaa==null) System.out.println("ERRORRRR");
System.out.println("PRUEBA IMAGEICON");
///ImageIcon bar = new ImageIcon(foo);
ImageIcon bar = new ImageIcon(aaa);
if (bar==null) System.out.println("ERRORRRR IMAGEICON");
return aaa;
}
private void CargarImagenes() {
ImageIcon Imagen;
String ejecucion= System.getProperty("user.dir");
System.out.println("Ruta ejecucion: " +ejecucion);
//String ruta = "libs/Imagenes/";
//String ruta = "C:/RatonVirtual/Drivers/Voz/libs/Imagenes/";
// Imagenes Acciones de Movimiento
lblarribaIzda= new JLabel("arriba izquierda",new ImageIcon(ruta +"arribaIzdaAzul.gif"),JLabel.CENTER);
lblarribaIzda.setVerticalTextPosition(JLabel.BOTTOM);
lblarribaIzda.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelMovimiento.add(this.lblarribaIzda);
// Imagen=new ImageIcon(ruta +"arribaIzdaAzul.gif");
// lblarribaIzda.setIcon(Imagen);
lblarriba= new JLabel("arriba",new ImageIcon(ruta +"arribaAzul.gif"),JLabel.CENTER);
lblarriba.setVerticalTextPosition(JLabel.BOTTOM);
lblarriba.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelMovimiento.add(this.lblarriba);
// Imagen=new ImageIcon(ruta + "arribaAzul.gif");
// lblarriba.setIcon(Imagen);
lblarribaDcha= new JLabel("arriba derecha",new ImageIcon(ruta +"arribaDchaAzul.gif"),JLabel.CENTER);
lblarribaDcha.setVerticalTextPosition(JLabel.BOTTOM);
lblarribaDcha.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelMovimiento.add(this.lblarribaDcha);
// Imagen=new ImageIcon(ruta +"arribaDchaAzul.gif");
// lblarribaDcha.setIcon(Imagen);
lblizquierda= new JLabel("izquierda ",new ImageIcon(ruta +"izquierdaAzul.gif"),JLabel.CENTER);
lblizquierda.setVerticalTextPosition(JLabel.BOTTOM);
lblizquierda.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelMovimiento.add(this.lblizquierda);
// Imagen=new ImageIcon(ruta +"izquierdaAzul.gif");
// lblizquierda.setIcon(Imagen);
lblnada= new JLabel();
lblnada.setVerticalTextPosition(JLabel.BOTTOM);
lblnada.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelMovimiento.add(this.lblnada);
// Imagen=new ImageIcon(ruta +"derechaAzul.gif");
// lblderecha.setIcon(Imagen);
lblderecha= new JLabel("derecha ",new ImageIcon(ruta +"derechaAzul.gif"),JLabel.CENTER);
lblderecha.setVerticalTextPosition(JLabel.BOTTOM);
lblderecha.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelMovimiento.add(this.lblderecha);
// Imagen=new ImageIcon(ruta +"derechaAzul.gif");
// lblderecha.setIcon(Imagen);
lblabajoIzda= new JLabel("abajo izquierda",new ImageIcon(ruta +"abajoIzdaAzul.gif"),JLabel.CENTER);
lblabajoIzda.setVerticalTextPosition(JLabel.BOTTOM);
lblabajoIzda.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelMovimiento.add(this.lblabajoIzda);
// Imagen=new ImageIcon(ruta +"abajoIzdaAzul.gif");
// lblabajoIzda.setIcon(Imagen);
lblabajo= new JLabel("abajo",new ImageIcon(ruta +"abajoAzul.gif"),JLabel.CENTER);
lblabajo.setVerticalTextPosition(JLabel.BOTTOM);
lblabajo.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelMovimiento.add(this.lblabajo);
// Imagen=new ImageIcon(ruta +"abajoAzul.gif");
// lblabajo.setIcon(Imagen);
lblabajoDcha= new JLabel("abajo derecha",new ImageIcon(ruta +"abajoDchaAzul.gif"),JLabel.CENTER);
lblabajoDcha.setVerticalTextPosition(JLabel.BOTTOM);
lblabajoDcha.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelMovimiento.add(this.lblabajoDcha);
// Imagen=new ImageIcon(ruta + "abajoDchaAzul.gif");
// lblabajoDcha.setIcon(Imagen);
lblparar= new JLabel("parar",new ImageIcon(ruta +"pararAzul.gif"),JLabel.CENTER);
lblparar.setVerticalTextPosition(JLabel.BOTTOM);
lblparar.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelRalentizado.add(this.lblparar);
// Imagen stop
// Imagen=new ImageIcon(ruta +"pararAzul.gif");
// lblparar.setIcon(Imagen);
lblfrenar= new JLabel("frenar",new ImageIcon(ruta +"frenar.gif"),JLabel.CENTER);
lblfrenar.setVerticalTextPosition(JLabel.BOTTOM);
lblfrenar.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelRalentizado.add(this.lblfrenar);
// Imagenes Acciones de seleccion
// Imagen=new ImageIcon(ruta +"clicAzul.gif");
lblclicIzdo= new JLabel("clic ",new ImageIcon(ruta +"clicAzul.gif"),JLabel.CENTER);
lblclicIzdo.setVerticalTextPosition(JLabel.BOTTOM);
lblclicIzdo.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelClics.add(this.lblclicIzdo);
//lblclicIzdo.setSize(50,50);
// lblclicIzdo.setIcon(new ImageIcon(ruta +"clicAzul.gif"));
lblclicMedio= new JLabel("clic medio",new ImageIcon(ruta +"clicMedioAzul.gif"),JLabel.CENTER);
lblclicMedio.setVerticalTextPosition(JLabel.BOTTOM);
lblclicMedio.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelClics.add(this.lblclicMedio);
// Imagen=new ImageIcon(ruta + "clicMedioAzul.gif");
// lblclicMedio.setIcon(Imagen);
lblclicDcho= new JLabel("clic derecho",new ImageIcon(ruta +"clicDchoAzul.gif"),JLabel.CENTER);
lblclicDcho.setVerticalTextPosition(JLabel.BOTTOM);
lblclicDcho.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelClics.add(this.lblclicDcho);
// Imagen=new ImageIcon(ruta + "clicDchoAzul.gif");
// lblclicDcho.setIcon(Imagen);
lbldobleClic= new JLabel("doble clic",new ImageIcon(ruta +"dobleclicAzul.gif"),JLabel.CENTER);
lbldobleClic.setVerticalTextPosition(JLabel.BOTTOM);
lbldobleClic.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelClics.add(this.lbldobleClic);
// Imagen=new ImageIcon(ruta +"dobleclicAzul.gif");
// lbldobleClic.setIcon(Imagen);
lblarrastrar= new JLabel("arrastrar",new ImageIcon(ruta +"arrastrarAzul.gif"),JLabel.CENTER);
lblarrastrar.setVerticalTextPosition(JLabel.BOTTOM);
lblarrastrar.setHorizontalTextPosition(JLabel.CENTER);
this.jPanelClics.add(this.lblarrastrar);
// Imagen=new ImageIcon(ruta + "arrastrarAzul.gif");
// lblarrastrar.setIcon(Imagen);
}
void processVoice(String palabra) {
String reconocido;
System.out.println("He reconocido desde java la palabra: " + palabra);
// if (palabra.matches("arriba")){
// System.out.println("Reconocido: arriba");
// }
//reconocido= palabra.trim();
if ((palabra.indexOf("arriba")!=-1) && (palabra.indexOf("izquierda")!=-1)){
System.out.println("Vamos a enviar arriba izquierda, entra");
c.enviar(this.MOVIMIENTO, 4);
}
else if ((palabra.indexOf("arriba")!=-1) && (palabra.indexOf("derecha")!=-1)){
System.out.println("Vamos a enviar arriba derecha, entra");
c.enviar(this.MOVIMIENTO, 5);
}
else if ((palabra.indexOf("abajo")!=-1) && (palabra.indexOf("derecha")!=-1)){
System.out.println("Vamos a enviar abajo derecha, entra");
c.enviar(this.MOVIMIENTO, 7);
}
else if ((palabra.indexOf("abajo")!=-1) && (palabra.indexOf("izquierda")!=-1)){
System.out.println("Vamos a enviar abajo izquierda, entra");
c.enviar(this.MOVIMIENTO, 6);
}
else if ((palabra.indexOf("clic")!=-1) && (palabra.indexOf("derecho")!=-1)){
System.out.println("Vamos a enviar clic derecho, entra");
c.enviar(this.CLIC, 10);
}
else if ((palabra.indexOf("clic")!=-1) && (palabra.indexOf("medio")!=-1)){
System.out.println("Vamos a enviar clic medio, entra");
c.enviar(this.CLIC, 11);
}
else if ((palabra.indexOf("doble")!=-1) && (palabra.indexOf("clic")!=-1)){
System.out.println("Vamos a enviar doble clic, entra");
c.enviar(this.CLIC, 12);
}
else if (palabra.indexOf("clic")!=-1){
System.out.println("Vamos a enviar clic, entra");
c.enviar(this.CLIC, 9);
}
else if (palabra.indexOf("arriba")!=-1){
System.out.println("Vamos a enviar arriba, entra");
c.enviar(this.MOVIMIENTO, 0);
}
else if (palabra.indexOf("abajo")!=-1){
System.out.println("Vamos a enviar abajo, entra");
c.enviar(this.MOVIMIENTO, 1);
}
else if (palabra.indexOf("izquierda")!=-1){
System.out.println("Vamos a enviar izquierda, entra");
c.enviar(this.MOVIMIENTO, 3);
}
else if (palabra.indexOf("derecha")!=-1){
System.out.println("Vamos a enviar derecha, entra");
c.enviar(this.MOVIMIENTO, 2);
}
else if (palabra.indexOf("parar")!=-1){
System.out.println("Vamos a enviar parar, entra");
c.enviar(this.PARADA, 8);
}
else if (palabra.indexOf("frenar")!=-1){
System.out.println("FRENARRR, entra");
c.enviar(this.FRENAR, 0);
}
else if ((palabra.indexOf("fin")!=-1) && (palabra.indexOf("arrastrar")!=-1)){
System.out.println("FIN ARRASTRAR, entra");
c.enviar(this.ARRASTRAR, 14);
}
else if (palabra.indexOf("arrastrar")!=-1){
if (!arrastrando){
System.out.println("ARRASTRAR, entra");
arrastrando=true;
c.enviar(this.ARRASTRAR, 13);
}
else{
System.out.println("Vamos a enviar fin arrastrar, entra");
arrastrando=false;
c.enviar(this.ARRASTRAR, 14);
}
}
// else if((palabra.indexOf("fin")!=-1) && (palabra.indexOf("arrastrar")!=-1)){
// System.out.println("Vamos a enviar arrastrar, entra");
// c.enviar(this.ARRASTRAR, 14);
// }
else if (palabra.indexOf("frenar")!=-1){
System.out.println("Vamos a enviar frenar, entra");
}
}
native void iniciarReconocimiento();
native void pararReconocimiento();
private void posicionarEtiquetasClic() {
GridBagConstraints constraints = new GridBagConstraints();
constraints.gridx = 0;
constraints.gridy = 0;
constraints.gridwidth = 1;
constraints.gridheight = 1;
this.jPanelClics.add(this.lblclicIzdo,constraints);
constraints.gridx = 1;
constraints.gridy = 0;
constraints.gridwidth = 1;
constraints.gridheight = 1;
this.jPanelClics.add(this.lblclicMedio,constraints);
constraints.gridx = 2;
constraints.gridy = 0;
constraints.gridwidth = 1;
constraints.gridheight = 1;
this.jPanelClics.add(this.lblclicDcho,constraints);
constraints.gridx = 3;
constraints.gridy = 0;
constraints.gridwidth = 1;
constraints.gridheight = 1;
this.jPanelClics.add(this.lbldobleClic,constraints);
constraints.gridx = 4;
constraints.gridy = 0;
constraints.gridwidth = 1;
constraints.gridheight = 1;
this.jPanelClics.add(this.lblarrastrar,constraints);
constraints.gridx = 0;
constraints.gridy = 1;
constraints.gridwidth = 1;
constraints.gridheight = 1;
// this.jPanelClics.add(this.jLabelclicIzdo,constraints);
constraints.gridx = 1;
constraints.gridy = 1;
constraints.gridwidth = 1;
constraints.gridheight = 1;
// this.jPanelClics.add(this.jLabelClicMedio,constraints);
constraints.gridx = 2;
constraints.gridy = 1;
constraints.gridwidth = 1;
constraints.gridheight = 1;
// this.jPanelClics.add(this.jLabelArriba8,constraints);
constraints.gridx = 3;
constraints.gridy = 1;
constraints.gridwidth = 1;
constraints.gridheight = 1;
//// this.jPanelClics.add(this.jLabelDobleClic,constraints);
constraints.gridx = 4;
constraints.gridy = 1;
constraints.gridwidth = 1;
constraints.gridheight = 1;
// this.jPanelClics.add(this.jLabelArrastrar,constraints);
this.jPanelClics.repaint();
this.pack();
}
private void ActualizarIdioma() {
System.out.println("Actualizar Idioma es: " + Idioma);
jPanelClics.setBorder(BorderFactory.createTitledBorder(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strSeleccion")));
jPanelMovimiento.setBorder(BorderFactory.createTitledBorder(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strMovimiento")));
jPanelRalentizado.setBorder(BorderFactory.createTitledBorder(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strDeceleracion")));
this.jMenu.setText(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strOpciones"));
this.jMenuItemIniciar.setText(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strIniciar"));
this.jMenuItemParar.setText(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strParar"));
this.jMenuItemConfigurar.setText(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strConfiguracion"));
this.jMenuIdiomas.setText(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strIdioma"));
this.jRadioButtonMenuItemCastellano.setText(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strCastellano"));
this.jRadioButtonMenuItemIngles.setText(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strIngles"));
this.jMenuItemSalir.setText(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strSalir"));
this.jMenuAyuda.setText(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strAyuda"));
this.jMenuItemAcercaDe.setText(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strAcerca"));
this.jMenuItemAbrir.setText(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strAbrir"));
this.jMenuItemGuardar.setText(ResourceBundle.getBundle("lenguaje.fich_idiomas",Idioma).getString("strGuardar"));
}
private void CargarConfiguracionDefecto() {
File file= new File("configs/last.xml");
if (cargarConfiguracionXML(file)){
System.out.println("---------> Cargado last.xml");
copiarAlOriginal();
enviarConfiguracionANucleo();
ActualizarIdioma();
}
else{
enviarConfiguracionANucleo();
ActualizarIdioma();
}
}
private void copiarAlOriginal() {
minCursor= CopiaminCursor;
maxCursor= CopiamaxCursor;
speedCursor= CopiaspeedCursor;
relacionVel= CopiarelacionVel;
Idioma= CopiaIdioma;
if (Idioma.toString().equals("en_us")){
// seleccionamos ingles
Idioma=Locale.US;
this.jRadioButtonMenuItemCastellano.setSelected(false);
this.jRadioButtonMenuItemIngles.setSelected(true);
}
else{
// seleccionamos espa�ol
Idioma=Idioma.getDefault();
this.jRadioButtonMenuItemCastellano.setSelected(true);
this.jRadioButtonMenuItemIngles.setSelected(false);
}
}
// Declaraci�n de varibales -no modificar//GEN-BEGIN:variables
private javax.swing.ButtonGroup buttonGroupIdiomas;
private javax.swing.JMenu jMenu;
private javax.swing.JMenu jMenuAyuda;
private javax.swing.JMenuBar jMenuBarControl;
private javax.swing.JMenu jMenuIdiomas;
private javax.swing.JMenuItem jMenuItemAbrir;
private javax.swing.JMenuItem jMenuItemAcercaDe;
private javax.swing.JMenuItem jMenuItemConfigurar;
private javax.swing.JMenuItem jMenuItemGuardar;
private javax.swing.JMenuItem jMenuItemIniciar;
private javax.swing.JMenuItem jMenuItemParar;
private javax.swing.JMenuItem jMenuItemSalir;
private javax.swing.JPanel jPanelClics;
private javax.swing.JPanel jPanelMovimiento;
private javax.swing.JPanel jPanelRalentizado;
private javax.swing.JRadioButtonMenuItem jRadioButtonMenuItemCastellano;
private javax.swing.JRadioButtonMenuItem jRadioButtonMenuItemIngles;
// Fin de declaraci�n de variables//GEN-END:variables
private javax.swing.JLabel lblclicIzdo;
private javax.swing.JLabel lblclicDcho;
private javax.swing.JLabel lblclicMedio;
private javax.swing.JLabel lbldobleClic;
private javax.swing.JLabel lblarrastrar;
class ThreadLanzar extends Thread {
public ThreadLanzar(String str) {
super(str);
}
public void run() {
System.out.println("Entro a run");
iniciarReconocimiento();
}
}
}