@Override protected Object doInBackground() throws Exception { if (fichero == null) { // Entonces importamos los datos desde séneca setMessage("Descargando fichero de Séneca..."); cli.addPropertyChangeListener( new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { firePropertyChange(evt.getPropertyName(), evt.getOldValue(), evt.getNewValue()); } }); fichero = cli.getArchivoGeneradoresDeHorarios(); } boolean ret = false; if (fichero.exists()) { // TODO Debería poder importarse los datos aunque estos ya existan... ImportadorDatosGeneralesSeneca importador = new ImportadorDatosGeneralesSeneca( MaimonidesApp.getApplication().getAnoEscolar(), fichero, this.tipo); importador.addPropertyChangeListener( new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { firePropertyChange(evt.getPropertyName(), evt.getOldValue(), evt.getNewValue()); } }); ObjetoBDConCod.setSoloInsertar(soloNuevos); try { ret = importador.importarDatosGeneralesSeneca(); } catch (Exception e) { throw e; } finally { ObjetoBDConCod.setSoloInsertar(false); } } return ret; }
protected final void pedirUsuarioClave() { if (!GestorUsuarioClaveSeneca.getGestor().pedirUsuarioClave()) { cancel(false); } else { cli = new ClienteSeneca( GestorUsuarioClaveSeneca.getGestor().getUsuario(), GestorUsuarioClaveSeneca.getGestor().getClave()); cli.setDebugMode(MaimonidesApp.isDebug()); cli.addPropertyChangeListener( new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { firePropertyChange(evt.getPropertyName(), evt.getOldValue(), evt.getNewValue()); if ("error".equals(evt.getPropertyName())) { gen.getErrores().add(Str.noNulo(evt.getNewValue())); } } }); gen.setClienteSeneca(cli); } }
public ImportarDatosBaseSenecaTask(org.jdesktop.application.Application app, int tipo) { super(app); this.tipo = tipo; setUserCanCancel(false); String sImp = "los datos generales del año escolar.<br/>"; if (!ImportadorDatosGeneralesSeneca.isImportar(tipo, ImportadorDatosGeneralesSeneca.TODO)) { sImp = ":<br/>"; if (ImportadorDatosGeneralesSeneca.isImportar( tipo, ImportadorDatosGeneralesSeneca.ACTIVIDADES)) { sImp += " - Actividades.<br/>"; } if (ImportadorDatosGeneralesSeneca.isImportar( tipo, ImportadorDatosGeneralesSeneca.PROFESORES)) { sImp += " - Profesores.<br/>"; } if (ImportadorDatosGeneralesSeneca.isImportar( tipo, ImportadorDatosGeneralesSeneca.DEPENDENCIAS)) { sImp += " - Dependencias.<br/>"; } if (ImportadorDatosGeneralesSeneca.isImportar( tipo, ImportadorDatosGeneralesSeneca.MATERIAS)) { sImp += " - Materias.<br/>"; } if (ImportadorDatosGeneralesSeneca.isImportar(tipo, ImportadorDatosGeneralesSeneca.TRAMOS)) { sImp += " - Tramos horarios.<br/>"; } if (ImportadorDatosGeneralesSeneca.isImportar( tipo, ImportadorDatosGeneralesSeneca.UNIDADES)) { sImp += " - Unidades.<br/>"; } if (ImportadorDatosGeneralesSeneca.isImportar(tipo, ImportadorDatosGeneralesSeneca.CURSOS)) { sImp += " - Cursos.<br/>"; } } sImp = "<html><body>Se van a importar " + sImp + "<br/></body></html>"; String s2 = "<html><body><br/>Puede importar estos datos desde un fichero descargado de Séneca o<br/>dejar que Maimónides lo descargue automáticamente.<br/>¿Desde donde quiere importar los datos?</body></html>"; JLabel l = new JLabel(sImp); JLabel l2 = new JLabel(s2); JCheckBox cb = new JCheckBox("Sólo importar datos nuevos. No actualizar datos existentes."); JPanel panel = new JPanel(new BorderLayout()); panel.add(l, BorderLayout.NORTH); panel.add(cb, BorderLayout.CENTER); panel.add(l2, BorderLayout.SOUTH); int op = JOptionPane.showOptionDialog( MaimonidesApp.getApplication().getMainFrame(), panel, "Importación de datos generales", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, new String[] {"Desde Séneca", "Desde fichero", "Cancelar"}, "Desde Séneca"); soloNuevos = cb.isSelected(); if (op == JOptionPane.YES_OPTION) { // Tenemos que pedir los datos de acceso a séneca if (!GestorUsuarioClaveSeneca.getGestor().pedirUsuarioClave()) { cancel(false); } else { cli = new ClienteSeneca( GestorUsuarioClaveSeneca.getGestor().getUsuario(), GestorUsuarioClaveSeneca.getGestor().getClave()); cli.setDebugMode(MaimonidesApp.isDebug()); } } else if (op == JOptionPane.NO_OPTION) { // Tenemos que pedir el fichero JFileChooser f = new JFileChooser(MaimonidesApp.getApplication().getUltimoArchivo()); f.setFileSelectionMode(JFileChooser.FILES_ONLY); f.setFileFilter( new FileFilter() { @Override public boolean accept(File f) { return f.isDirectory() || f.getName().toLowerCase().endsWith(".xml"); } @Override public String getDescription() { return "Archivos XML de Séneca(*.xml)"; } }); int res = f.showOpenDialog(MaimonidesApp.getMaimonidesView().getFrame()); if (res != JFileChooser.APPROVE_OPTION) { cancel(false); } else { fichero = f.getSelectedFile(); MaimonidesApp.getApplication().setUltimoArchivo(fichero); } } else { setMessage("Importación cancelada."); cancel(false); } }