/*******************************************************************************
* Copyright (c) 2012 Pivotal Software, Inc.
* 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:
* Pivotal Software, Inc. - initial API and implementation
*******************************************************************************/
package com.vmware.vfabric.ide.eclipse.tcserver.insight.internal.ui;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.forms.ManagedForm;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.wst.server.ui.editor.ServerEditorPart;
import org.eclipse.wst.server.ui.internal.ImageResource;
/**
* @author Steffen Pingel
*/
public class InsightEditorPage extends ServerEditorPart implements IEditorPart {
private ManagedForm managedForm;
private final List<IInsightPageParticipant> participants;
public InsightEditorPage() {
participants = new ArrayList<IInsightPageParticipant>();
}
public void addPageParticipant(IInsightPageParticipant participant) {
participants.add(participant);
}
@Override
public void createPartControl(Composite parent) {
managedForm = new ManagedForm(parent);
setManagedForm(managedForm);
ScrolledForm form = managedForm.getForm();
FormToolkit toolkit = managedForm.getToolkit();
toolkit.decorateFormHeading(form.getForm());
form.setText("Spring Insight");
form.setImage(ImageResource.getImage(ImageResource.IMG_SERVER));
form.getBody().setLayout(new GridLayout());
Composite columnComp = toolkit.createComposite(form.getBody());
GridLayout layout = new GridLayout();
layout.numColumns = 1;
layout.verticalSpacing = 0;
layout.horizontalSpacing = 10;
columnComp.setLayout(layout);
columnComp.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
// left column
Composite leftColumnComp = toolkit.createComposite(columnComp);
layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.verticalSpacing = 10;
layout.horizontalSpacing = 0;
leftColumnComp.setLayout(layout);
leftColumnComp.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
insertSections(leftColumnComp, "com.springsource.sts.server.insight.ui.left");
// right column
// Composite rightColumnComp = toolkit.createComposite(columnComp);
// layout = new GridLayout();
// layout.marginHeight = 0;
// layout.marginWidth = 0;
// layout.verticalSpacing = 10;
// layout.horizontalSpacing = 0;
// rightColumnComp.setLayout(layout);
// rightColumnComp.setLayoutData(new GridData(GridData.FILL,
// GridData.FILL, true, true));
//
// insertSections(rightColumnComp,
// "com.springsource.sts.server.insight.ui.right");
}
@Override
public void doSave(IProgressMonitor monitor) {
super.doSave(monitor);
for (IInsightPageParticipant participant : participants) {
participant.doSave(monitor);
}
}
public void removePageParticipant(IInsightPageParticipant participant) {
participants.remove(participant);
}
@Override
public void setFocus() {
// ignore
}
}