/** * Labels bonds going into root R-groups with appropriate symbol. * @param diagram */ private void labelRootApoBonds (ElementGroup diagram,IAtomContainer ac) { Map<IAtom, Map<Integer, IBond>> rootAttachmentPoints = rGroupQuery.getRootAttachmentPoints(); for (Iterator<IAtom> atomItr=rootAttachmentPoints.keySet().iterator(); atomItr.hasNext();) { Map<Integer,IBond> bonds =rootAttachmentPoints.get(atomItr.next()); for(Iterator<Integer> bondItr=bonds.keySet().iterator(); bondItr.hasNext();) { int bondNum=bondItr.next(); IBond b = bonds.get(bondNum); if (ac.contains(b)) { double xAvg = (b.getAtom(0).getPoint2d().x + b.getAtom(1).getPoint2d().x)/2; double yAvg = (b.getAtom(0).getPoint2d().y + b.getAtom(1).getPoint2d().y)/2; diagram.add(new TextElement(xAvg+0.1, yAvg-0.1,(bondNum==1?APO1_LABEL:APO2_LABEL),APO_LABEL_COLOR)); } } } }
for(Iterator<IAtom> atItr=redoRootAttachmentPoints.keySet().iterator(); atItr.hasNext();) { IAtom rAtom= atItr.next(); Map<Integer,IBond> apoBonds = hub.getRGroupHandler().getrGroupQuery().getRootAttachmentPoints().get(rAtom);
this.redoRootAttachmentPoints=rgrpHandler.getrGroupQuery().getRootAttachmentPoints(); for (Iterator<IAtom> atItr = existingAtomDistr.keySet().iterator(); atItr.hasNext();) { IAtom atom = atItr.next(); IAtom rAtom= atItr.next(); Map<Integer,IBond> undoApo = existingRootAttachmentPoints.get(rAtom); Map<Integer,IBond> apoBonds = rgrpQ.getRootAttachmentPoints().get(rAtom);
for (IAtom rgroupAtom : rGroupQuery.getRootAttachmentPoints().keySet()) { Map<Integer, IBond> rApo = rGroupQuery.getRootAttachmentPoints().get(rgroupAtom); if (rApo.size() > 1) { int prevPos = -1;
pseudo=apoBond.getAtom(1); Map<Integer, IBond> keepApoBonds = new HashMap<Integer, IBond>(); if (rGroupHandler.getrGroupQuery().getRootAttachmentPoints()!=null && rGroupHandler.getrGroupQuery().getRootAttachmentPoints().get(pseudo)!=null) { apoBonds= rGroupHandler.getrGroupQuery().getRootAttachmentPoints().get(pseudo); for (Iterator<Integer> apoItr =apoBonds.keySet().iterator(); apoItr.hasNext();) { int apoNum=apoItr.next(); if (rGroupHandler.getrGroupQuery().getRootAttachmentPoints()==null) { rGroupHandler.getrGroupQuery().setRootAttachmentPoints(new HashMap<IAtom, Map<Integer, IBond>>()); Map<IAtom, Map<Integer, IBond>> rootApo=rGroupHandler.getrGroupQuery().getRootAttachmentPoints(); if (rootApo.get(pseudo)==null) { apoBonds=new HashMap<Integer,IBond>(); apoBonds=rGroupHandler.getrGroupQuery().getRootAttachmentPoints().get(pseudo); existingRootAttachmentPoints = rgrpQuery.getRootAttachmentPoints(); rgrpQuery.setRootAttachmentPoints(null);