blob: 3b8e093ddff5fdc1a3f59e3f5cf5566ec6687626 [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.publishing.ui.wizards;
import java.io.File;
import org.eclipse.epf.authoring.gef.viewer.ActivityDiagramService;
import org.eclipse.epf.authoring.ui.AuthoringUIPlugin;
import org.eclipse.epf.diagram.ui.service.DiagramImageService;
import org.eclipse.epf.library.layout.ElementLayoutManager;
import org.eclipse.epf.publishing.services.AbstractViewBuilder;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.swt.SWT;
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.Shell;
/**
* The publish configuration progress dialog.
*
* @author Jinhua Xi
* @author Kelvin Low
* @since 1.0
*/
public class PublishProgressMonitorDialog extends ProgressMonitorDialog {
private Composite diagramViewerHolder;
private AbstractViewBuilder viewBuilder;
/**
* Creates a new instance.
*/
public PublishProgressMonitorDialog(Shell parent,
AbstractViewBuilder viewBuilder) {
super(parent);
this.viewBuilder = viewBuilder;
}
protected Control createDialogArea(Composite parent) {
Control ctrl = super.createDialogArea(parent);
if (viewBuilder != null) {
// Create the diagram viewer holder and the diagram service.
diagramViewerHolder = new Composite(parent, SWT.NONE);
diagramViewerHolder.setLayoutData(new GridData(1, 1));
diagramViewerHolder.setLayout(new GridLayout());
diagramViewerHolder.setVisible(false);
ElementLayoutManager layoutMgr = viewBuilder.getLayoutMgr();
String newDiagrams = AuthoringUIPlugin.getDefault().getPreferenceStore().getString("PUBLISH_NEW_DIAGRAM"); //$NON-NLS-1$
Boolean newDiagram = new Boolean(true);
if(newDiagrams != null && newDiagrams.length() > 0){
newDiagram = new Boolean(newDiagrams);
}
if (newDiagram.booleanValue()) {
DiagramImageService diagramService = new DiagramImageService(
diagramViewerHolder,
new File(layoutMgr.getPublishDir()));
diagramService.setConfig(layoutMgr.getConfiguration());
diagramService.setPublishedUnCreatedADD(viewBuilder
.getOptions().isPublishUnopenADD());
diagramService.setPublishADForActivityExtension(viewBuilder
.getOptions().isPublishBaseAD());
layoutMgr.setActivityDiagramService(diagramService);
} else {
ActivityDiagramService diagramService = new ActivityDiagramService(
diagramViewerHolder,
new File(layoutMgr.getPublishDir()));
diagramService.setPublishedUnCreatedADD(viewBuilder
.getOptions().isPublishUnopenADD());
diagramService.setPublishADForActivityExtension(viewBuilder
.getOptions().isPublishBaseAD());
layoutMgr.setActivityDiagramService(diagramService);
}
}
return ctrl;
}
/*
* (non-Javadoc) Method declared on Window.
*/
public boolean close() {
viewBuilder = null;
return super.close();
}
}