You are viewing a plain text version of this content. The canonical link for it is here.
Posted to svn@forrest.apache.org by rg...@apache.org on 2005/07/15 01:59:11 UTC

svn commit: r219143 - in /forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views: NavigationView.java SiteXMLView.java TabsXMLView.java

Author: rgardler
Date: Thu Jul 14 16:59:09 2005
New Revision: 219143

URL: http://svn.apache.org/viewcvs?rev=219143&view=rev
Log:
start to refactor the views into an abstract class to ease maintenance - common code should be moved into the new NavigatorView class

Added:
    forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/NavigationView.java   (with props)
Modified:
    forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/SiteXMLView.java
    forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/TabsXMLView.java

Added: forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/NavigationView.java
URL: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/NavigationView.java?rev=219143&view=auto
==============================================================================
--- forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/NavigationView.java (added)
+++ forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/NavigationView.java Thu Jul 14 16:59:09 2005
@@ -0,0 +1,114 @@
+/*
+ * Copyright 1999-2005 The Apache Software Foundation or its licensors,
+ * as applicable.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.forrest.eclipse.views;
+
+import org.apache.forrest.eclipse.actions.Utilities;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.ISelectionListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.part.ViewPart;
+import org.w3c.dom.Document;
+
+/**
+ * An abstract class that provides common functionality for views that are 
+ * used to edit navigation documents such as site.xml and tabs.xml.
+ */
+public abstract class NavigationView extends ViewPart implements IMenuListener,
+        ISelectionListener {
+    protected TreeViewer treeViewer;
+    protected Document document;
+    protected String projectName;
+    protected String path;
+    protected IStructuredSelection treeSelection;
+    protected IProject activeProject;
+
+    /**
+     * 
+     */
+    public NavigationView() {
+        super();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+     */
+    public void createPartControl(Composite parent) {
+        // TODO Auto-generated method stub
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+     */
+    public void setFocus() {
+        // TODO Auto-generated method stub
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.eclipse.jface.action.IMenuListener#menuAboutToShow(org.eclipse.jface.action.IMenuManager)
+     */
+    public void menuAboutToShow(IMenuManager manager) {
+        // TODO Auto-generated method stub
+
+    }
+    
+    /**
+     * When the selection in the navigator view is changed 
+     * we look to see if the new selection is an IProject.
+     * If it is then we load the site.xml file into this
+     * SiteXMLView.
+     */
+    public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+        if (selection instanceof IStructuredSelection) {
+            Object first = ((IStructuredSelection) selection).getFirstElement();
+            IResource resource = (IResource) first;
+            if (resource instanceof IProject) {
+                activeProject = (IProject) resource;
+                projectName = activeProject.getProject().getName();
+                path = (activeProject.getProject().getLocation()
+                        .toString()
+                        + java.io.File.separator
+                        + Utilities.getPathToXDocs()
+                        + java.io.File.separator + getFilename());
+                document = DOMUtilities.loadDOM(path);
+                treeViewer.setInput(document);
+            }
+        }
+    }
+
+    /**
+     * Get the name of the file this editor view represents.
+     * This name does not include the path. For example.
+     * 'site.xml' or 'tabs.xml'
+     * @return the name (without pat) of the document to view
+     */
+    protected abstract String getFilename();
+}

Propchange: forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/NavigationView.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/SiteXMLView.java
URL: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/SiteXMLView.java?rev=219143&r1=219142&r2=219143&view=diff
==============================================================================
--- forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/SiteXMLView.java (original)
+++ forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/SiteXMLView.java Thu Jul 14 16:59:09 2005
@@ -20,17 +20,13 @@
 
 import java.util.ArrayList;
 
-import org.apache.forrest.eclipse.actions.Utilities;
 import org.apache.forrest.eclipse.wizards.NewSiteElement;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IMenuListener;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITreeContentProvider;
@@ -45,14 +41,10 @@
 import org.eclipse.swt.dnd.Transfer;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.ISelectionListener;
 import org.eclipse.ui.ISharedImages;
 import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
 import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -62,19 +54,11 @@
  * drop from the navigator and supports a number of context 
  * menus for editing. 
  */
-public class SiteXMLView extends ViewPart implements IMenuListener,
-		ISelectionListener {
-	private TreeViewer treeViewer;
-	private Document document;
-	private String projectName;
-	private String path;
-	private IStructuredSelection treeSelection;
+public class SiteXMLView extends NavigationView {
 	private Action AddElement;
 	private Action RemoveElement;
 	private Action SaveDocument;
 	
-	protected IProject activeProject;
-	
 	/**
 	 * The constructor.
 	 */
@@ -149,41 +133,6 @@
 		hookContextMenu();
 	}
 
-	public void setFocus() {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void menuAboutToShow(IMenuManager manager) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/**
-     * When the selection in the navigator view is changed 
-     * we look to see if the new selection is an IProject.
-     * If it is then we load the site.xml file into this
-     * SiteXMLView.
-	 */
-	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-		if (selection instanceof IStructuredSelection) {
-			Object first = ((IStructuredSelection) selection).getFirstElement();
-			IResource resource = (IResource) first;
-			if (resource instanceof IProject) {
-				activeProject = (IProject) resource;
-				projectName = activeProject.getProject().getName();
-				path = (activeProject.getProject().getLocation()
-						.toString()
-						+ java.io.File.separator
-						+ Utilities.getPathToXDocs()
-						+ java.io.File.separator + "site.xml");
-				document = DOMUtilities.loadDOM(path);
-				treeViewer.setInput(document);
-			}
-		}
-
-	}
-
     private void hookContextMenu() {
 		MenuManager menuMgr = new MenuManager("#PopupMenu");
 		menuMgr.setRemoveAllWhenShown(true);
@@ -256,6 +205,17 @@
 			"Sample View",
 			message);
 	}
+
+
+    /**
+     * Get the name of the file this editor view represents.
+     * This name does not include the path. For example.
+     * 'site.xml' or 'tabs.xml'
+     * @return the name (without pat) of the document to view
+     */
+    protected String getFilename() {
+        return "site.xml";
+    }
 
    
 	

Modified: forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/TabsXMLView.java
URL: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/TabsXMLView.java?rev=219143&r1=219142&r2=219143&view=diff
==============================================================================
--- forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/TabsXMLView.java (original)
+++ forrest/trunk/tools/eclipse/plugins/org.apache.forrest/src/org/apache/forrest/eclipse/views/TabsXMLView.java Thu Jul 14 16:59:09 2005
@@ -20,17 +20,13 @@
 
 import java.util.ArrayList;
 
-import org.apache.forrest.eclipse.actions.Utilities;
 import org.apache.forrest.eclipse.wizards.NewTabElement;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IMenuListener;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITreeContentProvider;
@@ -45,14 +41,10 @@
 import org.eclipse.swt.dnd.Transfer;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.ISelectionListener;
 import org.eclipse.ui.ISharedImages;
 import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
 import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -62,18 +54,11 @@
  * drop from the navigator and supports a number of context 
  * menus for editing. 
  */
-public class TabsXMLView extends ViewPart implements IMenuListener,
-		ISelectionListener {
-	private TreeViewer tree;
-	private Document tabsDocument;
-	private String projectName;
-	private String path;
-	private IStructuredSelection treeSelection;
+public class TabsXMLView extends NavigationView {
 	private Action AddElement;
 	private Action RemoveElement;
 	private Action SaveDocument;
-	
-	protected IProject activeProject;
+    
 	/**
 	 * The constructor.
 	 */
@@ -84,12 +69,12 @@
 	 * it.
 	 */
 	public void createPartControl(Composite parent) {
-		tree = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		getSite().setSelectionProvider(tree);
+		treeViewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+		getSite().setSelectionProvider(treeViewer);
 		int operations = DND.DROP_COPY | DND.DROP_MOVE;
 		Transfer[] types = new Transfer[] { FileTransfer.getInstance()};
 		//tree.addDropSupport(operations, types, new SiteDropListener(projectName ,tabsDocument, tree));
-		tree.setContentProvider(new ITreeContentProvider() {
+		treeViewer.setContentProvider(new ITreeContentProvider() {
 			public Object[] getChildren(Object element) {
 				ArrayList ch = new ArrayList();
 				NodeList nl = ((Node) element).getChildNodes();
@@ -118,7 +103,7 @@
 					Object new_input) {
 			}
 		});
-		tree.setLabelProvider(new LabelProvider() {
+		treeViewer.setLabelProvider(new LabelProvider() {
 			public String getText(Object element) {
 				if (element instanceof Attr)
 					return "@" + ((Attr) element).getNodeName() + " " +((Attr) element).getNodeValue();
@@ -127,7 +112,7 @@
 			}
 		});
 		getViewSite().getPage().addSelectionListener(this);
-		tree.addSelectionChangedListener(new ISelectionChangedListener() {
+		treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
 		public void selectionChanged(SelectionChangedEvent event) {
 					if (event.getSelection() instanceof IStructuredSelection) {
 					IStructuredSelection selection = (IStructuredSelection) event
@@ -138,8 +123,8 @@
 		});
 	
 		//System.out.println(document.toString());
-		if (path != null) { tabsDocument = DOMUtilities.loadDOM(path);}
-		tree.setInput(tabsDocument);
+		if (path != null) { document = DOMUtilities.loadDOM(path);}
+		treeViewer.setInput(document);
 		makeActions();
 		hookContextMenu();
 	}
@@ -154,34 +139,6 @@
 
 	}
 
-	/**
-     * When the selection in the navigator view is changed 
-     * we look to see if the new selection is an IProject.
-     * If it is then we load the tabs.xml file into this
-     * TabsXMLView.
-	 */
-	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-		if (selection instanceof IStructuredSelection) {
-			Object first = ((IStructuredSelection) selection).getFirstElement();
-			IResource resource = (IResource) first;
-			if (resource instanceof IProject) {
-				activeProject = (IProject) resource;
-				projectName = activeProject.getProject().getName();
-				path = (activeProject.getProject().getLocation()
-						.toString()
-						+ java.io.File.separator
-						+ Utilities.getPathToXDocs()
-						+ java.io.File.separator + "tabs.xml");
-				
-				tabsDocument = DOMUtilities.loadDOM(path);
-				tree.setInput(tabsDocument);
-				
-	
-			}
-		}
-
-	}
-
     private void hookContextMenu() {
 		MenuManager menuMgr = new MenuManager("#PopupMenu");
 		menuMgr.setRemoveAllWhenShown(true);
@@ -190,9 +147,9 @@
             TabsXMLView.this.fillContextMenu(manager);
 			}
 		});
-		Menu menu = menuMgr.createContextMenu(tree.getControl());
-		tree.getControl().setMenu(menu);
-		getSite().registerContextMenu(menuMgr, tree);
+		Menu menu = menuMgr.createContextMenu(treeViewer.getControl());
+		treeViewer.getControl().setMenu(menu);
+		getSite().registerContextMenu(menuMgr, treeViewer);
 	}
 
 
@@ -208,11 +165,11 @@
 		AddElement = new Action() {
 			public void run() {
 				if (treeSelection != null) {
-					NewTabElement elementCreation_ = new NewTabElement(treeSelection,tabsDocument);
+					NewTabElement elementCreation_ = new NewTabElement(treeSelection,document);
 					elementCreation_.init(PlatformUI.getWorkbench(), null); // initializes the wizard
-					WizardDialog dialog = new WizardDialog(tree.getControl().getShell(), elementCreation_);
+					WizardDialog dialog = new WizardDialog(treeViewer.getControl().getShell(), elementCreation_);
 					dialog.open();
-				tree.refresh();
+				treeViewer.refresh();
 				}
 			}
 		};
@@ -228,7 +185,7 @@
 					Node deletionElement = (Element) treeSelection.getFirstElement();	
 					Node deletionParent = deletionElement.getParentNode();
 					deletionParent.removeChild(deletionElement);
-					tree.refresh();
+					treeViewer.refresh();
 					
 				}
 			}
@@ -240,7 +197,7 @@
 		
 		SaveDocument = new Action() {
 			public void run() {
-				DOMUtilities.SaveDOM(tabsDocument,path);
+				DOMUtilities.SaveDOM(document,path);
 			}
 		};
 		
@@ -252,11 +209,19 @@
 
 	private void showMessage(String message) {
 		MessageDialog.openInformation(
-			tree.getControl().getShell(),
+			treeViewer.getControl().getShell(),
 			"Sample View",
 			message);
 	}
 
-   
+    /**
+     * Get the name of the file this editor view represents.
+     * This name does not include the path. For example.
+     * 'site.xml' or 'tabs.xml'
+     * @return the name (without pat) of the document to view
+     */
+    protected String getFilename() {
+        return "tabs.xml";
+    }
 	
 }