blob: f3e1354d73580897ba6617f50058f4f8e2ee0087 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2006 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.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
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.common.ui.internal.guiutils.IntroductionSection;
import org.eclipse.jst.jsf.facesconfig.ui.EditorMessages;
import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
import org.eclipse.jst.jsf.facesconfig.ui.FacesConfigEditor;
import org.eclipse.jst.jsf.facesconfig.ui.preference.GEMPreferences;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.editor.FormPage;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.forms.widgets.TableWrapData;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
/**
* Handle the Introduction page for the pageflow editor.
*
* @author jchoi
*/
public class IntroductionPage extends FormPage implements IFacesConfigPage, ISelectionProvider, IPropertyChangeListener{
private static final String FORM_BANNER_IMAGE_FILE = "form_banner.gif"; //$NON-NLS-1$
private Button noIntroPageButton = null;
/**
* @param facesConfigEditor
*/
public IntroductionPage(FacesConfigEditor facesConfigEditor) {
super(facesConfigEditor, IntroductionPage.class.getName(),
EditorMessages.editor_pageflow_page_intro_name);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.forms.editor.FormPage#createFormContent(org.eclipse.ui.forms.IManagedForm)
*/
protected void createFormContent(IManagedForm managedForm) {
// get the form
ScrolledForm form = managedForm.getForm();
FormToolkit toolkit = getEditor().getToolkit();
form.setText(EditorMessages.editor_pageflow_page_intro_title);
form.setBackgroundImage(EditorPlugin.getDefault().getImage(FORM_BANNER_IMAGE_FILE));
// create a layout
TableWrapLayout layout = new TableWrapLayout();
layout.numColumns = 1;
layout.makeColumnsEqualWidth = true;
layout.verticalSpacing = 20;
form.getBody().setLayout(layout);
IntroductionSection introPart = new IntroductionSection(
FacesConfigEditor.EDITOR_ID, managedForm, toolkit,
EditorMessages.editor_pageflow_page_intro_help_HelpContextID,
EditorMessages.editor_pageflow_page_intro_help_HelpToolTip);
noIntroPageButton = toolkit.createButton(form.getBody(), EditorMessages.editor_pageflow_page_intro_NoIntroPage, SWT.CHECK);
noIntroPageButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
boolean selection = ((Button) e.widget).getSelection();
EditorPlugin.getDefault().getPreferenceStore().setValue(GEMPreferences.SHOW_INTRO_EDITOR, !selection);
}
});
TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB);
td.colspan = 1;
introPart.setLayoutData(td);
getSite().setSelectionProvider(this);
IPreferenceStore preferenceStore = EditorPlugin.getDefault().getPreferenceStore();
preferenceStore.addPropertyChangeListener(this);
updatePrefenceControls(preferenceStore);
}
public void addSelectionChangedListener(ISelectionChangedListener listener) {
// TODO Auto-generated method stub
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.forms.editor.IFormPage#isEditor()
*/
public boolean isEditor() {
return true;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
*/
public ISelection getSelection() {
return StructuredSelection.EMPTY;
}
public void removeSelectionChangedListener(ISelectionChangedListener listener) {
// TODO Auto-generated method stub
}
public void setSelection(ISelection selection) {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.facesconfig.ui.page.IFacesConfigPage#getInput()
*/
public Object getInput() {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.facesconfig.ui.page.IFacesConfigPage#refresh()
*/
public void refresh() {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.facesconfig.ui.page.IFacesConfigPage#setInput(java.lang.Object)
*/
public void setInput(Object input) {
// TODO Auto-generated method stub
}
public void propertyChange(PropertyChangeEvent event) {
if (event != null) {
String property = event.getProperty();
if (property == null || property.equals(GEMPreferences.SHOW_INTRO_EDITOR)) {
//assume that we are in an ui thread, as other listeners assume this too:
updatePrefenceControls(EditorPlugin.getDefault().getPreferenceStore());
}
}
}
private void updatePrefenceControls(IPreferenceStore preferenceStore) {
boolean noIntroPage = !GEMPreferences.getShowIntroEditor();
noIntroPageButton.setSelection(noIntroPage);
}
public void dispose() {
EditorPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(this);
super.dispose();
}
}