X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/internal/WebBrowserEditor.java b/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/internal/WebBrowserEditor.java index c55f9d4..d31c8e9 100644 --- a/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/internal/WebBrowserEditor.java +++ b/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/internal/WebBrowserEditor.java @@ -1,10 +1,10 @@ /** * Copyright (c) 2003 IBM Corporation and others. - * All rights reserved.   This program and the accompanying materials + * All rights reserved. � This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html - * + �* * Contributors: * IBM - Initial API and implementation */ @@ -16,7 +16,7 @@ import net.sourceforge.phpeclipse.webbrowser.IWebBrowserEditorInput; import net.sourceforge.phpeclipse.webbrowser.WebBrowserEditorInput; import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IMarker; +//import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IResourceChangeListener; @@ -39,20 +39,26 @@ import org.eclipse.ui.IFileEditorInput; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.part.EditorPart; + /** - * An integrated Web browser, defined as an editor to make - * better use of the desktop. + * An integrated Web browser, defined as an editor to make better use of the + * desktop. */ public class WebBrowserEditor extends EditorPart { public static final String WEB_BROWSER_EDITOR_ID = "net.sourceforge.phpeclipse.webbrowser"; + protected WebBrowser webBrowser; + protected String initialURL; + protected Image image; protected TextAction cutAction; + protected TextAction copyAction; + protected TextAction pasteAction; - + protected IResourceChangeListener resourceListener; /** @@ -61,7 +67,7 @@ public class WebBrowserEditor extends EditorPart { public WebBrowserEditor() { super(); } - + /** * Creates the SWT controls for this workbench part. *

@@ -71,95 +77,97 @@ public class WebBrowserEditor extends EditorPart { *

* For implementors this is a multi-step process: *

    - *
  1. Create one or more controls within the parent.
  2. - *
  3. Set the parent layout as needed.
  4. - *
  5. Register any global actions with the IActionService.
  6. - *
  7. Register any popup menus with the IActionService.
  8. - *
  9. Register a selection provider with the ISelectionService - * (optional).
  10. + *
  11. Create one or more controls within the parent.
  12. + *
  13. Set the parent layout as needed.
  14. + *
  15. Register any global actions with the IActionService.
  16. + *
  17. Register any popup menus with the IActionService.
  18. + *
  19. Register a selection provider with the + * ISelectionService (optional).
  20. *
*

- * - * @param parent the parent control + * + * @param parent + * the parent control */ public void createPartControl(Composite parent) { IWebBrowserEditorInput input = getWebBrowserEditorInput(); - - + if (input == null || input.isToolbarVisible() == false) - webBrowser = new WebBrowser(parent, false, input.isStatusbarVisible()); + webBrowser = new WebBrowser(parent, false, input + .isStatusbarVisible()); else { - webBrowser = new WebBrowser(parent, true, input.isStatusbarVisible()); + webBrowser = new WebBrowser(parent, true, input + .isStatusbarVisible()); cutAction = new TextAction(webBrowser, TextAction.CUT); copyAction = new TextAction(webBrowser, TextAction.COPY); pasteAction = new TextAction(webBrowser, TextAction.PASTE); } - + webBrowser.setURL(initialURL); webBrowser.editor = this; } - + public void dispose() { if (image != null && !image.isDisposed()) image.dispose(); image = null; if (resourceListener != null) - ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceListener); + ResourcesPlugin.getWorkspace().removeResourceChangeListener( + resourceListener); } - - /* (non-Javadoc) - * Saves the contents of this editor. - *

- * Subclasses must override this method to implement the open-save-close lifecycle - * for an editor. For greater details, see IEditorPart - *

- * + + /* + * (non-Javadoc) Saves the contents of this editor.

Subclasses must + * override this method to implement the open-save-close lifecycle for an + * editor. For greater details, see IEditorPart

+ * * @see IEditorPart */ - public void doSave(IProgressMonitor monitor) { } + public void doSave(IProgressMonitor monitor) { + } - /* (non-Javadoc) - * Saves the contents of this editor to another object. - *

- * Subclasses must override this method to implement the open-save-close lifecycle - * for an editor. For greater details, see IEditorPart + /* + * (non-Javadoc) Saves the contents of this editor to another object.

+ * Subclasses must override this method to implement the open-save-close + * lifecycle for an editor. For greater details, see IEditorPart *

- * + * * @see IEditorPart */ - public void doSaveAs() { } - + public void doSaveAs() { + } + /** * Returns the copy action. - * + * * @return org.eclipse.jface.action.IAction */ public IAction getCopyAction() { return copyAction; } - + /** * Returns the cut action. - * + * * @return org.eclipse.jface.action.IAction */ public IAction getCutAction() { return cutAction; } - + /** * Returns the paste action. - * + * * @return org.eclipse.jface.action.IAction */ public IAction getPasteAction() { return pasteAction; } - + /** * Returns the web editor input, if available. - * + * * @return net.sourceforge.phpeclipse.webbrowser.IWebBrowserEditorInput */ protected IWebBrowserEditorInput getWebBrowserEditorInput() { @@ -168,31 +176,25 @@ public class WebBrowserEditor extends EditorPart { return (IWebBrowserEditorInput) input; return null; } - - /* (non-Javadoc) - * Sets the cursor and selection state for this editor to the passage defined - * by the given marker. - *

- * Subclasses may override. For greater details, see IEditorPart - *

- * + + /* + * (non-Javadoc) Sets the cursor and selection state for this editor to the + * passage defined by the given marker.

Subclasses may override. For + * greater details, see IEditorPart

+ * * @see IEditorPart */ - public void gotoMarker(IMarker marker) { } - - /* (non-Javadoc) - * Initializes the editor part with a site and input. - *

- * Subclasses of EditorPart must implement this method. Within - * the implementation subclasses should verify that the input type is acceptable - * and then save the site and input. Here is sample code: - *

- *
-	 *		if (!(input instanceof IFileEditorInput))
-	 *			throw new PartInitException("Invalid Input: Must be IFileEditorInput");
-	 *		setSite(site);
-	 *		setInput(editorInput);
-	 * 
+// public void gotoMarker(IMarker marker) { +// } + + /* + * (non-Javadoc) Initializes the editor part with a site and input.

+ * Subclasses of EditorPart must implement this method. + * Within the implementation subclasses should verify that the input type is + * acceptable and then save the site and input. Here is sample code:

+ *
 if (!(input instanceof IFileEditorInput)) throw new
+	 * PartInitException("Invalid Input: Must be IFileEditorInput");
+	 * setSite(site); setInput(editorInput); 
*/ public void init(IEditorSite site, IEditorInput input) { Trace.trace(Trace.FINEST, "Opening browser: " + input); @@ -202,12 +204,14 @@ public class WebBrowserEditor extends EditorPart { URL url = null; try { if (file != null && file.exists()) - url = file.getLocation().toFile().toURL(); + url = file.getFullPath().toFile().toURL(); } catch (Exception e) { Trace.trace(Trace.SEVERE, "Error getting URL to file"); } addResourceListener(file); - input = new WebBrowserEditorInput(url, WebBrowserEditorInput.SHOW_ALL | WebBrowserEditorInput.SAVE_URL); + input = new WebBrowserEditorInput(url, + WebBrowserEditorInput.SHOW_ALL + | WebBrowserEditorInput.SAVE_URL); } if (input instanceof IWebBrowserEditorInput) { IWebBrowserEditorInput wbei = (IWebBrowserEditorInput) input; @@ -218,7 +222,7 @@ public class WebBrowserEditor extends EditorPart { webBrowser.setURL(initialURL); site.getWorkbenchWindow().getActivePage().bringToTop(this); } - + setPartName(wbei.getName()); setTitleToolTip(wbei.getToolTipText()); @@ -233,52 +237,50 @@ public class WebBrowserEditor extends EditorPart { setSite(site); setInput(input); } - - /* (non-Javadoc) - * Returns whether the contents of this editor have changed since the last save - * operation. - *

- * Subclasses must override this method to implement the open-save-close lifecycle - * for an editor. For greater details, see IEditorPart - *

- * + + /* + * (non-Javadoc) Returns whether the contents of this editor have changed + * since the last save operation.

Subclasses must override this method + * to implement the open-save-close lifecycle for an editor. For greater + * details, see IEditorPart

+ * * @see IEditorPart */ public boolean isDirty() { return false; } - - /* (non-Javadoc) - * Returns whether the "save as" operation is supported by this editor. - *

- * Subclasses must override this method to implement the open-save-close lifecycle - * for an editor. For greater details, see IEditorPart + + /* + * (non-Javadoc) Returns whether the "save as" operation is supported by + * this editor.

Subclasses must override this method to implement the + * open-save-close lifecycle for an editor. For greater details, see IEditorPart *

- * + * * @see IEditorPart */ public boolean isSaveAsAllowed() { return false; } - + /** * Returns true if this editor has a toolbar. - * + * * @return boolean */ - public boolean isToolbarVisible() { - IWebBrowserEditorInput input = getWebBrowserEditorInput(); - if (input == null || input.isToolbarVisible()) - return true; - else - return false; - } - +// public boolean isToolbarVisible() { +// IWebBrowserEditorInput input = getWebBrowserEditorInput(); +// if (input == null || input.isToolbarVisible()) +// return true; +// else +// return false; +// } + /** * Open the input in the internal Web browser. */ public static void open(IWebBrowserEditorInput input) { - IWorkbenchWindow workbenchWindow = WebBrowserUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow(); + IWorkbenchWindow workbenchWindow = WebBrowserUIPlugin.getInstance() + .getWorkbench().getActiveWorkbenchWindow(); IWorkbenchPage page = workbenchWindow.getActivePage(); try { @@ -289,20 +291,21 @@ public class WebBrowserEditor extends EditorPart { IEditorPart editor = editors[i].getEditor(true); if (editor != null && editor instanceof WebBrowserEditor) { WebBrowserEditor webEditor = (WebBrowserEditor) editor; - if (input.canReplaceInput(webEditor.getWebBrowserEditorInput())) { + if (input.canReplaceInput(webEditor + .getWebBrowserEditorInput())) { editor.init(editor.getEditorSite(), input); return; } } } } - + page.openEditor(input, WebBrowserEditor.WEB_BROWSER_EDITOR_ID); } catch (Exception e) { Trace.trace(Trace.SEVERE, "Error opening Web browser", e); } } - + /** * Asks this part to take focus within the workbench. *

@@ -319,7 +322,7 @@ public class WebBrowserEditor extends EditorPart { webBrowser.updateHistory(); } } - + /** * Update the actions. */ @@ -338,37 +341,49 @@ public class WebBrowserEditor extends EditorPart { protected void closeEditor() { Display.getDefault().asyncExec(new Runnable() { public void run() { - getEditorSite().getPage().closeEditor(WebBrowserEditor.this, false); + getEditorSite().getPage().closeEditor(WebBrowserEditor.this, + false); } }); } - + /** * Adds a resource change listener to see if the file is deleted. */ protected void addResourceListener(final IResource resource) { if (resource == null) return; - + resourceListener = new IResourceChangeListener() { public void resourceChanged(IResourceChangeEvent event) { try { event.getDelta().accept(new IResourceDeltaVisitor() { public boolean visit(IResourceDelta delta) { IResource res = delta.getResource(); - + if (res == null || !res.equals(resource)) return true; if (delta.getKind() != IResourceDelta.REMOVED) return true; - + Display.getDefault().asyncExec(new Runnable() { public void run() { - String title = WebBrowserUIPlugin.getResource("%dialogResourceDeletedTitle"); - String message = WebBrowserUIPlugin.getResource("%dialogResourceDeletedMessage", resource.getName()); - String[] labels = new String[] {WebBrowserUIPlugin.getResource("%dialogResourceDeletedIgnore"), IDialogConstants.CLOSE_LABEL}; - MessageDialog dialog = new MessageDialog(getEditorSite().getShell(), title, null, message, MessageDialog.INFORMATION, labels, 0); + String title = WebBrowserUIPlugin + .getResource("%dialogResourceDeletedTitle"); + String message = WebBrowserUIPlugin + .getResource( + "%dialogResourceDeletedMessage", + resource.getName()); + String[] labels = new String[] { + WebBrowserUIPlugin + .getResource("%dialogResourceDeletedIgnore"), + IDialogConstants.CLOSE_LABEL }; + MessageDialog dialog = new MessageDialog( + getEditorSite().getShell(), title, + null, message, + MessageDialog.INFORMATION, labels, + 0); if (dialog.open() != 0) closeEditor(); @@ -378,10 +393,12 @@ public class WebBrowserEditor extends EditorPart { } }); } catch (Exception e) { - Trace.trace(Trace.SEVERE, "Error listening for resource deletion", e); + Trace.trace(Trace.SEVERE, + "Error listening for resource deletion", e); } } }; - ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceListener); + ResourcesPlugin.getWorkspace().addResourceChangeListener( + resourceListener); } } \ No newline at end of file