protected boolean update(SunFishFrame parent, display.DisplayData displayData) {		
		title = displayData.getFileName();
		doc = (Document)(displayData.getData(0));
		Node documentRoot = doc.getDocumentElement();
		
		DefaultMutableTreeNode treeRoot = addTreeNodes(documentRoot); 
		tree = new JTree(treeRoot);
		tree.setCellRenderer(new XMLTreeCellRenderer());
		this.setLayout(new BorderLayout());
		
		boolean isLamarc = false;
		if ( ((TreeNodeElement)treeRoot.getUserObject()).getNameText().equalsIgnoreCase("lamarc") || doc.getFirstChild().getNodeName().equalsIgnoreCase("lamarc") ) 
			isLamarc = true;
		else {
			//Scan all top-level nodes to see if there's some any have 'lamarc' in the name
			DefaultMutableTreeNode node = (DefaultMutableTreeNode)treeRoot.getFirstChild();
			while (node != null && isLamarc==false) {
				isLamarc = ((TreeNodeElement)node.getUserObject()).getNameText().equalsIgnoreCase("lamarc");
				node = node.getNextSibling();
			}
		}
		
		if (isLamarc) {
			Object[] options = {"Display sequences", "Display xml", "Display both"};
			int n = JOptionPane.showOptionDialog(parent,
					"This LAMARC file may have embedded sequences, would you like to display the sequences?",
					"LAMARC file detected",
					JOptionPane.YES_NO_CANCEL_OPTION,
					JOptionPane.QUESTION_MESSAGE,
					null,     //do not use a custom Icon
					options,  //the titles of buttons
					options[0]);
			if (n==0) {
				displayLamarcSequences(doc);
				return false; //Don't display this display
			}
			if (n==1) {
				scrollPane = new JScrollPane(tree);
				add(scrollPane, BorderLayout.CENTER);
				GenericXMLSummary xmlSummary = new GenericXMLSummary(this);
				xmlSummary.analyze(displayData.getFileName(), doc);
				parent.displayOutput(xmlSummary);
				this.repaint();
			}
			if (n==2) {
				displayLamarcSequences(doc);
				scrollPane = new JScrollPane(tree);
				add(scrollPane, BorderLayout.CENTER);
				GenericXMLSummary xmlSummary = new GenericXMLSummary(this);
				xmlSummary.analyze(displayData.getFileName(), doc);
				parent.displayOutput(xmlSummary);
				this.repaint();
			}
    		
		}
		else {
			scrollPane = new JScrollPane(tree);
			add(scrollPane, BorderLayout.CENTER);
			GenericXMLSummary xmlSummary = new GenericXMLSummary(this);
			xmlSummary.analyze(displayData.getFileName(), doc);
			parent.displayOutput(xmlSummary);
			this.repaint();
		}
		
		return true;
	}