blob: aeef57fbe9dea6b97b63dd503a44f420b3b391f7 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM 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:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.authoring.ui.editors;
import org.eclipse.epf.authoring.ui.AuthoringUIImages;
import org.eclipse.epf.authoring.ui.AuthoringUIResources;
import org.eclipse.epf.authoring.ui.views.ElementHTMLViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.custom.ViewForm;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
/**
* The Preview page in the Method Editor.
*
* @author Shilpa Toraskar
* @author Kelvin Low
* @since 1.0
*/
public class PreviewPage {
private ElementHTMLViewer previewer = null;
/**
* Create an instance
*
* @param composite
*/
public PreviewPage(Composite composite) {
// Use the ViewForm control to give it the Eclipse Workbench window
// look & feel.
ViewForm viewForm = new ViewForm(composite, SWT.DEFAULT);
viewForm.marginHeight = 0;
viewForm.marginWidth = 0;
viewForm.setLayout(new GridLayout());
viewForm.setLayoutData(new GridData(GridData.FILL_BOTH));
// Set toolbar
Control toolbar = createToolbar(viewForm);
viewForm.setTopRight(toolbar);
// Set content
Control content = createContent(viewForm);
viewForm.setContent(content);
}
/**
* Create preview content
*
* @param parent
* @return
*/
private Control createContent(ViewForm parent) {
Composite content = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
layout.horizontalSpacing = 0;
layout.verticalSpacing = 0;
content.setLayout(layout);
GridData gridData = new GridData(GridData.FILL_BOTH);
content.setLayoutData(gridData);
previewer = new ElementHTMLViewer(content);
return (Control) content;
}
/**
* Return ElementViewer
*
* @return
* Viewer
*/
public ElementHTMLViewer getPreviewViewer() {
return previewer;
}
/**
* Create Toolbar It has Go back, Go forward, Stop and refresh buttons
*
* @param ViewForm
* parent
* @return Toolbar
*/
private ToolBar createToolbar(ViewForm parent) {
// Create the browser navigation toolbar.
ToolBar toolbar = new ToolBar(parent, SWT.FLAT);
// Add the Back button.
ToolItem backButton = new ToolItem(toolbar, SWT.NONE);
backButton.setImage(AuthoringUIImages.IMG_BACK);
backButton.setToolTipText(AuthoringUIResources.backButton_text);
backButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
Browser browser = previewer.getBrowser();
if (browser != null) {
browser.back();
}
};
});
// Add the Foward button.
ToolItem forwardButton = new ToolItem(toolbar, SWT.NONE);
forwardButton.setImage(AuthoringUIImages.IMG_FORWARD);
forwardButton.setToolTipText(AuthoringUIResources.forwardButton_text);
forwardButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
Browser browser = previewer.getBrowser();
if (browser != null) {
browser.forward();
}
};
});
// Add the Stop button.
ToolItem stopButton = new ToolItem(toolbar, SWT.NONE);
stopButton.setImage(AuthoringUIImages.IMG_STOP);
stopButton.setToolTipText(AuthoringUIResources.stopButton_text);
stopButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
Browser browser = previewer.getBrowser();
if (browser != null) {
browser.stop();
}
};
});
// Add the Refresh button.
ToolItem refreshButton = new ToolItem(toolbar, SWT.NONE);
refreshButton.setImage(AuthoringUIImages.IMG_REFRESH);
refreshButton.setToolTipText(AuthoringUIResources.refreshButton_text);
refreshButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
// Browser browser = previewer.getBrowser();
// if (browser != null) {
// browser.refresh();
// }
previewer.refresh();
};
});
// Add the Print button.
ToolItem printButton = new ToolItem(toolbar, SWT.NONE);
printButton.setImage(AuthoringUIImages.IMG_PRINT);
printButton.setToolTipText(AuthoringUIResources.printButton_text);
printButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
previewer.print();
};
});
return toolbar;
}
}