01: /*******************************************************************************
02: * Copyright (c) 2007 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.pde.internal.core.text.toc;
11:
12: import org.eclipse.jface.text.IDocument;
13: import org.eclipse.pde.core.IModel;
14: import org.eclipse.pde.core.IWritable;
15: import org.eclipse.pde.internal.core.NLResourceHelper;
16: import org.eclipse.pde.internal.core.text.XMLEditingModel;
17: import org.xml.sax.helpers.DefaultHandler;
18:
19: /**
20: * TocModel
21: *
22: */
23: public class TocModel extends XMLEditingModel {
24:
25: private TocDocumentHandler fHandler;
26:
27: private TocDocumentFactory fFactory;
28:
29: private Toc fToc;
30:
31: /**
32: * @param document
33: * @param isReconciling
34: */
35: public TocModel(IDocument document, boolean isReconciling) {
36: super (document, isReconciling);
37:
38: fHandler = null;
39: fFactory = new TocDocumentFactory(this );
40: fToc = null;
41: }
42:
43: /* (non-Javadoc)
44: * @see org.eclipse.pde.internal.core.text.XMLEditingModel#createDocumentHandler(org.eclipse.pde.core.IModel, boolean)
45: */
46: protected DefaultHandler createDocumentHandler(IModel model,
47: boolean reconciling) {
48:
49: if (fHandler == null) {
50: fHandler = new TocDocumentHandler(this , reconciling);
51: }
52: return fHandler;
53: }
54:
55: /* (non-Javadoc)
56: * @see org.eclipse.pde.internal.core.text.AbstractEditingModel#createNLResourceHelper()
57: */
58: protected NLResourceHelper createNLResourceHelper() {
59: // Not needed
60: return null;
61: }
62:
63: /* (non-Javadoc)
64: * @see org.eclipse.pde.internal.core.icheatsheet.simple.ITocModel#getFactory()
65: */
66: public TocDocumentFactory getFactory() {
67: return fFactory;
68: }
69:
70: /* (non-Javadoc)
71: * @see org.eclipse.pde.internal.core.icheatsheet.simple.ITocModel#getToc()
72: */
73: public Toc getToc() {
74: if (fToc == null) {
75: fToc = getFactory().createToc();
76: }
77: return fToc;
78: }
79:
80: protected IWritable getRoot() {
81: return getToc();
82: }
83:
84: }
|