001: package org.openwfe.gpe.pde;
002:
003: import java.io.ByteArrayInputStream;
004: import java.io.ByteArrayOutputStream;
005: import java.io.InputStream;
006: import java.io.ObjectOutputStream;
007:
008: import org.eclipse.swt.widgets.Composite;
009: import org.eclipse.swt.widgets.FileDialog;
010:
011: import org.eclipse.core.resources.IFile;
012: import org.eclipse.jface.resource.ImageDescriptor;
013: import org.eclipse.jface.viewers.IStructuredSelection;
014: import org.eclipse.ui.IWorkbench;
015: import org.eclipse.ui.IWorkbenchPage;
016: import org.eclipse.ui.IWorkbenchWindow;
017: import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
018: import org.eclipse.ui.ide.IDE;
019:
020: import org.openwfe.gpe.FlowPlugin;
021: import org.openwfe.gpe.model.ActivityDiagram;
022: import org.openwfe.gpe.xml.XMLImport;
023:
024: /**
025: * FlowWizardPage2
026: * @author helena
027: */
028: public class FlowWizardPage2 extends WizardNewFileCreationPage {
029:
030: private IWorkbench workbench;
031: private static int exampleCount = 1;
032: ActivityDiagram diagram = new ActivityDiagram();
033: private IWorkbenchWindow window;
034:
035: public FlowWizardPage2(IWorkbench aWorkbench,
036: IStructuredSelection selection, IWorkbenchWindow window) {
037: super ("Import OpenWFE XML", selection);
038: this .setTitle("Create a OpenWFE File");
039: this .setDescription("Create a new flow file resource");
040: this .setImageDescriptor(ImageDescriptor.createFromFile(
041: FlowPlugin.class, "openwfe-logo16.gif"));
042: this .workbench = aWorkbench;
043: this .window = window;
044: }
045:
046: /**
047: * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
048: */
049: public void createControl(Composite parent) {
050: super .createControl(parent);
051: this .setFileName("OpenWFE_" + exampleCount + ".owfe");
052: Composite composite = (Composite) getControl();
053: setPageComplete(validatePage());
054: }
055:
056: private ActivityDiagram createWakeupModel() {
057: IWorkbenchWindow dwindow = workbench.getActiveWorkbenchWindow();
058: FileDialog page = new FileDialog(dwindow.getShell());
059: String[] extensions = new String[] { new String(".xml") };
060: String path = page.open();
061: XMLImport im = new XMLImport();
062: ActivityDiagram diagram = im.createDocument(path);
063: return diagram;
064: }
065:
066: protected InputStream getInitialContents() {
067: ActivityDiagram diag = createWakeupModel();
068: ByteArrayInputStream bais = null;
069: try {
070: ByteArrayOutputStream baos = new ByteArrayOutputStream();
071: ObjectOutputStream oos = new ObjectOutputStream(baos);
072: oos.writeObject(diag);
073: oos.flush();
074: oos.close();
075: baos.close();
076: bais = new ByteArrayInputStream(baos.toByteArray());
077: bais.close();
078: } catch (Exception e) {
079: e.printStackTrace();
080: }
081: return bais;
082: }
083:
084: public boolean finish() {
085: IFile newFile = createNewFile();
086: if (newFile == null)
087: return false; // ie.- creation was unsuccessful
088:
089: // Since the file resource was created fine, open it for editing
090: // iff requested by the user
091: try {
092: IWorkbenchWindow dwindow = workbench
093: .getActiveWorkbenchWindow();
094: IWorkbenchPage page = dwindow.getActivePage();
095: if (page != null)
096: IDE.openEditor(page, newFile, true);
097: } catch (org.eclipse.ui.PartInitException e) {
098: e.printStackTrace();
099: return false;
100: }
101: exampleCount++;
102: return true;
103: }
104:
105: }
|