diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSection.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSection.java | 379 |
1 files changed, 0 insertions, 379 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSection.java deleted file mode 100644 index 85884e39d..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSection.java +++ /dev/null @@ -1,379 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 Sybase, Inc. and others. - * - * 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: - * Sybase, Inc. - initial API and implementation - *******************************************************************************/ - -package org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.part.MultiPageEditorPart; -import org.eclipse.ui.part.PageBook; -import org.eclipse.ui.views.properties.IPropertySheetPage; -import org.eclipse.ui.views.properties.PropertySheetPage; -import org.eclipse.ui.views.properties.tabbed.ISection; -import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants; -import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage; -import org.eclipse.wst.sse.ui.StructuredTextEditor; - -/** - * This class defines the general tab for pageflow attributes. This class - * defines the controls shown in this sectin and their event handler. For - * MultiPageEditorPart, if it support getAdapter(IEditorPart.class) to get the - * current active editor, then, this section can get the different - * PropertySheetPage for different sub EditorPart. - * - * @author Xiao-guang Zhang - */ -public class GeneralViewSection implements ISection, - ISelectionChangedListener { - /** the pagebook */ - private PageBook pageBook = null; - - /** - * A data structure used to store the information about a single page within - * a MultiPageEditorPart - */ - protected static class PageRec { - - /** - * The part including editorpart, or Control - */ - public IWorkbenchPart part; - - /** - * The page. - */ - public IPropertySheetPage page; - - /** - * Creates a new page record initialized to the given part and page. - * - * @param part - * @param page - */ - public PageRec(IWorkbenchPart part, IPropertySheetPage page) { - this.part = part; - this.page = page; - } - - /** - * Disposes of this page record by <code>null</code>ing its fields. - */ - public void dispose() { - part = null; - page = null; - } - } - - /** - * Map from parts to part records (key type: <code>IWorkbenchPart</code>; - * value type: <code>PartRec</code>). - */ - private Map mapPartToRec = new HashMap(); - - /** - * The page record for the default page. - */ - private PageRec defaultPageRec; - - /** - * The page rec which provided the current page or <code>null</code> - */ - private PageRec activeRec; - - /* - * (non-Javadoc) - * - * @see com.createControls(Composite, TabbedPropertySheetPage) - */ - public void createControls(Composite parent, - TabbedPropertySheetPage tabbedPropertySheetPage) { - FillLayout layout = new FillLayout(); - layout.marginWidth = ITabbedPropertyConstants.HSPACE; - layout.marginHeight = ITabbedPropertyConstants.VSPACE; - - // composite.setLayout(layout); - parent.setLayout(layout); - // pagebook - pageBook = new PageBook(parent, SWT.BORDER); - - // create a default property page. - createDefaultPage(); - - // Show the default page - if (defaultPageRec != null) { - showPageRec(defaultPageRec); - } - } - - /** - * Shows page contained in the given page record in this view. The page - * record must be one from this pagebook view. - * <p> - * The <code>PageBookView</code> implementation of this method asks the - * pagebook control to show the given page's control, and records that the - * given page is now current. Subclasses may extend. - * </p> - * - * @param pageRec - * the page record containing the page to show - */ - protected void showPageRec(PageRec pageRec) { - // If already showing do nothing - if (activeRec == pageRec) { - return; - } - // If the page is the same, just set activeRec to pageRec - if (activeRec != null && pageRec != null - && activeRec.page == pageRec.page) { - activeRec = pageRec; - return; - } - - // Show new page. - activeRec = pageRec; - Control pageControl = activeRec.page.getControl(); - if (pageControl != null && !pageControl.isDisposed()) { - // Verify that the page control is not disposed - // If we are closing, it may have already been disposed - pageBook.showPage(pageControl); - } - } - - /** - * Creates a page for a given part. Adds it to the pagebook but does not - * show it. - * - * @param part - * The part we are making a page for. - * @return IWorkbenchPart - */ - private PageRec createPage(IWorkbenchPart part) { - PageRec rec = doCreatePage(part); - if (rec != null) { - mapPartToRec.put(part, rec); - } - return rec; - } - - /* - * (non-Javadoc) Method declared on PageBookView. - */ - /** - * @param part - * @return PageRec for part - */ - protected PageRec doCreatePage(IWorkbenchPart part) { - // FIXME: Because the PropertySheetPage of StructuredTextEditor has a - // bug: - // the editor can't be opened twice if the property view is shown. - // This bug only exists in WTP 1.0.0 version. - if (part instanceof StructuredTextEditor) { - return null; - } - // Try to get an property page. - Object obj = part.getAdapter(IPropertySheetPage.class); - if (obj instanceof IPropertySheetPage) { - IPropertySheetPage page = (IPropertySheetPage) obj; - - page.createControl(getPageBook()); - - return new PageRec(part, page); - } - // There is no content property page - return null; - } - - private void createDefaultPage() { - // Create the default PropertySheetPage rec. - IPropertySheetPage defaultPage = new PropertySheetPage(); - defaultPage.createControl(getPageBook()); - - defaultPageRec = new PageRec(null, defaultPage); - } - - /** - * Returns the pagebook control for this view. - * - * @return the pagebook control, or <code>null</code> if not initialized - */ - protected PageBook getPageBook() { - return pageBook; - } - - /** - * Returns the page record for the given part. - * - * @param part - * the part - * @return the corresponding page record, or <code>null</code> if not - * found - */ - protected PageRec getPageRec(Object part) { - return (PageRec) mapPartToRec.get(part); - } - - /* - * (non-Javadoc) - * - * @see ISection#setInput(IWorkbenchPart, ISelection) - */ - public void setInput(IWorkbenchPart part, ISelection selection) { - if (part instanceof MultiPageEditorPart) { - IEditorPart subPage = (IEditorPart) part - .getAdapter(IEditorPart.class); - if (subPage != null) { - // get or Create a PropertySheetPage for the part. - PageRec rec = getPageRec(subPage); - if (rec == null) { - rec = createPage(subPage); - } - - // Show the page. - if (rec != null) { - showPageRec(rec); - } else { - showPageRec(defaultPageRec); - } - } - } - activeRec.page.selectionChanged(part, selection); - } - - /* - * (non-Javadoc) - * - * @see ISection#aboutToBeShown() - */ - public void aboutToBeShown() { - refresh(); - } - - /* - * (non-Javadoc) - * - * @see ISection#aboutToBeHidden() - */ - public void aboutToBeHidden() { - // do nothing - } - - /* - * (non-Javadoc) - * - * @see ISection#dispose() - */ - public void dispose() { - // Deref all of the pages. - activeRec = null; - if (defaultPageRec != null) { - // check for null since the default page may not have - // been created (ex. perspective never visible) - defaultPageRec.page.dispose(); - defaultPageRec = null; - } - Map clone = (Map) ((HashMap) mapPartToRec).clone(); - Iterator iter = clone.values().iterator(); - while (iter.hasNext()) { - PageRec rec = (PageRec) iter.next(); - removePage(rec); - } - } - - /** - * Removes a page record. If it is the last reference to the page dispose of - * it - otherwise just decrement the reference count. - * - * @param rec - */ - private void removePage(PageRec rec) { - mapPartToRec.remove(rec.part); - - Control control = rec.page.getControl(); - if (control != null && !control.isDisposed()) { - // Dispose the page's control so pages don't have to do this in - // their - // dispose method. - // The page's control is a child of this view's control so if this - // view - // is closed, the page's control will already be disposed. - control.dispose(); - } - - // free the page - doDestroyPage(rec.part, rec); - } - - /** - * Destroys a page in the pagebook for a particular part. - * - * @param part - * the input part - * @param rec - * a page record for the part - */ - protected void doDestroyPage(IWorkbenchPart part, PageRec rec) { - IPropertySheetPage page = rec.page; - page.dispose(); - rec.dispose(); - } - - /* - * (non-Javadoc) - * - * @see ISection#getMinimumHeight() - */ - public int getMinimumHeight() { - return SWT.DEFAULT; - } - - /* - * (non-Javadoc) - * - * @see com.ibm.xtools.common.ui.properties.ISection#shouldUseExtraSpace() - */ - public boolean shouldUseExtraSpace() { - /** - * here should return true, otherwise, the component controls will not - * fill the whole panel of the tab. - */ - return true; - } - - /* - * (non-Javadoc) - * - * @see com.ibm.xtools.common.ui.properties.ISection#refresh() - */ - public void refresh() { - return; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent) - */ - public void selectionChanged(SelectionChangedEvent event) { - setInput((IWorkbenchPart) event.getSource(), event.getSelection()); - } -} |