/** * <copyright> Copyright (c) 2008-2009 Jonas Helming, Maximilian Koegel. 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 </copyright> */ package org.eclipse.emf.emfstore.modelgenerator.ui; import java.util.Set; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.emfstore.modelgenerator.common.ModelGeneratorUtil; import org.eclipse.jface.wizard.WizardPage; 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.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; /** * First page of ModelGeneratorWizard. * Shows a table of available ecore models. One model has to be selected to continue. * The selected ecore model is used to generate a random model. * * @author Franziska * */ public class ModelGeneratorWizardPageOne extends WizardPage { private Table table; /** * Constructor. * @param pagename of the wizard page. */ public ModelGeneratorWizardPageOne(String pagename) { super(pagename); setTitle("Model Generator"); setDescription("Choose a ecore model to generate"); } /** * Create controls of the wizard page. * * @param parent swt widget. */ public void createControl(Composite parent) { Composite container = new Composite(parent, SWT.NULL); table = new Table(container, SWT.BORDER | SWT.FULL_SELECTION); table.setBounds(0, 10, 574, 272); table.setHeaderVisible(true); table.setLinesVisible(true); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); table.setLayoutData(data); String[] titles = { "Name", "NsPrefix", "NsUri" }; for (int i = 0; i < titles.length; i++) { TableColumn column = new TableColumn(table, SWT.NONE); column.setText(titles[i]); } initTableItems(table); for (int i = 0; i < titles.length; i++) { table.getColumn(i).pack(); } table.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { TableItem[] selected = table.getSelection(); ModelGeneratorWizard wizard = (ModelGeneratorWizard) getWizard(); for (int i = 0; i < selected.length; i++) { String nsUri = selected[i].getText(2); wizard.setNsUri(nsUri); getWizard().getContainer().updateButtons(); } } public void widgetDefaultSelected(SelectionEvent e) { // TODO Auto-generated method stub } }); setControl(container); setPageComplete(false); } private void initTableItems(Table table) { Set<EPackage> models = ModelGeneratorUtil.getAllRootEPackages(); for (EPackage model : models) { TableItem item = new TableItem(table, SWT.NONE); item.setText(0, model.getName()); item.setText(1, model.getNsPrefix()); item.setText(2, model.getNsURI()); } } /** *{@inheritDoc}. */ public boolean canFlipToNextPage() { if (table.getSelectionCount() > 0) { return true; } return false; } }