sysmodelmgr/com.symbian.smt.gui/src/com/symbian/smt/gui/smtwidgets/AdvancedOptionsWidget.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
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    17
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    18
package com.symbian.smt.gui.smtwidgets;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    19
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    20
import java.util.ArrayList;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    21
import java.util.Iterator;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    22
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    23
import org.eclipse.jface.viewers.ILabelProvider;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    24
import org.eclipse.jface.viewers.ILabelProviderListener;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    25
import org.eclipse.jface.viewers.IStructuredContentProvider;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    26
import org.eclipse.jface.viewers.IStructuredSelection;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    27
import org.eclipse.jface.viewers.ListViewer;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    28
import org.eclipse.jface.viewers.StructuredSelection;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    29
import org.eclipse.jface.viewers.Viewer;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    30
import org.eclipse.jface.window.Window;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    31
import org.eclipse.swt.SWT;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    32
import org.eclipse.swt.events.SelectionAdapter;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    33
import org.eclipse.swt.events.SelectionEvent;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    34
import org.eclipse.swt.graphics.Image;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    35
import org.eclipse.swt.layout.FillLayout;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    36
import org.eclipse.swt.layout.GridData;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    37
import org.eclipse.swt.layout.GridLayout;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    38
import org.eclipse.swt.layout.RowData;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    39
import org.eclipse.swt.layout.RowLayout;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    40
import org.eclipse.swt.widgets.Button;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    41
import org.eclipse.swt.widgets.Composite;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    42
import org.eclipse.swt.widgets.Label;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    43
import org.eclipse.swt.widgets.List;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    44
import org.eclipse.ui.actions.SelectionProviderAction;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    45
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    46
import com.symbian.smt.gui.Helper;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    47
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    48
/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    49
 * This widget contains all the functionality to handle assignment of generic
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    50
 * command line parameters.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    51
 * <p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    52
 * It allows to add, remove and edit command line options, as well as changing
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    53
 * their order.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    54
 * </p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    55
 * NB: This class is in need of refactoring using the common classes that are 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    56
 * also being utilised in the ResourcesWidget class.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    57
 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    58
 * @author barbararosi-schwartz
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    59
 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    60
public class AdvancedOptionsWidget extends Composite {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    61
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    62
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    63
	 * This is the parent of all actions that act on the command line options
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    64
	 * from the list of assigned options.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    65
	 * <p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    66
	 * It caches the Button that is the presentation proxy for the action and
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    67
	 * manages the enabled state of the Button to be consistent with its own
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    68
	 * enablement state.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    69
	 * </p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    70
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    71
	 * @author barbararosi-schwartz
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    72
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    73
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    74
	private abstract class AbstractOptionAction extends SelectionProviderAction {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    75
		protected Button actionProxy;
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
		 * The constructor sets the text on the Button that is the visual proxy
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    79
		 * of this action and caches the button for later usage.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    80
		 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    81
		 * @param text
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    82
		 *            the text that represents both the name of the action and
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    83
		 *            the label on the corresponding Button
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    84
		 * @param button
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    85
		 *            the Button that acts as the visual proxy of this action.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    86
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    87
		private AbstractOptionAction(String text, Button button) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    88
			super(viewer, text);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    89
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    90
			this.actionProxy = button;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    91
			actionProxy.setText(text);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    92
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    93
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    94
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    95
		 * The default implementation of this method does nothing.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    96
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    97
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    98
		public void dispose() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    99
			super.dispose();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   100
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   101
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   102
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   103
		 * The default implementation of this method does nothing.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   104
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   105
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   106
		public void run() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   107
			super.run();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   108
		};
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   109
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   110
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   111
		 * The default implementation of this method does nothing.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   112
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   113
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   114
		public void selectionChanged(IStructuredSelection selection) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   115
			super.selectionChanged(selection);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   116
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   117
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   118
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   119
		 * Sets the enablement state of the proxy Button to be the same as the
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   120
		 * enablement state of the action, the latter being managed by a call to
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   121
		 * super.setEnabled().
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   122
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   123
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   124
		public final void setEnabled(boolean enabled) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   125
			actionProxy.setEnabled(enabled);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   126
			super.setEnabled(enabled);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   127
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   128
	}
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
	 * This is the action that adds a new command line option to the list of
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   132
	 * assigned options.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   133
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   134
	 * @author barbararosi-schwartz
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
	private class AddOptionAction extends AbstractOptionAction {
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
		 * The option that has been entered by the user or null if the user
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   141
		 * cancelled the operation.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   142
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   143
		private String newOption = null;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   144
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   145
		private AddOptionAction(Button button) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   146
			super("Add...", button);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   147
			setEnabled(true);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   148
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   149
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   150
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   151
		 * Returns the option that was entered by the user.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   152
		 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   153
		 * @return the option that was entered by the user (or null if the user
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   154
		 *         cancelled the operation)
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   155
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   156
		String getNewOption() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   157
			return newOption;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   158
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   159
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   160
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   161
		 * Creates and displays an InputDialogWithWarning that collects the new
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   162
		 * option entered by the user. The dialog is equipped with a
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   163
		 * DialogInputValidator object that automatically performs validation on
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   164
		 * the user's input.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   165
		 * <p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   166
		 * When the dialog is dismissed, the action changes the model to reflect
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   167
		 * the new addition.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   168
		 * </p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   169
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   170
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   171
		public void run() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   172
			InputDialogWithWarning dialog = new InputDialogWithWarning(viewer
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   173
					.getControl().getShell(), "Add Option",
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   174
					"Please enter the required command-line option", "",
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   175
					new DialogInputValidator());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   176
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   177
			int result = dialog.open();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   178
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   179
			if (result == Window.CANCEL) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   180
				newOption = null;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   181
				return;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   182
			} else {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   183
				newOption = dialog.getValue().trim();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   184
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   185
				java.util.List<String> model = Helper
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   186
						.toListOfStrings((String[]) viewer.getInput());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   187
				model.add(newOption);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   188
				setAdvancedOptions(Helper.toArrayOfStrings(model));
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   189
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   190
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   191
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   192
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   193
		 * This action is always enabled.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   194
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   195
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   196
		public void selectionChanged(IStructuredSelection selection) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   197
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   198
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   199
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   200
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   201
	 * This is the content provider for the list of assigned command line
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   202
	 * options.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   203
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   204
	 * @author barbararosi-schwartz
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   205
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   206
	private class AdvancedOptionsContentProvider implements
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   207
			IStructuredContentProvider {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   208
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   209
		public void dispose() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   210
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   211
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   212
		/* (non-Javadoc)
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   213
		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   214
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   215
		public Object[] getElements(Object inputElement) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   216
			if (! (inputElement instanceof String[])) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   217
				throw new IllegalArgumentException("Argument is not of type String[].");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   218
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   219
			
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   220
			String[] items = (String[]) inputElement;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   221
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   222
			return items;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   223
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   224
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   225
		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   226
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   227
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   228
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   229
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   230
	 * This is the label provider for the list of assigned command line options.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   231
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   232
	 * @author barbararosi-schwartz
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   233
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   234
	private class AdvancedOptionsLabelProvider implements ILabelProvider {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   235
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   236
		public void addListener(ILabelProviderListener listener) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   237
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   238
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   239
		public void dispose() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   240
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   241
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   242
		public Image getImage(Object element) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   243
			return null;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   244
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   245
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   246
		public String getText(Object element) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   247
			return element.toString();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   248
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   249
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   250
		public boolean isLabelProperty(Object element, String property) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   251
			return false;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   252
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   253
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   254
		public void removeListener(ILabelProviderListener listener) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   255
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   256
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   257
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   258
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   259
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   260
	 * This is the validator that is utilised by the InputDialogWithWarning
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   261
	 * presented by the AddOptionAction.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   262
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   263
	 * @author barbararosi-schwartz
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   264
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   265
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   266
	private class DialogInputValidator implements IInputValidatorWithWarning {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   267
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   268
		private java.util.List<String> listElements = new ArrayList<String>();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   269
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   270
		private DialogInputValidator() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   271
			listElements = Helper.toListOfStrings((String[]) viewer.getInput());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   272
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   273
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   274
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   275
		 * User input is invalid if:
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   276
		 * <ol>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   277
		 * <li>input is not empty</li>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   278
		 * <li>input is already present in the list</li>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   279
		 * </ol>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   280
		 *
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   281
		 * @see org.eclipse.jface.dialogs.IInputValidator#isValid(java.lang.String)
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   282
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   283
		public String isValid(String newText) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   284
			if (newText.trim().length() == 0) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   285
				return "";
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   286
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   287
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   288
			if (listElements.contains(newText.trim())) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   289
				return "Option [" + newText + "] is already in the list.";
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   290
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   291
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   292
			return null;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   293
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   294
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   295
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   296
		 * User input generates a warning if it is one of the options contained
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   297
		 * in the dangerousOptions list.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   298
		 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   299
		 * @see com.symbian.smt.gui.smtwidgets.IInputValidatorWithWarning#isWarning(java.lang.String)
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   300
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   301
		public String isWarning(String newText) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   302
			if (dangerousOptions.contains(newText)) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   303
				return "Warning: option [" + newText
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   304
						+ "] may cause the model build process to fail.";
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   305
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   306
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   307
			return null;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   308
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   309
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   310
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   311
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   312
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   313
	 * This is the action that edits a command line option that already exists
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   314
	 * in the list of assigned options.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   315
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   316
	 * @author barbararosi-schwartz
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   317
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   318
	private class EditOptionAction extends AbstractOptionAction {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   319
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   320
		private EditOptionAction(Button button) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   321
			super("Edit...", button);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   322
			setEnabled(false);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   323
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   324
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   325
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   326
		 * Creates and displays an InputDialogWithWarning, initialised with the
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   327
		 * currently selected option. The dialog is equipped with a
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   328
		 * DialogInputValidator object that automatically performs validation on
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   329
		 * the user's input.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   330
		 * <p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   331
		 * When the dialog is dismissed, the action changes the model to reflect
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   332
		 * the option modification.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   333
		 * </p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   334
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   335
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   336
		public void run() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   337
			String initialValue = (String) ((StructuredSelection) getSelection())
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   338
					.getFirstElement();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   339
			InputDialogWithWarning dialog = new InputDialogWithWarning(viewer
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   340
					.getControl().getShell(), "Add Option",
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   341
					"Please enter the required command-line option",
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   342
					initialValue, new DialogInputValidator());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   343
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   344
			int result = dialog.open();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   345
			String editedOption = null;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   346
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   347
			if (result == Window.CANCEL) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   348
				return;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   349
			} else {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   350
				editedOption = dialog.getValue().trim();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   351
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   352
				java.util.List<String> model = Helper
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   353
						.toListOfStrings((String[]) viewer.getInput());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   354
				int index = model.indexOf(initialValue);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   355
				model.set(index, editedOption);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   356
				setAdvancedOptions(Helper.toArrayOfStrings(model));
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   357
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   358
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   359
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   360
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   361
		 * Enabled if we have exactly one selection in the list.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   362
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   363
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   364
		public void selectionChanged(IStructuredSelection selection) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   365
			if (selection.size() != 1) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   366
				setEnabled(false);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   367
				return;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   368
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   369
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   370
			setEnabled(true);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   371
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   372
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   373
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   374
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   375
	 * This is the action that moves a command line option down by one position
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   376
	 * in the list of assigned options.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   377
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   378
	 * @author barbararosi-schwartz
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   379
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   380
	private class MoveOptionDownAction extends AbstractOptionAction {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   381
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   382
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   383
		 * The option that has been moved by the user
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   384
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   385
		private String movedOption = null;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   386
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   387
		private MoveOptionDownAction(Button button) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   388
			super("Move Down", button);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   389
			setEnabled(false);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   390
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   391
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   392
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   393
		 * Returns the option that was moved by the user.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   394
		 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   395
		 * @return the option that was moved by the user
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   396
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   397
		String getMovedOption() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   398
			return movedOption;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   399
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   400
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   401
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   402
		 * Moves the selected option down by one position in the model.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   403
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   404
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   405
		public void run() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   406
			movedOption = (String) ((StructuredSelection) getSelection())
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   407
					.getFirstElement();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   408
			java.util.List<String> model = Helper
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   409
					.toListOfStrings((String[]) viewer.getInput());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   410
			int oldIndex = model.indexOf(movedOption);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   411
			model.remove(oldIndex);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   412
			int newIndex = oldIndex + 1;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   413
			model.add(newIndex, movedOption);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   414
			setAdvancedOptions(Helper.toArrayOfStrings(model));
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   415
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   416
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   417
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   418
		 * Enabled if the list has exactly one selection and if the selection is
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   419
		 * not the last element in the list.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   420
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   421
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   422
		public void selectionChanged(IStructuredSelection selection) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   423
			if (selection.size() != 1) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   424
				setEnabled(false);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   425
				return;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   426
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   427
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   428
			boolean enabled = true;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   429
			String selectedElement = (String) selection.getFirstElement();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   430
			String lastElement = (String) viewer.getElementAt(viewer.getList()
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   431
					.getItemCount() - 1);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   432
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   433
			if (lastElement != null && selectedElement.equals(lastElement)) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   434
				enabled = false;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   435
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   436
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   437
			setEnabled(enabled);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   438
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   439
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   440
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   441
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   442
	 * This is the action that moves a command line option up by one position in
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   443
	 * the list of assigned options.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   444
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   445
	 * @author barbararosi-schwartz
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   446
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   447
	private class MoveOptionUpAction extends AbstractOptionAction {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   448
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   449
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   450
		 * The option that has been moved by the user
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   451
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   452
		private String movedOption = null;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   453
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   454
		private MoveOptionUpAction(Button button) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   455
			super("Move Up", button);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   456
			setEnabled(false);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   457
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   458
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   459
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   460
		 * Returns the option that was moved by the user.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   461
		 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   462
		 * @return the option that was moved by the user
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   463
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   464
		String getMovedOption() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   465
			return movedOption;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   466
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   467
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   468
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   469
		 * Moves the selected option down by one position in the model.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   470
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   471
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   472
		public void run() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   473
			movedOption = (String) ((StructuredSelection) getSelection())
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   474
					.getFirstElement();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   475
			java.util.List<String> model = Helper
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   476
					.toListOfStrings((String[]) viewer.getInput());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   477
			int oldIndex = model.indexOf(movedOption);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   478
			model.remove(oldIndex);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   479
			int newIndex = oldIndex - 1;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   480
			model.add(newIndex, movedOption);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   481
			setAdvancedOptions(Helper.toArrayOfStrings(model));
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   482
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   483
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   484
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   485
		 * Enabled if the list has exactly one selection and if the selection is
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   486
		 * not the first element in the list.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   487
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   488
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   489
		public void selectionChanged(IStructuredSelection selection) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   490
			if (selection.size() != 1) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   491
				setEnabled(false);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   492
				return;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   493
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   494
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   495
			boolean enabled = true;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   496
			String selectedElement = (String) selection.getFirstElement();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   497
			String firstElement = (String) viewer.getElementAt(0);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   498
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   499
			if (firstElement != null && selectedElement.equals(firstElement)) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   500
				enabled = false;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   501
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   502
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   503
			setEnabled(enabled);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   504
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   505
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   506
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   507
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   508
	 * This is the action that removes a command line option from the list of
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   509
	 * assigned options.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   510
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   511
	 * @author barbararosi-schwartz
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   512
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   513
	private class RemoveOptionAction extends AbstractOptionAction {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   514
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   515
		private RemoveOptionAction(Button button) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   516
			super("Remove", button);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   517
			setEnabled(false);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   518
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   519
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   520
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   521
		 * Removes the selected options from the model.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   522
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   523
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   524
		public void run() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   525
			StructuredSelection ssel = (StructuredSelection) getSelection();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   526
			java.util.List<String> model = Helper
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   527
					.toListOfStrings((String[]) viewer.getInput());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   528
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   529
			@SuppressWarnings("unchecked")
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   530
			Iterator<String> iter = ssel.iterator();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   531
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   532
			while (iter.hasNext()) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   533
				String to_be_removed = (String) iter.next();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   534
				model.remove(to_be_removed);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   535
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   536
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   537
			setAdvancedOptions(Helper.toArrayOfStrings(model));
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   538
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   539
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   540
		/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   541
		 * Enabled if we have at least one selection in the list.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   542
		 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   543
		@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   544
		public void selectionChanged(IStructuredSelection selection) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   545
			if (selection.isEmpty()) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   546
				setEnabled(false);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   547
				return;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   548
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   549
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   550
			setEnabled(true);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   551
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   552
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   553
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   554
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   555
	 * The List of all command line options that may override values entered
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   556
	 * elsewhere.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   557
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   558
	private static final ArrayList<String> dangerousOptions = new ArrayList<String>();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   559
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   560
	static {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   561
		dangerousOptions.add("clean");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   562
		dangerousOptions.add("compress");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   563
		dangerousOptions.add("log");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   564
		dangerousOptions.add("model");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   565
		dangerousOptions.add("output");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   566
		dangerousOptions.add("tempdir");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   567
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   568
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   569
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   570
	 * The viewer associated with the List widget.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   571
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   572
	private ListViewer viewer;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   573
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   574
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   575
	 * Creates an AdvancedOptionsWidget composite object
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   576
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   577
	 * @return void
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   578
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   579
	public AdvancedOptionsWidget(final Composite parent, int style) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   580
		super(parent, style);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   581
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   582
		this.setLayout(new FillLayout());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   583
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   584
		// The Composite that contains all widgets
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   585
		final Composite gridLayoutComposite = new Composite(this, SWT.NONE);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   586
		final GridLayout gridLayout = new GridLayout();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   587
		gridLayout.numColumns = 2;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   588
		gridLayoutComposite.setLayout(gridLayout);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   589
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   590
		final Label label = new Label(gridLayoutComposite, SWT.NONE);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   591
		GridData gd = new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   592
				2, 1);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   593
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   594
		label.setText("Additional Command-Line Parameters");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   595
		label.setLayoutData(gd);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   596
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   597
		// The List that contains all assigned command line options
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   598
		final List list = new List(gridLayoutComposite, SWT.BORDER
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   599
				| SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   600
		gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   601
		gd.widthHint = 200;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   602
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   603
		list.setLayoutData(gd);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   604
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   605
		viewer = new ListViewer(list);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   606
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   607
		viewer.setContentProvider(new AdvancedOptionsContentProvider());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   608
		viewer.setLabelProvider(new AdvancedOptionsLabelProvider());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   609
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   610
		// The Composite that contains all buttons in a vertical stack
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   611
		final Composite buttonsComposite = new Composite(gridLayoutComposite,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   612
				SWT.NONE);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   613
		final RowLayout rowLayout = new RowLayout(SWT.VERTICAL);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   614
		rowLayout.spacing = 5;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   615
		rowLayout.wrap = false;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   616
		rowLayout.fill = true;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   617
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   618
		buttonsComposite.setLayout(rowLayout);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   619
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   620
		gd = new GridData(SWT.RIGHT, SWT.BEGINNING, false, true, 1, 1);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   621
		buttonsComposite.setLayoutData(gd);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   622
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   623
		// The "Add" button
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   624
		final Button addOptionButton = new Button(buttonsComposite, SWT.NONE);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   625
		RowData rd = new RowData();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   626
		rd.width = 75;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   627
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   628
		addOptionButton.setLayoutData(rd);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   629
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   630
		// The action that backs the "Add" button
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   631
		final AddOptionAction addOptionAction = new AddOptionAction(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   632
				addOptionButton);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   633
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   634
		// When button is pressed, listener invokes the action's run() method,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   635
		// then refresh
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   636
		// the List of assigned options and set the selection appropriately
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   637
		addOptionButton.addSelectionListener(new SelectionAdapter() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   638
			public void widgetSelected(final SelectionEvent e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   639
				addOptionAction.run();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   640
				StructuredSelection oldSel = (StructuredSelection) viewer
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   641
						.getSelection();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   642
				viewer.refresh();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   643
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   644
				String newOption = addOptionAction.getNewOption();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   645
				StructuredSelection newSel = (newOption == null) ? oldSel
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   646
						: new StructuredSelection(newOption);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   647
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   648
				viewer.setSelection(newSel);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   649
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   650
		});
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   651
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   652
		// The "Edit" button
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   653
		final Button editOptionButton = new Button(buttonsComposite, SWT.NONE);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   654
		rd = new RowData();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   655
		rd.width = 75;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   656
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   657
		editOptionButton.setLayoutData(rd);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   658
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   659
		// The action that backs the "Edit" button
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   660
		final EditOptionAction editOptionAction = new EditOptionAction(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   661
				editOptionButton);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   662
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   663
		// When button is pressed, listener invokes the action's run() method,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   664
		// then refresh
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   665
		// the List of assigned options and set the selection appropriately
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   666
		editOptionButton.addSelectionListener(new SelectionAdapter() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   667
			public void widgetSelected(final SelectionEvent e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   668
				editOptionAction.run();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   669
				StructuredSelection oldSel = (StructuredSelection) viewer
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   670
						.getSelection();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   671
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   672
				viewer.refresh();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   673
				viewer.setSelection(oldSel);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   674
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   675
		});
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   676
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   677
		// The "Remove" button
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   678
		final Button removeOptionButton = new Button(buttonsComposite, SWT.NONE);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   679
		rd = new RowData();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   680
		rd.width = 75;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   681
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   682
		removeOptionButton.setLayoutData(rd);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   683
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   684
		// The action that backs the "Remove" button
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   685
		final RemoveOptionAction removeOptionAction = new RemoveOptionAction(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   686
				removeOptionButton);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   687
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   688
		// When button is pressed, listener invokes the action's run() method,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   689
		// then refreshes the List of assigned options and set the selection
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   690
		// appropriately
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   691
		removeOptionButton.addSelectionListener(new SelectionAdapter() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   692
			public void widgetSelected(SelectionEvent e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   693
				removeOptionAction.run();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   694
				viewer.refresh();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   695
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   696
				// If the viewer has at least one element, we set the current
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   697
				// selection to that element. 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   698
				Object firstElement = viewer.getElementAt(0);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   699
				StructuredSelection ssel = (firstElement == null) ? new StructuredSelection(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   700
						StructuredSelection.EMPTY)
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   701
						: new StructuredSelection(firstElement);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   702
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   703
				viewer.setSelection(ssel);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   704
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   705
		});
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   706
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   707
		// The "Move Up" button
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   708
		final Button moveOptionUpButton = new Button(buttonsComposite, SWT.NONE);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   709
		rd = new RowData();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   710
		rd.width = 75;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   711
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   712
		moveOptionUpButton.setLayoutData(rd);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   713
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   714
		// The action that backs the "Move Up" button
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   715
		final MoveOptionUpAction moveOptionUpAction = new MoveOptionUpAction(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   716
				moveOptionUpButton);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   717
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   718
		// When button is pressed, listener invokes the action's run() method,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   719
		// then refreshes the List of assigned options and set the selection
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   720
		// appropriately
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   721
		moveOptionUpButton.addSelectionListener(new SelectionAdapter() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   722
			public void widgetSelected(final SelectionEvent e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   723
				moveOptionUpAction.run();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   724
				viewer.refresh();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   725
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   726
				StructuredSelection newSel = new StructuredSelection(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   727
						moveOptionUpAction.getMovedOption());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   728
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   729
				viewer.setSelection(newSel);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   730
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   731
		});
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   732
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   733
		// The "Move Down" button
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   734
		final Button moveOptionDownButton = new Button(buttonsComposite,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   735
				SWT.NONE);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   736
		rd = new RowData();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   737
		rd.width = 75;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   738
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   739
		moveOptionDownButton.setLayoutData(rd);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   740
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   741
		// The action that backs the "Move Down" button
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   742
		final MoveOptionDownAction moveOptionDownAction = new MoveOptionDownAction(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   743
				moveOptionDownButton);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   744
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   745
		// When button is pressed, listener invokes the action's run() method,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   746
		// then refreshes the List of assigned options and set the selection
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   747
		// appropriately
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   748
		moveOptionDownButton.addSelectionListener(new SelectionAdapter() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   749
			public void widgetSelected(final SelectionEvent e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   750
				moveOptionDownAction.run();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   751
				viewer.refresh();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   752
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   753
				StructuredSelection newSel = new StructuredSelection(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   754
						moveOptionDownAction.getMovedOption());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   755
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   756
				viewer.setSelection(newSel);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   757
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   758
		});
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   759
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   760
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   761
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   762
	 * Returns the advanced options
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   763
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   764
	 * @return String[]
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   765
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   766
	public String[] getAdvancedOptions() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   767
		return (String[]) viewer.getInput();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   768
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   769
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   770
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   771
	 * Sets the advanced options
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   772
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   773
	 * @param options
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   774
	 *            A list containing advanced options.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   775
	 * @return void
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   776
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   777
	public void setAdvancedOptions(String[] options) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   778
		if (options != null) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   779
			viewer.setInput(options);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   780
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   781
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   782
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   783
}