/**
* This file is protected by Copyright.
* Please refer to the COPYRIGHT file distributed with this source distribution.
*
* This file is part of REDHAWK IDE.
*
* 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.
*
*/
package gov.redhawk.prf.ui.editor.page;
import gov.redhawk.common.ui.doc.HelpConstants;
import gov.redhawk.prf.internal.ui.editor.PropertiesBlock;
import gov.redhawk.ui.editor.SCAFormEditor;
import gov.redhawk.ui.editor.ScaFormPage;
import mil.jpeojtrs.sca.prf.Range;
import org.eclipse.emf.common.ui.viewer.IViewerProvider;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.menus.IMenuService;
/**
* This class is the form page that allows graphical editing of properties in a PRF file.
*/
public class PropertiesFormPage extends ScaFormPage implements IViewerProvider {
/** The Constant PAGE_ID. */
public static final String PAGE_ID = "properties"; //$NON-NLS-1$
/**
* The toolbar contribution ID
* @since 2.0
*/
public static final String TOOLBAR_ID = "gov.redhawk.prf.ui.editor.page.toolbar";
private final PropertiesBlock fBlock;
/**
* Instantiates a new properties form page.
*
* @param editor the editor
* @param propertiesResource the properties resource
*/
public PropertiesFormPage(final SCAFormEditor editor) {
super(editor, PropertiesFormPage.PAGE_ID, "Properties");
this.fBlock = new PropertiesBlock(this);
}
@Override
protected String getHelpResource() {
return HelpConstants.reference_editors_prf_propertiesPage;
}
@Override
protected void createFormContent(final IManagedForm managedForm) {
final ScrolledForm form = managedForm.getForm();
form.setText("Properties");
// TODO
// form.setImage(PDEPlugin.getDefault().getLabelProvider().get(PDEPluginImages.DESC_EXTENSIONS_OBJ));
this.fBlock.createContent(managedForm);
PlatformUI.getWorkbench().getHelpSystem().setHelp(form.getBody(), HelpConstants.reference_editors_prf_propertiesPage);
super.createFormContent(managedForm);
final ToolBarManager manager = (ToolBarManager) form.getToolBarManager();
final IMenuService service = (IMenuService) getSite().getService(IMenuService.class);
service.populateContributionManager(manager, "toolbar:" + PropertiesFormPage.TOOLBAR_ID);
manager.update(true);
}
@Override
public Viewer getViewer() {
return this.fBlock.getSection().getStructuredViewerPart().getViewer();
}
@Override
protected void refresh(final Resource resource) {
this.fBlock.refresh(resource);
}
@Override
public boolean selectReveal(final Object object) {
if (object instanceof Range) {
return super.selectReveal(((Range) object).eContainer());
}
return super.selectReveal(object);
}
}