srcanaapps/depexplorer/com.nokia.s60tools.appdep/src/com/nokia/s60tools/appdep/ui/dialogs/AppDepSearchDialog.java
author noe\swadi
Sat, 09 Jan 2010 10:04:11 +0530
changeset 0 a02c979e8dfd
permissions -rw-r--r--
1. Copyrights changed to EPL 2. Feature updates mentioned in release notes.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     1
/*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     2
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     3
* All rights reserved.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     4
* This component and the accompanying materials are made available
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     6
* which accompanies this distribution, and is available
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     8
*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     9
* Initial Contributors:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    11
*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    12
* Contributors:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    13
*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    14
* Description:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    15
*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    16
*/
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    17
 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    18
 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    19
package com.nokia.s60tools.appdep.ui.dialogs;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    20
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    21
import java.io.IOException;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    22
import java.util.HashMap;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    23
import java.util.Map;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    24
import java.util.Set;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    25
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    26
import org.eclipse.jface.action.Action;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    27
import org.eclipse.jface.action.IMenuListener;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    28
import org.eclipse.jface.action.IMenuManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    29
import org.eclipse.jface.action.MenuManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    30
import org.eclipse.jface.action.Separator;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    31
import org.eclipse.jface.dialogs.IDialogConstants;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    32
import org.eclipse.jface.dialogs.TrayDialog;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    33
import org.eclipse.swt.SWT;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    34
import org.eclipse.swt.custom.BusyIndicator;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    35
import org.eclipse.swt.events.ModifyEvent;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    36
import org.eclipse.swt.events.ModifyListener;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    37
import org.eclipse.swt.events.MouseEvent;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    38
import org.eclipse.swt.events.MouseListener;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    39
import org.eclipse.swt.events.SelectionEvent;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    40
import org.eclipse.swt.events.SelectionListener;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    41
import org.eclipse.swt.graphics.Color;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    42
import org.eclipse.swt.layout.GridData;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    43
import org.eclipse.swt.layout.GridLayout;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    44
import org.eclipse.swt.widgets.Button;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    45
import org.eclipse.swt.widgets.Combo;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    46
import org.eclipse.swt.widgets.Composite;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    47
import org.eclipse.swt.widgets.Control;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    48
import org.eclipse.swt.widgets.Display;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    49
import org.eclipse.swt.widgets.Group;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    50
import org.eclipse.swt.widgets.Label;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    51
import org.eclipse.swt.widgets.List;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    52
import org.eclipse.swt.widgets.Menu;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    53
import org.eclipse.swt.widgets.Shell;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    54
import org.eclipse.swt.widgets.Text;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    55
import org.eclipse.swt.widgets.Widget;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    56
import org.eclipse.ui.IWorkbenchActionConstants;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    57
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    58
import com.nokia.s60tools.appdep.AppDepHelpContextIDs;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    59
import com.nokia.s60tools.appdep.core.AppDepSettings;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    60
import com.nokia.s60tools.appdep.core.data.CacheDataManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    61
import com.nokia.s60tools.appdep.core.data.ComponentParentNode;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    62
import com.nokia.s60tools.appdep.core.data.ICacheDataManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    63
import com.nokia.s60tools.appdep.core.model.AbstractFunctionData;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    64
import com.nokia.s60tools.appdep.exceptions.CacheFileDoesNotExistException;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    65
import com.nokia.s60tools.appdep.locatecomponent.SeekParentNodesService;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    66
import com.nokia.s60tools.appdep.plugin.AppDepPlugin;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    67
import com.nokia.s60tools.appdep.resources.Messages;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    68
import com.nokia.s60tools.appdep.search.MatchType;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    69
import com.nokia.s60tools.appdep.search.SearchConstants;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    70
import com.nokia.s60tools.appdep.search.MatchType.MatchTypes;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    71
import com.nokia.s60tools.appdep.search.SearchConstants.SearchType;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    72
import com.nokia.s60tools.appdep.ui.actions.SelectAllFromListAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    73
import com.nokia.s60tools.appdep.ui.actions.ShowMethodCallLocationsSearchDialogAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    74
import com.nokia.s60tools.appdep.ui.utils.UiUtils;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    75
import com.nokia.s60tools.appdep.ui.views.main.MainView;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    76
import com.nokia.s60tools.appdep.util.AppDepConsole;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    77
import com.nokia.s60tools.ui.ICopyActionHandler;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    78
import com.nokia.s60tools.ui.IStringProvider;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    79
import com.nokia.s60tools.ui.StringArrayClipboardCopyHandler;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    80
import com.nokia.s60tools.ui.actions.CopyFromStringProviderToClipboardAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    81
import com.nokia.s60tools.util.debug.DbgUtility;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    82
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    83
/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    84
 * 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    85
 * Implements search dialog for fetching components or
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    86
 * imported/exported functions. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    87
 *
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    88
 * Usage example:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    89
 *
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    90
 * <code>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    91
 * <pre>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    92
 * 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    93
 * // Parent shell
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    94
 * Shell sh = Display.getCurrent().getActiveShell()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    95
 * 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    96
 * ComponentParentNode rootNode = view.getRootComponentNode();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    97
 * AppDepSearchDialog dlg = new AppDepSearchDialog(sh, SearchType.SEARCH_COMPONENTS, rootNode);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    98
 * dlg.create();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    99
 * dlg.open();			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   100
 *  
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   101
 * </pre> 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   102
 * </code>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   103
 * 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   104
 * @see org.eclipse.jface.dialogs.Dialog
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   105
 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   106
public class AppDepSearchDialog extends TrayDialog implements SelectionListener,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   107
														  ModifyListener,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   108
														  IStringProvider{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   109
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   110
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   111
	 * Tooltip shown to user when searching components. This is default message at start up when default values are selected from dialog.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   112
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   113
	private static final String TOOLTIP_MSG_COMPONENT_QUERY = Messages.getString("AppDepSearchDialog.Tooltip_Msg_MatchTypeCombo_ComponentQuery"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   114
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   115
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   116
	 * Tooltip shown to user when searching functions and 'StartsWith', 'EndsWith', or 'ExactMatch' is selected from math type selection combo box.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   117
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   118
	private static final String TOOLTIP_MSG_USE_FUNC_BASE_NAME = Messages.getString("AppDepSearchDialog.Tooltip_Msg_MatchTypeCombo_FunctionQuery_UsingBaseName"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   119
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   120
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   121
	 * Tooltip shown to user when searching functions and 'Contains', or 'RegularExpression' is selected from math type selection combo box.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   122
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   123
	private static final String TOOLTIP_MSG_USE_COMPLETE_FUNC_NAME = Messages.getString("AppDepSearchDialog.Tooltip_Msg_MatchTypeCombo_FunctionQuery_UsingLongName"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   124
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   125
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   126
	 * Maximum amount of data items that are reasonable to show in search result list without making user wait for too long time.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   127
	 * In case maximum result size is exceeded, an informative message is shown for a user.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   128
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   129
	private static final int MAX_RESULTS_SIZE = 30000;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   130
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   131
	//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   132
	// Private types
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   133
	//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   134
	private Action actionCompPropertiesDataCopy;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   135
	private Action actionSelectAllFromList;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   136
	private Action actionImportShowMethodLoc;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   137
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   138
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   139
	 * Match type is attached with description shown in the UI
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   140
	 */	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   141
	private class MatchTypeItem{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   142
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   143
		private final MatchTypes matchType;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   144
		private final String matchTypeDescription;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   145
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   146
		public MatchTypeItem(MatchTypes matchType, String matchTypeDescription){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   147
			this.matchType = matchType;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   148
			this.matchTypeDescription = matchTypeDescription;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   149
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   150
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   151
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   152
		/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   153
		 * @return the matchType
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   154
		 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   155
		public MatchTypes getMatchType() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   156
			return matchType;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   157
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   158
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   159
		/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   160
		 * @return the matchTypeDescription
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   161
		 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   162
		public String getMatchTypeDescription() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   163
			return matchTypeDescription;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   164
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   165
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   166
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   167
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   168
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   169
	 * Single result item object in search result list box. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   170
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   171
	private class SearchResultItem{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   172
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   173
		/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   174
		 * Component name
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   175
		 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   176
		private String componentName = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   177
		/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   178
		 * Function name
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   179
		 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   180
		private String functionName = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   181
		/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   182
		 * Function ordinal
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   183
		 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   184
		private String functionOrdinal = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   185
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   186
		/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   187
		 * Constructor.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   188
		 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   189
		public SearchResultItem(){			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   190
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   191
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   192
		/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   193
		 * Gets component name.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   194
		 * @return component name
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   195
		 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   196
		public String getComponentName() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   197
			return componentName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   198
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   199
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   200
		/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   201
		 * Sets component name
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   202
		 * @param componentName component name
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   203
		 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   204
		public void setComponentName(String componentName) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   205
			this.componentName = componentName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   206
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   207
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   208
		/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   209
		 * Gets function name
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   210
		 * @return function name
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   211
		 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   212
		public String getFunctionName() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   213
			return functionName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   214
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   215
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   216
		/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   217
		 * Sets function name
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   218
		 * @param functionName function name
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   219
		 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   220
		public void setFunctionName(String functionName) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   221
			this.functionName = functionName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   222
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   223
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   224
		/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   225
		 * Gets function ordinal.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   226
		 * @return function ordinal
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   227
		 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   228
		public String getFunctionOrdinal() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   229
			return functionOrdinal;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   230
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   231
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   232
		/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   233
		 * Sets function ordinal
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   234
		 * @param functionOrdinal function ordinal
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   235
		 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   236
		public void setFunctionOrdinal(String functionOrdinal) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   237
			this.functionOrdinal = functionOrdinal;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   238
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   239
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   240
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   241
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   242
	//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   243
	// Constants
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   244
	//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   245
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   246
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   247
	 * Default width.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   248
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   249
	private static final int DEFAULT_WIDTH = 500;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   250
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   251
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   252
	 * Default height.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   253
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   254
	private static final int DEFAULT_HEIGHT = 350;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   255
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   256
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   257
	 * Default column count for grid layouts.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   258
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   259
	private final int DEFAULT_COLUMN_COUNT = 1;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   260
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   261
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   262
	 * Search button ID
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   263
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   264
	private static final int SEARCH_BUTTON_ID = IDialogConstants.CLIENT_ID + 1;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   265
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   266
	//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   267
	// Members
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   268
	//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   269
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   270
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   271
	 * Possible match types available in search dialog.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   272
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   273
	MatchTypeItem[] matchTypeItemArr = {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   274
											new MatchTypeItem(MatchTypes.CONTAINS, Messages.getString("AppDepSearchDialog.Contains_Msg")),  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   275
											new MatchTypeItem(MatchTypes.STARTS_WITH, Messages.getString("AppDepSearchDialog.Starts_With_Msg")),  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   276
											new MatchTypeItem(MatchTypes.ENDS_WITH, Messages.getString("AppDepSearchDialog.Ends_With_Msg")),  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   277
											new MatchTypeItem(MatchTypes.EXACT_MATCH, Messages.getString("AppDepSearchDialog.Exact_Match_Msg")),  //$NON-NLS-1$											
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   278
											new MatchTypeItem(MatchTypes.REGULAR_EXPRESSION, Messages.getString("AppDepSearchDialog.Regular_Expression_Msg")) //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   279
											};
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   280
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   281
    /**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   282
     * Search button starts the search.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   283
     */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   284
	private Button searchButton;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   285
    
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   286
    /**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   287
     * Close button closes the dialog.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   288
     */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   289
	private Button closeButton;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   290
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   291
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   292
	 * Radio button for components search type 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   293
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   294
	Button searchForComponentsRadioBtn;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   295
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   296
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   297
	 * Radio button for imported functions search type 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   298
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   299
	Button searchForImportedFunctionsRadioBtn;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   300
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   301
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   302
	 * Radio button for exported functions search type 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   303
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   304
	Button searchForExportedFunctionsRadioBtn;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   305
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   306
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   307
	 * Combobox for selecting the used match criterion.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   308
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   309
	private Combo matchTypeSelCombo;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   310
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   311
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   312
	 * Background color for non-editable widgets. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   313
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   314
	Color nonEditableFieldBkgColor;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   315
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   316
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   317
	 * Case sensitivity selection checkbox
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   318
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   319
	Button caseSensitivityOptionCheckbox;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   320
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   321
	 * Search string entering field. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   322
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   323
	private Text searchStringTxtField;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   324
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   325
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   326
	 * List item for showing list of APIs 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   327
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   328
	private List searchResultList;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   329
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   330
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   331
	 * Search type used for actual search.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   332
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   333
	private SearchType selectedSearchType;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   334
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   335
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   336
	 * Reference to main view showing the actual data to search for.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   337
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   338
	private final MainView view;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   339
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   340
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   341
	 * Map where is results in list as keys and component name, where result belongs as value.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   342
	 * Really needed when results are exported or imported functions, and item in list is not really 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   343
	 * component name, but "<function name>   [<component name>]".  We need to know component name
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   344
	 * when double click is performed. Also we need to . 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   345
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   346
	private Map<String, SearchResultItem> resultsMap;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   347
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   348
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   349
	 * Keeps track if searchResultList contains data of imported functions.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   350
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   351
	private boolean isImportedFunctionsSearched = false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   352
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   353
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   354
	 * Constructor.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   355
	 * @param parentShell Parent shell.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   356
	 * @param searchType Default search type for this dialog instance at start-up.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   357
	 * @param view Reference to main view.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   358
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   359
	public AppDepSearchDialog(Shell parentShell, SearchConstants.SearchType searchType,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   360
			                  MainView view) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   361
		super(parentShell);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   362
    	int shellStyle = getShellStyle() | SWT.RESIZE;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   363
    	setShellStyle(shellStyle);	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   364
		this.selectedSearchType = searchType;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   365
		this.view = view;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   366
	}	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   367
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   368
	/* (non-Javadoc)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   369
	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   370
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   371
	protected Control createDialogArea(Composite parent) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   372
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   373
		// Creating dialog area composite
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   374
		Composite dialogAreaComposite = (Composite) super.createDialogArea(parent);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   375
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   376
		// Defining dialog area layout
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   377
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   378
		GridLayout gdl = new GridLayout(DEFAULT_COLUMN_COUNT, false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   379
		GridData gd = new GridData(GridData.FILL_BOTH);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   380
		gd.widthHint = DEFAULT_WIDTH;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   381
		gd.heightHint = DEFAULT_HEIGHT;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   382
		gd.horizontalIndent = IDialogConstants.HORIZONTAL_MARGIN;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   383
		gd.verticalIndent = IDialogConstants.VERTICAL_MARGIN;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   384
		dialogAreaComposite.setLayout(gdl);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   385
		dialogAreaComposite.setLayoutData(gd);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   386
		// Allocating new color => should be dispose at close
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   387
		nonEditableFieldBkgColor = getShell().getDisplay().getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   388
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   389
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   390
		// Adding search label and search text box
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   391
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   392
		Composite searchFieldsComposite = new Composite(dialogAreaComposite, SWT.NONE);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   393
		final int searchFieldsColumnCount = 2;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   394
		GridLayout gdlComposite = new GridLayout(searchFieldsColumnCount, false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   395
		GridData gdComposite = new GridData(GridData.FILL_HORIZONTAL);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   396
		searchFieldsComposite.setLayout(gdlComposite);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   397
		searchFieldsComposite.setLayoutData(gdComposite);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   398
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   399
		// Search string label
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   400
		Label searchStringTxtFieldLabel = new Label(searchFieldsComposite, SWT.HORIZONTAL);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   401
		searchStringTxtFieldLabel.setText(Messages.getString("AppDepSearchDialog.Search_String_Msg")); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   402
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   403
		// Search string input fields
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   404
		final int textFieldStyleBits = SWT.LEFT | SWT.SINGLE | SWT.BACKGROUND | SWT.BORDER;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   405
		searchStringTxtField = new Text(searchFieldsComposite, textFieldStyleBits);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   406
		searchStringTxtField.setLayoutData((new GridData(GridData.FILL_HORIZONTAL)));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   407
		searchStringTxtField.setEditable(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   408
		searchStringTxtField.addModifyListener(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   409
		searchStringTxtField.addSelectionListener(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   410
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   411
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   412
		// Search type
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   413
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   414
		Group searchTypeGroup = new Group(dialogAreaComposite, SWT.SHADOW_NONE);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   415
		searchTypeGroup.setText(Messages.getString("AppDepSearchDialog.Search_For_Msg"));				 //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   416
		GridLayout gdl2 = new GridLayout(DEFAULT_COLUMN_COUNT , false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   417
		GridData gd2 = new GridData(GridData.FILL_HORIZONTAL);				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   418
		searchTypeGroup.setLayout(gdl2);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   419
		searchTypeGroup.setLayoutData(gd2);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   420
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   421
		// Component search radio button
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   422
		searchForComponentsRadioBtn = new Button(searchTypeGroup, SWT.RADIO);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   423
		searchForComponentsRadioBtn.setText(Messages.getString("AppDepSearchDialog.Components_Msg")); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   424
		searchForComponentsRadioBtn.addSelectionListener(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   425
				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   426
		// Imported functions search radio button
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   427
		searchForImportedFunctionsRadioBtn = new Button(searchTypeGroup, SWT.RADIO);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   428
		searchForImportedFunctionsRadioBtn.setText(Messages.getString("AppDepSearchDialog.Imported_Functions_Msg")); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   429
		searchForImportedFunctionsRadioBtn.addSelectionListener(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   430
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   431
		// Exported functions search radio button
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   432
		searchForExportedFunctionsRadioBtn = new Button(searchTypeGroup, SWT.RADIO);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   433
		searchForExportedFunctionsRadioBtn.setText(Messages.getString("AppDepSearchDialog.Exported_Functions_Msg")); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   434
		searchForExportedFunctionsRadioBtn.addSelectionListener(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   435
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   436
		// Updating radio button selection states accoring currenlty selected search type
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   437
		updateSearchTypeSelectionBtns();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   438
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   439
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   440
		// Options group
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   441
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   442
		Group searchOptionsGroup = new Group(dialogAreaComposite, SWT.SHADOW_NONE);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   443
		searchOptionsGroup.setText(Messages.getString("AppDepSearchDialog.Options_Msg"));				 //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   444
		final int optionsGroupColumnCount = 3;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   445
		GridLayout gdl3 = new GridLayout(optionsGroupColumnCount, false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   446
		GridData gd3 = new GridData(GridData.FILL_HORIZONTAL);				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   447
		searchOptionsGroup.setLayout(gdl3);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   448
		searchOptionsGroup.setLayoutData(gd3);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   449
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   450
		// Match type combo label
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   451
		Label matchTypeLabel = new Label(searchOptionsGroup, SWT.HORIZONTAL | SWT.LEFT);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   452
		matchTypeLabel.setText(Messages.getString("AppDepSearchDialog.Match_Type_Msg"));		 //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   453
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   454
		// Match type combo 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   455
		matchTypeSelCombo = new Combo(searchOptionsGroup, SWT.DROP_DOWN | SWT.READ_ONLY);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   456
		matchTypeSelCombo.setText(Messages.getString("CacheGenerationOptionsWizardPage.ToolchainSelCombo_Text")); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   457
		matchTypeSelCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   458
		matchTypeSelCombo.setBackground(nonEditableFieldBkgColor);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   459
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   460
		for (int i = 0; i < matchTypeItemArr.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   461
			MatchTypeItem matchType = matchTypeItemArr[i];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   462
			matchTypeSelCombo.add(matchType.getMatchTypeDescription());			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   463
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   464
		matchTypeSelCombo.select(0); // Selecting first match type by default
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   465
		matchTypeSelCombo.addSelectionListener(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   466
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   467
		// Case sensitivity selection checbox 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   468
		caseSensitivityOptionCheckbox = new Button(searchOptionsGroup, SWT.CHECK);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   469
		caseSensitivityOptionCheckbox.setText(Messages.getString("AppDepSearchDialog.Case_Sensitive_Msg")); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   470
		caseSensitivityOptionCheckbox.setSelection(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   471
		caseSensitivityOptionCheckbox.addSelectionListener(this);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   472
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   473
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   474
		// Search Results 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   475
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   476
		Label searchResultsLabel = new Label(dialogAreaComposite, SWT.HORIZONTAL);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   477
		searchResultsLabel.setText(Messages.getString("AppDepSearchDialog.Search_Results_Msg"));		 //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   478
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   479
		// List box for results
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   480
		final int listBoxStyleBits = SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   481
		searchResultList = new List(dialogAreaComposite, listBoxStyleBits);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   482
		GridData listData1 = new GridData(GridData.FILL_BOTH);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   483
		searchResultList.setLayoutData(listData1);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   484
		searchResultList.setBackground(nonEditableFieldBkgColor);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   485
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   486
		// Listening for user selections
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   487
		MouseListener searchResultListSelListener = new MouseListener(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   488
			public void mouseDoubleClick(MouseEvent e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   489
				searchListObjectDoubleClicked();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   490
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   491
			public void mouseDown(MouseEvent e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   492
				// No action				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   493
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   494
			public void mouseUp(MouseEvent e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   495
				// No action				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   496
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   497
		};
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   498
		searchResultList.addMouseListener(searchResultListSelListener);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   499
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   500
		// Listening for list selections to prevent using Show Method Call Location with multiple selections.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   501
		SelectionListener searchResultListSelectionListener = new SelectionListener(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   502
			public void widgetDefaultSelected(SelectionEvent e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   503
				// No action
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   504
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   505
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   506
			public void widgetSelected(SelectionEvent e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   507
				// Enabling action if needed.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   508
				boolean enableMethodCallLocationsAction = (searchResultList.getSelectionCount() == 1) && isImportedFunctionsSearched; 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   509
				actionImportShowMethodLoc.setEnabled(enableMethodCallLocationsAction);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   510
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   511
		};
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   512
		searchResultList.addSelectionListener(searchResultListSelectionListener);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   513
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   514
		//Adding context menu to list.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   515
		createActionMenu();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   516
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   517
		// Updating tooltip texts according the current selection status
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   518
		updateToolTipTexts();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   519
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   520
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   521
		// And finally adding separator above the dialog button array
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   522
		// 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   523
		Label separatorLine = new Label(dialogAreaComposite, SWT.HORIZONTAL | SWT.SEPARATOR);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   524
		separatorLine.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   525
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   526
	    // Setting context help IDs		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   527
	    AppDepPlugin.setContextSensitiveHelpID(dialogAreaComposite, AppDepHelpContextIDs.APPDEP_SEARCH_DIALOG);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   528
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   529
		return dialogAreaComposite;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   530
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   531
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   532
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   533
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   534
	 * Creating context menu
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   535
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   536
	private void createActionMenu(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   537
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   538
		createActions();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   539
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   540
		MenuManager menuMgr = new MenuManager("#PopupCopyMenu"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   541
		menuMgr.setRemoveAllWhenShown(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   542
		menuMgr.addMenuListener(new IMenuListener() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   543
			public void menuAboutToShow(IMenuManager manager) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   544
				AppDepSearchDialog.this.fillViewContextMenu(manager);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   545
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   546
		});
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   547
		Menu menu = menuMgr.createContextMenu(searchResultList);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   548
		searchResultList.setMenu(menu);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   549
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   550
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   551
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   552
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   553
	 * Adds items to context menu.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   554
	 * @param manager Menu manager
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   555
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   556
	private void fillViewContextMenu(IMenuManager manager) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   557
		manager.add(actionCompPropertiesDataCopy);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   558
		manager.add(actionSelectAllFromList);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   559
		manager.add(actionImportShowMethodLoc);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   560
		// Other plug-ins can contribute there actions here
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   561
		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   562
	}	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   563
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   564
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   565
	 * Creates actions for context menu
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   566
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   567
	private void createActions() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   568
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   569
		StringArrayClipboardCopyHandler copyHandler = new StringArrayClipboardCopyHandler();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   570
		actionCompPropertiesDataCopy = new CopyFromStringProviderToClipboardAction(this /* listItemsViewer*/,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   571
                												new ICopyActionHandler[]{ copyHandler }
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   572
					                                           );
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   573
		actionSelectAllFromList = new SelectAllFromListAction(searchResultList);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   574
		actionImportShowMethodLoc = new ShowMethodCallLocationsSearchDialogAction(this, view);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   575
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   576
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   577
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   578
	 * Updates radio buttons states insided search type group
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   579
	 * according the current selection.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   580
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   581
	private void updateSearchTypeSelectionBtns() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   582
		if(selectedSearchType.equals(SearchType.SEARCH_COMPONENTS)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   583
			searchForComponentsRadioBtn.setSelection(true);			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   584
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   585
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   586
			searchForComponentsRadioBtn.setSelection(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   587
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   588
		if(selectedSearchType.equals(SearchType.SEARCH_IMPORTED_FUNCTIONS)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   589
			searchForImportedFunctionsRadioBtn.setSelection(true);			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   590
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   591
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   592
			searchForImportedFunctionsRadioBtn.setSelection(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   593
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   594
		if(selectedSearchType.equals(SearchType.SEARCH_EXPORTED_FUNCTION)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   595
			searchForExportedFunctionsRadioBtn.setSelection(true);			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   596
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   597
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   598
			searchForExportedFunctionsRadioBtn.setSelection(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   599
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   600
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   601
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   602
    /* (non-Javadoc)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   603
     * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   604
     */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   605
    protected void configureShell(Shell shell) {    	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   606
        super.configureShell(shell);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   607
        String dialogTopic = getDialogName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   608
		shell.setText(dialogTopic);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   609
    }
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   610
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   611
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   612
	 * Gets the dialog name.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   613
	 * @return dialog name
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   614
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   615
	private String getDialogName() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   616
        AppDepSettings st = AppDepSettings.getActiveSettings();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   617
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   618
		String currentlyUsedSDK = st.getCurrentlyUsedSdk().getSdkId();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   619
        String variant = st.getCurrentlyUsedTargetPlatformsAsString();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   620
        String build = st.getBuildType().getBuildTypeName();        
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   621
        String usedSDKInfo = currentlyUsedSDK + " - " + variant + " " +build;//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   622
        String dialogTopic = Messages.getString("AppDepSearchDialog.Search_Msg") +" " +usedSDKInfo ;//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   623
		return dialogTopic;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   624
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   625
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   626
    /* (non-Javadoc)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   627
     * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   628
     */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   629
    protected void createButtonsForButtonBar(Composite parent) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   630
        // Creating Search button
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   631
		searchButton = createButton(parent, SEARCH_BUTTON_ID, Messages.getString("AppDepSearchDialog.Search_Btn_Msg"),true); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   632
		searchButton.setEnabled(false); // By default disabled
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   633
		searchButton.addSelectionListener(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   634
        //Creating Close button
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   635
		closeButton = createButton(parent, IDialogConstants.CLOSE_ID, IDialogConstants.CLOSE_LABEL, false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   636
		closeButton.addSelectionListener(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   637
    }
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   638
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   639
	/* (non-Javadoc)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   640
	 * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   641
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   642
	public void widgetDefaultSelected(SelectionEvent e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   643
		if(e.widget == searchStringTxtField){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   644
			//  <code>widgetDefaultSelected</code> is typically called 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   645
			// when ENTER is pressed in a single-line text.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   646
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   647
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   648
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   649
	/* (non-Javadoc)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   650
	 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   651
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   652
	public void widgetSelected(SelectionEvent e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   653
		Widget w = e.widget;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   654
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   655
		if(w.equals(searchButton)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   656
			Runnable performAPIDetailsQueryRunnable = new Runnable(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   657
				public void run(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   658
					performSearch();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   659
				}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   660
			};
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   661
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   662
			// Showing busy cursor during operation			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   663
			Display d = getShell().getDisplay();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   664
			BusyIndicator.showWhile(d, performAPIDetailsQueryRunnable);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   665
		}		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   666
		else if(w.equals(closeButton)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   667
			// Otherwise it must be Close button
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   668
			this.close(); // close() method is overridden in the end of the file for making clean-up
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   669
			return;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   670
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   671
		else if(w.equals(matchTypeSelCombo)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   672
			int selIndex = matchTypeSelCombo.getSelectionIndex();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   673
			MatchTypes selType = matchTypeItemArr[selIndex].getMatchType();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   674
			// Setting enable/disable state of case sensitivity checkbox according the selected match type 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   675
			if(selType.equals(MatchTypes.REGULAR_EXPRESSION)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   676
				caseSensitivityOptionCheckbox.setEnabled(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   677
				caseSensitivityOptionCheckbox.setSelection(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   678
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   679
			else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   680
				caseSensitivityOptionCheckbox.setEnabled(true);				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   681
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   682
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   683
		else if(w.equals(searchForComponentsRadioBtn)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   684
			selectedSearchType = SearchType.SEARCH_COMPONENTS;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   685
			updateSearchTypeSelectionBtns();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   686
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   687
		else if(w.equals(searchForImportedFunctionsRadioBtn)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   688
			selectedSearchType = SearchType.SEARCH_IMPORTED_FUNCTIONS;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   689
			updateSearchTypeSelectionBtns();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   690
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   691
		else if(w.equals(searchForExportedFunctionsRadioBtn)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   692
			selectedSearchType = SearchType.SEARCH_EXPORTED_FUNCTION;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   693
			updateSearchTypeSelectionBtns();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   694
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   695
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   696
		// Updating tooltip texts according the current selection status
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   697
		// This must be called here because selected search type has 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   698
		// to be set before calling the method.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   699
		updateToolTipTexts();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   700
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   701
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   702
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   703
	 * Sets tooltip text according the selected match type 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   704
	 * and the used query type.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   705
	 * Calling of this method requires that all the referenced 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   706
	 * widgets are created/initialized properly.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   707
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   708
	private void updateToolTipTexts() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   709
		int selIndex = matchTypeSelCombo.getSelectionIndex();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   710
		MatchTypes selType = matchTypeItemArr[selIndex].getMatchType();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   711
		// Are we querying function data?
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   712
		if(selectedSearchType == SearchType.SEARCH_IMPORTED_FUNCTIONS || selectedSearchType == SearchType.SEARCH_EXPORTED_FUNCTION){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   713
			if(selType.equals(MatchTypes.REGULAR_EXPRESSION) || selType.equals(MatchTypes.CONTAINS)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   714
				matchTypeSelCombo.setToolTipText(TOOLTIP_MSG_USE_COMPLETE_FUNC_NAME);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   715
				return;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   716
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   717
			else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   718
				matchTypeSelCombo.setToolTipText(TOOLTIP_MSG_USE_FUNC_BASE_NAME);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   719
				return;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   720
				}			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   721
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   722
		// Otherwise component data is to be queried
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   723
		matchTypeSelCombo.setToolTipText(TOOLTIP_MSG_COMPONENT_QUERY);					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   724
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   725
       
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   726
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   727
	 * Performs the search based on the current dialog parameters.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   728
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   729
	private void performSearch() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   730
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   731
		String searchString = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   732
		try {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   733
			// Clearing old results
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   734
			searchResultList.removeAll();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   735
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   736
			// Disabling Show Method Call Locations functionality when list is cleared.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   737
			actionImportShowMethodLoc.setEnabled(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   738
			isImportedFunctionsSearched = false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   739
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   740
			ICacheDataManager manager = CacheDataManager.getInstance();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   741
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   742
			searchString = searchStringTxtField.getText();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   743
			MatchType matchType = new MatchType( matchTypeItemArr[matchTypeSelCombo.getSelectionIndex()].matchType );
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   744
			//Adding case sensitive parameters, only when its not regular expression 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   745
			if(matchType.getMatchType() != MatchTypes.REGULAR_EXPRESSION){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   746
				boolean isCaseSensitiveSearch = caseSensitivityOptionCheckbox.getSelection();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   747
				matchType.setCaseSensitiveSearch(isCaseSensitiveSearch);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   748
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   749
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   750
			//Get results from manager
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   751
			Map<String, java.util.List<AbstractFunctionData>> results = manager.searchCache(searchString, selectedSearchType, matchType);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   752
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   753
			if(results != null){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   754
				//Generate results map, where is list strings and component names
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   755
				resultsMap = getResultMap(results, selectedSearchType);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   756
				//check if there is not too much results. Checked with imported functions search "L" 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   757
				//that 200000 results takes way too long to set dialog List items, but "newL" search with 13000 result is ok.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   758
				int size = resultsMap.size();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   759
				DbgUtility.println(DbgUtility.PRIORITY_OPERATION, "Search returned "  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   760
									+ size + " data items as result when searching with string '" + searchString + "'."); //$NON-NLS-1$ //$NON-NLS-2$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   761
				if(size > MAX_RESULTS_SIZE){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   762
					showTooManyResultsErrorMsg(size);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   763
				}else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   764
					Set<String> listItems = resultsMap.keySet();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   765
					String[] resultString = (String[]) listItems.toArray(new String[0]);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   766
					searchResultList.setItems(resultString);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   767
					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   768
					// Enabling Show Method Call Locations functionality if imported functions were successfully searched. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   769
					if(selectedSearchType == SearchType.SEARCH_IMPORTED_FUNCTIONS){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   770
						actionImportShowMethodLoc.setEnabled(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   771
						isImportedFunctionsSearched = true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   772
					}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   773
				}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   774
			}			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   775
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   776
		} catch (CacheFileDoesNotExistException e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   777
			// write to console, show error
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   778
			e.printStackTrace();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   779
			String msg = Messages.getString("AppDepSearchDialog.Search_Console_Err_Msg_Part1")  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   780
				+ searchString  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   781
				+Messages.getString("AppDepSearchDialog.Search_Console_Err_Msg_Part2") //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   782
				+ e;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   783
			AppDepConsole.getInstance().println(
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   784
					msg, AppDepConsole.MSG_ERROR);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   785
			showErrorDialog();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   786
		} catch (IOException e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   787
			//  write to console, show error
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   788
			e.printStackTrace();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   789
			String msg = Messages.getString("AppDepSearchDialog.Search_Console_Err_Msg_Part1")  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   790
				+ searchString  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   791
				+Messages.getString("AppDepSearchDialog.Search_Console_Err_Msg_Part2") //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   792
				+ e;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   793
			AppDepConsole.getInstance().println(msg, AppDepConsole.MSG_ERROR);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   794
			showErrorDialog();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   795
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   796
		catch (Exception e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   797
			//  write to console, show error
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   798
			e.printStackTrace();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   799
			String msg = Messages.getString("AppDepSearchDialog.Search_Console_Err_Msg_Part1")  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   800
				+ searchString  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   801
				+Messages.getString("AppDepSearchDialog.Search_Console_Err_Msg_Part2") //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   802
				+ e;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   803
			AppDepConsole.getInstance().println(msg, AppDepConsole.MSG_ERROR);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   804
			showErrorDialog();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   805
		}		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   806
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   807
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   808
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   809
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   810
	 * This message is shown in case query returns too many data items 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   811
	 * that cannot be shown in dialog withouth compromising user experience.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   812
	 * @param resultsSize Amount of data items returned as a results.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   813
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   814
	private void showTooManyResultsErrorMsg(int resultsSize) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   815
		String msg = Messages.getString("AppDepSearchDialog.TooManyResults_ErrMsg_Part1")//$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   816
			+resultsSize + Messages.getString("AppDepSearchDialog.TooManyResults_ErrMsg_Part2");//$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   817
		AppDepMessageBox msgBox = new AppDepMessageBox(msg , SWT.ICON_INFORMATION | SWT.OK );
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   818
		msgBox.open();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   819
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   820
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   821
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   822
	 * Gets search results as map (converts the input data).
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   823
	 * @param results Original search results to be converted.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   824
	 * @param searchType Type of search performed.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   825
	 * @return Search results as map (converted from the input data).
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   826
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   827
	private Map<String, SearchResultItem> getResultMap(Map<String, java.util.List<AbstractFunctionData>> results, SearchType searchType) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   828
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   829
		Set<String> keys = results.keySet();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   830
		Map<String, SearchResultItem> resultsArray = new HashMap<String, SearchResultItem>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   831
		switch (searchType) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   832
		case SEARCH_COMPONENTS:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   833
			for (String compName : keys) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   834
				SearchResultItem compData = new SearchResultItem();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   835
				compData.setComponentName(compName);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   836
				resultsArray.put(compName, compData);					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   837
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   838
			break;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   839
		case SEARCH_EXPORTED_FUNCTION:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   840
		case SEARCH_IMPORTED_FUNCTIONS:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   841
			for (String compName : keys) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   842
				java.util.List<AbstractFunctionData> datas = results.get(compName);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   843
				for (AbstractFunctionData data : datas) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   844
					String functionNameAndCompName = data.getFunctionName() + "   [" + compName +"]"; //$NON-NLS-1$//$NON-NLS-2$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   845
					SearchResultItem compData = new SearchResultItem();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   846
					compData.setComponentName(compName);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   847
					compData.setFunctionName(data.getFunctionName());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   848
					compData.setFunctionOrdinal(data.getFunctionOrdinal());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   849
					resultsArray.put(functionNameAndCompName, compData);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   850
				}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   851
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   852
			break;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   853
		default:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   854
			break;		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   855
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   856
		return resultsArray;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   857
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   858
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   859
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   860
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   861
	 * Shows an error dialog
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   862
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   863
	private void showErrorDialog() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   864
		String msg = Messages.getString("AppDepSearchDialog.Search_User_Err_Msg"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   865
		AppDepMessageBox msgBox = new AppDepMessageBox(msg , SWT.ICON_ERROR | SWT.OK );
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   866
		msgBox.open();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   867
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   868
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   869
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   870
	 * Checks what is selected object in the search results list
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   871
	 * and activates and selects it from the UI.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   872
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   873
	private void searchListObjectDoubleClicked() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   874
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   875
		String selectedComponentName = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   876
		//get selected component name
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   877
		try {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   878
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   879
			String [] results = searchResultList.getItems();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   880
			//Get selected component name from List:s object data by selection index
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   881
			String listItemId = results[searchResultList.getSelectionIndex()];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   882
			SearchResultItem value = resultsMap.get(listItemId);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   883
			selectedComponentName = value.getComponentName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   884
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   885
			//get root node of tree
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   886
			ComponentParentNode root = getRootNode();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   887
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   888
			//Seek all parent nodes of tree to find if we have selected component all ready in tree
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   889
			Map<String, ComponentParentNode> parentNodes = SeekParentNodesService.findParentNodes(root);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   890
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   891
			//If component can be found from current component tree, activating selection
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   892
			if(parentNodes.containsKey(selectedComponentName.toLowerCase())){			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   893
				ComponentParentNode selectedNode = parentNodes.get(selectedComponentName.toLowerCase());			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   894
				view.activateTreeViewComponent(selectedNode);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   895
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   896
			else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   897
				//If component cannot be found from current component tree, setting selection as new root
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   898
				UiUtils.setComponentAsNewRootInMainView(view, selectedComponentName, null);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   899
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   900
		} catch (Exception e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   901
			e.printStackTrace();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   902
			String msg = Messages.getString("AppDepSearchDialog.SetComponent_Console_Err_Msg_Part1")  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   903
				+ selectedComponentName  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   904
				+Messages.getString("AppDepSearchDialog.SetComponent_Console_Err_Msg_Part2") //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   905
				+ e;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   906
			AppDepConsole.getInstance().println(msg, AppDepConsole.MSG_ERROR);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   907
			showErrorDialog();			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   908
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   909
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   910
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   911
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   912
	 * Gets current root node
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   913
	 * @return root node
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   914
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   915
	private ComponentParentNode getRootNode() {		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   916
		//Getting new root node from view, not from start node!
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   917
		ComponentParentNode root = view.getRootComponentNode();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   918
		return root;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   919
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   920
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   921
	/* (non-Javadoc)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   922
	 * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   923
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   924
	public void modifyText(ModifyEvent e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   925
		if(searchStringTxtField.getText().length() > 0){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   926
			searchButton.setEnabled(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   927
		}else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   928
			searchButton.setEnabled(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   929
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   930
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   931
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   932
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   933
	 * Gets selected String from list.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   934
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   935
	public String getString() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   936
		String[] selectedItems = searchResultList.getSelection();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   937
		if(selectedItems.length > 0){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   938
			StringBuffer items = new StringBuffer();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   939
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   940
			// There should be at least one item.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   941
			items.append(selectedItems[0]);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   942
			// Adding rest of the strings with new line.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   943
			for(int i = 1;i < selectedItems.length;i++){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   944
				items.append("\r\n"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   945
				items.append(selectedItems[i]);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   946
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   947
			return items.toString();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   948
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   949
		return null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   950
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   951
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   952
	/* (non-Javadoc)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   953
	 * @see org.eclipse.jface.dialogs.TrayDialog#close()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   954
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   955
	@Override
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   956
	public boolean close() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   957
		// clean-up
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   958
		nonEditableFieldBkgColor.dispose();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   959
		searchStringTxtField.removeSelectionListener(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   960
		searchStringTxtField.removeModifyListener(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   961
		// Calling super close
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   962
		return super.close();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   963
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   964
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   965
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   966
	 * Get currently selected function.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   967
	 * @return String or <code>null</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   968
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   969
	public String getSelectedFunction() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   970
		if(searchResultList.getSelectionIndex() >= 0){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   971
			//Get selected function name from list.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   972
			String listItemId = searchResultList.getItem(searchResultList.getSelectionIndex());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   973
			SearchResultItem value = resultsMap.get(listItemId);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   974
			String functionName = value.getFunctionName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   975
			return functionName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   976
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   977
		return null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   978
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   979
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   980
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   981
	 * Get component for currently selected function.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   982
	 * @return String or<code>null</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   983
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   984
	public String getComponentForSelectedFunction() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   985
		if(searchResultList.getSelectionIndex() >= 0){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   986
			//Get selected component name from list.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   987
			String listItemId = searchResultList.getItem(searchResultList.getSelectionIndex());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   988
			SearchResultItem value = resultsMap.get(listItemId);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   989
			String componentName = value.getComponentName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   990
			return componentName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   991
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   992
		return null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   993
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   994
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   995
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   996
	 * Gets the ordinal of selected function in search results list.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   997
	 * @return ordinal of selected function in search results list, if 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   998
	 * 					a function is selected, otherwise <code>null</code>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   999
	 * 					(i.e. component has been selected or there is 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1000
	 * 					 no selection made).
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1001
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1002
	public String getSelectedFunctionOrdinal() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1003
		if(searchResultList.getSelectionIndex() >= 0){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1004
			//Get selected function ordinal from list.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1005
			String listItemId = searchResultList.getItem(searchResultList.getSelectionIndex());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1006
			SearchResultItem value = resultsMap.get(listItemId);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1007
			String functionOrdinal = value.getFunctionOrdinal();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1008
			return functionOrdinal;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1009
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1010
		return null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1011
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1012
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1013
}