System.out.println("Changing designation of " + theNode.toString() + " to " + selection); if (!getSorter().getOrder().contains(Sortables.DESIGNATION)) {
int numItems = designationComboBox.getItemCount(); if(theNode.equals(currentSelectedBugLeaf)) for(int i=0; i<numItems; i++) if(selection.equals(designationList.get(i))) designationComboBox.setSelectedIndex(i); if (!getSorter().getOrder().contains(Sortables.DESIGNATION)) {
	protected void changeDesignationOfBug(BugLeafNode theNode, String selection) {		System.out.println("Changing designation of " + theNode.toString() + " to " + selection);		if (!getSorter().getOrder().contains(Sortables.DESIGNATION))		{			if (designationChanged)			{				theNode.getBug().getSafeUserDesignation().setDesignation(selection);				designationChanged=false;			}		}		else if (getSorter().getOrderBeforeDivider().contains(Sortables.DESIGNATION))		{			if (designationChanged)			{				Debug.println("What huh!?!?");				BugTreeModel model= (BugTreeModel)tree.getModel();				TreePath path=model.getPathToBug(theNode.getBug());				if (path==null)				{					theNode.getBug().getSafeUserDesignation().setDesignation(selection);					designationChanged=false;					return;				}				Object[] objPath=path.getParentPath().getPath();				ArrayList<Object> reconstruct=new ArrayList<Object>();				ArrayList<TreePath> listOfNodesToReconstruct=new ArrayList<TreePath>();				for (int x=0; x< objPath.length;x++)				{					Object o=objPath[x];					reconstruct.add(o);					if (o instanceof BugAspects)					{						if (((BugAspects)o).getCount()==1)						{		//					Debug.println((BugAspects)(o));							break;						}					}					TreePath pathToNode=new TreePath(reconstruct.toArray());					listOfNodesToReconstruct.add(pathToNode);				}						theNode.getBug().getSafeUserDesignation().setDesignation(selection);				model.suppressBug(path);				TreePath unsuppressPath=model.getPathToBug(theNode.getBug());				if (unsuppressPath!=null)//If choosing their designation has not moved the bug under any filters				{					model.unsuppressBug(unsuppressPath);		//			tree.setSelectionPath(unsuppressPath);				}				for (TreePath pathToNode: listOfNodesToReconstruct)				{					model.treeNodeChanged(pathToNode);				}				setProjectChanged(true);				designationChanged=false;			}		}		else if (getSorter().getOrderAfterDivider().contains(Sortables.DESIGNATION))		{			if (designationChanged)			{				theNode.getBug().getSafeUserDesignation().setDesignation(selection);				BugTreeModel model = (BugTreeModel)tree.getModel();				TreePath pathToBranch=model.getPathToBug(theNode.getBug()).getParentPath();				model.sortBranch(pathToBranch);				designationChanged=false;			}		}	}