/******************************************************************************* * Copyright (c) 2014, 2015 Cisco Systems, Inc. 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 * *******************************************************************************/ package com.cisco.yangide.ui.wizards; import org.eclipse.jface.dialogs.IMessageProvider; import org.eclipse.jface.dialogs.TitleAreaDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; /** * @author Konstantin Zaitsev * @date Jun 27, 2014 */ public class YangCodeGeneratorDialog extends TitleAreaDialog { private Text groupIdTxt; private Text artifactIdTxt; private Text versionTxt; private Text genClassNameTxt; private Text genOutputDirectoryTxt; private CodeGeneratorConfig config; public YangCodeGeneratorDialog(Shell shell) { this(shell, new CodeGeneratorConfig()); } public YangCodeGeneratorDialog(Shell shell, CodeGeneratorConfig config) { super(shell); this.config = config; } @Override protected void configureShell(Shell newShell) { super.configureShell(newShell); newShell.setText("Code Generator Configuration"); } @Override public void create() { super.create(); setTitle("Code Generator Configuration"); setMessage("Specify Maven parameters for code generator configuration", IMessageProvider.INFORMATION); } @Override protected Control createDialogArea(Composite parent) { Composite area = (Composite) super.createDialogArea(parent); Composite container = new Composite(area, SWT.NONE); container.setLayoutData(new GridData(GridData.FILL_BOTH)); GridLayout layout = new GridLayout(2, false); container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); container.setLayout(layout); groupIdTxt = createTextInput(container, "Maven Group ID:", config.getGroupId()); artifactIdTxt = createTextInput(container, "Maven Artifact ID:", config.getArtifactId()); versionTxt = createTextInput(container, "Maven Artifact Version:", config.getVersion()); genClassNameTxt = createTextInput(container, "Generator Class Name:", config.getGenClassName()); genOutputDirectoryTxt = createTextInput(container, "Generator Output Directory:", config.getGenOutputDirectory()); return area; } @Override protected void okPressed() { config.setGroupId(groupIdTxt.getText()); config.setArtifactId(artifactIdTxt.getText()); config.setVersion(versionTxt.getText()); config.setGenClassName(genClassNameTxt.getText()); config.setGenOutputDirectory(genOutputDirectoryTxt.getText()); super.okPressed(); } @Override protected boolean isResizable() { return true; } private Text createTextInput(Composite parent, String label, String defValue) { new Label(parent, SWT.NONE).setText(label); Text text = new Text(parent, SWT.BORDER); text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); text.setText(defValue != null ? defValue : ""); return text; } /** * @return the config */ public CodeGeneratorConfig getConfig() { return config; } }