/** * Copyright 2011 Steve Good [steve@stevegood.org] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.muratools.eclipse.wizard.newInstall; import org.eclipse.jface.viewers.ISelection; 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.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.FileDialog; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.layout.GridData; /** * @author Steve * */ public class InstallMuraPage extends WizardPage { Text fileField; Button[] radios = new Button[2]; Label lblZipFile; Button btnBrowse; protected InstallMuraPage(ISelection selection){ super("New Mura CMS Install"); setTitle("New Mura CMS Install"); setDescription("Deploy a new Mura CMS install"); } /* (non-Javadoc) * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite) */ public void createControl(Composite parent) { Composite composite = new Composite(parent, SWT.NULL); GridLayout layout = new GridLayout(); layout.numColumns = 3; composite.setLayout(layout); layout.verticalSpacing = 9; Button btnDownload = new Button(composite, SWT.RADIO); btnDownload.setSelection(true); btnDownload.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1)); btnDownload.setText("Download latest release version"); btnDownload.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { lblZipFile.setEnabled(false); fileField.setEnabled(false); btnBrowse.setEnabled(false); } public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); } }); radios[0] = btnDownload; new Label(composite, SWT.NONE); Button btnUseAPreviously = new Button(composite, SWT.RADIO); btnUseAPreviously.setText("Use a previously downloaded zip file"); btnUseAPreviously.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1)); btnUseAPreviously.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { lblZipFile.setEnabled(true); fileField.setEnabled(true); btnBrowse.setEnabled(true); } public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); } }); radios[1] = btnUseAPreviously; new Label(composite, SWT.NONE); lblZipFile = new Label(composite, SWT.NONE); lblZipFile.setEnabled(false); lblZipFile.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblZipFile.setText("ZIP File"); fileField = new Text(composite, SWT.BORDER); fileField.setEnabled(false); fileField.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); btnBrowse = new Button(composite, SWT.NONE); btnBrowse.setEnabled(false); btnBrowse.setText("Browse..."); btnBrowse.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { handleBrowse(); } public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); } }); setControl(composite); } public void handleBrowse(){ FileDialog dialog = new FileDialog(getShell()); String[] filters = {"*.zip"}; dialog.setFilterExtensions(filters); fileField.setText(dialog.open()); } }