line = newLine;  bufferNode.insert(new DefaultMutableTreeNode( new SearchResult(buffer,line),false), bufferNode.getChildCount());
		private boolean doHyperSearch(Buffer buffer, SearchMatcher matcher)			throws Exception		{			final DefaultMutableTreeNode bufferNode = new DefaultMutableTreeNode(				buffer.getPath());			try			{				buffer.readLock();				Element map = buffer.getDefaultRootElement();				int lines = map.getElementCount();				for(int i = 0; i < lines; i++)				{					Element lineElement = map.getElement(i);					int start = lineElement.getStartOffset();					String lineString = buffer.getText(start,						lineElement.getEndOffset() - start - 1);					int[] match = matcher.nextMatch(lineString);					if(match != null)					{						bufferNode.insert(new DefaultMutableTreeNode(							new SearchResult(buffer,i),false),							bufferNode.getChildCount());					}				}			}			finally			{				buffer.readUnlock();			}			if(bufferNode.getChildCount() == 0)				return false;			SwingUtilities.invokeLater(new Runnable()			{				public void run()				{					resultTreeRoot.insert(bufferNode,						resultTreeRoot.getChildCount());					resultTreeModel.reload(resultTreeRoot);				}			});			return true;		}