blob: 37ff30a16f06b9777a4114e7e3271be75baeb7a0 [file] [log] [blame]
nitind958d79a2004-11-23 19:23:00 +00001/*******************************************************************************
2 * Copyright (c) 2004 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
david_williamsd8a74fb2005-03-18 02:41:46 +000011package org.eclipse.wst.html.core.internal.cleanup;
nitind958d79a2004-11-23 19:23:00 +000012
13import org.eclipse.core.runtime.IProgressMonitor;
14import org.eclipse.core.runtime.Preferences;
david_williams425ffe72004-12-07 21:46:39 +000015import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
david_williamsd3484c72005-05-25 21:11:11 +000016import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
david_williamsd8a74fb2005-03-18 02:41:46 +000017import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler;
18import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences;
19import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences;
david_williams4ad020f2005-04-18 08:00:30 +000020import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
21import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
22import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
nitind958d79a2004-11-23 19:23:00 +000023
24abstract class AbstractNodeCleanupHandler implements IStructuredCleanupHandler {
25
26 protected IStructuredCleanupPreferences fCleanupPreferences = null;
27 protected IProgressMonitor fProgressMonitor = null;
28
29 public void setCleanupPreferences(IStructuredCleanupPreferences cleanupPreferences) {
30
31 fCleanupPreferences = cleanupPreferences;
32 }
33
david_williams47a33d22005-05-28 01:26:57 +000034
nitind958d79a2004-11-23 19:23:00 +000035 public IStructuredCleanupPreferences getCleanupPreferences() {
36 if (fCleanupPreferences == null) {
37 fCleanupPreferences = new StructuredCleanupPreferences();
38
39 Preferences preferences = getModelPreferences();
40 if (preferences != null) {
nitinda676f292005-08-11 03:16:45 +000041 fCleanupPreferences.setTagNameCase(preferences.getInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE));
42 fCleanupPreferences.setAttrNameCase(preferences.getInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE));
david_williamsd3484c72005-05-25 21:11:11 +000043 fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(HTMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
44 fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS));
45 fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS));
46 fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES));
47 fCleanupPreferences.setFormatSource(preferences.getBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE));
48 fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES));
49 fCleanupPreferences.setEOLCode(preferences.getString(HTMLCorePreferenceNames.CLEANUP_EOL_CODE));
nitind958d79a2004-11-23 19:23:00 +000050 }
51 }
52
53 return fCleanupPreferences;
54 }
55
david_williams47a33d22005-05-28 01:26:57 +000056
nitind958d79a2004-11-23 19:23:00 +000057 public void setProgressMonitor(IProgressMonitor progressMonitor) {
58
59 fProgressMonitor = progressMonitor;
60 }
61
david_williamsc39caaf2005-04-05 06:07:16 +000062 static protected StructuredDocumentEvent replaceSource(IDOMModel model, Object requester, int offset, int length, String source) {
nitind958d79a2004-11-23 19:23:00 +000063
64 StructuredDocumentEvent result = null;
65 if (model == null)
66 return result;
67 IStructuredDocument structuredDocument = model.getStructuredDocument();
68 if (structuredDocument == null)
69 return result;
70 if (source == null)
71 source = new String();
72 if (structuredDocument.containsReadOnly(offset, length))
73 return result;
74 if (requester == null) {
75 requester = structuredDocument;
76 }
77 return structuredDocument.replaceText(requester, offset, length, source);
78 }
79
80 protected Preferences getModelPreferences() {
81 return HTMLCorePlugin.getDefault().getPluginPreferences();
82 }
83}