sysmodelmgr/com.symbian.smt.gui/src/com/symbian/smt/gui/exportwizards/ExportSelectionPage.java
author terytkon
Thu, 11 Mar 2010 19:08:43 +0200
changeset 0 522a326673b6
permissions -rw-r--r--
Moved swconfigapps content under oss repository.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     1
// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     2
// All rights reserved.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     3
// This component and the accompanying materials are made available
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     5
// which accompanies this distribution, and is available
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     7
//
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     8
// Initial Contributors:
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    10
//
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    11
// Contributors:
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    12
//
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    13
// Description:
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    14
//
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    15
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    16
package com.symbian.smt.gui.exportwizards;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    17
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    18
import java.io.File;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    19
import java.io.FileInputStream;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    20
import java.io.FileNotFoundException;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    21
import java.io.FileOutputStream;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    22
import java.io.IOException;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    23
import java.nio.channels.FileChannel;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    24
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    25
import org.eclipse.core.resources.IFile;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    26
import org.eclipse.core.resources.IProject;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    27
import org.eclipse.core.resources.IWorkspace;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    28
import org.eclipse.core.resources.IWorkspaceRoot;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    29
import org.eclipse.core.resources.ProjectScope;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    30
import org.eclipse.core.resources.ResourcesPlugin;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    31
import org.eclipse.core.runtime.CoreException;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    32
import org.eclipse.core.runtime.preferences.IScopeContext;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    33
import org.eclipse.jface.dialogs.MessageDialog;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    34
import org.eclipse.jface.viewers.IStructuredSelection;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    35
import org.eclipse.jface.wizard.WizardPage;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    36
import org.eclipse.swt.SWT;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    37
import org.eclipse.swt.events.ModifyEvent;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    38
import org.eclipse.swt.events.ModifyListener;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    39
import org.eclipse.swt.events.SelectionAdapter;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    40
import org.eclipse.swt.events.SelectionEvent;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    41
import org.eclipse.swt.events.SelectionListener;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    42
import org.eclipse.swt.layout.FillLayout;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    43
import org.eclipse.swt.layout.GridData;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    44
import org.eclipse.swt.layout.GridLayout;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    45
import org.eclipse.swt.widgets.Button;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    46
import org.eclipse.swt.widgets.Composite;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    47
import org.eclipse.swt.widgets.FileDialog;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    48
import org.eclipse.swt.widgets.List;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    49
import org.eclipse.swt.widgets.Text;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    50
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    51
import com.symbian.smt.gui.Activator;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    52
import com.symbian.smt.gui.Logger;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    53
import com.symbian.smt.gui.PersistentDataStore;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    54
import com.symbian.smt.gui.nature.Nature;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    55
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    56
public class ExportSelectionPage extends WizardPage {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    57
	private Text text;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    58
	private List list;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    59
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    60
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    61
	 * @param pageName
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    62
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    63
	protected ExportSelectionPage(IStructuredSelection selection) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    64
		super("wizardPage");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    65
		setTitle("System Model Manager Export Wizard");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    66
		setDescription("Select the project you wish to export the diagram from, select the location to export to and then click finish");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    67
		setPageComplete(false);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    68
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    69
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    70
	private void canFinish() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    71
		if (text.getText().trim().length() > 0
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    72
				&& list.getSelectionIndex() != -1) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    73
			setPageComplete(true);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    74
		} else {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    75
			setPageComplete(false);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    76
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    77
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    78
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    79
	public boolean copyFile() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    80
		IWorkspace workspace = ResourcesPlugin.getWorkspace();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    81
		IWorkspaceRoot workspaceRoot = workspace.getRoot();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    82
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    83
		IProject project = workspaceRoot.getProject(list.getItem(list
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    84
				.getSelectionIndex()));
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    85
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    86
		IScopeContext projectScope = new ProjectScope(project);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    87
		PersistentDataStore store = new PersistentDataStore(projectScope
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    88
				.getNode(Activator.PLUGIN_ID));
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    89
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    90
		IFile projectFile = project.getFile(store.getOutputFilename());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    91
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    92
		File toFile = new File(text.getText());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    93
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    94
		if (toFile.isDirectory()) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    95
			MessageDialog.openError(getShell(), "Error", toFile.toString()
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    96
					+ " is a directory");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    97
			Logger.log(toFile.toString() + " is a directory");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    98
			return false;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    99
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   100
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   101
		if (!projectFile.exists()) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   102
			MessageDialog.openError(getShell(), "Error", "The project "
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   103
					+ list.getItem(list.getSelectionIndex())
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   104
					+ " does not contain a System Model Diagram");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   105
			return false;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   106
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   107
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   108
		if (toFile.exists()) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   109
			if (!MessageDialog.openConfirm(getShell(), "Overwrite?",
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   110
					"Do you wish to overwrite the file " + toFile.toString()
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   111
							+ "?")) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   112
				return false;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   113
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   114
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   115
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   116
		try {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   117
			FileChannel in = new FileInputStream(projectFile.getRawLocation()
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   118
					.toOSString()).getChannel();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   119
			FileChannel out = new FileOutputStream(text.getText()).getChannel();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   120
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   121
			try {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   122
				in.transferTo(0, in.size(), out);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   123
				in.close();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   124
				out.close();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   125
			} catch (IOException e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   126
				MessageDialog.openError(getShell(), "Error", e.getMessage());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   127
				Logger.log(e.getMessage(), e);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   128
				return false;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   129
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   130
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   131
		} catch (FileNotFoundException e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   132
			MessageDialog.openError(getShell(), "Error", e.getMessage());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   133
			Logger.log(e.getMessage(), e);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   134
			return false;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   135
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   136
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   137
		return true;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   138
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   139
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   140
	/*
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   141
	 * (non-Javadoc)
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   142
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   143
	 * @see
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   144
	 * org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   145
	 * .Composite)
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   146
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   147
	public void createControl(Composite parent) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   148
		Composite container = new Composite(parent, SWT.NULL);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   149
		container.setLayout(new FillLayout(SWT.VERTICAL));
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   150
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   151
		setControl(container);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   152
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   153
		final Composite composite = new Composite(container, SWT.NONE);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   154
		final GridLayout gridLayout = new GridLayout();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   155
		gridLayout.numColumns = 2;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   156
		composite.setLayout(gridLayout);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   157
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   158
		list = new List(composite, SWT.BORDER);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   159
		final GridData gd_list = new GridData(SWT.FILL, SWT.FILL, true, true,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   160
				2, 1);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   161
		list.setLayoutData(gd_list);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   162
		list.addSelectionListener(new SelectionListener() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   163
			public void widgetDefaultSelected(SelectionEvent e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   164
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   165
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   166
			public void widgetSelected(SelectionEvent e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   167
				canFinish();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   168
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   169
		});
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   170
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   171
		IWorkspace workspace = ResourcesPlugin.getWorkspace();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   172
		IWorkspaceRoot workspaceRoot = workspace.getRoot();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   173
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   174
		for (IProject project : workspaceRoot.getProjects()) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   175
			if (project.isOpen()) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   176
				try {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   177
					if (project.hasNature(Nature.ID)) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   178
						list.add(project.getName());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   179
					}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   180
				} catch (CoreException e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   181
					Logger.log(e.getMessage(), e);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   182
					MessageDialog
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   183
							.openError(getShell(), "Error", e.getMessage());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   184
				}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   185
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   186
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   187
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   188
		final Button browseButton = new Button(composite, SWT.NONE);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   189
		browseButton.setText("Browse");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   190
		browseButton.addSelectionListener(new SelectionAdapter() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   191
			public void widgetSelected(SelectionEvent e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   192
				// Create and open a file window
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   193
				FileDialog dialog = new FileDialog(getShell(), SWT.SAVE);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   194
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   195
				String[] filterNames = new String[1];
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   196
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   197
				filterNames[0] = "*.svg";
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   198
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   199
				dialog.setFilterExtensions(filterNames);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   200
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   201
				String filename = dialog.open();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   202
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   203
				if (filename != null) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   204
					text.setText(filename);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   205
				}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   206
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   207
		});
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   208
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   209
		text = new Text(composite, SWT.BORDER);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   210
		text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   211
		text.addModifyListener(new ModifyListener() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   212
			public void modifyText(ModifyEvent e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   213
				canFinish();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   214
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   215
		});
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   216
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   217
}