public void actionPerformed(ActionEvent e) { try { String scannedDestination = ((JTextField) e.getSource()).getText().toUpperCase(); validateDestinationScan(scannedDestination); DefaultListModel listModel = (DefaultListModel) destinationsList.getModel(); int lastPosition = listModel.getSize(); int seedsCount = 0; // todo: do we have to worry about more trays than required..? for (int i = 0; i < seedPlates.length; i++) { if (seedPlates[i].getSeedPlateBarcode() != null && SCANNED.equals(seedPlates[i].getStatus()) && !isContainedInList(seedPlates[i].getSeedPlateBarcode(), failedPlatesList)) { seedsCount++; } } if (lastPosition >= seedsCount) { throw new ChippingManagerException(DESTINATIONS_LIMIT_EXCEEDED); } addDestination(scannedDestination); } catch (Throwable cmException) { logger.error("Unable to scan destination ", cmException); JOptionPane.showMessageDialog( new JFrame(), cmException.getMessage(), TITLE_CHIPPING_MANAGER, JOptionPane.WARNING_MESSAGE); } scanDestination.setText(BLANK); }
private int findDestinationListIndex( DefaultListModel destinationsListModel, int[] destinationsLoadCount, int destinationsListIndex, int i) { if (seedPlates[i].getSeedPlateBarcode() != null) { if (destinationsListIndex == destinationsListModel.getSize()) { for (int k = 0; k < destinationsListModel.getSize(); k++) { if (destinationsLoadCount[k] < MAX_NUMBER_IN_SEED_DESTINATION) { destinationsListIndex = k; break; } } } } return destinationsListIndex; }
public void validateUnloadPlatesDialog() throws ChippingManagerException { StringBuffer stBuff = new StringBuffer(CORRECT_ERRORS_TO_CONTINUE); DefaultListModel destinationListModel = (DefaultListModel) destinationsList.getModel(); int numberOfDestinations = destinationListModel.getSize(); // Get the number of seed plates int seedPlatesCount = numberOfValidSeedPlates(); String destinationsMessage = seedChipperGUIController .getSeedChipperController() .validateDestinations(numberOfDestinations, seedPlatesCount); if (destinationsMessage != null) { stBuff.append("\n- " + destinationsMessage); } if (userIDComboBox.getSelectedIndex() == 0) { stBuff.append("\n- " + USER_NAME_NOT_SELECTED + "\n"); } if (!stBuff.toString().equals(CORRECT_ERRORS_TO_CONTINUE)) { throw new ChippingManagerException(stBuff.toString()); } }
public void unloadPlates() throws ChippingManagerException { seedChipperGUIController.getSeedChipperController().validateChangePriorToSave(); // List<Plate> platesToUnload = getFailedChiplates(); DefaultListModel destinationsListModel = (DefaultListModel) destinationsList.getModel(); int[] destinationsLoadCount = new int[destinationsListModel.getSize()]; // Assign destinations to the seed plates int destinationsListIndex = 0; updateSeedPlateStatus(); updateChipPlateStatus(); // Set the respective locations in the seed plates for (int i = 0; i < seedPlates.length; i++) { // todo: unload criteria to be refactored to plate object.... if (SCANNED.equals(seedPlates[i].getStatus()) && seedPlates[i].getPrescanStatus() != null) { destinationsListIndex = findDestinationListIndex( destinationsListModel, destinationsLoadCount, destinationsListIndex, i); // Decide the destination String seedPlateDestination = destinationsListModel.getElementAt(destinationsListIndex).toString(); logger.info( "assigning seed plates to plate " + seedPlates[i].getDeckNest() + " ->> " + seedPlateDestination); seedPlates[i].setStorageLocation(seedPlateDestination); destinationsLoadCount[destinationsListIndex]++; destinationsListIndex++; seedPlates[i].setPrescanStatus(CHIPPED); } } seedChipperGUIController .getSeedChipperController() .unloadChipperRun(userIDComboBox.getSelectedItem().toString()); // // seedChipperGUIController.getSeedChipperController().syncPrescannedPlatesList(platesToUnload, // seedPlates, chipPlates); seedChipperGUIController.drawDeck(); seedChipperGUIController.drawRunsOnDeck(); logger.info("Plates unloaded to seed store"); this.dispose(); }
public void addDestination(String scannedDestination) { DefaultListModel listModel = (DefaultListModel) destinationsList.getModel(); int lastPosition = listModel.getSize(); listModel.add(lastPosition, scannedDestination); }
public void addToUnloadPlatesList(String scannerInput) { DefaultListModel listModel = (DefaultListModel) failedPlatesList.getModel(); int lastPosition = listModel.getSize(); listModel.add(lastPosition, scannerInput); }