/******************************************************************************* * 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.page; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType; import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin; import org.eclipse.jst.jsf.facesconfig.ui.FacesConfigEditor; import org.eclipse.jst.jsf.facesconfig.ui.EditorMessages; import org.eclipse.jst.jsf.facesconfig.ui.section.OverviewComponentsSection; import org.eclipse.jst.jsf.facesconfig.ui.section.OverviewGeneralSection; import org.eclipse.jst.jsf.facesconfig.ui.section.OverviewManagedBeanSection; import org.eclipse.jst.jsf.facesconfig.ui.section.OverviewNavigationSection; import org.eclipse.jst.jsf.facesconfig.ui.section.OverviewOthersSection; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.editor.FormPage; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; /** * @author jchoi, Xiao-guang Zhang * @version */ public class OverviewPage extends FormPage implements ISelectionProvider, IFacesConfigPage { /** * The id of this page in the faces-config editor. */ public static final String PAGE_ID = "org.eclipse.jst.jsf.facesconfig.ui.page.OverviewPage"; //$NON-NLS-1$ private static final int LAYOUT_MARGIN_HEIGHT = 2; private static final int LAYOUT_MARGIN_WIDTH = 2; private Object input; private OverviewGeneralSection generalSection; private OverviewManagedBeanSection beanSection; private OverviewComponentsSection componentsSection; // private OverviewNavigationSection navigationSection; // private OverviewOthersSection otherSection; /** * * @param editor */ public OverviewPage(FormEditor editor) { super(editor, "OverviewPage", EditorMessages.OverviewPage_page_name); //$NON-NLS-1$ } /* * (non-Javadoc) * * @see org.eclipse.ui.forms.editor.FormPage#createFormContent(org.eclipse.ui.forms.IManagedForm) */ protected void createFormContent(IManagedForm managedForm) { ScrolledForm form = managedForm.getForm(); form.setText(EditorMessages.OverviewPage_PageflowOverview_summary); form.setBackgroundImage(EditorPlugin.getDefault().getImage( "form_banner.gif")); //$NON-NLS-1$ Composite body = form.getBody(); GridLayout gridLayout = new GridLayout(); gridLayout.marginWidth = LAYOUT_MARGIN_WIDTH; gridLayout.marginHeight = LAYOUT_MARGIN_HEIGHT; body.setLayout(gridLayout); gridLayout = new GridLayout(2, true); form.getBody().setLayout(gridLayout); FormEditor editor = getEditor(); FormToolkit toolkit = editor.getToolkit(); // add overview general information generalSection = new OverviewGeneralSection(managedForm.getForm() .getBody(), managedForm, this, toolkit); generalSection.initialize(); GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 2; generalSection.getSection().setLayoutData(gd); // Navigation section navigationSection = new OverviewNavigationSection(managedForm.getForm() .getBody(), managedForm, this, toolkit); navigationSection.initialize(); gd = new GridData(GridData.FILL_BOTH); navigationSection.getSection().setLayoutData(gd); navigationSection.getSection().setExpanded(true); // ManagedBeans section beanSection = new OverviewManagedBeanSection(managedForm.getForm() .getBody(), managedForm, this, toolkit); beanSection.initialize(); gd = new GridData(GridData.FILL_BOTH); beanSection.getSection().setLayoutData(gd); beanSection.getSection().setExpanded(true); /* components section */ componentsSection = new OverviewComponentsSection(managedForm.getForm() .getBody(), managedForm, this, toolkit); componentsSection.initialize(); gd = new GridData(GridData.FILL_BOTH); componentsSection.getSection().setLayoutData(gd); componentsSection.getSection().setExpanded(true); /* other sections */ otherSection = new OverviewOthersSection(managedForm.getForm() .getBody(), managedForm, this, toolkit); otherSection.initialize(); gd = new GridData(GridData.FILL_BOTH); otherSection.getSection().setLayoutData(gd); otherSection.getSection().setExpanded(true); this.getSite().setSelectionProvider(this); } /** * set input for this page when the it got activated at the first time; if * it's not the first time, then refresh the page. * * @see org.eclipse.ui.forms.editor.FormPage#setActive(boolean) */ public void setActive(boolean active) { super.setActive(active); if (active) { if (getInput() != ((FacesConfigEditor) getEditor()) .getFacesConfig()) { setInput(((FacesConfigEditor) getEditor()).getFacesConfig()); } else { this.refresh(); } } } /** * */ public void setInput(Object input) { if (input instanceof FacesConfigType) { this.input = input; navigationSection.setInput(input); beanSection.setInput(input); componentsSection.setInput(input); otherSection.setInput(input); } } /** * Call refreshAll on all sections on this page */ public void refreshAll() { generalSection.refreshAll(); navigationSection.refreshAll(); beanSection.refreshAll(); componentsSection.refreshAll(); otherSection.refreshAll(); } public Object getInput() { return input; } public void refresh() { generalSection.refresh(); navigationSection.refresh(); beanSection.refresh(); componentsSection.refresh(); otherSection.refresh(); } /* * (non-Javadoc) * * @see org.eclipse.ui.forms.editor.IFormPage#isEditor() */ public boolean isEditor() { return true; } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) */ public void addSelectionChangedListener(ISelectionChangedListener listener) { // do not support change in selection } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection() */ public ISelection getSelection() { return StructuredSelection.EMPTY; } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) */ public void removeSelectionChangedListener( ISelectionChangedListener listener) { // do not support change in selection } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection) */ public void setSelection(ISelection selection) { // do not support change in selection } public void dispose() { beanSection.dispose(); componentsSection.dispose(); generalSection.dispose(); navigationSection.dispose(); otherSection.dispose(); super.dispose(); } }