Issue #1192 Changed rename dialog to allow specifying a directory path along with the new file name. Made so directories can be attempted to be deleted as well. Cleaned up FileTreeView code so directory and file deletions show up in tree correctly

Change-Id: I3080a03fcbed0de39908945d899e0c8200c2dc9a

Former-commit-id: 5397776e07902b1deb68259128ae536fafa1d844
This commit is contained in:
Max Schenkelberg 2012-09-24 11:33:03 -05:00
parent 2606f968cb
commit adbeffbb25
14 changed files with 259 additions and 227 deletions

View file

@ -1895,12 +1895,6 @@
contextId="com.raytheon.uf.viz.d2d.ui"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="NUMPAD_DECIMAL"/>
<scheme
id="com.raytheon.viz.ui.awips.scheme"
name="AWIPS personality scheme"
parentId="org.eclipse.ui.defaultAcceleratorConfiguration">
</scheme>
</extension>
<extension
point="org.eclipse.ui.commands">

View file

@ -51,8 +51,8 @@ public class DerivParamLocalizationAdapter extends
// TODO: Think of other right click actions that might be desirable
if (selectedData.length == 1
&& selectedData[0].getClass() == FileTreeEntryData.class) {
menuMgr.add(new NewDerivedParameterAction());
return true;
IMenuManager newMenu = menuMgr.findMenuUsingPath(NEW_ID);
newMenu.add(new NewDerivedParameterAction());
}
return false;
}

View file

@ -49,7 +49,7 @@ public class NewDerivedParameterAction extends Action {
*
*/
public NewDerivedParameterAction() {
super("New...");
super("Derived Parameter...");
}
@Override

View file

@ -103,6 +103,7 @@ import com.raytheon.uf.viz.core.VizApp;
import com.raytheon.uf.viz.core.localization.LocalizationManager;
import com.raytheon.uf.viz.localization.LocalizationEditorInput;
import com.raytheon.uf.viz.localization.LocalizationPerspectiveUtils;
import com.raytheon.uf.viz.localization.adapter.LocalizationPerspectiveAdapter;
import com.raytheon.uf.viz.localization.filetreeview.FileTreeEntryData;
import com.raytheon.uf.viz.localization.filetreeview.LocalizationFileEntryData;
import com.raytheon.uf.viz.localization.filetreeview.LocalizationFileGroupData;
@ -540,6 +541,10 @@ public class FileTreeView extends ViewPart implements IPartListener2,
data.setRequestedChildren(false);
new TreeItem(item, SWT.NONE);
expand(expandMap, item);
if (item.getData() instanceof LocalizationFileGroupData
&& item.getItemCount() == 0) {
item.dispose();
}
}
} else {
for (TreeItem child : item.getItems()) {
@ -566,7 +571,7 @@ public class FileTreeView extends ViewPart implements IPartListener2,
TreeItem root) {
FileTreeEntryData data = (FileTreeEntryData) root.getData();
if (data != null) {
map.put(data, root.getExpanded());
map.put(data, root.getExpanded() || root.getItemCount() == 0);
for (TreeItem item : root.getItems()) {
buildExpandedMap(map, item);
}
@ -660,7 +665,8 @@ public class FileTreeView extends ViewPart implements IPartListener2,
applicationItem.setData(folder);
}
FileTreeEntryData treeData = new FileTreeEntryData(pd, pd.getPath());
FileTreeEntryData treeData = new FileTreeEntryData(pd, pd.getPath(),
true);
treeData.setName(pd.getName());
TreeItem dataTypeItem = new TreeItem(applicationItem, SWT.NONE,
getInsertionIndex(applicationItem.getItems(), name));
@ -719,6 +725,9 @@ public class FileTreeView extends ViewPart implements IPartListener2,
Tree tree = getTree();
final TreeItem[] selected = tree.getSelection();
mgr.add(new MenuManager("New", LocalizationPerspectiveAdapter.NEW_ID));
mgr.add(new Separator());
if (selected.length > 0) {
List<FileTreeEntryData> dataList = new ArrayList<FileTreeEntryData>();
@ -812,6 +821,48 @@ public class FileTreeView extends ViewPart implements IPartListener2,
mgr.add(new DeleteAction(getSite().getPage(), fileList
.toArray(new LocalizationFile[fileList.size()])));
mgr.add(new Separator());
} else {
List<LocalizationFile> toDelete = new ArrayList<LocalizationFile>();
for (TreeItem item : selected) {
int prevSize = toDelete.size();
if (item.getData() instanceof FileTreeEntryData) {
FileTreeEntryData data = (FileTreeEntryData) item.getData();
if (data.isRoot() == false) {
if (data instanceof LocalizationFileEntryData) {
toDelete.add(((LocalizationFileEntryData) data)
.getFile());
} else if (data.isDirectory()) {
String[] parts = LocalizationUtil.splitUnique(data
.getPath());
String parentDir = parts[0];
for (int i = 1; i < parts.length - 1; ++i) {
parentDir += IPathManager.SEPARATOR + parts[i];
}
LocalizationFile[] files = PathManagerFactory
.getPathManager()
.listFiles(
getTreeSearchContexts(data
.getPathData().getType()),
data.getPath(),
new String[] { parts[parts.length - 1] },
false, false);
toDelete.addAll(Arrays.asList(files));
}
}
}
if (prevSize == toDelete.size()) {
// This selected item couldn't contribute a file, don't add
// the action to delete any of them
toDelete.clear();
break;
}
}
if (toDelete.size() > 0) {
mgr.add(new DeleteAction(getSite().getPage(), toDelete
.toArray(new LocalizationFile[toDelete.size()])));
mgr.add(new Separator());
}
}
// Add the move to item
@ -859,8 +910,7 @@ public class FileTreeView extends ViewPart implements IPartListener2,
Object data = selected[0].getData();
if (data instanceof FileTreeEntryData) {
FileTreeEntryData fdata = (FileTreeEntryData) data;
if (fdata.isDirectory()
&& fdata instanceof LocalizationFileGroupData == false) {
if (fdata.isDirectory()) {
// We can import into true directories, not group datas
mgr.add(new Separator());
mgr.add(new ImportFileAction(fdata.getPathData().getType(),
@ -947,8 +997,44 @@ public class FileTreeView extends ViewPart implements IPartListener2,
IPathManager pathManager = PathManagerFactory.getPathManager();
// Request for base/site/user
boolean success = false;
List<LocalizationFile> currentList = new ArrayList<LocalizationFile>();
LocalizationFile[] files = pathManager.listFiles(
getTreeSearchContexts(type), path, filter, false, !recursive);
if (files == null) {
statusHandler.handle(Priority.PROBLEM,
"Error getting list of files");
} else {
parentItem.removeAll();
for (LocalizationFile file : files) {
if (checkName
&& (file.getName().isEmpty() || data.getPath().equals(
file.getName()))) {
continue;
}
if (file.exists()) {
currentList.add(file);
}
}
// Sort files using specific ordering...
Collections.sort(currentList, new FileTreeFileComparator());
if (data instanceof LocalizationFileGroupData) {
populateGroupDataNode(parentItem, currentList);
} else {
populateDirectoryDataNode(parentItem, currentList);
}
success = true;
}
return success;
}
private LocalizationContext[] getTreeSearchContexts(LocalizationType type) {
IPathManager pathManager = PathManagerFactory.getPathManager();
// Request for base/site/user
LocalizationContext[] searchHierarchy = pathManager
.getLocalSearchHierarchy(type);
List<LocalizationContext> searchContexts = new ArrayList<LocalizationContext>(
@ -987,44 +1073,8 @@ public class FileTreeView extends ViewPart implements IPartListener2,
}
}
}
boolean success = false;
List<LocalizationFile> currentList = new ArrayList<LocalizationFile>();
LocalizationFile[] files = pathManager.listFiles(searchContexts
.toArray(new LocalizationContext[searchContexts.size()]), path,
filter, false, !recursive);
if (files == null) {
statusHandler.handle(Priority.PROBLEM,
"Error getting list of files");
} else {
if (parentItem.getItemCount() == 1
&& parentItem.getItems()[0].getData() == null) {
parentItem.removeAll();
}
for (LocalizationFile file : files) {
if (checkName
&& (file.getName().isEmpty() || data.getPath().equals(
file.getName()))) {
continue;
}
if (file.exists()) {
currentList.add(file);
}
}
// Sort files using specific ordering...
Collections.sort(currentList, new FileTreeFileComparator());
if (data instanceof LocalizationFileGroupData) {
populateGroupDataNode(parentItem, currentList);
} else {
populateDirectoryDataNode(parentItem, currentList);
}
success = true;
}
return success;
return searchContexts.toArray(new LocalizationContext[searchContexts
.size()]);
}
private void populateDirectoryDataNode(TreeItem parentItem,
@ -1061,24 +1111,7 @@ public class FileTreeView extends ViewPart implements IPartListener2,
TreeItem[] children = parentItem.getItems();
for (TreeItem child : children) {
String path = ((FileTreeEntryData) child.getData()).getPath();
if (processedPaths.contains(path) == false) {
// File no longer exists, delete
Object objData = child.getData();
if (objData instanceof FileTreeEntryData) {
IResource rsc = ((FileTreeEntryData) objData).getResource();
if (rsc != null) {
try {
rsc.delete(true, null);
} catch (CoreException e) {
statusHandler.handle(
Priority.PROBLEM,
"Error deleting resource: "
+ e.getLocalizedMessage(), e);
}
}
}
child.dispose();
} else if (processedFiles.containsKey(path)) {
if (processedFiles.containsKey(path)) {
populateGroupDataNode(child, processedFiles.get(path));
}
}
@ -1267,103 +1300,77 @@ public class FileTreeView extends ViewPart implements IPartListener2,
}
}
/**
* Finds the first TreeItem in the tree which matches the localization file
* (minus level). If file is a directory, will return TreeItem which
* corresponds to that directory
*
* @param file
* @param nullIfNotFound
* if true, will return null when file is not found and
* populating the node would be required
* @return
*/
private TreeItem find(LocalizationFile file, boolean nullIfNotFound) {
return find(file.getName(), file.getContext(), nullIfNotFound);
private TreeItem find(LocalizationFile file, boolean populateToFind,
boolean nearestParent) {
return find(file.getName(), file.getContext(), populateToFind,
nearestParent);
}
private TreeItem find(String path, LocalizationContext context,
boolean nullIfNotFound) {
TreeItem rval = null;
boolean populateToFind, boolean nearestParent) {
Tree tree = getTree();
TreeItem[] items = tree.getItems();
String[] parts = LocalizationUtil.splitUnique(path);
for (TreeItem item : items) {
TreeItem found = find(item, context, parts, 0, nullIfNotFound);
if (found != null) {
rval = found;
break;
}
}
return rval;
}
// item is an Application level node, check child, find will return
// null if incorrect path, otherwise it will return closest ancestor
// of the item we are looking for. If null, keep looking, otherwise
// check the search method
for (TreeItem basePathItem : item.getItems()) {
TreeItem found = find(basePathItem, context, path,
populateToFind);
if (found != null) {
TreeItem rval = null;
if (nearestParent) {
rval = found;
}
/**
* Finds the first TreeItem in the application tree node which contains the
* localization file. If file is a directory, will return TreeItem which
* corresponds to that directory
*
* @param item
* @param file
* @return
*/
private TreeItem find(TreeItem item, LocalizationContext ctx,
String[] parts, int index, boolean nullIfNotFound) {
if ((item.getData() != null)
&& (item.getData() instanceof FileTreeEntryData)) {
FileTreeEntryData itemData = (FileTreeEntryData) item.getData();
if (itemData.hasRequestedChildren() == false) {
if (nullIfNotFound) {
return null;
} else {
populateNode(item);
FileTreeEntryData foundData = (FileTreeEntryData) found
.getData();
if (foundData.getPath().equals(path)) {
// Found this item, check if group data
if (foundData instanceof LocalizationFileGroupData) {
// Check for context matching
for (TreeItem fileItem : found.getItems()) {
LocalizationFileEntryData fileData = (LocalizationFileEntryData) fileItem
.getData();
if (fileData.getFile().getContext()
.equals(context)) {
rval = fileItem;
break;
}
}
} else {
rval = found;
}
}
return rval;
}
}
}
return null;
}
if (index == parts.length) {
if (item.getData() instanceof LocalizationFileGroupData) {
TreeItem[] children = item.getItems();
for (TreeItem child : children) {
if (((LocalizationFileEntryData) child.getData()).getFile()
.getContext().equals(ctx)) {
return child;
private TreeItem find(TreeItem item, LocalizationContext ctx, String path,
boolean populateToFind) {
FileTreeEntryData data = (FileTreeEntryData) item.getData();
String itemPath = data.getPath();
if (path.startsWith(itemPath)) {
if (path.equals(itemPath)
|| (data.hasRequestedChildren() == false && !populateToFind)) {
return item;
} else {
if (data.hasRequestedChildren() == false) {
populateNode(item);
}
for (TreeItem child : item.getItems()) {
TreeItem rval = find(child, ctx, path, populateToFind);
if (rval != null) {
return rval;
}
}
}
return item;
}
TreeItem[] children = item.getItems();
for (TreeItem child : children) {
FileTreeEntryData data = (FileTreeEntryData) child.getData();
PathData pd = data.getPathData();
if (pd.getType() == ctx.getLocalizationType()) {
// same type, check PathData path
String[] childParts = new String[] { data.getName() };
if ((item.getData() instanceof FileTreeEntryData) == false) {
childParts = LocalizationUtil.splitUnique(data.getPath());
}
boolean equal = true;
for (int i = 0; (i < childParts.length) && equal; ++i) {
if ((i + index >= parts.length)
|| (parts[i + index].equals(childParts[i]) == false)) {
equal = false;
}
}
if (equal) {
if (parts.length == (index + childParts.length)) {
return child;
} else {
TreeItem found = find(child, ctx, parts, index
+ childParts.length, nullIfNotFound);
return found != null ? found : child;
}
}
}
}
return null;
}
@ -1460,12 +1467,12 @@ public class FileTreeView extends ViewPart implements IPartListener2,
String filePath = message.getFileName();
IPathManager pathManager = PathManagerFactory.getPathManager();
final FileChangeType type = message.getChangeType();
final LocalizationFile file = pathManager.getLocalizationFile(context,
filePath);
if ((file.exists() == false && (message.getChangeType() == FileChangeType.ADDED || message
.getChangeType() == FileChangeType.UPDATED))
|| (file.exists() && message.getChangeType() == FileChangeType.DELETED)) {
if ((file.exists() == false && (type == FileChangeType.ADDED || type == FileChangeType.UPDATED))
|| (file.exists() && type == FileChangeType.DELETED)) {
System.out.println("Got weird state in update for " + file
+ ": exists=" + file.exists() + ", changeType="
+ message.getChangeType());
@ -1475,8 +1482,15 @@ public class FileTreeView extends ViewPart implements IPartListener2,
VizApp.runAsync(new Runnable() {
@Override
public void run() {
TreeItem toRefresh = find(file, true);
// Only get closest parent if file added
TreeItem toRefresh = find(file, false,
type == FileChangeType.ADDED);
if (toRefresh != null) {
if (type == FileChangeType.DELETED) {
// If deleted, we found the actual item that was
// deleted, we should refresh it's parent
toRefresh = toRefresh.getParentItem();
}
refresh(toRefresh);
}
}
@ -1607,22 +1621,9 @@ public class FileTreeView extends ViewPart implements IPartListener2,
*/
@Override
public void selectFile(LocalizationFile file) {
TreeItem item = find(file, false);
TreeItem item = find(file, true, false);
if (item != null) {
FileTreeEntryData data = (FileTreeEntryData) item.getData();
if (data.getPath().equals(file.getName())) {
if (data instanceof LocalizationFileGroupData) {
for (TreeItem child : item.getItems()) {
LocalizationFileEntryData lfed = (LocalizationFileEntryData) child
.getData();
if (lfed != null && lfed.getFile().equals(file)) {
getTree().setSelection(child);
return;
}
}
}
getTree().setSelection(item);
}
getTree().setSelection(item);
}
}
@ -1635,7 +1636,7 @@ public class FileTreeView extends ViewPart implements IPartListener2,
@Override
public void refresh(LocalizationFile file) {
if (file != null) {
TreeItem item = find(file, false);
TreeItem item = find(file, false, false);
if (item != null) {
refresh(item);
}
@ -1651,21 +1652,15 @@ public class FileTreeView extends ViewPart implements IPartListener2,
@Override
public void openFile(LocalizationFile file) {
IWorkbenchPage page = this.getSite().getPage();
TreeItem item = find(file, true);
TreeItem item = find(file, true, false);
if (item != null) {
LocalizationFileGroupData groupData = (LocalizationFileGroupData) item
LocalizationFileEntryData fileData = (LocalizationFileEntryData) item
.getData();
IFile data = null;
for (LocalizationFileEntryData child : groupData.getChildrenData()) {
if (file.equals(child.getFile())) {
data = child.getResource();
break;
}
}
if (data != null) {
LocalizationPerspectiveUtils.openInEditor(page,
new LocalizationEditorInput(file, data));
}
LocalizationPerspectiveUtils.openInEditor(page,
new LocalizationEditorInput(file, fileData.getResource()));
} else {
statusHandler.handle(Priority.PROBLEM, "Unable to find " + file
+ " in view to open");
}
}

View file

@ -81,9 +81,11 @@ public class LocalizationFileDragNDropSource extends ViewerDropAdapter
this.view = view;
}
LocalizationFile potentialDelete = null;
private LocalizationFile toCopy = null;
LocalizationFile toDelete = null;
private LocalizationFile potentialDelete = null;
private LocalizationFile toDelete = null;
// Drag methods
@ -99,7 +101,7 @@ public class LocalizationFileDragNDropSource extends ViewerDropAdapter
event.doit = file.getContext().getLocalizationLevel()
.isSystemLevel() == false;
event.image = selected[0].getImage();
potentialDelete = file;
toCopy = potentialDelete = file;
}
}
@ -121,7 +123,7 @@ public class LocalizationFileDragNDropSource extends ViewerDropAdapter
@Override
public void dragSetData(DragSourceEvent event) {
event.data = new String[] { potentialDelete.getFile().getAbsolutePath() };
event.data = new String[] { toCopy.getFile().getAbsolutePath() };
}
// Drop methods
@ -174,6 +176,9 @@ public class LocalizationFileDragNDropSource extends ViewerDropAdapter
FileTreeEntryData data = (FileTreeEntryData) target;
if (data instanceof LocalizationFileEntryData == false
&& data instanceof LocalizationFileGroupData == false) {
if (operation == DND.DROP_COPY) {
potentialDelete = null;
}
return true;
}
}

View file

@ -19,6 +19,8 @@
**/
package com.raytheon.uf.viz.localization.perspective.view.actions;
import java.util.regex.Pattern;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.IInputValidator;
@ -60,6 +62,46 @@ import com.raytheon.viz.ui.VizWorkbenchManager;
public class RenameAction extends Action {
public static class NewFileInputValidator implements IInputValidator {
private static final String VALID_FILE_REGEX = "^[a-zA-Z0-9_]+[a-zA-Z0-9_\\-.]*$";
private static final Pattern VALID_FILE_PATTERN = Pattern
.compile(VALID_FILE_REGEX);
private String initialValue;
public NewFileInputValidator(String initialValue) {
this.initialValue = initialValue;
}
@Override
public String isValid(String newText) {
if (initialValue != null && initialValue.equals(newText.trim())) {
return "File name is not different";
} else if (newText.trim().isEmpty()) {
return "New name must not be empty";
} else {
String[] parts = newText.split("[" + IPathManager.SEPARATOR
+ "]");
if (VALID_FILE_PATTERN.matcher(parts[parts.length - 1])
.matches() == false) {
return "File name must only contain "
+ FileUtil.VALID_FILENAME_CHARS;
}
for (int i = 0; i < parts.length - 1; ++i) {
if (parts[i].isEmpty() == false
&& VALID_FILE_PATTERN.matcher(parts[i]).matches() == false) {
return "Directory path: " + parts[i]
+ " must only contain "
+ FileUtil.VALID_FILENAME_CHARS;
}
}
}
return null;
}
}
private LocalizationFile file;
private ILocalizationService service;
@ -94,21 +136,7 @@ public class RenameAction extends Action {
boolean done = false;
while (!canceled && !done) {
InputDialog dialog = new InputDialog(parent, "Rename file",
"File name:", name, new IInputValidator() {
@Override
public String isValid(String newText) {
if (name.equals(newText.trim())) {
return "File name is not different";
} else if (!FileUtil.isValidFilename(newText)) {
return "New name may only contain "
+ FileUtil.VALID_FILENAME_CHARS;
} else if ("".equals(newText.trim())) {
return "New name must not be empty";
}
return null;
}
});
"File name:", name, new NewFileInputValidator(name));
if (InputDialog.OK == dialog.open()) {
pathParts[pathParts.length - 1] = dialog.getValue();
String newPath = pathParts[0];

View file

@ -1849,7 +1849,7 @@
<extension id="com.raytheon.viz.ui.bindings" point="org.eclipse.ui.bindings">
<key commandId="com.raytheon.viz.gfe.toggleLegend"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
schemeId="com.raytheon.viz.ui.awips.scheme"
sequence="NUMPAD_ENTER"
contextId="com.raytheon.viz.gfe.GFEShortCutContext">
</key>

View file

@ -54,7 +54,7 @@
<attribute name="value" type="string" use="required">
<annotation>
<documentation>
The localization path of the directory to start at.
</documentation>
</annotation>
</attribute>
@ -68,35 +68,35 @@
<attribute name="recursive" type="boolean">
<annotation>
<documentation>
If not recursive, will only show files in the base directory specified by the &apos;value&apos; attribute.
</documentation>
</annotation>
</attribute>
<attribute name="localizationType" type="string" use="required">
<annotation>
<documentation>
LocalizationType enum, can be CAVE_STATIC or COMMON_STATIC
</documentation>
</annotation>
</attribute>
<attribute name="extensionFilter" type="string">
<annotation>
<documentation>
comma separated list of extensions
comma separated list of extensions to filter on
</documentation>
</annotation>
</attribute>
<attribute name="application" type="string" use="required">
<annotation>
<documentation>
The application that owns these files
The application that owns these files.
</documentation>
</annotation>
</attribute>
<attribute name="localizationAdapter" type="string">
<annotation>
<documentation>
An adapter class that can be used to customize functionality for this directory path.
</documentation>
<appInfo>
<meta.attribute kind="java" basedOn="com.raytheon.uf.viz.localization.adapter.LocalizationPerspectiveAdapter:"/>

View file

@ -47,6 +47,8 @@ import com.raytheon.uf.viz.localization.filetreeview.FileTreeEntryData;
public class LocalizationPerspectiveAdapter {
public static final String NEW_ID = "new";
/**
* Given the selected tree data items, add context menu items specific to
* your type. Default implementation does nothing

View file

@ -53,14 +53,21 @@ public class FileTreeEntryData {
private String path;
public FileTreeEntryData(PathData pathData, String path) {
this(pathData, path, true);
}
private boolean root;
public FileTreeEntryData(PathData pathData, String path, boolean directory) {
public FileTreeEntryData(PathData pathData, String path, boolean root) {
this.pathData = pathData;
this.path = path;
this.name = LocalizationUtil.extractName(path);
this.root = root;
}
public FileTreeEntryData(PathData pathData, String path) {
this(pathData, path, false);
}
public boolean isRoot() {
return root;
}
public PathData getPathData() {
@ -96,7 +103,8 @@ public class FileTreeEntryData {
}
public boolean isDirectory() {
return resource instanceof IFolder;
return resource instanceof IFolder
&& getClass() == FileTreeEntryData.class;
}
/*

View file

@ -49,7 +49,7 @@ public class LocalizationFileEntryData extends FileTreeEntryData {
* @param name
*/
public LocalizationFileEntryData(PathData pathData, LocalizationFile file) {
super(pathData, file.getName(), false);
super(pathData, file.getName());
this.file = file;
}

View file

@ -51,7 +51,7 @@ public class LocalizationFileGroupData extends FileTreeEntryData {
* should be a actual file, not a directory
*/
public LocalizationFileGroupData(PathData pathData, String path) {
super(pathData, path, false);
super(pathData, path);
childrenData = new HashSet<LocalizationFileEntryData>();
}

View file

@ -21,8 +21,6 @@ package com.raytheon.uf.viz.localization.filetreeview;
import java.util.Arrays;
import org.eclipse.core.runtime.IConfigurationElement;
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
import com.raytheon.uf.viz.localization.adapter.LocalizationPerspectiveAdapter;
@ -70,11 +68,6 @@ public class PathData {
*/
private String application = null;
/**
* IConfigurationElement.
*/
private IConfigurationElement element = null;
/**
* Search recursively for files.
*/

View file

@ -66,16 +66,23 @@
<extension
id="com.raytheon.viz.ui.bindings"
point="org.eclipse.ui.bindings">
<!-- These keys represent default bindings we want to override -->
<scheme
id="com.raytheon.viz.ui.awips.scheme"
name="AWIPS personality scheme"
parentId="org.eclipse.ui.defaultAcceleratorConfiguration">
</scheme>
<!-- These keys represent default bindings we don't want -->
<key
commandId="com.raytheon.viz.ui.actions.nullAction2"
schemeId="com.raytheon.viz.ui.awips.scheme"
sequence="M1+M2+T">
</key>
<key
commandId="com.raytheon.viz.ui.actions.nullAction2"
schemeId="com.raytheon.viz.ui.awips.scheme"
sequence="M1+M2+R">
</key>
<key
schemeId="com.raytheon.viz.ui.awips.scheme"
sequence="M1+3">
</key>
</extension>
</plugin>