blob: 5a08231105a6bc76fa2a7395f8fb5e74f8c2a78f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008, 2012 Code 9 Corporation 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:
* Code 9 Corporation - initial API and implementation
* Ketan Padegaonkar <KetanPadegaonkar@gmail.com> - bug 241912
* Tomasz Zarna <tomasz.zarna@tasktop.com> - bug 299298
* Arnaud Mergey - <a_mergey@yahoo.fr>
*******************************************************************************/
package org.eclipse.pde.internal.runtime.spy.sections;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.osgi.util.NLS;
import org.eclipse.pde.internal.runtime.PDERuntimeMessages;
import org.eclipse.pde.internal.runtime.spy.SpyFormToolkit;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.editor.IFormPage;
import org.eclipse.ui.forms.widgets.*;
import org.eclipse.ui.handlers.HandlerUtil;
public class ActiveFormEditorSection implements ISpySection {
@Override
public void build( ScrolledForm form, SpyFormToolkit toolkit, ExecutionEvent event ) {
final IWorkbenchPart part = HandlerUtil.getActivePart( event );
if( !( part instanceof FormEditor ) )
return;
FormEditor multiEditor = ( FormEditor )part;
Shell shell = HandlerUtil.getActiveShell( event );
Object object = shell.getData();
if( object == null )
return;
IFormPage activePage = multiEditor.getActivePageInstance();
if( activePage == null )
return;
Section section = toolkit.createSection( form.getBody(), ExpandableComposite.TITLE_BAR );
section.setText( PDERuntimeMessages.get().ActiveFormEditorSection_Active_Form_Page );
FormText text = toolkit.createFormText( section, true );
section.setClient( text );
TableWrapData td = new TableWrapData();
td.align = TableWrapData.FILL;
td.grabHorizontal = true;
section.setLayoutData( td );
StringBuffer buffer = new StringBuffer();
buffer.append( "<form>" ); //$NON-NLS-1$
buffer.append( toolkit
.createClassSection( text,
NLS.bind( PDERuntimeMessages.get().SpyDialog_activePart_desc,
"editor tab" ), //$NON-NLS-1$
new Class[] {
activePage.getClass()
} ) );
buffer.append( "</form>" ); //$NON-NLS-1$
text.setText( buffer.toString(), true, false );
text.layout();
}
}