@Override public void actionPerformed(ActionEvent e) { if (comunication.isConnected()) { try { comunication.close(); } catch (IOException e1) { view.popupErrorMessage(e1.getMessage()); e1.printStackTrace(); } } else { Serial.DATA_RATE[] arrDataRate = Serial.DATA_RATE.values(); try { serial.setDataRate(arrDataRate[view.getItemDataRate()]); } catch (SerialPortException e1) { view.popupErrorMessage(e1.getMessage()); e1.printStackTrace(); } try { refreshNameSerialPort(); String namePort = view.getNameSerialPortSelected(); comunication.open(namePort); } catch (SerialPortException e1) { if (e1.getExceptionType().equals(SerialPortException.TYPE_NULL_NOT_PERMITTED)) { view.popupErrorMessage("Porta seriale non selezionata"); } else if (e1.getExceptionType().equals(SerialPortException.TYPE_PORT_NOT_FOUND)) { view.popupErrorMessage("Porta seriale " + e1.getPortName() + " non trovata"); } else if (e1.getExceptionType().equals(SerialPortException.TYPE_PORT_ALREADY_OPENED)) { view.popupErrorMessage("Porta seriale " + e1.getPortName() + " � gi� in uso."); } else { view.popupErrorMessage(e1.getMessage()); e1.printStackTrace(); } } } }
public Controller(final View view) { this.view = view; try { PreferenceData.init(); } catch (InvalidPropertiesFormatException e2) { JOptionPane.showMessageDialog( view, "Errore - " + e2.getMessage(), "Errore", JOptionPane.ERROR_MESSAGE); e2.printStackTrace(); } catch (IOException e2) { JOptionPane.showMessageDialog( view, "Errore - " + e2.getMessage(), "Errore", JOptionPane.ERROR_MESSAGE); e2.printStackTrace(); } // Inizializzazione progetto vuoto project = new Project("Senza Titolo"); view.setTitle(project.getTitle()); // Inizializzazione array delle penne pens = new Pen[Project.PENS_MAX]; // Inizializzazione model della view lista penne modelListPens = new ModelListPens(pens); view.setModelListPens(modelListPens); // Inizializzazione model delle penne inizializePens(project.getPenModels()); // Settaggi di default della classe Trend view.trend.addPens(pens); view.trend.setModel( new TrendModel(5, 5, 20000, 0, 100, TrendModel.TYPE_SCALE_AXIS_Y.AUTOMATIC)); // Gestione chiusura applicazione view.addWindowListener(new ListenerCloseApplication()); // Inizializzazione porta seriale serial = new Serial( Serial.DATA_RATE.DATARATE_57600, Serial.DATA_BITS.DATABITS_8, Serial.STOP_BITS.STOPBITS_1, Serial.PARITY.NONE); // Inizializzazione protocollo di comunicazione protocollo = new Protocollo(serial, Protocollo.TYPE_ARDUINO.DUEMILANOVE); protocollo.addObserver(modelListPens); // Inizializzazione comunicazione comunication = new Comunication(protocollo, serial, pens); comunication.addObserver(this); // Setting dei listener del menu della view principale view.addListenerMenuComunicazione(new ListenerMenuComunicazione()); view.addListenerAtConnectionCommand(new ListenerConnection()); view.addListenerAtInfo(new ListenerInfo()); view.addListenerAddPen(new ListenerAddPen()); view.addListenerAtListPens(new ListenerSelectedPen()); view.addListenerMntmEditListPens(new ListenerEditPen()); view.addListenerMntmRemoveListPens(new ListenerRemovePen()); view.addListenerAtSettings(new ListenerSettingsTrend()); view.addListenerAtNew(new ListenerNewProject()); view.addListenerAtOpen(new ListenerOpenProject()); view.addListendrAtSave(new ListenerSaveProject()); view.addListendrAtSaveWithName(new ListenerSaveWithNameProject()); view.addListenerAtImport(new ListenerImportData()); view.addListenerAtExport(new ListenerExportData()); // Popolamento lista datarate e settaggio del datarate di default Serial.DATA_RATE[] arrDataRate = Serial.DATA_RATE.values(); String[] arrStringDataRate = new String[arrDataRate.length]; for (int i = 0; i < arrStringDataRate.length; i++) { arrStringDataRate[i] = Integer.toString(arrDataRate[i].getValue()); } view.setListDataRate( arrStringDataRate, PreferenceData.getValue(PreferenceData.SERIAL_BAUD_RATE)); }