///*******************************************************************************
// * Copyright (c) 2003, 2010 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 API and implementation
// *******************************************************************************/
//package org.eclipse.gef.examples.flow.ui;
//
//import java.io.ByteArrayInputStream;
//import java.io.ByteArrayOutputStream;
//import java.io.InputStream;
//import java.io.ObjectOutputStream;
//
//import org.eclipse.core.resources.IFile;
//import org.eclipse.gef.examples.flow.FlowPlugin;
//import org.eclipse.gef.examples.flow.model.Activity;
//import org.eclipse.gef.examples.flow.model.ActivityDiagram;
//import org.eclipse.gef.examples.flow.model.ParallelActivity;
//import org.eclipse.gef.examples.flow.model.SequentialActivity;
//import org.eclipse.gef.examples.flow.model.Transition;
//import org.eclipse.jface.resource.ImageDescriptor;
//import org.eclipse.jface.viewers.IStructuredSelection;
//import org.eclipse.swt.widgets.Composite;
//import org.eclipse.ui.IWorkbench;
//import org.eclipse.ui.IWorkbenchPage;
//import org.eclipse.ui.IWorkbenchWindow;
//import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
//import org.eclipse.ui.ide.IDE;
//
///**
// * FlowWizardPage1
// * 
// * @author Daniel Lee
// */
//public class FlowWizardPage1 extends WizardNewFileCreationPage {
//
//	private IWorkbench workbench;
//	private static int exampleCount = 1;
//
//	public FlowWizardPage1(IWorkbench aWorkbench, IStructuredSelection selection) {
//		super("sampleFlowPage1", selection);
//		this.setTitle("Create Flow Example File");
//		this.setDescription("Create a new flow file resource");
//		this.setImageDescriptor(ImageDescriptor.createFromFile(
//				FlowPlugin.class, "images/flowbanner.gif"));
//		this.workbench = aWorkbench;
//	}
//
//	/**
//	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
//	 */
//	public void createControl(Composite parent) {
//		super.createControl(parent);
//		this.setFileName("flowExample" + exampleCount + ".flow");
//		setPageComplete(validatePage());
//	}
//
//	private ActivityDiagram createWakeupModel() {
//		ActivityDiagram diagram = new ActivityDiagram();
//		SequentialActivity wakeup = new SequentialActivity();
//		Activity backToSleep = new Activity("Go back to sleep");
//		Activity turnOff = new Activity("Turn off alarm");
//		wakeup.setName("Wake up");
//		wakeup.addChild(new Activity("Hit snooze button"));
//		wakeup.addChild(backToSleep);
//		wakeup.addChild(turnOff);
//		wakeup.addChild(new Activity("Get out of bed"));
//		diagram.addChild(wakeup);
//
//		SequentialActivity bathroom = new SequentialActivity();
//		bathroom.addChild(new Activity("Brush teeth"));
//		bathroom.addChild(new Activity("Take shower"));
//		bathroom.addChild(new Activity("Comb hair"));
//		bathroom.setName("Bathroom activities");
//		diagram.addChild(bathroom);
//
//		ParallelActivity relaxation = new ParallelActivity();
//		relaxation.addChild(new Activity("Watch cartoons"));
//		relaxation.addChild(new Activity("Power Yoga"));
//		relaxation.setName("Morning relaxation ritual");
//		diagram.addChild(relaxation);
//
//		Activity sleep, alarm, alarm2, clothes, spare, no, yes, drive;
//		diagram.addChild(sleep = new Activity("Sleep....."));
//		diagram.addChild(alarm = new Activity("Alarm!!!"));
//		diagram.addChild(alarm2 = new Activity("Alarm!!!"));
//		diagram.addChild(clothes = new Activity("Put on clothes"));
//		diagram.addChild(spare = new Activity("Is there time to spare?"));
//		diagram.addChild(yes = new Activity("YES"));
//		diagram.addChild(no = new Activity("NO"));
//		diagram.addChild(drive = new Activity("Drive to work"));
//
//		new Transition(sleep, alarm);
//		new Transition(alarm, wakeup);
//		new Transition(backToSleep, alarm2);
//		new Transition(alarm2, turnOff);
//		new Transition(wakeup, bathroom);
//		new Transition(bathroom, clothes);
//		new Transition(clothes, spare);
//		new Transition(spare, yes);
//		new Transition(spare, no);
//		new Transition(yes, relaxation);
//		new Transition(no, drive);
//		new Transition(relaxation, drive);
//		return diagram;
//	}
//
//	protected InputStream getInitialContents() {
//		ActivityDiagram diag = createWakeupModel();
//		ByteArrayInputStream bais = null;
//		try {
//			ByteArrayOutputStream baos = new ByteArrayOutputStream();
//			ObjectOutputStream oos = new ObjectOutputStream(baos);
//			oos.writeObject(diag);
//			oos.flush();
//			oos.close();
//			baos.close();
//			bais = new ByteArrayInputStream(baos.toByteArray());
//			bais.close();
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//		return bais;
//	}
//
//	public boolean finish() {
//		IFile newFile = createNewFile();
//		if (newFile == null)
//			return false; // ie.- creation was unsuccessful
//
//		// Since the file resource was created fine, open it for editing
//		// iff requested by the user
//		try {
//			IWorkbenchWindow dwindow = workbench.getActiveWorkbenchWindow();
//			IWorkbenchPage page = dwindow.getActivePage();
//			if (page != null)
//				IDE.openEditor(page, newFile, true);
//		} catch (org.eclipse.ui.PartInitException e) {
//			e.printStackTrace();
//			return false;
//		}
//		exampleCount++;
//		return true;
//	}
// }
