/** * Views the selected field. * * @param index The index of the field to view. */ void viewField(int index) { if (index < 0 || index >= fieldsNumber) return; selectedField = index; Set<ImageDisplay> samples = new HashSet<ImageDisplay>(); List<ImageDisplay> l = getNodes(); Iterator<ImageDisplay> i = l.iterator(); WellImageSet well; int row = -1; int col = -1; Collection<ImageDisplay> c = browser.getSelectedDisplays(); Map<Integer, Integer> location = new HashMap<Integer, Integer>(); WellSampleNode selected; if (c != null && c.size() > 0) { Iterator<ImageDisplay> j = c.iterator(); Object object; while (j.hasNext()) { object = j.next(); if (object instanceof WellSampleNode) { selected = (WellSampleNode) object; location.put(selected.getRow(), selected.getColumn()); } } } List<ImageDisplay> nodes = new ArrayList<ImageDisplay>(); while (i.hasNext()) { well = (WellImageSet) i.next(); well.setSelectedWellSample(index); selected = (WellSampleNode) well.getSelectedWellSample(); row = selected.getRow(); if (location.containsKey(row)) { col = location.get(row); if (selected.getColumn() == col) nodes.add(selected); } samples.add(selected); } samples.addAll(cells); browser.refresh(samples, nodes); layoutBrowser(LayoutFactory.PLATE_LAYOUT); // quietly save the field. PlateData plate = (PlateData) parent; long userID = DataBrowserAgent.getUserDetails().getId(); if (plate.getOwner().getId() == userID) { plate.setDefaultSample(selectedField); List<DataObject> list = new ArrayList<DataObject>(); list.add(plate); DataBrowserLoader loader = new PlateSaver(component, ctx, list); loader.load(); } }