blob: 4af6e033428a12b8a5fefe52c33702cfe3e0436f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2011 EclipseSource 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:
* Holger Staudacher - initial API and implementation
*******************************************************************************/
package org.eclipse.libra.warproducts.ui.editor;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.libra.warproducts.core.IWARProduct;
import org.eclipse.libra.warproducts.ui.Messages;
import org.eclipse.libra.warproducts.ui.WARProductConstants;
import org.eclipse.libra.warproducts.ui.validation.IValidationListener;
import org.eclipse.libra.warproducts.ui.validation.WARProductValidateAction;
import org.eclipse.pde.internal.core.iproduct.IProductModel;
import org.eclipse.pde.internal.ui.*;
import org.eclipse.pde.internal.ui.editor.*;
import org.eclipse.pde.internal.ui.editor.product.ProductLauncherFormPageHelper;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.*;
import org.eclipse.ui.help.IWorkbenchHelpSystem;
public class OverviewPage extends LaunchShortcutOverviewPage {
public static final String PAGE_ID = "overview"; //$NON-NLS-1$
private ProductLauncherFormPageHelper launcherHelper;
public OverviewPage( final PDELauncherFormEditor editor ) {
super( editor, PAGE_ID, PDEUIMessages.OverviewPage_title );
}
protected String getHelpResource() {
return WARProductConstants.HELP_CONTEXT_OVERVIEW_PAGE;
}
protected void createFormContent( final IManagedForm managedForm ) {
super.createFormContent( managedForm );
ScrolledForm form = managedForm.getForm();
FormToolkit toolkit = managedForm.getToolkit();
form.setText( PDEUIMessages.OverviewPage_title );
PDELabelProvider labelProvider = PDEPlugin.getDefault().getLabelProvider();
ImageDescriptor description = PDEPluginImages.DESC_PRODUCT_DEFINITION;
form.setImage( labelProvider.get( description ) );
fillBody( managedForm, toolkit );
IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
String contextId = WARProductConstants.HELP_CONTEXT_OVERVIEW_PAGE;
helpSystem.setHelp( form.getBody(), contextId );
}
private void fillBody( final IManagedForm managedForm,
final FormToolkit toolkit )
{
Composite body = managedForm.getForm().getBody();
body.setLayout( FormLayoutFactory.createFormTableWrapLayout( true, 2 ) );
GeneralInfoSection generalSection = new GeneralInfoSection( this, body );
managedForm.addPart( generalSection );
if( getModel().isEditable() ) {
createExportingSection( body, toolkit );
}
}
private void createExportingSection( final Composite parent,
final FormToolkit toolkit )
{
String title = PDEUIMessages.OverviewPage_exportingTitle;
Section section = createStaticSection( toolkit, parent, title );
String text = Messages.EditorExportSection;
section.setClient( createClient( section, text, toolkit ) );
}
public void linkActivated( final HyperlinkEvent linkEvent ) {
String href = ( String )linkEvent.getHref();
if( href.equals( "action.export" ) ) { //$NON-NLS-1$
if( getPDEEditor().isDirty() ) {
getPDEEditor().doSave( null );
}
new WARProductExportAction( getPDEEditor() ).run();
} else if( href.equals( "action.configuration" ) ) { //$NON-NLS-1$
String pageId = ConfigurationPage.PLUGIN_ID;
getEditor().setActivePage( pageId );
} else if( href.equals( "action.validate" ) ) { //$NON-NLS-1$
IProductModel model= ( IProductModel )getPDEEditor().getAggregateModel();
WARProductValidateAction validationAction
= new WARProductValidateAction( ( IWARProduct )model.getProduct() );
IValidationListener listener = ( IValidationListener )getPDEEditor();
validationAction.addValidationListener( listener );
validationAction.run();
} else {
super.linkActivated( linkEvent );
}
}
protected ILauncherFormPageHelper getLauncherHelper() {
if( launcherHelper == null ) {
launcherHelper
= new ProductLauncherFormPageHelper( getPDELauncherEditor() );
}
return launcherHelper;
}
protected short getIndent() {
return 35;
}
}