protected List<ModelWrapper<?>> search() throws Exception { List<ModelWrapper<?>> wrappers = new ArrayList<ModelWrapper<?>>(); if (radioWaybill.getSelection()) { wrappers.addAll( OriginInfoWrapper.getShipmentsByWaybill( SessionManager.getAppService(), treeText.getText().trim())); wrappers.addAll( DispatchWrapper.getDispatchesByWaybill( SessionManager.getAppService(), treeText.getText().trim())); return wrappers; } else if (radioDateReceived.getSelection()) { Date date = dateWidget.getDate(); if (date != null) { wrappers.addAll( OriginInfoWrapper.getShipmentsByDateReceived( SessionManager.getAppService(), date, SessionManager.getUser().getCurrentWorkingCenter())); wrappers.addAll( DispatchWrapper.getDispatchesByDateReceived( SessionManager.getAppService(), date, SessionManager.getUser().getCurrentWorkingCenter())); return wrappers; } } else { Date date = dateWidget.getDate(); if (date != null) { wrappers.addAll( OriginInfoWrapper.getShipmentsByDateSent( SessionManager.getAppService(), date, SessionManager.getUser().getCurrentWorkingCenter())); wrappers.addAll( DispatchWrapper.getDispatchesByDateSent( SessionManager.getAppService(), date, SessionManager.getUser().getCurrentWorkingCenter())); return wrappers; } } return null; }
public static AbstractAdapterBase addToNode(AdapterBase parentNode, Object obj) { if (currentInstance != null && obj instanceof OriginInfoWrapper) { OriginInfoWrapper originInfo = (OriginInfoWrapper) obj; String text = ""; // $NON-NLS-1$ AdapterBase topNode = parentNode; if (parentNode.equals(currentInstance.searchedNode) && !currentInstance.radioWaybill.getSelection()) { Date date; if (currentInstance.radioDateReceived.getSelection()) { text = Messages.SpecimenTransitView_date_received_node_label; date = originInfo.getShipmentInfo().getReceivedAt(); } else { text = Messages.SpecimenTransitView_date_packed_node_label; date = originInfo.getShipmentInfo().getPackedAt(); } if (date == null) return null; date = (Date) date.clone(); Calendar c = Calendar.getInstance(); c.setTime(date); c.set(Calendar.SECOND, 0); c.set(Calendar.MINUTE, 0); c.set(Calendar.HOUR_OF_DAY, 0); date = c.getTime(); List<AbstractAdapterBase> dateNodeRes = parentNode.search(date.getClass(), DateNode.idBuilder(text, date)); AbstractAdapterBase dateNode = null; if (dateNodeRes.size() > 0) dateNode = dateNodeRes.get(0); else { dateNode = new DateNode(parentNode, text, date); parentNode.addChild(dateNode); } topNode = (AdapterBase) dateNode; } List<AbstractAdapterBase> centerAdapterList = topNode.search(originInfo.getCenter().getClass(), originInfo.getCenter().getId()); AdapterBase centerAdapter = null; if (centerAdapterList.size() > 0) centerAdapter = (AdapterBase) centerAdapterList.get(0); else if (originInfo.getCenter() instanceof ClinicWrapper) { centerAdapter = new ClinicWithShipmentAdapter(topNode, (ClinicWrapper) originInfo.getCenter()); topNode.addChild(centerAdapter); } if (centerAdapter != null) { ShipmentAdapter shipmentAdapter = null; List<AbstractAdapterBase> shipmentAdapterList = centerAdapter.search(OriginInfoWrapper.class, originInfo.getId()); if (shipmentAdapterList.size() > 0) shipmentAdapter = (ShipmentAdapter) shipmentAdapterList.get(0); else { shipmentAdapter = new ShipmentAdapter(centerAdapter, originInfo); centerAdapter.addChild(shipmentAdapter); } return shipmentAdapter; } } else if (currentInstance != null && obj instanceof DispatchWrapper) { List<AbstractAdapterBase> res = parentNode.search(DispatchWrapper.class, ((DispatchWrapper) obj).getId()); if (res.size() == 0) { DispatchAdapter dispatch = new DispatchAdapter(parentNode, (DispatchWrapper) obj); parentNode.addChild(dispatch); } } return null; }