Author: mareshkau
Date: 2011-02-02 09:15:42 -0500 (Wed, 02 Feb 2011)
New Revision: 28922
Added:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/i18n/
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/i18n/I18nValidator.java
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/i18n/JsfLocaleProvider.java
trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2ComponentsValidator.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2SourceValidator.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/bundle/BundleMap.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/ExternalizeStringsWizardPage.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/ILocaleProvider.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/MainLocaleProvider.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditor.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/preferences/ELSeverityPreferences.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaPreview.java
Log:
https://issues.jboss.org/browse/JBIDE-7003 bundle map has been refactored, work under
validator still in progress
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml 2011-02-02 14:04:00 UTC (rev 28921)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml 2011-02-02 14:15:42 UTC (rev 28922)
@@ -584,6 +584,29 @@
</validator>
</extension>
<extension
+ point="org.eclipse.wst.sse.ui.sourcevalidation">
+ <!--Added by Maksim Areshkau -->
+ <validator
+ class="org.jboss.tools.jsf.web.validation.i18n.I18nValidator"
+ id="org.jboss.tools.jsf.externalize.source.validator"
+ scope="total">
+ <contentTypeIdentifier
+ id="jsf.facelet">
+ <partitionType id="org.eclipse.wst.html.HTML_DEFAULT"/>
+ </contentTypeIdentifier>
+ <contentTypeIdentifier
+ id="org.eclipse.wst.html.core.htmlsource">
+ <partitionType
+ id="org.eclipse.wst.html.HTML_DEFAULT"/>
+ </contentTypeIdentifier>
+ <contentTypeIdentifier
+ id="org.eclipse.jst.jsp.core.jspsource">
+ <partitionType
+ id="org.eclipse.wst.html.HTML_DEFAULT"/>
+ </contentTypeIdentifier>
+ </validator>
+ </extension>
+ <extension
point="org.eclipse.wst.sse.ui.quickFixProcessor">
<quickFixProcessor
class="org.jboss.tools.jsf.web.validation.jsf2.action.JSF2QuickFixProcessor"
Added:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/i18n/I18nValidator.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/i18n/I18nValidator.java
(rev 0)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/i18n/I18nValidator.java 2011-02-02
14:15:42 UTC (rev 28922)
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.web.validation.i18n;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator;
+import org.eclipse.wst.validation.internal.core.ValidationException;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
+import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
+import org.eclipse.wst.validation.internal.provisional.core.IValidator;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.jboss.tools.jsf.jsf2.model.JSF2ComponentModelManager;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
+
+/**
+ * Validator which looks for non externalized strings
+ *
+ * @author mareshkau
+ *
+ */
+@SuppressWarnings("restriction")
+public class I18nValidator implements ISourceValidator, IValidator{
+ private IDOMDocument document;
+ public void connect(IDocument document) {
+ this.document=JSF2ComponentModelManager
+ .getReadableDOMDocument(document);
+ }
+
+ public void disconnect(IDocument document) {
+ this.document=null;
+ }
+
+ public void validate(IRegion dirtyRegion, IValidationContext helper,
+ IReporter reporter) {
+ // TODO Auto-generated method stub
+ }
+
+ public void cleanup(IReporter reporter) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void validate(IValidationContext helper, IReporter reporter)
+ throws ValidationException {
+ List<Node> stringNodes = new ArrayList<Node>();
+ lookForStrings(document, stringNodes);
+ }
+
+
+ private void lookForStrings(Node node, List<Node> nonExtStings){
+ NodeList childNodes = node.getChildNodes();
+ for(int i=0;i<childNodes.getLength();i++) {
+ Node childNode = childNodes.item(i);
+ if(childNode instanceof Text){
+ nonExtStings.add(childNode);
+ } else {
+ lookForStrings(childNode, nonExtStings);
+ }
+ }
+ }
+}
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2ComponentsValidator.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2ComponentsValidator.java 2011-02-02
14:04:00 UTC (rev 28921)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2ComponentsValidator.java 2011-02-02
14:15:42 UTC (rev 28922)
@@ -35,6 +35,7 @@
import org.jboss.tools.jst.web.kb.KbProjectFactory;
/**
+ * Validates full file, when we click validate in Context menu
*
* @author yzhishko
* @author mareshkau
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2SourceValidator.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2SourceValidator.java 2011-02-02
14:04:00 UTC (rev 28921)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2SourceValidator.java 2011-02-02
14:15:42 UTC (rev 28922)
@@ -38,6 +38,7 @@
import org.jboss.tools.jsf.web.validation.jsf2.components.JSF2URITempComponent;
/**
+ * Validates when we change smth in file
*
* @author yzhishko
* @author mareshkau
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/i18n/JsfLocaleProvider.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/i18n/JsfLocaleProvider.java 2011-02-02
14:04:00 UTC (rev 28921)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/i18n/JsfLocaleProvider.java 2011-02-02
14:15:42 UTC (rev 28922)
@@ -40,6 +40,15 @@
*/
public Locale getLocale(ITextEditor editor) {
IEditorInput editorInput = editor.getEditorInput();
+ return getLocale(editorInput);
+ }
+
+ public String getLocaleString() {
+ return localeString;
+ }
+
+ @Override
+ public Locale getLocale(IEditorInput editorInput) {
if (editorInput instanceof IFileEditorInput) {
IProject project = ((IFileEditorInput)editorInput)
.getFile().getProject();
@@ -54,9 +63,5 @@
return null;
}
}
-
- public String getLocaleString() {
- return localeString;
- }
}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/bundle/BundleMap.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/bundle/BundleMap.java 2011-02-02
14:04:00 UTC (rev 28921)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/bundle/BundleMap.java 2011-02-02
14:15:42 UTC (rev 28922)
@@ -34,8 +34,6 @@
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
import org.jboss.tools.common.el.core.model.ELArgumentInvocation;
import org.jboss.tools.common.el.core.model.ELExpression;
import org.jboss.tools.common.el.core.model.ELInstance;
@@ -65,8 +63,6 @@
};
private BundleMapListener[] bundleMapListeners = new BundleMapListener[0];
- private ITextEditor editor;
-
private String[] javaSources;
/*
* Stores the current VPE locale.
@@ -79,26 +75,26 @@
IVpePreferencesPage.SHOW_RESOURCE_BUNDLES_USAGE_AS_EL);
XModelTreeListener modelListener = new ML();
+ private IEditorInput editorInput =null;
- public void init(ITextEditor editor){
- this.editor = editor;
- IEditorInput input = editor.getEditorInput();
+ public void init(IEditorInput input){
+ this.editorInput = input;
- if (input instanceof IFileEditorInput) {
- javaSources =
getJavaProjectSrcLocations(((IFileEditorInput)input).getFile().getProject());
+ if (getEditorInput() instanceof IFileEditorInput) {
+ javaSources =
getJavaProjectSrcLocations(((IFileEditorInput)getEditorInput()).getFile().getProject());
}
/*
* Initialize the locale with default value.
*/
- locale = MainLocaleProvider.getInstance().getLocale(editor);
+ locale = MainLocaleProvider.getInstance().getLocale(getEditorInput());
refreshRegisteredBundles();
PreferenceModelUtilities.getPreferenceModel().addModelTreeListener(modelListener);
}
public void refreshRegisteredBundles() {
if (hasJsfProjectNatureType()
- && (editor.getEditorInput() instanceof IFileEditorInput)) {
- IProject project = ((IFileEditorInput) editor.getEditorInput())
+ && (getEditorInput() instanceof IFileEditorInput)) {
+ IProject project = ((IFileEditorInput)getEditorInput())
.getFile().getProject();
IModelNature modelNature = EclipseResourceUtil
.getModelNature(project);
@@ -155,7 +151,7 @@
private boolean hasJsfProjectNatureType() {
boolean hasJsfProjectNatureType = false;
try {
- IEditorInput ei = editor.getEditorInput();
+ IEditorInput ei = getEditorInput();
if(ei instanceof IFileEditorInput) {
IProject project = ((IFileEditorInput)ei).getFile().getProject();
if (project.exists() && project.isOpen()) {
@@ -196,8 +192,8 @@
if(entry == null){
if (hasJsfProjectNatureType()) {
- if (editor.getEditorInput() instanceof IFileEditorInput) {
- IProject project =
((IFileEditorInput)editor.getEditorInput()).getFile().getProject();
+ if (getEditorInput() instanceof IFileEditorInput) {
+ IProject project = ((IFileEditorInput)getEditorInput()).getFile().getProject();
XModel model = EclipseResourceUtil.getModelNature(project).getModel();
String prefix2 = prefix;
if(propertyName != null && prefix != null) {
@@ -214,10 +210,10 @@
p.put(WebPromptingProvider.BUNDLE, entry.uri);
p.put(WebPromptingProvider.KEY, propertyName);
if (locale != null) p.put(WebPromptingProvider.LOCALE, locale);
- p.put(WebPromptingProvider.FILE,
((IFileEditorInput)editor.getEditorInput()).getFile().getProject());
+ p.put(WebPromptingProvider.FILE,
((IFileEditorInput)getEditorInput()).getFile().getProject());
String error = null;
- if (editor.getEditorInput() instanceof IFileEditorInput) {
- IProject project =
((IFileEditorInput)editor.getEditorInput()).getFile().getProject();
+ if (getEditorInput() instanceof IFileEditorInput) {
+ IProject project = ((IFileEditorInput)getEditorInput()).getFile().getProject();
XModel model = EclipseResourceUtil.getModelNature(project).getModel();
WebPromptingProvider.getInstance().getList(model, WebPromptingProvider.JSF_OPEN_KEY,
entry.uri, p);
error = p.getProperty(WebPromptingProvider.ERROR);
@@ -235,7 +231,7 @@
* @return the bundle file
*/
public IFile getBundleFile(String uri){
- IEditorInput input = editor.getEditorInput();
+ IEditorInput input = getEditorInput();
IProject project = ((FileEditorInput)input).getFile().getProject();
if(project == null || !project.isOpen()) {
return null;
@@ -393,8 +389,7 @@
public void refresh(){
refreshRegisteredBundles();
- IEditorInput input = editor.getEditorInput();
-
+ IEditorInput input = getEditorInput();
if (input instanceof IFileEditorInput) {
javaSources =
getJavaProjectSrcLocations(((IFileEditorInput)input).getFile().getProject());
UsedKey key;
@@ -672,5 +667,9 @@
public BundleEntry[] getBundles() {
return bundles;
}
+
+ private IEditorInput getEditorInput() {
+ return editorInput;
+ }
}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/ExternalizeStringsWizardPage.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/ExternalizeStringsWizardPage.java 2011-02-02
14:04:00 UTC (rev 28921)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/ExternalizeStringsWizardPage.java 2011-02-02
14:15:42 UTC (rev 28922)
@@ -920,7 +920,7 @@
int hash;
Map<?, ?> map = null;
BundleMap bm = new BundleMap();
- bm.init(editor);
+ bm.init(editor.getEditorInput());
/*
* Check JSF Nature
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/ILocaleProvider.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/ILocaleProvider.java 2011-02-02
14:04:00 UTC (rev 28921)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/ILocaleProvider.java 2011-02-02
14:15:42 UTC (rev 28922)
@@ -12,6 +12,7 @@
import java.util.Locale;
+import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.texteditor.ITextEditor;
/**
@@ -26,6 +27,8 @@
* may return {@code null} if they can not determine the locale.
*/
Locale getLocale(ITextEditor editor);
+
+ Locale getLocale(IEditorInput editorInput);
/**
* Shows the string representation of the locale
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/MainLocaleProvider.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/MainLocaleProvider.java 2011-02-02
14:04:00 UTC (rev 28921)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/MainLocaleProvider.java 2011-02-02
14:15:42 UTC (rev 28922)
@@ -75,7 +75,14 @@
* system locale if nothing found (never returns {@code null}).
*/
public Locale getLocale(ITextEditor editor) {
- IEditorInput editorInput = editor.getEditorInput();
+ return this.getLocale(editor.getEditorInput());
+ }
+ /**
+ * Tries to determine the locale of the {@code editor} using
+ * {@code localeProvider} extensions. Returns the default
+ * system locale if nothing found (never returns {@code null}).
+ */
+ public Locale getLocale(IEditorInput editorInput) {
if (editorInput instanceof IFileEditorInput) {
IProject project = ((IFileEditorInput)editorInput)
.getFile().getProject();
@@ -85,7 +92,7 @@
String[] natures = project.getDescription().getNatureIds();
for (String natureId : natures) {
for (ILocaleProvider provider : getProviders(natureId)) {
- Locale locale = provider.getLocale(editor);
+ Locale locale = provider.getLocale(editorInput);
if (locale != null) {
localeString = provider.getLocaleString();
return locale;
@@ -101,7 +108,7 @@
}
return Locale.getDefault();
- }
+ }
private void initNatureExtensionsMap() {
Map<String, ArrayList<IExtension>> natureExtensionsMap
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditor.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditor.java 2011-02-02
14:04:00 UTC (rev 28921)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditor.java 2011-02-02
14:15:42 UTC (rev 28922)
@@ -537,7 +537,7 @@
* VpeController.
*/
if (visualEditor == null) {
- bundleMap.init(sourceEditor);
+ bundleMap.init(sourceEditor.getEditorInput());
}
}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/preferences/ELSeverityPreferences.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/preferences/ELSeverityPreferences.java 2011-02-02
14:04:00 UTC (rev 28921)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/preferences/ELSeverityPreferences.java 2011-02-02
14:15:42 UTC (rev 28922)
@@ -40,6 +40,8 @@
public static final String UNPAIRED_GETTER_OR_SETTER =
INSTANCE.createSeverityOption("unpairedGetterOrSetter"); //$NON-NLS-1$
public static final String EL_SYNTAX_ERROR =
INSTANCE.createSeverityOption("elSyntaxError"); //$NON-NLS-1$
+
+ public static final String NON_EXTERNALIZED_STRINGS =
INSTANCE.createSeverityOption("nonExternalizedString"); //$NON-NLS-1$
/**
* @return the only instance of JSFSeverityPreferences
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2011-02-02
14:04:00 UTC (rev 28921)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2011-02-02
14:15:42 UTC (rev 28922)
@@ -248,7 +248,7 @@
}
this.visualEditor = visualEditor;
visualEditor.setController(this);
- bundleMap.init(sourceEditor);
+ bundleMap.init(sourceEditor.getEditorInput());
pageContext = new VpePageContext(bundleMap, editPart);
domMapping = new VpeDomMapping(pageContext);
sourceBuilder = new VpeSourceDomBuilder(domMapping, this,
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaPreview.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaPreview.java 2011-02-02
14:04:00 UTC (rev 28921)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaPreview.java 2011-02-02
14:15:42 UTC (rev 28922)
@@ -119,7 +119,7 @@
//TODO Max Areshkau logic error (we should first call buildDom and only then we can call
rebuildDom)
public void buildDom() {
BundleMap bundle = new BundleMap();
- bundle.init(getSourceEditor());
+ bundle.init(getSourceEditor().getEditorInput());
//Fix for
https://jira.jboss.org/jira/browse/JBIDE-5639 - mareshkau
// in preview should be closer to view in browser. So all
// bundles should be showed as messages, no as el.