blob: 407d96ffb25bf3aa410d67ff0f6913b6e5e87120 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 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 API and implementation
*******************************************************************************/
package org.eclipse.ui.examples.views.properties.tabbed.logic;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.IStructuredSelection;
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;
import org.eclipse.gef.examples.logicdesigner.model.LogicDiagram;
import org.eclipse.gef.examples.logicdesigner.model.LogicDiagramFactory;
public class LogicWizardPage1
extends WizardNewFileCreationPage
implements SelectionListener {
private IWorkbench workbench;
private static int exampleCount = 1;
private Button model1 = null;
private Button model2 = null;
private int modelSelected = 1;
public LogicWizardPage1(IWorkbench aWorkbench,
IStructuredSelection selection) {
super("sampleLogicPage1", selection); //$NON-NLS-1$
this.setTitle("Tabbed Properties View Logic Example");//$NON-NLS-1$
this
.setDescription("Create a new Tabbed Properties View Logic Example file");//$NON-NLS-1$
this.setImageDescriptor(ImageDescriptor.createFromFile(getClass(),
"icons/logicbanner.gif")); //$NON-NLS-1$
this.workbench = aWorkbench;
}
public void createControl(Composite parent) {
super.createControl(parent);
this
.setFileName("emptyModel" + exampleCount + ".tabbedpropertieslogic"); //$NON-NLS-2$//$NON-NLS-1$
Composite composite = (Composite) getControl();
// sample section generation group
Group group = new Group(composite, SWT.NONE);
group.setLayout(new GridLayout());
group.setText("Logic Model Samples"); //$NON-NLS-1$
group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
| GridData.HORIZONTAL_ALIGN_FILL));
// sample section generation checkboxes
model1 = new Button(group, SWT.RADIO);
model1.setText("E&mpty Model");//$NON-NLS-1$
model1.addSelectionListener(this);
model1.setSelection(true);
model2 = new Button(group, SWT.RADIO);
model2.setText("F&our-bit Adder Model");//$NON-NLS-1$
model2.addSelectionListener(this);
new Label(composite, SWT.NONE);
setPageComplete(validatePage());
}
protected InputStream getInitialContents() {
LogicDiagram ld = new LogicDiagram();
if (modelSelected == 2)
ld = (LogicDiagram) LogicDiagramFactory.createLargeModel();
ByteArrayInputStream bais = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(ld);
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;
}
/**
* @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent)
*/
public void widgetSelected(SelectionEvent e) {
if (e.getSource() == model1) {
modelSelected = 1;
setFileName("emptyModel" + exampleCount + ".tabbedpropertieslogic"); //$NON-NLS-2$//$NON-NLS-1$
} else {
modelSelected = 2;
setFileName("fourBitAdder" + exampleCount + ".tabbedpropertieslogic"); //$NON-NLS-2$//$NON-NLS-1$
}
}
/**
* Empty method
*/
public void widgetDefaultSelected(SelectionEvent e) {
//
}
}