srcanaapps/depexplorer/com.nokia.s60tools.appdep/src/com/nokia/s60tools/appdep/ui/views/main/MainView.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.views.main;
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.util.ArrayList;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    22
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    23
import org.eclipse.jface.action.Action;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    24
import org.eclipse.jface.action.IMenuListener;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    25
import org.eclipse.jface.action.IMenuManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    26
import org.eclipse.jface.action.IToolBarManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    27
import org.eclipse.jface.action.MenuManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    28
import org.eclipse.jface.action.Separator;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    29
import org.eclipse.jface.viewers.ISelection;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    30
import org.eclipse.jface.viewers.ISelectionChangedListener;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    31
import org.eclipse.jface.viewers.IStructuredSelection;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    32
import org.eclipse.jface.viewers.TableViewer;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    33
import org.eclipse.jface.viewers.TreeViewer;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    34
import org.eclipse.swt.SWT;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    35
import org.eclipse.swt.custom.CTabFolder;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    36
import org.eclipse.swt.custom.CTabItem;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    37
import org.eclipse.swt.custom.SashForm;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    38
import org.eclipse.swt.events.KeyEvent;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    39
import org.eclipse.swt.events.KeyListener;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    40
import org.eclipse.swt.widgets.Composite;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    41
import org.eclipse.swt.widgets.Event;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    42
import org.eclipse.swt.widgets.Menu;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    43
import org.eclipse.swt.widgets.Table;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    44
import org.eclipse.swt.widgets.TableColumn;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    45
import org.eclipse.ui.IActionBars;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    46
import org.eclipse.ui.IMemento;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    47
import org.eclipse.ui.IViewPart;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    48
import org.eclipse.ui.IViewReference;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    49
import org.eclipse.ui.IViewSite;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    50
import org.eclipse.ui.IWorkbenchActionConstants;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    51
import org.eclipse.ui.IWorkbenchPage;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    52
import org.eclipse.ui.PartInitException;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    53
import org.eclipse.ui.part.DrillDownAdapter;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    54
import org.eclipse.ui.part.ViewPart;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    55
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    56
import com.nokia.s60tools.appdep.AppDepHelpContextIDs;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    57
import com.nokia.s60tools.appdep.common.ProductInfoRegistry;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    58
import com.nokia.s60tools.appdep.core.AppDepSettings;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    59
import com.nokia.s60tools.appdep.core.data.ComponentLinkLeafNode;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    60
import com.nokia.s60tools.appdep.core.data.ComponentNode;
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.model.ComponentPropertiesData;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    63
import com.nokia.s60tools.appdep.core.model.ExportFunctionData;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    64
import com.nokia.s60tools.appdep.core.model.ImportFunctionData;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    65
import com.nokia.s60tools.appdep.plugin.AppDepPlugin;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    66
import com.nokia.s60tools.appdep.resources.Messages;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    67
import com.nokia.s60tools.appdep.search.SearchConstants;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    68
import com.nokia.s60tools.appdep.ui.actions.AbstractShowSourceFileAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    69
import com.nokia.s60tools.appdep.ui.actions.AddSisAndUpdateCacheMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    70
import com.nokia.s60tools.appdep.ui.actions.CacheUpdateMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    71
import com.nokia.s60tools.appdep.ui.actions.CollapseAllMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    72
import com.nokia.s60tools.appdep.ui.actions.ComponentIsUsedByMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    73
import com.nokia.s60tools.appdep.ui.actions.ComponentPropertiesMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    74
import com.nokia.s60tools.appdep.ui.actions.ExpandAllMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    75
import com.nokia.s60tools.appdep.ui.actions.ExpandSubtreeMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    76
import com.nokia.s60tools.appdep.ui.actions.ExportReportMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    77
import com.nokia.s60tools.appdep.ui.actions.FindMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    78
import com.nokia.s60tools.appdep.ui.actions.FunctionIsUsedByExportFunctionMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    79
import com.nokia.s60tools.appdep.ui.actions.FunctionIsUsedByImportFunctionMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    80
import com.nokia.s60tools.appdep.ui.actions.LocateComponentMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    81
import com.nokia.s60tools.appdep.ui.actions.SearchMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    82
import com.nokia.s60tools.appdep.ui.actions.SelectAllFromTableViewerMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    83
import com.nokia.s60tools.appdep.ui.actions.SelectNewRootComponentMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    84
import com.nokia.s60tools.appdep.ui.actions.SelectNewSDKMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    85
import com.nokia.s60tools.appdep.ui.actions.SetNewRootMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    86
import com.nokia.s60tools.appdep.ui.actions.ShowMethodCallLocationsImportFunctionMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    87
import com.nokia.s60tools.appdep.ui.actions.ShowSourceFileAndCreateProjectExportFunctionMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    88
import com.nokia.s60tools.appdep.ui.actions.ShowSourceFileAndCreateProjectImportFunctionMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    89
import com.nokia.s60tools.appdep.ui.actions.ShowSourceFileExportFunctionMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    90
import com.nokia.s60tools.appdep.ui.actions.ShowSourceFileImportFunctionMainViewAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    91
import com.nokia.s60tools.appdep.ui.dialogs.AppDepMessageBox;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    92
import com.nokia.s60tools.ui.ICopyActionHandler;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    93
import com.nokia.s60tools.ui.ProgrammaticSelection;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    94
import com.nokia.s60tools.ui.S60ToolsTable;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    95
import com.nokia.s60tools.ui.S60ToolsTableColumnData;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    96
import com.nokia.s60tools.ui.S60ToolsTableFactory;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    97
import com.nokia.s60tools.ui.actions.CopyFromTableViewerAction;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    98
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    99
/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   100
 * This class comprises the Main View of the AppDep
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   101
 * application.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   102
 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   103
public class MainView extends ViewPart implements KeyListener {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   104
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   105
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   106
	 * We can get view ID at runtime once the view is instantiated, but we
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   107
	 * also need static access to ID in order to be able to invoke the view.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   108
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   109
	public static final String ID = "com.nokia.s60tools.appdep.ui.views.main.MainView"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   110
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   111
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   112
	 * We will disable show source functionality for some "method" names,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   113
	 * which are no real method names. List for prefixes is stored in here and 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   114
	 * all clients of {@link MainView} can be used them. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   115
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   116
	private static final String [] DISABLE_SHOW_SOURCE_PREFIXES = {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   117
		"BC break", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   118
		"vtable for", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   119
		"typeinfo", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   120
		"\"_._.absent_export_"}; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   121
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   122
	//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   123
	// Actions
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
	private Action actionSetAsNewRoot;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   127
	private Action actionComponentIsUsedBy;
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 Action actionImportFunctionIsUsedBy;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   130
	private Action actionImportFunctionDataCopy;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   131
	private Action actionSelectAllImportFunctions;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   132
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   133
	private Action actionExportFunctionIsUsedBy;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   134
	private Action actionExportFunctionDataCopy;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   135
	private Action actionSelectAllExportFunctions;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   136
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   137
	private Action actionCompPropertyDataCopy;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   138
	private Action actionSelectAllComponentProperties;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   139
	private Action actionExpandAll = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   140
	private Action actionCollapseAll = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   141
	private Action actionExpandSubtree = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   142
	private Action actionSelectNewRootComponent = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   143
	private Action actionComponentProperties;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   144
	private Action actionSelectNewSDK;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   145
	private Action actionExportReport;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   146
	private Action actionComponentFind;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   147
	private Action actionLocateComponent;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   148
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   149
	private Action actionCacheUpdate;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   150
	private Action addSisFilesAndUpdateCache;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   151
	private Action actionComponentSearch;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   152
	private Action actionImportFunctionSearch;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   153
	private Action actionExportFunctionSearch;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   154
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   155
	private AbstractShowSourceFileAction actionImportShowSource;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   156
	private AbstractShowSourceFileAction actionExportShowSource;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   157
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   158
	private ShowMethodCallLocationsImportFunctionMainViewAction actionImportShowMethodLoc;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   159
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   160
	private ShowSourceFileAndCreateProjectExportFunctionMainViewAction actionExportShowSourceInProject;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   161
	private ShowSourceFileAndCreateProjectImportFunctionMainViewAction actionImportShowSourceInProject;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   162
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   163
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   164
	 * This flag is updated when the view is fully populated
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   165
	 * i.e. all the indirect dependencies are searched.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   166
	 * This flag is set to <code>true</code> by population
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   167
	 * progress listener when population has either finished
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   168
	 * or aborted by the user. The value of this flag is used, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   169
	 * for instance, by selection listener.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   170
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   171
	static private boolean isDependencySearchOngoing = false;
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
	// Controls and related classes (providers etc.)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   175
	// 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   176
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   177
	private TreeViewer componentTreeViewer;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   178
	private DrillDownAdapter drillDownAdapter;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   179
	private MainViewComponentTreeContentProvider compTreeViewerContentProv = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   180
					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   181
	private CTabItem importFunctionsTab;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   182
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   183
	private S60ToolsTable importFunctionsViewer;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   184
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   185
	private MainViewImportFunctionsTabContentProvider importFunctionsTabContentProvider;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   186
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   187
	private CTabItem componentPropertiesTab;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   188
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   189
	private SashForm componentPropertiesSashForm;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   190
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   191
	private TableViewer componentPropertiesViewer;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   192
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   193
	private MainViewComponentPropertiesTabContentProvider componentPropertiesTabContentProvider;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   194
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   195
	private ArrayList<ImportFunctionData> importFunctionsArrayList;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   196
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   197
	private ComponentPropertiesData selectedComponentPropertiesData = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   198
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   199
	private CTabItem exportFunctionsTab;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   200
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   201
	private S60ToolsTable exportFunctionsViewer;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   202
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   203
	private MainViewExportFunctionsTabContentProvider exportFunctionsTabContentProvider;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   204
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   205
	private ArrayList<ExportFunctionData> exportFunctionsArrayList;	
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
	 * 'Go Into' actions looses the selection from the tree view, and there is
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   209
	 * no way to hook the action, therefore we store the recently selected
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   210
	 * component in order to know for which the selected function is bound to.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   211
	 * 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   212
	 * This is used for "Is Used By..."-actions and also 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   213
	 * for "Show Source.."- and "Show Method.."-actions. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   214
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   215
	private Object mostRecentlySelectedComponentNode = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   216
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   217
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   218
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   219
	 * The constructor.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   220
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   221
	public MainView() {		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   222
		setTitleToolTip(ProductInfoRegistry.getProductName());
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
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   226
	 * This is a callback that will allow us
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   227
	 * to create the componentTreeViewer and initialize it.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   228
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   229
	public void createPartControl(Composite parent) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   230
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   231
		// Creating commonly used data structures
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   232
		importFunctionsArrayList = new ArrayList<ImportFunctionData>();								
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   233
		exportFunctionsArrayList = new ArrayList<ExportFunctionData>();								
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   234
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   235
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   236
		// Actions invoked by content providers may set enable/disable
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   237
		// states for the actions, therefore all the action has to be
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   238
		// created before creating the controls. This makes sure that
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   239
		// it is safe to refer to all the actions after this point.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   240
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   241
		createOnlyMainViewDependentActions();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   242
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   243
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   244
		// Creating controls
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
		// The left side contains component hierarchy tree view
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   248
		SashForm componentHierarchySashForm = new SashForm(parent, SWT.HORIZONTAL);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   249
		createComponentTreeViewControl(componentHierarchySashForm);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   250
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   251
		// The right side contains tabbed panes for showing...
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   252
		CTabFolder sidePaneTabFolder = new CTabFolder(componentHierarchySashForm, SWT.BOTTOM);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   253
		//... parent imported functions
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   254
		createImportFunctionsTabControl(sidePaneTabFolder);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   255
		// ...exported functions for the selected module
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   256
		createExportFunctionsTabControl(sidePaneTabFolder);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   257
		//...component properties
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   258
		createComponentPropertiesTabControl(sidePaneTabFolder);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   259
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   260
		// Default selection for tab folder
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   261
		sidePaneTabFolder.setSelection(importFunctionsTab);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   262
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   263
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   264
		// Doing other initializations that may refer to the component
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   265
		// that has been created above.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   266
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   267
		hookContextMenu();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   268
		contributeToActionBars();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   269
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   270
		// Adding listeners
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   271
		componentTreeViewer.getControl().addKeyListener(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   272
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   273
		// Setting context help IDs		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   274
	    AppDepPlugin.setContextSensitiveHelpID(componentTreeViewer.getControl(), 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   275
	    		AppDepHelpContextIDs.APPDEP_MAIN_VIEW);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   276
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   277
	    AppDepPlugin.setContextSensitiveHelpID(importFunctionsViewer.getTableInstance(), 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   278
	    		AppDepHelpContextIDs.APPDEP_IMPORTED_FUNCTIONS);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   279
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   280
	    AppDepPlugin.setContextSensitiveHelpID(exportFunctionsViewer.getTableInstance(), 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   281
	    		AppDepHelpContextIDs.APPDEP_EXPORTED_FUNCTIONS);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   282
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   283
	    AppDepPlugin.setContextSensitiveHelpID(componentPropertiesViewer.getTable(), 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   284
	    		AppDepHelpContextIDs.APPDEP_PROPERTIES);		
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
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   288
	 * Creates component properties tab.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   289
	 * @param sidePaneTabFolder Parent tab folder.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   290
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   291
	private void createComponentPropertiesTabControl(CTabFolder sidePaneTabFolder) {		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   292
		componentPropertiesSashForm = new SashForm(sidePaneTabFolder, SWT.VERTICAL);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   293
		componentPropertiesTab = new CTabItem(sidePaneTabFolder, SWT.NONE);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   294
		componentPropertiesTab.setControl(componentPropertiesSashForm);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   295
		componentPropertiesTab.setText(Messages.getString("MainView.ComponentProperties_TabTitle")); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   296
		// and viewer for those
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   297
		componentPropertiesViewer = createComponentPropertiesTableViewer(componentPropertiesSashForm);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   298
		// Creating pop-up menu actions that require the existence of componentPropertiesViewer
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   299
		createComponentPropertiesTabPopUpMenuActions();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   300
		componentPropertiesTabContentProvider = new MainViewComponentPropertiesTabContentProvider(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   301
		componentPropertiesViewer.setContentProvider(componentPropertiesTabContentProvider);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   302
		componentPropertiesViewer.setLabelProvider(new MainViewComponentPropertiesTabLabelProvider());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   303
		componentPropertiesViewer.setInput(componentPropertiesTabContentProvider);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   304
		componentPropertiesViewer.setSorter(new PropertyDataSorter());
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
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   308
	 * Creates export functions tab.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   309
	 * @param sidePaneTabFolder Parent tab folder.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   310
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   311
	private void createExportFunctionsTabControl(CTabFolder sidePaneTabFolder) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   312
		SashForm exportFunctionsSashForm = new SashForm(sidePaneTabFolder, SWT.VERTICAL);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   313
		exportFunctionsTab = new CTabItem(sidePaneTabFolder, SWT.NONE);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   314
		exportFunctionsTab.setControl(exportFunctionsSashForm);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   315
		exportFunctionsTab.setText(Messages.getString("MainView.ExportedFunctions_TabTitle"));		 //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   316
		// and viewer for those
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   317
		exportFunctionsViewer = createExportFunctionsTableViewer(exportFunctionsSashForm);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   318
		// Creating pop-up menu actions that require the existence of exportFunctionsViewer
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   319
		createExportFunctionsTabPopUpMenuActions();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   320
		exportFunctionsTabContentProvider = new MainViewExportFunctionsTabContentProvider(exportFunctionsArrayList);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   321
		exportFunctionsViewer.getHostingViewer().setContentProvider(exportFunctionsTabContentProvider);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   322
		exportFunctionsViewer.getHostingViewer().setLabelProvider(new MainViewExportFunctionsTabLabelProvider());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   323
		exportFunctionsViewer.getHostingViewer().setInput(exportFunctionsTabContentProvider);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   324
		exportFunctionsViewer.getHostingViewer().setSorter(new ExportFunctionDataSorter());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   325
		ExportedFunctionsTabSelectionChangedListener selListener = new ExportedFunctionsTabSelectionChangedListener(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   326
		exportFunctionsViewer.getHostingViewer().addSelectionChangedListener(selListener);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   327
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   328
	
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
	 * Creates import functions tab.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   332
	 * @param sidePaneTabFolder Parent tab folder.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   333
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   334
	private void createImportFunctionsTabControl(CTabFolder sidePaneTabFolder) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   335
		SashForm importFunctionsSashForm = new SashForm(sidePaneTabFolder, SWT.VERTICAL);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   336
		importFunctionsTab = new CTabItem(sidePaneTabFolder, SWT.NONE);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   337
		importFunctionsTab.setControl(importFunctionsSashForm);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   338
		importFunctionsTab.setText(Messages.getString("MainView.ImportedFunctions_TabTitle"));		 //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   339
		// and viewer for those
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   340
		importFunctionsViewer = createImportFunctionsTableViewer(importFunctionsSashForm);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   341
		// Creating pop-up menu actions that require the existence of importFunctionsViewer
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   342
		createImportFunctionsTabPopUpMenuActions();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   343
		importFunctionsTabContentProvider = new MainViewImportFunctionsTabContentProvider(importFunctionsArrayList);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   344
		importFunctionsViewer.getHostingViewer().setContentProvider(importFunctionsTabContentProvider);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   345
		importFunctionsViewer.getHostingViewer().setLabelProvider(new MainViewImportFunctionsTabLabelProvider());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   346
		importFunctionsViewer.getHostingViewer().setInput(importFunctionsTabContentProvider);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   347
		importFunctionsViewer.getHostingViewer().setSorter(new ImportFunctionDataSorter());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   348
		ImportedFunctionsTabSelectionChangedListener selListener = new ImportedFunctionsTabSelectionChangedListener(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   349
		importFunctionsViewer.getHostingViewer().addSelectionChangedListener(selListener);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   350
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   351
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   352
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   353
	 * Creates component tree view control.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   354
	 * @param componentHierarchySashForm Parent SashForm for the tree view control.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   355
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   356
	private void createComponentTreeViewControl(SashForm componentHierarchySashForm) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   357
		componentTreeViewer = new TreeViewer(componentHierarchySashForm, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   358
		drillDownAdapter = new DrillDownAdapter(componentTreeViewer);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   359
		compTreeViewerContentProv = new MainViewComponentTreeContentProvider(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   360
		componentTreeViewer.setContentProvider(compTreeViewerContentProv);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   361
		componentTreeViewer.setLabelProvider(new MainViewComponentTreeLabelProvider());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   362
		componentTreeViewer.setInput(compTreeViewerContentProv.getInput());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   363
		componentTreeViewer.addDoubleClickListener(new MainViewDoubleClickListener(this, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   364
																				   drillDownAdapter));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   365
		ISelectionChangedListener selChangedListener 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   366
									= new MainViewSelectionChangedListener(this, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   367
																		   importFunctionsArrayList,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   368
																		   exportFunctionsArrayList);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   369
		componentTreeViewer.addSelectionChangedListener(selChangedListener);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   370
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   371
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   372
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   373
	 * Creates table viewer for import functions tab item. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   374
	 * @return New <code>S60ToolsTable</code> object instance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   375
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   376
	private S60ToolsTable createImportFunctionsTableViewer(Composite parent) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   377
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   378
		ArrayList<S60ToolsTableColumnData> columnDataArr = new ArrayList<S60ToolsTableColumnData>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   379
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   380
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   381
		// NOTE: Column indices must start from zero (0) and
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   382
		// the columns must be added in ascending numeric
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   383
		// order.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   384
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   385
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   386
		columnDataArr.add(new S60ToolsTableColumnData(Messages.getString("MainView.Ordinal_TableColumnTitle"), //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   387
														60,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   388
														ImportFunctionData.ORDINAL_COLUMN_INDEX,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   389
														ImportFunctionDataSorter.CRITERIA_ORDINAL));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   390
		columnDataArr.add(new S60ToolsTableColumnData(Messages.getString("MainView.Name_TableColumnTitle"), //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   391
														340,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   392
														ImportFunctionData.NAME_COLUMN_INDEX,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   393
														ImportFunctionDataSorter.CRITERIA_NAME, true));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   394
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   395
		columnDataArr.add(new S60ToolsTableColumnData(Messages.getString("MainView.Offset_TableColumnTitle"), //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   396
														60,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   397
														ImportFunctionData.OFFSET_COLUMN_INDEX,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   398
														ImportFunctionDataSorter.CRITERIA_OFFSET));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   399
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   400
		S60ToolsTableColumnData[] arr 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   401
				= columnDataArr.toArray(
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   402
									   new S60ToolsTableColumnData[0]);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   403
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   404
		S60ToolsTable tbl = S60ToolsTableFactory.create(parent, arr, 1);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   405
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   406
		TableViewer tblViewer = new TableViewer(tbl.getTableInstance());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   407
		tbl.setHostingViewer(tblViewer);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   408
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   409
		return tbl;
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
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   413
	 * Creates table viewer for export functions tab item. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   414
	 * @return New <code>S60ToolsTable</code> object instance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   415
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   416
	private S60ToolsTable createExportFunctionsTableViewer(Composite parent) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   417
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   418
		ArrayList<S60ToolsTableColumnData> columnDataArr = new ArrayList<S60ToolsTableColumnData>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   419
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   420
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   421
		// NOTE: Column indices must start from zero (0) and
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   422
		// the columns must be added in ascending numeric
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   423
		// order.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   424
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   425
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   426
		columnDataArr.add(new S60ToolsTableColumnData(Messages.getString("MainView.Ordinal_TableColumnTitle"), //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   427
														60,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   428
														ExportFunctionData.ORDINAL_COLUMN_INDEX,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   429
														ExportFunctionDataSorter.CRITERIA_ORDINAL));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   430
		columnDataArr.add(new S60ToolsTableColumnData(Messages.getString("MainView.Name_TableColumnTitle"), //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   431
														340,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   432
														ExportFunctionData.NAME_COLUMN_INDEX,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   433
														ExportFunctionDataSorter.CRITERIA_NAME, true));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   434
				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   435
		S60ToolsTableColumnData[] arr 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   436
				= columnDataArr.toArray(
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   437
									   new S60ToolsTableColumnData[0]);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   438
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   439
		S60ToolsTable tbl = S60ToolsTableFactory.create(parent, arr, 1);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   440
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   441
		TableViewer tblViewer = new TableViewer(tbl.getTableInstance());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   442
		tbl.setHostingViewer(tblViewer);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   443
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   444
		return tbl;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   445
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   446
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   447
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   448
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   449
	 * Creates table viewer for component properties tab item. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   450
	 * @return New <code>TableViewer</code> object instance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   451
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   452
	private TableViewer createComponentPropertiesTableViewer(Composite parent) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   453
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   454
		ArrayList<S60ToolsTableColumnData> columnDataArr = new ArrayList<S60ToolsTableColumnData>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   455
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   456
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   457
		// NOTE: Column indices must start from zero (0) and
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   458
		// the columns must be added in ascending numeric
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   459
		// order.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   460
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   461
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   462
		columnDataArr.add(new S60ToolsTableColumnData(Messages.getString("MainView.Property_TableColumnTitle"), //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   463
														80,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   464
														ComponentPropertiesData.PROPERTY_COLUMN_INDEX,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   465
														PropertyDataSorter.CRITERIA_PROPERTY));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   466
		columnDataArr.add(new S60ToolsTableColumnData(Messages.getString("MainView.Value_TableColumnTitle"), //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   467
														380,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   468
														ComponentPropertiesData.VALUE_COLUMN_INDEX,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   469
														PropertyDataSorter.CRITERIA_VALUE));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   470
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   471
		S60ToolsTableColumnData[] arr 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   472
				= columnDataArr.toArray(
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   473
									   new S60ToolsTableColumnData[0]);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   474
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   475
		S60ToolsTable tbl = S60ToolsTableFactory.create(parent, arr);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   476
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   477
		TableViewer tblViewer = new TableViewer(tbl.getTableInstance());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   478
		tbl.setHostingViewer(tblViewer);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   479
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   480
		return tblViewer;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   481
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   482
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   483
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   484
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   485
	 * Hooks view's context menu.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   486
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   487
	private void hookContextMenu() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   488
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   489
		// Context menu for tree viewer
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   490
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   491
		MenuManager menuMgr = new MenuManager("#TreeViewPopupMenu"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   492
		menuMgr.setRemoveAllWhenShown(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   493
		menuMgr.addMenuListener(new IMenuListener() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   494
			public void menuAboutToShow(IMenuManager manager) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   495
				MainView.this.fillTreeViewContextMenu(manager);
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
		Menu menu = menuMgr.createContextMenu(componentTreeViewer.getControl());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   499
		componentTreeViewer.getControl().setMenu(menu);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   500
		getSite().registerContextMenu(menuMgr, componentTreeViewer);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   501
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   502
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   503
		// Context menu for import functions pane
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   504
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   505
		MenuManager menuMgr2 = new MenuManager("#ImportFunctionsPopupMenu"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   506
		menuMgr2.setRemoveAllWhenShown(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   507
		menuMgr2.addMenuListener(new IMenuListener() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   508
			public void menuAboutToShow(IMenuManager manager) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   509
				MainView.this.fillImportFunctionsTabContextMenu(manager);
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
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   513
		Menu menu2 = menuMgr2.createContextMenu(importFunctionsViewer.getHostingViewer().getControl());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   514
		importFunctionsViewer.getHostingViewer().getControl().setMenu(menu2);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   515
		getSite().registerContextMenu(menuMgr2, importFunctionsViewer.getHostingViewer());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   516
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   517
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   518
		// Context menu for export functions pane
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   519
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   520
		MenuManager menuMgr3 = new MenuManager("#ExportFunctionsPopupMenu"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   521
		menuMgr3.setRemoveAllWhenShown(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   522
		menuMgr3.addMenuListener(new IMenuListener() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   523
			public void menuAboutToShow(IMenuManager manager) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   524
				MainView.this.fillExportFunctionsTabContextMenu(manager);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   525
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   526
		});
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   527
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   528
		Menu menu3 = menuMgr3.createContextMenu(exportFunctionsViewer.getHostingViewer().getControl());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   529
		exportFunctionsViewer.getHostingViewer().getControl().setMenu(menu3);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   530
		getSite().registerContextMenu(menuMgr3, exportFunctionsViewer.getHostingViewer());
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
		// Context menu for component properties pane
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   534
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   535
		MenuManager menuMgr4 = new MenuManager("#ComponentPropertiesPopupMenu"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   536
		menuMgr4.setRemoveAllWhenShown(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   537
		menuMgr4.addMenuListener(new IMenuListener() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   538
			public void menuAboutToShow(IMenuManager manager) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   539
				MainView.this.fillComponentPropertiesTabContextMenu(manager);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   540
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   541
		});
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   542
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   543
		Menu menu4 = menuMgr4.createContextMenu(componentPropertiesViewer.getControl());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   544
		componentPropertiesViewer.getControl().setMenu(menu4);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   545
		getSite().registerContextMenu(menuMgr4, componentPropertiesViewer);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   546
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   547
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   548
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   549
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   550
	 * Contributes to view's main menu and toolbar.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   551
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   552
	private void contributeToActionBars() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   553
		IActionBars bars = getViewSite().getActionBars();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   554
		fillViewPullDownMenu(bars.getMenuManager());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   555
		fillViewToolBar(bars.getToolBarManager());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   556
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   557
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   558
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   559
	 * Fills view's main menu.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   560
	 * @param manager Menu manager.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   561
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   562
	private void fillViewPullDownMenu(IMenuManager manager) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   563
		manager.add(actionSelectNewSDK);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   564
		manager.add(actionSelectNewRootComponent);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   565
		manager.add(actionCacheUpdate);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   566
		manager.add(addSisFilesAndUpdateCache);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   567
		manager.add(new Separator());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   568
		manager.add(actionExpandAll);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   569
		manager.add(actionCollapseAll);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   570
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   571
		// Finally updating action states
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   572
		updateViewActionEnabledStates();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   573
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   574
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   575
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   576
	 * Checks if given node is parent node.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   577
	 * @return <code>true</code> if parent node, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   578
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   579
	private boolean isParentNode(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   580
		Object obj = getComponentTreeSelectedElement();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   581
		if(obj != null &&  obj instanceof ComponentParentNode){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   582
			return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   583
		}else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   584
			return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   585
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   586
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   587
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   588
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   589
	 * Fills tree view's context menu.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   590
	 * @param manager Menu manager.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   591
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   592
	private void fillTreeViewContextMenu(IMenuManager manager) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   593
		manager.add(actionSetAsNewRoot);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   594
		manager.add(actionComponentIsUsedBy);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   595
		manager.add(actionComponentSearch);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   596
		manager.add(actionComponentFind);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   597
		manager.add(actionLocateComponent);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   598
		//Can't export only LeafNode
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   599
		if(isParentNode()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   600
			manager.add(actionExportReport);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   601
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   602
		manager.add(new Separator());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   603
		manager.add(actionExpandSubtree);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   604
		manager.add(actionExpandAll);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   605
		manager.add(actionCollapseAll);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   606
		manager.add(new Separator());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   607
		manager.add(actionComponentProperties);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   608
		manager.add(new Separator());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   609
		drillDownAdapter.addNavigationActions(manager);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   610
		// Other plug-ins can contribute there actions here
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   611
		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   612
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   613
		// Finally updating action states
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   614
		updateViewActionEnabledStates();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   615
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   616
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   617
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   618
	 * Fills context menu for import functions tab.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   619
	 * @param manager
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   620
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   621
	private void fillImportFunctionsTabContextMenu(IMenuManager manager) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   622
		manager.add(actionImportFunctionIsUsedBy);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   623
		manager.add(actionImportShowSource);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   624
		manager.add(actionImportShowSourceInProject);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   625
		manager.add(actionImportShowMethodLoc);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   626
		manager.add(actionImportFunctionSearch);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   627
		manager.add(actionImportFunctionDataCopy);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   628
		manager.add(actionSelectAllImportFunctions);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   629
		// Other plug-ins can contribute there actions here
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   630
		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   631
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   632
		// Finally updating action states
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   633
		updateViewActionEnabledStates();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   634
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   635
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   636
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   637
	 * Fills context menu for export functions tab.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   638
	 * @param manager Menu manager.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   639
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   640
	private void fillExportFunctionsTabContextMenu(IMenuManager manager) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   641
		manager.add(actionExportFunctionIsUsedBy);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   642
		manager.add(actionExportShowSource);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   643
		manager.add(actionExportShowSourceInProject);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   644
		manager.add(actionExportFunctionSearch);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   645
		manager.add(actionExportFunctionDataCopy);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   646
		manager.add(actionSelectAllExportFunctions);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   647
		// Other plug-ins can contribute there actions here
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   648
		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   649
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   650
		// Finally updating action states
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   651
		updateViewActionEnabledStates();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   652
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   653
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   654
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   655
	 * Fills context menu for component properties tab. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   656
	 * @param manager Menu manager.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   657
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   658
	private void fillComponentPropertiesTabContextMenu(IMenuManager manager) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   659
		manager.add(actionCompPropertyDataCopy);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   660
		manager.add(actionSelectAllComponentProperties);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   661
		// Other plug-ins can contribute there actions here
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   662
		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   663
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   664
		// Finally updating action states
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   665
		updateViewActionEnabledStates();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   666
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   667
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   668
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   669
	 * Fills toolbar.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   670
	 * @param manager Toolbar manager.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   671
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   672
	private void fillViewToolBar(IToolBarManager manager) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   673
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   674
		manager.add(actionSelectNewSDK);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   675
		manager.add(actionSelectNewRootComponent);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   676
		manager.add(actionCacheUpdate);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   677
		manager.add(addSisFilesAndUpdateCache);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   678
		manager.add(actionComponentFind);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   679
		manager.add(actionComponentSearch);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   680
		manager.add(new Separator());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   681
		manager.add(actionExpandAll);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   682
		manager.add(actionCollapseAll);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   683
		manager.add(new Separator());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   684
		drillDownAdapter.addNavigationActions(manager);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   685
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   686
		// Finally updating action states
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   687
		updateViewActionEnabledStates();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   688
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   689
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   690
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   691
	 * Creates context menu actions for import functions tab.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   692
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   693
	private void createImportFunctionsTabPopUpMenuActions(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   694
		actionImportFunctionIsUsedBy = new FunctionIsUsedByImportFunctionMainViewAction(this);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   695
		actionImportShowSource = new ShowSourceFileImportFunctionMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   696
		actionImportShowSourceInProject = new ShowSourceFileAndCreateProjectImportFunctionMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   697
		actionImportShowMethodLoc = new ShowMethodCallLocationsImportFunctionMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   698
		ImportFunctionsClipboardCopyHandler funcCopyHandler = new ImportFunctionsClipboardCopyHandler();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   699
		actionImportFunctionDataCopy = new CopyFromTableViewerAction(importFunctionsViewer.getHostingViewer(),
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   700
                                                               new ICopyActionHandler[]{ funcCopyHandler }
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   701
																);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   702
		actionSelectAllImportFunctions = new SelectAllFromTableViewerMainViewAction(this, importFunctionsViewer.getHostingViewer());		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   703
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   704
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   705
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   706
	 * Creates context menu actions for export functions tab.
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 createExportFunctionsTabPopUpMenuActions(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   709
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   710
		actionExportFunctionIsUsedBy = new FunctionIsUsedByExportFunctionMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   711
		actionExportShowSource = new ShowSourceFileExportFunctionMainViewAction(this);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   712
		actionExportShowSourceInProject = new ShowSourceFileAndCreateProjectExportFunctionMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   713
		ExportFunctionsClipboardCopyHandler funcCopyHandler = new ExportFunctionsClipboardCopyHandler();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   714
		actionExportFunctionDataCopy = new CopyFromTableViewerAction(exportFunctionsViewer.getHostingViewer(),
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   715
                                                               new ICopyActionHandler[]{ funcCopyHandler }
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   716
																);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   717
		actionSelectAllExportFunctions = new SelectAllFromTableViewerMainViewAction(this, exportFunctionsViewer.getHostingViewer());		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   718
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   719
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   720
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   721
	 * Creates context menu actions for component properties tab.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   722
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   723
	private void createComponentPropertiesTabPopUpMenuActions(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   724
		ComponentPropertyTabClipboardCopyHandler propCopyHandler = new ComponentPropertyTabClipboardCopyHandler();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   725
		actionCompPropertyDataCopy = new CopyFromTableViewerAction(componentPropertiesViewer,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   726
                                                               new ICopyActionHandler[]{ propCopyHandler }
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   727
																);	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   728
		actionSelectAllComponentProperties = new SelectAllFromTableViewerMainViewAction(this, componentPropertiesViewer);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   729
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   730
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   731
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   732
	 * Creates those actions that should be created very early in view creation
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   733
	 * in order to be able to set their enable/disable states.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   734
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   735
	private void createOnlyMainViewDependentActions() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   736
		actionSetAsNewRoot = new SetNewRootMainViewAction(this); 		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   737
		actionComponentIsUsedBy = new ComponentIsUsedByMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   738
		actionComponentSearch = new SearchMainViewAction(this, SearchConstants.SearchType.SEARCH_COMPONENTS);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   739
		actionImportFunctionSearch = new SearchMainViewAction(this, SearchConstants.SearchType.SEARCH_IMPORTED_FUNCTIONS);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   740
		actionExportFunctionSearch = new SearchMainViewAction(this, SearchConstants.SearchType.SEARCH_EXPORTED_FUNCTION);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   741
		actionComponentFind = new FindMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   742
		actionLocateComponent = new LocateComponentMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   743
		actionExpandAll = new ExpandAllMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   744
		actionCollapseAll =  new CollapseAllMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   745
		actionExpandSubtree = new ExpandSubtreeMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   746
		actionSelectNewRootComponent = new SelectNewRootComponentMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   747
		actionSelectNewSDK = new SelectNewSDKMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   748
		actionCacheUpdate = new CacheUpdateMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   749
		addSisFilesAndUpdateCache = new AddSisAndUpdateCacheMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   750
		actionComponentProperties = new ComponentPropertiesMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   751
		actionExportReport =  new ExportReportMainViewAction(this);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   752
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   753
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   754
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   755
	 * Passing the focus request to the componentTreeViewer's control.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   756
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   757
	public void setFocus() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   758
		componentTreeViewer.getControl().setFocus();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   759
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   760
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   761
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   762
	 * @return Returns the componentTreeViewer.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   763
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   764
	public TreeViewer getComponentTreeViewer() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   765
		return componentTreeViewer;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   766
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   767
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   768
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   769
	 * Allows other classes to update content description.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   770
	 * @param newContentDescription New description.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   771
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   772
	public void updateDescription(String newContentDescription){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   773
		setContentDescription(newContentDescription);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   774
		IToolBarManager tbManager = getViewSite().getActionBars().getToolBarManager();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   775
		tbManager.update(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   776
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   777
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   778
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   779
	 * Refereshes view contents.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   780
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   781
	public void refresh(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   782
		componentTreeViewer.refresh();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   783
		importFunctionsViewer.refreshHostingViewer(importFunctionsArrayList.size());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   784
		exportFunctionsViewer.refreshHostingViewer(exportFunctionsArrayList.size());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   785
		componentPropertiesViewer.refresh();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   786
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   787
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   788
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   789
	 * @return Returns the isDependencySearchOngoing.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   790
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   791
	static public boolean isDependencySearchOngoing() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   792
		return isDependencySearchOngoing;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   793
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   794
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   795
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   796
	 * Informs to main view that search was started.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   797
	 * Toolbar is updated accordingly.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   798
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   799
	public void searchStarted() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   800
		isDependencySearchOngoing = true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   801
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   802
		// Updating action states
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   803
		updateViewActionEnabledStates();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   804
	}
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
	 * Informs to main view that search was ended.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   808
	 * Toolbar is updated accordingly.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   809
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   810
	public void searchCompleted() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   811
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   812
		isDependencySearchOngoing = false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   813
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   814
		// Updating action states
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   815
		updateViewActionEnabledStates();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   816
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   817
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   818
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   819
	 * Can be used to notify view that it's input data have changed.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   820
	 * Triggers actions for refreshing view contents properly. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   821
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   822
	public void inputUpdated() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   823
		if(isDependencySearchOngoing){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   824
			// Aborting possible ongoing background searches
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   825
			MainViewDataPopulator.abortCurrentSearch();			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   826
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   827
		componentTreeViewer.setInput(compTreeViewerContentProv.getInput());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   828
		// The previously shown function lists are no more valid
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   829
		importFunctionsArrayList.clear();	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   830
		exportFunctionsArrayList.clear();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   831
		refresh();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   832
		// Expanding tree view enabling the showing of 1st level of the
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   833
		// used components (that is actually 2nd level in the tree).
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   834
		componentTreeViewer.expandToLevel(2);	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   835
	    componentTreeViewer.getTree().notifyListeners(SWT.Selection, new Event());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   836
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   837
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   838
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   839
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   840
	 * Checks if the root node is selected.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   841
	 * @return Returns <code>true</code> if root node is selected
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   842
	 *         otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   843
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   844
	public boolean isRootNodeSelected(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   845
		Object obj = getComponentTreeSelectedElement();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   846
		if(obj != null){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   847
			if(obj instanceof ComponentParentNode){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   848
				ComponentParentNode parentNode = (ComponentParentNode) obj;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   849
				if(parentNode.isRootComponent()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   850
					return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   851
				}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   852
			}			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   853
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   854
		return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   855
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   856
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   857
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   858
	 * Checks if the selected component has subtree.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   859
	 * @return Returns <code>true</code> if selected component has subtree,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   860
	 *         otherwise <code>false</code> (also false returned in error situations).
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   861
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   862
	public boolean hasSelectedComponentSubtree(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   863
		Object obj = getComponentTreeSelectedElement();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   864
		if(obj != null){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   865
			if(obj instanceof ComponentParentNode){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   866
				return componentTreeViewer.isExpandable(obj);
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
		return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   870
	}	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   871
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   872
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   873
	 * Checks if the selected component exists.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   874
	 * @return Returns <code>true</code> if selected component exists,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   875
	 *         otherwise <code>false</code> (also false returned in error situations).
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   876
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   877
	public boolean selectedComponentExist(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   878
		Object obj = getComponentTreeSelectedElement();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   879
		ComponentParentNode nodeToBeChecked;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   880
		if(obj != null){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   881
			if(obj instanceof ComponentParentNode){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   882
				nodeToBeChecked = (ComponentParentNode) obj;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   883
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   884
			else if(obj instanceof ComponentLinkLeafNode){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   885
				ComponentLinkLeafNode link = (ComponentLinkLeafNode) obj;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   886
				nodeToBeChecked = link.getReferredComponent();				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   887
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   888
			else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   889
				return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   890
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   891
			// Checking if component exists in cache
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   892
			if(!nodeToBeChecked.isMissing()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   893
				return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   894
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   895
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   896
		return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   897
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   898
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   899
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   900
	 * Returns currently selected element from 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   901
	 * component tree
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   902
	 * @return Returns currently selected element or <code>null</code> 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   903
	 *         if there are no selection made.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   904
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   905
	public Object getComponentTreeSelectedElement() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   906
		ISelection selection = componentTreeViewer.getSelection();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   907
		Object obj = ((IStructuredSelection)selection).getFirstElement();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   908
		return obj;
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
	 * Returns currently selected element among 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   913
	 * the imported functions.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   914
	 * @return Returns currently selected element or <code>null</code> 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   915
	 *         if there are no selection made.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   916
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   917
	public Object getSelectedImportFunction() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   918
		ISelection selection = importFunctionsViewer.getHostingViewer().getSelection();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   919
		Object obj = ((IStructuredSelection)selection).getFirstElement();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   920
		return obj;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   921
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   922
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   923
	/* (non-Javadoc)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   924
	 * @see org.eclipse.ui.part.ViewPart#init(org.eclipse.ui.IViewSite, org.eclipse.ui.IMemento)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   925
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   926
	@Override
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   927
	public void init(IViewSite site, IMemento memento) throws PartInitException {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   928
		super.init(site, memento);
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
	/* (non-Javadoc)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   932
	 * @see org.eclipse.ui.part.WorkbenchPart#dispose()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   933
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   934
	public void dispose() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   935
		if(isDependencySearchOngoing){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   936
			// Aborting possible ongoing background searches
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   937
			MainViewDataPopulator.abortCurrentSearch();			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   938
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   939
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   940
		super.dispose();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   941
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   942
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   943
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   944
	 * @return Returns the selectedComponentPropertiesData.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   945
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   946
	public ComponentPropertiesData getSelectedComponentPropertiesData() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   947
		return selectedComponentPropertiesData;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   948
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   949
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   950
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   951
	 * @param selectedComponentPropertiesData The selectedComponentPropertiesData to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   952
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   953
	public void setSelectedComponentPropertiesData(
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   954
			ComponentPropertiesData selectedComponentPropertiesData) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   955
		this.selectedComponentPropertiesData = selectedComponentPropertiesData;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   956
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   957
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   958
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   959
	 * @return Returns the importFunctionsViewer.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   960
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   961
	public TableViewer getImportFunctionsViewer() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   962
		return importFunctionsViewer.getHostingViewer();
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
	 * Updates context menu for import functions tab.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   967
	 * @param isMultipleSelection <code>true</code> in case of multiple selection
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   968
	 *                            otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   969
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   970
	public void updateImportFunctionsContextMenuStates(boolean isMultipleSelection) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   971
		if(isMultipleSelection){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   972
			actionImportFunctionIsUsedBy.setEnabled(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   973
			enableImportShowSourceAction();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   974
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   975
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   976
			actionImportFunctionIsUsedBy.setEnabled(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   977
			disableImportShowSourceAction();
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
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   982
	 * Enables show source functionality
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 void enableImportShowSourceAction() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   985
		actionImportShowSource.setEnabled(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   986
		actionImportShowMethodLoc.setEnabled(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   987
		actionImportShowSourceInProject.setEnabled(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   988
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   989
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   990
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   991
	 * Disables show source functionality
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   992
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   993
	public void disableImportShowSourceAction() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   994
		actionImportShowSource.setEnabled(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   995
		actionImportShowMethodLoc.setEnabled(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   996
		actionImportShowSourceInProject.setEnabled(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   997
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   998
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   999
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1000
	 * Disables Locate source action.
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 void disableLocateComponentAction(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1003
		actionLocateComponent.setEnabled(false);			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1004
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1005
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1006
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1007
	 * Enables Locate source action.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1008
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1009
	public void enableLocateComponentAction(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1010
		actionLocateComponent.setEnabled(true);
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
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1014
	 * Disables actionSetAsNewRoot action.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1015
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1016
	public void disableSetAsNewRootAction(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1017
		actionSetAsNewRoot.setEnabled(false);			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1018
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1019
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1020
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1021
	 * Enables actionSetAsNewRoot action.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1022
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1023
	public void enableSetAsNewRootAction(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1024
		actionSetAsNewRoot.setEnabled(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1025
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1026
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1027
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1028
	 * Enables to get reference of the main view
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1029
	 * from the classes that do not actually
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1030
	 * have reference to the main view instance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1031
	 * This method opens activates/opens up the 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1032
	 * view if it was not visible.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1033
	 * @throws PartInitException 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1034
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1035
	public static MainView getViewInstance() throws PartInitException{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1036
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1037
		IWorkbenchPage page = AppDepPlugin.getCurrentlyActivePage();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1038
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1039
		boolean viewAlreadyVisible = false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1040
		IViewPart viewPart = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1041
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1042
		// Checking if view is already open
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1043
		IViewReference[] viewRefs = page.getViewReferences();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1044
		for (int i = 0; i < viewRefs.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1045
			IViewReference reference = viewRefs[i];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1046
			String id = reference.getId();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1047
			if(id.equalsIgnoreCase(MainView.ID)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1048
				viewAlreadyVisible = true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1049
				// Found, restoring the view
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1050
				viewPart = reference.getView(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1051
				page.activate(viewPart);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1052
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1053
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1054
		// View was not opened
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1055
		if(! viewAlreadyVisible){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1056
			viewPart = page.showView(MainView.ID);							
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1057
		}	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1058
		return ((MainView) viewPart);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1059
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1060
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1061
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1062
	 * Enables update request for the main view
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1063
	 * also from the classes that do not actually
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1064
	 * have reference to the main view instance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1065
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1066
	public static void update(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1067
		try {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1068
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1069
			getViewInstance().inputUpdated();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1070
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1071
		} catch (PartInitException e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1072
			e.printStackTrace();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1073
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1074
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1075
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1076
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1077
	 * Aborts currently ongoing search (if dependency search is ongoing).
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1078
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1079
	public static void abortCurrentlyOngoingSearches(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1080
		if(isDependencySearchOngoing){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1081
			MainViewDataPopulator.abortCurrentSearch();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1082
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1083
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1084
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1085
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1086
	 * Because Window's native table component does not support
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1087
	 * text wrapping, this method offers possibility to resize
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1088
	 * Value column according to data. Resizing brings about
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1089
	 * scroll bars that enable seeing of all the data.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1090
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1091
	public void performValueColumnPackToPropertiesTab(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1092
		Table table = componentPropertiesViewer.getTable();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1093
		TableColumn column = table.getColumn(ComponentPropertiesData.VALUE_COLUMN_INDEX);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1094
		column.pack();	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1095
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1096
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1097
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1098
	 * Updates context menu for export functions tab.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1099
	 * @param isMultipleSelection <code>true</code> in case of multiple selection
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1100
	 *                            otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1101
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1102
	public void updateExportFunctionsContextMenuStates(boolean isMultipleSelection) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1103
		if(isMultipleSelection){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1104
			actionExportFunctionIsUsedBy.setEnabled(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1105
			disableExportShowSourceAction();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1106
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1107
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1108
			actionExportFunctionIsUsedBy.setEnabled(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1109
			enableExportShowSourceAction();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1110
		}		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1111
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1112
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1113
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1114
	 * Enables show source functionality
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1115
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1116
	public void enableExportShowSourceAction() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1117
		actionExportShowSource.setEnabled(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1118
		actionExportShowSourceInProject.setEnabled(true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1119
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1120
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1121
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1122
	 * Disables show source functionality
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1123
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1124
	public void disableExportShowSourceAction() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1125
		actionExportShowSource.setEnabled(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1126
		actionExportShowSourceInProject.setEnabled(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1127
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1128
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1129
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1130
	 * @return Returns the exportFunctionsViewer.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1131
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1132
	public TableViewer getExportFunctionsViewer() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1133
		return exportFunctionsViewer.getHostingViewer();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1134
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1135
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1136
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1137
	 * Gets currently selected export function.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1138
	 * @return currently selected export function.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1139
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1140
	public Object getSelectedExportFunction() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1141
		ISelection selection = getExportFunctionsViewer().getSelection();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1142
		Object obj = ((IStructuredSelection)selection).getFirstElement();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1143
		return obj;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1144
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1145
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1146
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1147
	 * Gets the most recently selected component from tree view.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1148
	 * @return Returns the mostRecentlySelectedComponentNode.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1149
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1150
	public Object getMostRecentlySelectedComponentNode() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1151
		return mostRecentlySelectedComponentNode;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1152
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1153
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1154
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1155
	 * Sets the most recently selected component from tree view.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1156
	 * @param mostRecentlySelectedComponentNode The mostRecentlySelectedComponentNode to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1157
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1158
	public void setMostRecentlySelectedComponentNode(
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1159
			Object mostRecentlySelectedComponentNode) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1160
		this.mostRecentlySelectedComponentNode = mostRecentlySelectedComponentNode;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1161
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1162
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1163
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1164
	 * Gets current root component node.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1165
	 * @return Current root component node.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1166
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1167
	public ComponentParentNode getRootComponentNode() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1168
		return (ComponentParentNode) compTreeViewerContentProv.getRootComponentNode();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1169
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1170
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1171
	/* (non-Javadoc)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1172
	 * @see org.eclipse.swt.events.KeyListener#keyPressed(org.eclipse.swt.events.KeyEvent)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1173
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1174
	public void keyPressed(KeyEvent e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1175
		// Key presses are only enabled when there is no dependency search ongoing
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1176
		if(isDependencySearchOngoing){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1177
			String infoMsg = Messages.getString("MainView.KeyPresses_Disabled_While_Search_Is_Ongoing_InfoMsg"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1178
			new AppDepMessageBox(infoMsg, SWT.OK | SWT.ICON_INFORMATION).open();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1179
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1180
		else{			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1181
			//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1182
			//  Checking if Ctrl+F was pressed and triggering find action, if pressed
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1183
			//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1184
			final int CTRL_F = 0x6;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1185
			int charValue = e.character;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1186
			boolean ctrlFPressed = charValue == CTRL_F; // This should be enough
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1187
			boolean ctrlPressed = (e.stateMask & SWT.CTRL) != 0; // But still checking that Ctrl is also pressed
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1188
			if(ctrlPressed & ctrlFPressed){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1189
				// Triggering find action
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1190
				actionComponentFind.run();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1191
			}			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1192
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1193
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1194
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1195
	/* (non-Javadoc)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1196
	 * @see org.eclipse.swt.events.KeyListener#keyReleased(org.eclipse.swt.events.KeyEvent)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1197
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1198
	public void keyReleased(KeyEvent e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1199
		// Not needed, but has to be implemented
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1200
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1201
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1202
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1203
	 * Activates the given node in Main view's component tree.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1204
	 * The given node is set as current selection.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1205
	 * @param node Component node to be activated.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1206
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1207
	public void activateTreeViewComponent(ComponentNode node) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1208
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1209
		// Making sure that referred component can be found
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1210
		if(drillDownAdapter.canGoHome()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1211
			drillDownAdapter.goHome();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1212
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1213
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1214
		ProgrammaticSelection newSelection = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1215
		newSelection = new ProgrammaticSelection(
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1216
											new ComponentNode[]{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1217
																node
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1218
																}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1219
												);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1220
		getComponentTreeViewer().setSelection(newSelection, true);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1221
		refresh();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1222
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1223
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1224
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1225
	 * We will disable show source functionality for some "method" names,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1226
	 * which are no real method names. List for prefixes is stored in here and 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1227
	 * all clients of {@link MainView} can be used them. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1228
	 *
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1229
	 * @return the DISABLE_SHOW_SOURCE_PREFIXES
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1230
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1231
	public String[] getDisableShowSourcePrefixes() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1232
		return DISABLE_SHOW_SOURCE_PREFIXES;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1233
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1234
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1235
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1236
	 * Checks if the imported functions tab has currently any imported functions.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1237
	 * @return <code>true</code> if has, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1238
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1239
	private boolean hasImportFunctions() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1240
		return (importFunctionsArrayList.size() > 0);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1241
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1242
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1243
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1244
	 * Checks if the imported functions tab has currently any selections.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1245
	 * @return <code>true</code> if has, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1246
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1247
	private boolean hasImportFunctionSelection() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1248
		int selectionCount = importFunctionsSelectionCount();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1249
		return (selectionCount > 0);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1250
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1251
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1252
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1253
	 * Checks if only single imported functions is selected.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1254
	 * @return <code>true</code> if has, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1255
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1256
	private boolean hasImportFunctionSingleSelection() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1257
		int selectionCount = importFunctionsSelectionCount();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1258
		return (selectionCount == 1);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1259
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1260
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1261
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1262
	 * Gets import functions viewer selection count.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1263
	 * @return import functions viewer selection count.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1264
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1265
	private int importFunctionsSelectionCount() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1266
		return importFunctionsViewer.getSelectionCount();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1267
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1268
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1269
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1270
	 * Checks if all import functions has been selected.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1271
	 * @return <code>true</code> if all selected, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1272
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1273
	private boolean isAllImportFunctionsSelected() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1274
		return (importFunctionsArrayList.size() == importFunctionsSelectionCount());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1275
	}	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1276
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1277
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1278
	 * Checks if the exported functions tab has currently any exported functions.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1279
	 * @return <code>true</code> if has, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1280
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1281
	private boolean hasExportFunctions() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1282
		return (exportFunctionsArrayList.size() > 0);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1283
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1284
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1285
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1286
	 * Checks if the exported functions tab has currently any selections.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1287
	 * @return <code>true</code> if has, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1288
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1289
	private boolean hasExportFunctionSelection() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1290
		int selectionCount = exportFunctionsSelectionCount();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1291
		return (selectionCount > 0);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1292
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1293
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1294
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1295
	 * Checks if only single exported functions is selected.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1296
	 * @return <code>true</code> if has, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1297
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1298
	private boolean hasExportFunctionSingleSelection() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1299
		int selectionCount = exportFunctionsSelectionCount();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1300
		return (selectionCount == 1);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1301
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1302
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1303
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1304
	 * Gets export functions viewer selection count.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1305
	 * @return export functions viewer selection count.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1306
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1307
	private int exportFunctionsSelectionCount() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1308
		return exportFunctionsViewer.getSelectionCount();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1309
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1310
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1311
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1312
	 * Checks if all export functions has been selected.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1313
	 * @return <code>true</code> if all selected, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1314
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1315
	private boolean isAllExportFunctionsSelected() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1316
		return (exportFunctionsArrayList.size() == exportFunctionsSelectionCount());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1317
	}	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1318
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1319
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1320
	 * Checks if the component properties tab has currently any selections.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1321
	 * @return <code>true</code> if has, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1322
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1323
	private boolean hasCompPropertiesSelection() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1324
		int selectionCount = componentPropertiesSelectionCount();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1325
		return (selectionCount > 0);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1326
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1327
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1328
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1329
	 * Gets component properties viewer selection count.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1330
	 * @return component properties viewer selection count.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1331
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1332
	private int componentPropertiesSelectionCount() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1333
		return componentPropertiesViewer.getTable().getSelectionCount();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1334
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1335
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1336
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1337
	 * Checks if all component properties has been selected.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1338
	 * @return <code>true</code> if all selected, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1339
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1340
	private boolean isAllCompPropertiesSelected() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1341
		return (ComponentPropertiesData.DESCRIPT_ARR.length == componentPropertiesSelectionCount());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1342
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1343
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1344
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1345
	 * Checks if the component properties tab has currently any properties.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1346
	 * @return <code>true</code> if has, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1347
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1348
	private boolean hasCompProperties() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1349
		return (componentPropertiesViewer.getTable().getItemCount() > 0);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1350
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1351
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1352
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1353
	 * Sets enabled/disabled states for actions commands
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1354
	 * on this view, based on the current application state.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1355
	 * This method should be called whenever an operation is
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1356
	 * started or stopped that might have effect on action 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1357
	 * button states.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1358
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1359
	public void updateViewActionEnabledStates(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1360
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1361
		// Resolving current state		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1362
		boolean isRootComponentSelectedForAnalysis = AppDepSettings.isRootComponentSelectedForAnalysis();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1363
		boolean isValidComponentSelection = isRootComponentSelectedForAnalysis && (getComponentTreeSelectedElement() != null);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1364
		boolean isCurrentSelectionRootComponent = isRootNodeSelected();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1365
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1366
		// Main menu & toolbar & common actions
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1367
		setEnableState(actionSelectNewSDK, !isDependencySearchOngoing());		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1368
		setEnableState(actionSelectNewRootComponent, !isDependencySearchOngoing() && isRootComponentSelectedForAnalysis);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1369
		setEnableState(actionCacheUpdate, isRootComponentSelectedForAnalysis);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1370
		setEnableState(addSisFilesAndUpdateCache, isRootComponentSelectedForAnalysis);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1371
		setEnableState(actionComponentFind, isRootComponentSelectedForAnalysis);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1372
		setEnableState(actionComponentSearch, isRootComponentSelectedForAnalysis);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1373
		setEnableState(actionExpandAll, isRootComponentSelectedForAnalysis);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1374
		setEnableState(actionCollapseAll, isRootComponentSelectedForAnalysis);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1375
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1376
		// Tree view
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1377
		boolean selectedComponentExist = selectedComponentExist();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1378
		setEnableState(actionSetAsNewRoot, isValidComponentSelection && !isCurrentSelectionRootComponent && selectedComponentExist);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1379
		setEnableState(actionComponentIsUsedBy, isValidComponentSelection);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1380
		setEnableState(actionLocateComponent, isValidComponentSelection && !selectedComponentExist);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1381
		setEnableState(actionExportReport, isValidComponentSelection);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1382
		setEnableState(actionExpandSubtree, isValidComponentSelection && hasSelectedComponentSubtree());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1383
		setEnableState(actionComponentProperties, isValidComponentSelection && selectedComponentExist);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1384
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1385
		// Import function
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1386
		boolean isImportActionsEnabled = isValidComponentSelection && hasImportFunctions();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1387
		boolean hasImportFunctionSelection = isImportActionsEnabled && hasImportFunctionSelection();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1388
		boolean hasImportFunctionSingleSelection = isImportActionsEnabled && hasImportFunctionSingleSelection();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1389
		boolean isAllImportFunctionsSelected = isImportActionsEnabled && isAllImportFunctionsSelected();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1390
		setEnableState(actionImportFunctionIsUsedBy, hasImportFunctionSingleSelection);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1391
		setEnableState(actionImportShowSource, hasImportFunctionSingleSelection);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1392
		setEnableState(actionImportShowSourceInProject, hasImportFunctionSingleSelection);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1393
		setEnableState(actionImportShowMethodLoc, hasImportFunctionSingleSelection);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1394
		setEnableState(actionImportFunctionSearch, isImportActionsEnabled);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1395
		setEnableState(actionImportFunctionDataCopy, hasImportFunctionSelection);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1396
		setEnableState(actionSelectAllImportFunctions, isImportActionsEnabled && !isAllImportFunctionsSelected);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1397
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1398
		// Export functions
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1399
		boolean isExportActionsEnabled = isValidComponentSelection && hasExportFunctions();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1400
		boolean hasExportFunctionSelection = isExportActionsEnabled && hasExportFunctionSelection();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1401
		boolean hasExportFunctionSingleSelection = isExportActionsEnabled && hasExportFunctionSingleSelection();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1402
		boolean isAllExportFunctionsSelected = isExportActionsEnabled && isAllExportFunctionsSelected();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1403
		setEnableState(actionExportFunctionIsUsedBy, hasExportFunctionSingleSelection);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1404
		setEnableState(actionExportShowSource, hasExportFunctionSingleSelection);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1405
		setEnableState(actionExportShowSourceInProject, hasExportFunctionSingleSelection);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1406
		setEnableState(actionExportFunctionSearch, isExportActionsEnabled);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1407
		setEnableState(actionExportFunctionDataCopy, hasExportFunctionSelection);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1408
		setEnableState(actionSelectAllExportFunctions, isExportActionsEnabled && !isAllExportFunctionsSelected);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1409
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1410
		// Component properties
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1411
		boolean isCompPropActionsEnabled = isValidComponentSelection && hasCompProperties();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1412
		boolean hasCompPropertiesSelection = isCompPropActionsEnabled && hasCompPropertiesSelection();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1413
		boolean isAllCompPropertiesSelected = isCompPropActionsEnabled && isAllCompPropertiesSelected();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1414
		setEnableState(actionCompPropertyDataCopy, hasCompPropertiesSelection);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1415
		setEnableState(actionSelectAllComponentProperties, isCompPropActionsEnabled && !isAllCompPropertiesSelected);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1416
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1417
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1418
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1419
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1420
	 * Sets given enable state for an action if it is non <code>null</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1421
	 * @param action Action to set enable status for.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1422
	 * @param enableStatus <code>true</code> if enabled, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1423
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1424
	private void setEnableState(Action action, boolean enableStatus) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1425
		if(action != null){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1426
			action.setEnabled(enableStatus);			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1427
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1428
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1429
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1430
}