/******************************************************************************* * Copyright (c) 2011-2012 Obeo. * 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: * Obeo - initial API and implementation *******************************************************************************/ package org.obeonetwork.dsl.togaf.ui.wizards.newmodel; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.StringTokenizer; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.obeonetwork.dsl.togaf.ui.SessionCreationOperation; /** * The model initialization wizard page. * * @author ymortier */ // CHECKSTYLE:OFF public class TogafModelWizardInitModelPage extends WizardPage { /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ protected Combo initialObjectField; /** * @generated <!-- begin-user-doc --> <!-- end-user-doc --> */ protected List<String> encodings; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ protected Combo encodingField; /** * Pass in the selection. <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public TogafModelWizardInitModelPage(String pageId) { super(pageId); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public void createControl(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); { GridLayout layout = new GridLayout(); layout.numColumns = 1; layout.verticalSpacing = 12; composite.setLayout(layout); GridData data = new GridData(); data.verticalAlignment = GridData.FILL; data.grabExcessVerticalSpace = true; data.horizontalAlignment = GridData.FILL; composite.setLayoutData(data); } Label containerLabel = new Label(composite, SWT.LEFT); { containerLabel .setText(Messages.TogafModelWizardInitModelPage_ContainerLabel); GridData data = new GridData(); data.horizontalAlignment = GridData.FILL; containerLabel.setLayoutData(data); } initialObjectField = new Combo(composite, SWT.BORDER); { GridData data = new GridData(); data.horizontalAlignment = GridData.FILL; data.grabExcessHorizontalSpace = true; initialObjectField.setLayoutData(data); } for (String objectName : getInitialObjectNames()) { initialObjectField.add(objectName); } initialObjectField.select(0); initialObjectField.addModifyListener(validator); Label encodingLabel = new Label(composite, SWT.LEFT); { encodingLabel .setText(Messages.TogafModelWizardInitModelPage_XmlEncodingLabel); GridData data = new GridData(); data.horizontalAlignment = GridData.FILL; encodingLabel.setLayoutData(data); } encodingField = new Combo(composite, SWT.BORDER); { GridData data = new GridData(); data.horizontalAlignment = GridData.FILL; data.grabExcessHorizontalSpace = true; encodingField.setLayoutData(data); } for (String encoding : getEncodings()) { encodingField.add(encoding); } encodingField.select(0); encodingField.addModifyListener(validator); setPageComplete(validatePage()); setControl(composite); } private List<String> getInitialObjectNames() { List<String> names = new ArrayList<String>(); names.add(SessionCreationOperation.ENTERPRISE_ARCHITECTURE_OBJECT); return names; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ protected ModifyListener validator = new ModifyListener() { public void modifyText(ModifyEvent e) { setPageComplete(validatePage()); } }; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ protected boolean validatePage() { return getInitialObjectName() != null && getEncodings().contains(encodingField.getText()); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ @Override public void setVisible(boolean visible) { super.setVisible(visible); if (visible) { if (initialObjectField.getItemCount() == 1) { initialObjectField.clearSelection(); encodingField.setFocus(); } else { encodingField.clearSelection(); initialObjectField.setFocus(); } } } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public String getEncoding() { return encodingField.getText(); } public String getInitialObjectName() { return initialObjectField.getText(); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ protected Collection<String> getEncodings() { if (encodings == null) { encodings = new ArrayList<String>(); for (StringTokenizer stringTokenizer = new StringTokenizer( Messages.TogafModelWizardInitModelPage_XmlEncodings); stringTokenizer .hasMoreTokens();) { encodings.add(stringTokenizer.nextToken()); } } return encodings; } }