### Eclipse Workspace Patch 1.0
#P org.eclipse.jdt.ui
Index: plugin.properties
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/plugin.properties,v
retrieving revision 1.435
diff -u -r1.435 plugin.properties
--- plugin.properties 6 Sep 2006 16:20:45 -0000 1.435
+++ plugin.properties 17 Oct 2006 14:55:57 -0000
@@ -1014,3 +1014,5 @@
#--- Work in Progress
contentAssistAdvancedName= Advanced
+
+JavaPropertiesTab=Java
Index: plugin.xml
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/plugin.xml,v
retrieving revision 1.705
diff -u -r1.705 plugin.xml
--- plugin.xml 6 Sep 2006 16:20:45 -0000 1.705
+++ plugin.xml 17 Oct 2006 14:56:04 -0000
@@ -5479,5 +5479,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: META-INF/MANIFEST.MF
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/META-INF/MANIFEST.MF,v
retrieving revision 1.43
diff -u -r1.43 MANIFEST.MF
--- META-INF/MANIFEST.MF 11 Sep 2006 13:19:18 -0000 1.43
+++ META-INF/MANIFEST.MF 17 Oct 2006 14:56:04 -0000
@@ -127,7 +127,8 @@
org.eclipse.ltk.ui.refactoring;bundle-version="[3.3.0,4.0.0)",
org.eclipse.ui.forms;bundle-version="[3.2.0,4.0.0)",
org.eclipse.ui.navigator;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.jdt.core.manipulation;bundle-version="[1.1.0,2.0.0)"
+ org.eclipse.jdt.core.manipulation;bundle-version="[1.1.0,2.0.0)",
+ org.eclipse.ui.views.properties.tabbed;bundle-version="[3.2.0,4.0.0)"
Eclipse-LazyStart: true
Plugin-Class: org.eclipse.jdt.internal.ui.JavaPlugin
Import-Package: com.ibm.icu.text
Index: ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditor.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditor.java,v
retrieving revision 1.409
diff -u -r1.409 JavaEditor.java
--- ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditor.java 17 Aug 2006 13:29:59 -0000 1.409
+++ ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditor.java 17 Oct 2006 14:56:06 -0000
@@ -155,6 +155,9 @@
import org.eclipse.ui.views.contentoutline.ContentOutline;
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.eclipse.jdt.core.IClassFile;
import org.eclipse.jdt.core.ICompilationUnit;
@@ -2036,10 +2039,22 @@
if (required == IContextProvider.class)
return JavaUIHelp.getHelpContextProvider(this, IJavaHelpContextIds.JAVA_EDITOR);
+
+ if (required == IPropertySheetPage.class) {
+ return new TabbedPropertySheetPage(buildTabbedPropertySheetPageContributor());
+ }
return super.getAdapter(required);
}
+ private ITabbedPropertySheetPageContributor buildTabbedPropertySheetPageContributor() {
+ return new ITabbedPropertySheetPageContributor() {
+ public String getContributorId() {
+ return "javaEditor"; //$NON-NLS-1$
+ }
+ };
+ }
+
/**
* React to changed selection.
*
Index: ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditorSelectionConverter.java
===================================================================
RCS file: ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditorSelectionConverter.java
diff -N ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditorSelectionConverter.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditorSelectionConverter.java 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,119 @@
+/*******************************************************************************
+ * Copyright (c) 2006 Oracle. All rights reserved.
+ * This program and the accompanying materials are 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:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jdt.internal.ui.javaeditor;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.views.properties.tabbed.ISelectionConverter;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.ui.JavaPlugin;
+
+/**
+ * An implementation of the tabbed properties ISelectionConverter for the JavaEditor.
+ * It takes an ISelection which from the JavaEditor will be an ITextSelection and converts
+ * it into an IStructuredSelection containing an IJavaElement.
+ *
+ * An empty StructuredSelection is returned if multiple IJavaElements are included
+ * in the ITextSelection
+ *
+ * @author Karen Moore
+ */
+public class JavaEditorSelectionConverter
+ implements ISelectionConverter
+ {
+ public IStructuredSelection structuredSelection(ISelection selection) {
+ if (selection instanceof IStructuredSelection) {
+ return (IStructuredSelection) selection;
+ }
+ int offset = ((ITextSelection) selection).getOffset();
+ int length = ((ITextSelection) selection).getLength();
+
+ ICompilationUnit unit = getCompilationUnit();
+ IJavaElement firstJavaElement = javaElementAt(offset, unit);
+ if (firstJavaElement == null) {
+ return StructuredSelection.EMPTY;
+ }
+ for (int i = offset+1; i < offset + length; i++) {
+ IJavaElement nextJavaElement = javaElementAt(i, unit);
+ if (!firstJavaElement.equals(nextJavaElement)) {
+ return StructuredSelection.EMPTY;
+ }
+ }
+ return new StructuredSelection(firstJavaElement);
+ }
+
+ private IJavaElement javaElementAt(int offset, ICompilationUnit compilationUnit) {
+ IJavaElement javaElement = null;
+ if (compilationUnit != null) {
+ try {
+ javaElement = compilationUnit.getElementAt(offset);
+ } catch (JavaModelException ex) {
+ // fall through
+ }
+ }
+ return javaElement;
+ }
+
+ private ICompilationUnit getCompilationUnit() {
+ IEditorPart editor = getActiveEditor();
+ if (editor == null) {
+ return null;
+ }
+ IEditorInput editorInput = editor.getEditorInput();
+ if (editorInput instanceof IFileEditorInput) {
+ IFileEditorInput fileInput = (IFileEditorInput) editorInput;
+ IFile file = fileInput.getFile();
+ return JavaCore.createCompilationUnitFrom(file);
+ }
+ return null;
+ }
+
+ private IEditorPart getActiveEditor() {
+ IWorkbenchWindow activeWorkbenchWindow = JavaPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow();
+ if (activeWorkbenchWindow == null) {
+ return null;
+ }
+ IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
+ if (activePage == null) {
+ return null;
+ }
+ return activePage.getActiveEditor();
+ }
+
+//
+// public IJpaFile persistenceFileFor(IEditorInput input) {
+// IFile file = null;
+// if (input instanceof IFileEditorInput) {
+// IFileEditorInput fileInput = (IFileEditorInput) input;
+// file = fileInput.getFile();
+// }
+// else if (input instanceof IClassFileEditorInput) {
+// IClassFileEditorInput classFileEditorInput = (IClassFileEditorInput) input;
+// IClassFile classFile = classFileEditorInput.getClassFile();
+// classFile.getResource();
+//
+// }
+// if (file == null) {
+// return null;
+// }
+// return JpaCorePlugin.getJpaFile(file);
+// }
+ }