Author: dgolovin
Date: 2011-07-19 17:16:01 -0400 (Tue, 19 Jul 2011)
New Revision: 33053
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/editor/check/ProjectNaturesChecker.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditorPart.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/selection/bar/SelectionBar.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeEditorPart.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/proxy/VpeNodeInvocationHandler.java
Log:
Partial fix for JBIDE-8359 VisualEditor throws exception and stays open for file from
project that is being closed
Exception fixed but it editors cannot be closed it this scenario.
It happens because editors saved in editor area from previous session aren't loaded
right after eclipse start. Only editor for active tab is loaded.
When project is deleted only active editor is closed all others stay opened with message
in editing area that edited resource is not exist.
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/editor/check/ProjectNaturesChecker.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/editor/check/ProjectNaturesChecker.java 2011-07-19
21:01:17 UTC (rev 33052)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/editor/check/ProjectNaturesChecker.java 2011-07-19
21:16:01 UTC (rev 33053)
@@ -21,6 +21,7 @@
import org.eclipse.core.runtime.QualifiedName;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWindowListener;
import org.eclipse.ui.IWorkbenchWindow;
@@ -85,33 +86,32 @@
}
public void checkNatures(IProject project) throws CoreException {
- if (project == null) {
- return;
- }
- addProject(project);
- boolean isJSFCheck = true;
- boolean isJSFNaturesCheck = true;
- boolean isKBNaturesCheck = true;
- updateProjectPersistentProperties(project);
- isJSFCheck = Boolean.parseBoolean(project
- .getPersistentProperty(IS_JSF_CHECK_NEED));
- isJSFNaturesCheck = Boolean.parseBoolean(project
- .getPersistentProperty(IS_JSF_NATURES_CHECK_NEED));
- isKBNaturesCheck = Boolean.parseBoolean(project
- .getPersistentProperty(IS_KB_NATURES_CHECK_NEED));
- KbProject.checkKBBuilderInstalled(project);
- String missingNature = checkMissingNatures(project);
- if (missingNature != null) {
- ProjectNaturesInfoDialog dialog = null;
- if (KbProject.NATURE_ID.equals(missingNature) && isKBNaturesCheck) {
- dialog = new KBNaturesInfoDialog(project);
- } else if (WebProject.JSF_NATURE_ID.equals(missingNature)
- && isJSFNaturesCheck && isJSFCheck) {
- dialog = new JSFNaturesInfoDialog(project);
+ if (project != null && project.isAccessible()) {
+ addProject(project);
+ boolean isJSFCheck = true;
+ boolean isJSFNaturesCheck = true;
+ boolean isKBNaturesCheck = true;
+ updateProjectPersistentProperties(project);
+ isJSFCheck = Boolean.parseBoolean(project
+ .getPersistentProperty(IS_JSF_CHECK_NEED));
+ isJSFNaturesCheck = Boolean.parseBoolean(project
+ .getPersistentProperty(IS_JSF_NATURES_CHECK_NEED));
+ isKBNaturesCheck = Boolean.parseBoolean(project
+ .getPersistentProperty(IS_KB_NATURES_CHECK_NEED));
+ KbProject.checkKBBuilderInstalled(project);
+ String missingNature = checkMissingNatures(project);
+ if (missingNature != null) {
+ ProjectNaturesInfoDialog dialog = null;
+ if (KbProject.NATURE_ID.equals(missingNature) && isKBNaturesCheck) {
+ dialog = new KBNaturesInfoDialog(project);
+ } else if (WebProject.JSF_NATURE_ID.equals(missingNature)
+ && isJSFNaturesCheck && isJSFCheck) {
+ dialog = new JSFNaturesInfoDialog(project);
+ }
+ if (dialog != null) {
+ dialog.open();
+ }
}
- if (dialog != null) {
- dialog.open();
- }
}
}
@@ -129,29 +129,22 @@
}
private void handleResourceChangeEvent(IResourceChangeEvent changeEvent) {
- IResourceDelta[] affectedChildren = changeEvent.getDelta()
- .getAffectedChildren();
- if (affectedChildren == null) {
- return;
- }
+ IResourceDelta[] affectedChildren = changeEvent.getDelta().getAffectedChildren();
for (int i = 0; i < affectedChildren.length; i++) {
IResourceDelta resourceDelta = affectedChildren[i];
if (resourceDelta.getResource() instanceof IProject) {
IProject project = (IProject) resourceDelta.getResource();
if (resourceDelta.getKind() == IResourceDelta.ADDED) {
processAddProject(project);
- continue;
- }
- if (resourceDelta.getKind() == IResourceDelta.REMOVED) {
+ } else if (resourceDelta.getKind() == IResourceDelta.REMOVED) {
processRemoveProject(project);
- continue;
+ } else {
+ try {
+ updateProjectJSFPersistents(project);
+ } catch (CoreException e) {
+ ProblemReportingHelper.reportProblem(JspEditorPlugin.PLUGIN_ID, e);
+ }
}
- try {
- updateProjectJSFPersistents(project);
- } catch (CoreException e) {
- ProblemReportingHelper.reportProblem(
- JspEditorPlugin.PLUGIN_ID, e);
- }
}
}
}
@@ -159,15 +152,9 @@
private void updateProjectPersistentProperties(IProject project)
throws CoreException {
if (project.isAccessible()) {
-// String jsfCheckString = project
-// .getPersistentProperty(IS_JSF_CHECK_NEED);
-// if (jsfCheckString == null) {
- updateProjectJSFPersistents(project);
-// }
+ updateProjectJSFPersistents(project);
if (project.getPersistentProperty(IS_JSF_NATURES_CHECK_NEED) == null) {
- project
- .setPersistentProperty(IS_JSF_NATURES_CHECK_NEED,
- Boolean.TRUE.toString());
+ project.setPersistentProperty(IS_JSF_NATURES_CHECK_NEED, Boolean.TRUE.toString());
}
if (project.getPersistentProperty(IS_KB_NATURES_CHECK_NEED) == null) {
project.setPersistentProperty(IS_KB_NATURES_CHECK_NEED, Boolean.TRUE.toString());
@@ -180,16 +167,13 @@
}
public void addProject(IProject project) {
- if (getProject(project) == null) {
+ if (!projectsCollection.contains(project)) {
projectsCollection.add(project);
}
}
public void dispose() {
- if (partListener != null) {
- partListener = null;
- }
-// ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
+ partListener = null;
projectsCollection.clear();
}
@@ -206,19 +190,18 @@
projectsCollection.remove(project);
}
- private void updateProjectJSFPersistents(IProject project)
- throws CoreException {
+ private void updateProjectJSFPersistents(IProject project) throws CoreException {
if (project.isAccessible()) {
+ IJavaElement javaElement = null;
try {
- IJavaElement javaElement = FileUtil.searchForClass(JavaCore
- .create(project), SEARCH_CLASS);
- if (javaElement == null) {
- project.setPersistentProperty(IS_JSF_CHECK_NEED, Boolean.FALSE.toString());
- } else {
- project.setPersistentProperty(IS_JSF_CHECK_NEED, Boolean.TRUE.toString());
- }
+ javaElement = FileUtil.searchForClass(JavaCore.create(project), SEARCH_CLASS);
} catch (CoreException e) {
+ // ignore
+ }
+ if (javaElement == null) {
project.setPersistentProperty(IS_JSF_CHECK_NEED, Boolean.FALSE.toString());
+ } else {
+ project.setPersistentProperty(IS_JSF_CHECK_NEED, Boolean.TRUE.toString());
}
}
}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditorPart.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditorPart.java 2011-07-19
21:01:17 UTC (rev 33052)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditorPart.java 2011-07-19
21:16:01 UTC (rev 33053)
@@ -16,6 +16,9 @@
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.SafeRunner;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.util.Assert;
@@ -41,6 +44,7 @@
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IKeyBindingService;
import org.eclipse.ui.INestableKeyBindingService;
import org.eclipse.ui.IPropertyListener;
@@ -60,6 +64,7 @@
*
*/
public abstract class JSPMultiPageEditorPart extends EditorPart {
+
private static final String COMMAND_NEXT_SUB_TAB =
"org.eclipse.ui.navigate.nextSubTab"; //$NON-NLS-1$
private static final String COMMAND_PREVIOUS_SUB_TAB =
"org.eclipse.ui.navigate.previousSubTab"; //$NON-NLS-1$
@@ -117,6 +122,7 @@
editorComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
editorComp.setLayout(new FillLayout(SWT.VERTICAL));
editor.createPartControl(editorComp);
+ sourcePart.init(site, input);
}else {
editor.createPartControl(parent2);
}
@@ -281,7 +287,9 @@
protected abstract IEditorSite createSite(IEditorPart editor);
public void dispose() {
- selectionBar.dispose();
+ if(selectionBar!=null) {
+ selectionBar.dispose();
+ }
getSite().setSelectionProvider(null);
for (int i = 0; i < nestedEditors.size(); ++i) {
IEditorPart editor = (IEditorPart) nestedEditors.get(i);
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/selection/bar/SelectionBar.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/selection/bar/SelectionBar.java 2011-07-19
21:01:17 UTC (rev 33052)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/selection/bar/SelectionBar.java 2011-07-19
21:16:01 UTC (rev 33053)
@@ -110,7 +110,9 @@
int style) {
super(parent, style);
this.textEditor = textEditor;
- this.textEditor.getTextViewer().addSelectionChangedListener(this);
+ if(this.textEditor.getTextViewer()!= null) {
+ this.textEditor.getTextViewer().addSelectionChangedListener(this);
+ }
ICommandService commandService = (ICommandService) PlatformUI
.getWorkbench().getService(ICommandService.class);
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeEditorPart.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeEditorPart.java 2011-07-19
21:01:17 UTC (rev 33052)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeEditorPart.java 2011-07-19
21:16:01 UTC (rev 33053)
@@ -182,9 +182,9 @@
throws PartInitException {
setSite(site);
setInput(input);
- if (editorSettings == null)
+ if (editorSettings == null) {
editorSettings = EditorSettings.getEditorSetting(this);
- else if (input instanceof FileEditorInput) {
+ } else if (input instanceof FileEditorInput) {
editorSettings.setInput((FileEditorInput) input);
}
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/proxy/VpeNodeInvocationHandler.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/proxy/VpeNodeInvocationHandler.java 2011-07-19
21:01:17 UTC (rev 33052)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/proxy/VpeNodeInvocationHandler.java 2011-07-19
21:16:01 UTC (rev 33053)
@@ -59,8 +59,7 @@
* @return
*/
private String replaceEL(String toReplace) {
-
- return ElService.getInstance().replaceElAndResources(this.pageContext,
toReplace);
+ return ElService.getInstance().replaceElAndResources(this.pageContext, toReplace);
}
}