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.cheatsheet.simple;
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.icheatsheet.simple.ISimpleCS;
17: import org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSModel;
18: import org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSModelFactory;
19: import org.eclipse.pde.internal.core.text.XMLEditingModel;
20: import org.xml.sax.helpers.DefaultHandler;
21:
22: /**
23: * SimpleCSModel
24: *
25: */
26: public class SimpleCSModel extends XMLEditingModel implements
27: ISimpleCSModel {
28:
29: private SimpleCSDocumentHandler fHandler;
30:
31: private SimpleCSDocumentFactory fFactory;
32:
33: private ISimpleCS fSimpleCS;
34:
35: /**
36: * @param document
37: * @param isReconciling
38: */
39: public SimpleCSModel(IDocument document, boolean isReconciling) {
40: super (document, isReconciling);
41:
42: fHandler = null;
43: fFactory = new SimpleCSDocumentFactory(this );
44: fSimpleCS = null;
45: }
46:
47: /* (non-Javadoc)
48: * @see org.eclipse.pde.internal.core.text.XMLEditingModel#createDocumentHandler(org.eclipse.pde.core.IModel, boolean)
49: */
50: protected DefaultHandler createDocumentHandler(IModel model,
51: boolean reconciling) {
52:
53: if (fHandler == null) {
54: fHandler = new SimpleCSDocumentHandler(this , reconciling);
55: }
56: return fHandler;
57: }
58:
59: /* (non-Javadoc)
60: * @see org.eclipse.pde.internal.core.text.AbstractEditingModel#createNLResourceHelper()
61: */
62: protected NLResourceHelper createNLResourceHelper() {
63: // Not needed
64: return null;
65: }
66:
67: /* (non-Javadoc)
68: * @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSModel#getFactory()
69: */
70: public ISimpleCSModelFactory getFactory() {
71: return fFactory;
72: }
73:
74: /* (non-Javadoc)
75: * @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSModel#getSimpleCS()
76: */
77: public ISimpleCS getSimpleCS() {
78: if (fSimpleCS == null) {
79: fSimpleCS = getFactory().createSimpleCS();
80: }
81: // TODO: MP: TEO: LOW: Remove cast once interface method created
82: ((SimpleCSObject) fSimpleCS).setInTheModel(true);
83: return fSimpleCS;
84: }
85:
86: /* (non-Javadoc)
87: * @see org.eclipse.pde.internal.core.text.XMLEditingModel#getRoot()
88: */
89: protected IWritable getRoot() {
90: return getSimpleCS();
91: }
92:
93: }
|