woproject/projects/wolips/plugins/org.objectstyle.wolips.componenteditor/java/org/objectstyle/wolips/componenteditor/outline ComponentEditorOutline.java,NONE,1.1 EmptyOutlinePage.java,NONE,1.1
[email protected] Wed, 1 Mar 2006 08:45:09 -0800 (PST)
| Newsgroups | gmane.comp.web.webobjects.woproject.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/woproject/woproject/projects/wolips/plugins/org.objectstyle.wolips.componenteditor/java/org/objectstyle/wolips/componenteditor/outline In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23335/java/org/objectstyle/wolips/componenteditor/outline Added Files: ComponentEditorOutline.java EmptyOutlinePage.java Log Message: itexteditor stuff --- NEW FILE: ComponentEditorOutline.java --- /* * ==================================================================== * * The ObjectStyle Group Software License, Version 1.0 * * Copyright (c) 2005 The ObjectStyle Group and individual authors of the * software. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: 1. * Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. 2. Redistributions in * binary form must reproduce the above copyright notice, this list of * conditions and the following disclaimer in the documentation and/or other * materials provided with the distribution. 3. The end-user documentation * included with the redistribution, if any, must include the following * acknowlegement: "This product includes software developed by the ObjectStyle * Group (http://objectstyle.org/)." Alternately, this acknowlegement may * appear in the software itself, if and wherever such third-party * acknowlegements normally appear. 4. The names "ObjectStyle Group" and * "Cayenne" must not be used to endorse or promote products derived from this * software without prior written permission. For written permission, please * contact [email protected]. 5. Products derived from this software may * not be called "ObjectStyle" nor may "ObjectStyle" appear in their names * without prior written permission of the ObjectStyle Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * OBJECTSTYLE GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many individuals * on behalf of the ObjectStyle Group. For more information on the ObjectStyle * Group, please see <http://objectstyle.org/> . * */ package org.objectstyle.wolips.componenteditor.outline; import java.util.ArrayList; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IStatusLineManager; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.IActionBars; import org.eclipse.ui.part.Page; import org.eclipse.ui.part.PageBook; import org.eclipse.ui.views.contentoutline.IContentOutlinePage; /** * @author uli */ public class ComponentEditorOutline extends Page implements IContentOutlinePage, ISelectionProvider, ISelectionChangedListener { private PageBook pagebook; private IContentOutlinePage currentPage; private IContentOutlinePage emptyPage; private IActionBars actionBars; private IMenuManager menuManager; private IToolBarManager toolBarManager; private IStatusLineManager statusLineManager; private ISelection selection; private ArrayList listeners; public ComponentEditorOutline() { super(); listeners = new ArrayList(); } public void createControl(Composite parent) { pagebook = new PageBook(parent, SWT.NONE); } public void dispose() { if (pagebook != null && !pagebook.isDisposed()) pagebook.dispose(); pagebook = null; listeners = null; } public boolean isDisposed() { return listeners == null; } public Control getControl() { return pagebook; } public PageBook getPagebook() { return pagebook; } public void addSelectionChangedListener(ISelectionChangedListener listener) { listeners.add(listener); } public ISelection getSelection() { return selection; } public void removeSelectionChangedListener( ISelectionChangedListener listener) { listeners.remove(listener); } public void selectionChanged(SelectionChangedEvent event) { setSelection(event.getSelection()); } public void setSelection(ISelection selection) { this.selection = selection; if (listeners == null) return; SelectionChangedEvent e = new SelectionChangedEvent(this, selection); for (int i = 0; i < listeners.size(); i++) { ((ISelectionChangedListener) listeners.get(i)).selectionChanged(e); } } public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) { this.menuManager = menuManager; this.toolBarManager = toolBarManager; this.statusLineManager = statusLineManager; } public void setActionBars(IActionBars actionBars) { this.actionBars = actionBars; if (currentPage != null) setPageActive(currentPage); } public IActionBars getActionBars() { return actionBars; } public void setFocus() { if (currentPage != null) currentPage.setFocus(); } private IContentOutlinePage getEmptyPage() { if (emptyPage == null) emptyPage = new EmptyOutlinePage(); return emptyPage; } public void setPageActive(IContentOutlinePage page) { if (page == null) { page = getEmptyPage(); } if (currentPage != null) { currentPage.removeSelectionChangedListener(this); } page.addSelectionChangedListener(this); this.currentPage = page; if (pagebook == null) { // still not being made return; } Control control = page.getControl(); if (control == null || control.isDisposed()) { if (page instanceof Page) { ((Page) page).init(this.getSite()); } page.setActionBars(getActionBars()); page.createControl(pagebook); control = page.getControl(); if (page instanceof Page) { ((Page) page).makeContributions(menuManager, toolBarManager, statusLineManager); } } pagebook.showPage(control); this.currentPage = page; } } --- NEW FILE: EmptyOutlinePage.java --- /* * ==================================================================== * * The ObjectStyle Group Software License, Version 1.0 * * Copyright (c) 2005 The ObjectStyle Group and individual authors of the * software. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: 1. * Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. 2. Redistributions in * binary form must reproduce the above copyright notice, this list of * conditions and the following disclaimer in the documentation and/or other * materials provided with the distribution. 3. The end-user documentation * included with the redistribution, if any, must include the following * acknowlegement: "This product includes software developed by the ObjectStyle * Group (http://objectstyle.org/)." Alternately, this acknowlegement may * appear in the software itself, if and wherever such third-party * acknowlegements normally appear. 4. The names "ObjectStyle Group" and * "Cayenne" must not be used to endorse or promote products derived from this * software without prior written permission. For written permission, please * contact [email protected]. 5. Products derived from this software may * not be called "ObjectStyle" nor may "ObjectStyle" appear in their names * without prior written permission of the ObjectStyle Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * OBJECTSTYLE GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many individuals * on behalf of the ObjectStyle Group. For more information on the ObjectStyle * Group, please see <http://objectstyle.org/> . * */ package org.objectstyle.wolips.componenteditor.outline; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.IActionBars; import org.eclipse.ui.views.contentoutline.IContentOutlinePage; /** * @author uli */ public class EmptyOutlinePage implements IContentOutlinePage { private Composite control; public EmptyOutlinePage() { super(); } public void createControl(Composite parent) { control = new Composite(parent, SWT.NULL); } public void dispose() { control = null; } public Control getControl() { return control; } public void setActionBars(IActionBars actionBars) { return; } public void setFocus() { return; } public void addSelectionChangedListener(ISelectionChangedListener listener) { return; } public ISelection getSelection() { return new ISelection() { public boolean isEmpty() { return true; } }; } public void removeSelectionChangedListener( ISelectionChangedListener listener) { return; } public void setSelection(ISelection selection) { return; } } ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642