1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-24 09:25:31 +02:00

[189973] removing obsolete code

This commit is contained in:
David McKnight 2007-05-31 15:56:57 +00:00
parent 0200895010
commit 92a0caff4e
12 changed files with 1 additions and 1994 deletions

View file

@ -1,91 +0,0 @@
/********************************************************************************
* Copyright (c) 2004, 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
********************************************************************************/
package org.eclipse.rse.files.ui.dialogs;
import org.eclipse.rse.files.ui.widgets.SystemSelectRemoteFileOrFolderForm;
import org.eclipse.rse.internal.files.ui.widgets.AddToArchiveForm;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.swt.widgets.Shell;
/**
* @author mjberger
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class AddToArchiveDialog extends CombineDialog {
private String[] _relativePaths;
public AddToArchiveDialog(Shell shell)
{
super(shell);
setHelp(RSEUIPlugin.HELPPREFIX + "atad0000"); //$NON-NLS-1$
}
public AddToArchiveDialog(Shell shell, String title) {
super(shell, title);
setHelp(RSEUIPlugin.HELPPREFIX + "atad0000"); //$NON-NLS-1$
}
public AddToArchiveDialog(Shell shell, String title, String[] relativePaths)
{
super(shell, title);
setHelp(RSEUIPlugin.HELPPREFIX + "atad0000"); //$NON-NLS-1$
_relativePaths = relativePaths;
((AddToArchiveForm)form).setRelativePathList(_relativePaths);
}
public AddToArchiveDialog(
Shell shell,
String title,
boolean prePopSelection)
{
super(shell, title, prePopSelection);
setHelp(RSEUIPlugin.HELPPREFIX + "atad0000"); //$NON-NLS-1$
}
public AddToArchiveDialog(
Shell shell,
String title,
boolean prePopSelection,
String[] relativePaths)
{
super(shell, title, prePopSelection);
setHelp(RSEUIPlugin.HELPPREFIX + "atad0000"); //$NON-NLS-1$
_relativePaths = relativePaths;
((AddToArchiveForm)form).setRelativePathList(_relativePaths);
}
protected SystemSelectRemoteFileOrFolderForm getForm(boolean fileMode)
{
super.getForm(fileMode);
form = new AddToArchiveForm(getMessageLine(), this, fileMode, prePop, _relativePaths);
return form;
}
public boolean getSaveFullPathInfo()
{
return ((AddToArchiveForm)form).getSaveFullPathInfo();
}
public String getRelativePath()
{
return ((AddToArchiveForm)form).getRelativePath();
}
}

View file

@ -1,143 +0,0 @@
/********************************************************************************
* Copyright (c) 2003, 2007 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
********************************************************************************/
package org.eclipse.rse.files.ui.dialogs;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.rse.files.ui.widgets.SystemSelectRemoteFileOrFolderForm;
import org.eclipse.rse.internal.files.ui.widgets.CombineForm;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.swt.widgets.Shell;
/**
* A dialog to select or enter archive files.
*/
public class CombineDialog extends SystemSelectRemoteFileOrFolderDialog {
protected CombineForm form;
protected boolean prePop = false;
/**
* Constructor.
* @param shell the parent shell.
*/
public CombineDialog(Shell shell)
{
super(shell, false);
setHelp(RSEUIPlugin.HELPPREFIX + "cmbd0000"); //$NON-NLS-1$
}
/**
* Constructor when you want to supply your own title.
* @param shell The shell to hang the dialog off of
* @param title The title to give the dialog
*/
public CombineDialog(Shell shell, String title)
{
super(shell, title, false);
setHelp(RSEUIPlugin.HELPPREFIX + "cmbd0000"); //$NON-NLS-1$
}
/**
* Constructor when you want to supply your own title.
*
* @param shell The shell to hang the dialog off of
* @param title The title to give the dialog
* @param prePopSelection Whether or not the destination name
* and type will be prepopulated with the selection, or given
* a generic name and type.
*/
public CombineDialog(Shell shell, String title, boolean prePopSelection)
{
super(shell, title, false);
prePop = prePopSelection;
if (form != null) form.setPrePopSelection(prePop);
setHelp(RSEUIPlugin.HELPPREFIX + "cmbd0000"); //$NON-NLS-1$
}
/**
* Constructor when you want to supply your own title.
*
* @param shell The shell to hang the dialog off of
* @param title The title to give the dialog
* @param prePopSelection Whether or not the destination name
* and type will be prepopulated with the selection, or given
* a generic name and type.
* @param relativePaths The relative paths to be inserted as choices
* in the relative path combo box. Null if you wish to disable this feature.
*/
public CombineDialog(Shell shell, String title, boolean prePopSelection, String[] relativePaths)
{
super(shell, title, false);
prePop = prePopSelection;
if (form != null) form.setPrePopSelection(prePop);
setHelp(RSEUIPlugin.HELPPREFIX + "cmbd0000"); //$NON-NLS-1$
}
protected SystemSelectRemoteFileOrFolderForm getForm(boolean fileMode)
{
form = new CombineForm(getMessageLine(), this, fileMode, prePop);
super.getForm(fileMode);
return form;
}
public Object getOutputObject()
{
String fileName = form.getFileName();
IRemoteFile file = (IRemoteFile) super.getOutputObject();
// if a file was selected, get reference to its parent
if (file.isFile()) {
file = file.getParentRemoteFile();
}
try
{
// return a remote file that is the child of the parent folder
return file.getParentRemoteFileSubSystem().getRemoteFileObject(file, fileName, new NullProgressMonitor());
}
catch (Exception e)
{
return null;
}
}
public void setShowLocationPrompt(boolean show)
{
form.setShowLocationPrompt(show);
}
public void setLocationPrompt(String prompt)
{
form.setLocationPrompt(prompt);
}
public void setNameAndTypePrompt(String prompt)
{
form.setNameAndTypePrompt(prompt);
}
/**
* Sets the extensions to disallow.
* @param extensions the archive extensions that will not be allowed.
*/
public void setDisallowedArchiveExtensions(String[] extensions) {
form.setDisallowedArchiveExtensions(extensions);
}
}

View file

@ -1,71 +0,0 @@
/********************************************************************************
* Copyright (c) 2003, 2007 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
********************************************************************************/
package org.eclipse.rse.files.ui.dialogs;
import org.eclipse.rse.files.ui.widgets.SystemSelectRemoteFileOrFolderForm;
import org.eclipse.rse.internal.files.ui.widgets.ExtractToForm;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.swt.widgets.Shell;
public class ExtractToDialog extends SystemSelectRemoteFileOrFolderDialog {
private ExtractToForm form;
/**
* Constructor
*
* @param shell The shell to hang the dialog off of
*
*/
public ExtractToDialog(Shell shell)
{
super(shell, false);
setHelp(RSEUIPlugin.HELPPREFIX + "exdi0000"); //$NON-NLS-1$
}
/**
* Constructor when you want to supply your own title.
*
* @param shell The shell to hang the dialog off of
* @param title The title to give the dialog
*/
public ExtractToDialog(Shell shell, String title)
{
super(shell, title, false);
setHelp(RSEUIPlugin.HELPPREFIX + "exdi0000"); //$NON-NLS-1$
}
protected SystemSelectRemoteFileOrFolderForm getForm(boolean fileMode)
{
form = new ExtractToForm(getMessageLine(), this, fileMode);
super.getForm(fileMode);
return form;
}
public Object getOutputObject()
{
IRemoteFile file = (IRemoteFile) super.getOutputObject();
if (file.exists())
{
return file;
}
return null;
}
}

View file

@ -1,112 +0,0 @@
/********************************************************************************
* Copyright (c) 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
********************************************************************************/
package org.eclipse.rse.files.ui.dialogs;
import org.eclipse.rse.files.ui.widgets.SystemEnterOrSelectRemoteFileForm;
import org.eclipse.rse.files.ui.widgets.SystemSelectRemoteFileOrFolderForm;
import org.eclipse.rse.internal.subsystems.files.core.SystemFileResources;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.swt.widgets.Shell;
/**
* A dialog for either selecting or entering a file name.
* Use {@link #getRemotePath()} to get the absolute remote path of what the user selected or entered.
* Note that if the user enters a file name, then the output object will be its parent folder, since
* the file with that name may not exist.
*/
public class SystemEnterOrSelectRemoteFileDialog extends SystemSelectRemoteFileOrFolderDialog {
private SystemEnterOrSelectRemoteFileForm form;
/**
* Creates the dialog with the parent shell.
* @param shell the parent shell.
*/
public SystemEnterOrSelectRemoteFileDialog(Shell shell) {
super(shell, true);
setMultipleSelectionMode(false);
}
/**
* Creates a dialog under the parent shell with the given title.
* @param shell the parent shell.
* @param title the title for the dialog.
*/
public SystemEnterOrSelectRemoteFileDialog(Shell shell, String title) {
super(shell, title, true);
setMultipleSelectionMode(false);
}
/**
* Always returns false.
* @see org.eclipse.rse.files.ui.dialogs.SystemSelectRemoteFileOrFolderDialog#getMultipleSelectionMode()
*/
public boolean getMultipleSelectionMode() {
return false;
}
/**
* Has no effect. Multiple selection mode is not allowed.
* @see org.eclipse.rse.files.ui.dialogs.SystemSelectRemoteFileOrFolderDialog#setMultipleSelectionMode(boolean)
*/
public void setMultipleSelectionMode(boolean multiple) {
super.setMultipleSelectionMode(false);
}
/**
* Creates the select or enter file form. Sets the verbiage of the form.
* @see org.eclipse.rse.files.ui.dialogs.SystemSelectRemoteFileOrFolderDialog#getForm(boolean)
*/
protected SystemSelectRemoteFileOrFolderForm getForm(boolean fileMode) {
form = new SystemEnterOrSelectRemoteFileForm(getMessageLine(), this, fileMode);
form.setMessage(SystemFileResources.RESID_ENTER_OR_SELECT_FILE_VERBIAGE_LABEL);
setOutputObject(null);
return form;
}
/**
* Returns the remote path.
* @return the remote path.
*/
public String getRemotePath() {
IRemoteFile file = (IRemoteFile)getOutputObject();
String absPath = file.getAbsolutePath();
// if the output is a file, then return the absolute path.
if (file.isFile()) {
return absPath;
}
// if the output is a folder, then file name is available in the text field
// of the form, so append the file name to the folder path
else {
String fileName = form.getFileName();
String sep = file.getSeparator();
// add separator if necessary
if (!absPath.endsWith(sep)) {
absPath += sep;
}
// add file name if necessary
absPath += fileName;
return absPath;
}
}
}

View file

@ -1,74 +0,0 @@
/********************************************************************************
* Copyright (c) 2002, 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
********************************************************************************/
package org.eclipse.rse.files.ui.widgets;
import org.eclipse.rse.ui.messages.ISystemMessageLine;
/**
* Form class for selecting a file based on the SaveAS
*/
public class FileSelectionForm extends SaveAsForm
{
public static final String Copyright =
"(C) Copyright IBM Corp. 2003 All Rights Reserved."; //$NON-NLS-1$
/**
* Constructor for FileSelectionForm
*/
public FileSelectionForm(
ISystemMessageLine msgLine,
Object caller,
boolean fileMode)
{
super(msgLine, caller, fileMode);
}
/**
* Completes processing of the dialog.
* Intercept of parent method.
*
* @return true if no errors
*/
public boolean verify()
{
return true;
}
public boolean isPageComplete()
{
//String errMsg = validator.isValid(fileName);
//if (errMsg != null)
//{
// setErrorMessage(errMsg);
// return false;
//}
//else
//{
// clearErrorMessage();
//}
return fileNameText != null
&& fileNameText.getText().length() > 0;
//&& super.isPageComplete();
}
public String getFileName()
{
return fileName;
}
}

View file

@ -1,227 +0,0 @@
/********************************************************************************
* Copyright (c) 2006, 2007 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* Martin Oberhuber (Wind River) - [168870] refactor org.eclipse.rse.core package of the UI plugin
********************************************************************************/
package org.eclipse.rse.files.ui.widgets;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.rse.internal.files.ui.FileResources;
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.ui.ISystemMessages;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.SystemWidgetHelpers;
import org.eclipse.rse.ui.messages.ISystemMessageLine;
import org.eclipse.rse.ui.messages.SystemMessageDialog;
import org.eclipse.rse.ui.validators.ValidatorFileName;
import org.eclipse.rse.ui.view.ISystemRemoteElementAdapter;
import org.eclipse.rse.ui.view.SystemAdapterHelpers;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class SystemEnterOrSelectRemoteFileForm extends SystemSelectRemoteFileOrFolderForm {
// text field for file name
protected Text fileNameText;
// initial file name
protected String fileName, initialFileName;
// file name validator
protected ValidatorFileName validator;
/**
* Constructor for form to enter or select a file.
* @param msgLine A GUI widget capable of writing error messages to.
* @param caller The wizardpage or dialog hosting this form.
* @param fileMode true if in select-file mode, false if in select-folder mode
*/
public SystemEnterOrSelectRemoteFileForm(ISystemMessageLine msgLine, Object caller, boolean fileMode) {
super(msgLine, caller, fileMode);
validator = new ValidatorFileName();
initialFileName = ""; //$NON-NLS-1$
fileName = initialFileName;
}
/**
* Calls super method and creates the text field for file name.
* @see org.eclipse.rse.files.ui.widgets.SystemSelectRemoteFileOrFolderForm#createContents(org.eclipse.swt.widgets.Shell, org.eclipse.swt.widgets.Composite)
*/
public Control createContents(Shell shell, Composite parent) {
Control control = super.createContents(shell, parent);
Composite composite = SystemWidgetHelpers.createComposite(parent, 2);
// file name text field
fileNameText = SystemWidgetHelpers.createLabeledTextField(
composite, null, FileResources.RESID_NEWFILE_NAME_LABEL, FileResources.RESID_NEWFILE_NAME_TOOLTIP);
// listen for file name modifications
fileNameText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
fileName = fileNameText.getText();
setPageComplete();
}
});
// set file name
if (fileName != null) {
fileNameText.setText(fileName);
}
return control;
}
/**
* @see org.eclipse.rse.files.ui.widgets.SystemSelectRemoteFileOrFolderForm#verify()
*/
public boolean verify() {
boolean ok = super.verify();
if (ok) {
IRemoteFile file = (IRemoteFile)getSelectedObject();
IRemoteFile saveasFile = null;
try {
saveasFile = file.getParentRemoteFileSubSystem().getRemoteFileObject(file, fileName, new NullProgressMonitor());
}
catch (Exception e) {
}
if (saveasFile != null && saveasFile.exists()) {
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_UPLOAD_FILE_EXISTS);
msg.makeSubstitution(fileName);
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
ok = dlg.openQuestionNoException();
}
}
return ok;
}
/**
* @see org.eclipse.rse.files.ui.widgets.SystemSelectRemoteFileOrFolderForm#isPageComplete()
*/
public boolean isPageComplete() {
SystemMessage errMsg = null;
if (fileName != null) {
errMsg = validator.validate(fileName);
}
if (errMsg != null) {
setErrorMessage(errMsg);
return false;
}
else {
clearErrorMessage();
}
return fileNameText != null && fileNameText.getText().length() > 0 && super.isPageComplete();
}
/**
* @see org.eclipse.rse.files.ui.widgets.SystemSelectRemoteFileOrFolderForm#setPreSelection(org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile)
*/
public void setPreSelection(IRemoteFile selection) {
// if preselect a directory, just call super
if (selection.isDirectory()) {
super.setPreSelection(selection);
}
// otherwise, if it's a file, select the parent and set the file name
else if (selection.isFile()) {
IRemoteFile parentFile = selection.getParentRemoteFile();
if (parentFile.isDirectory()) {
super.setPreSelection(parentFile);
}
initialFileName = parentFile.getName();
fileName = initialFileName;
}
}
/**
* @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
*/
public void selectionChanged(SelectionChangedEvent e) {
super.selectionChanged(e);
Object selectedObject = getFirstSelection(e.getSelection());
if (selectedObject != null && selectedObject instanceof IRemoteFile) {
IRemoteFile remoteFile = (IRemoteFile)selectedObject;
ISystemRemoteElementAdapter remoteAdapter = getRemoteAdapter(selectedObject);
if ((remoteAdapter != null)) {
if (fileNameText != null) {
// simulate the parent file being selected...
Object parentFile = tree.getSelectedParent();
if (remoteFile.isFile()) {
fileName = remoteAdapter.getName(selectedObject);
fileNameText.setText(fileName);
}
else {
fileName = initialFileName;
fileNameText.setText(fileName);
parentFile = remoteFile;
}
remoteAdapter = getRemoteAdapter(parentFile);
if (remoteAdapter != null) {
String fullPath = remoteAdapter.getAbsoluteName(parentFile);
setNameText(fullPath);
outputObjects = new Object[] { parentFile };
setPageComplete();
}
}
}
}
}
/**
* Returns the remote element adapter.
* @param o the remote element.
* @return the remote element adapter.
*/
protected ISystemRemoteElementAdapter getRemoteAdapter(Object o) {
return SystemAdapterHelpers.getRemoteAdapter(o);
}
/**
* Returns the file name.
* @return the file name.
*/
public String getFileName() {
return fileName;
}
}

View file

@ -1,410 +0,0 @@
/********************************************************************************
* Copyright (c) 2003, 2007 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
********************************************************************************/
package org.eclipse.rse.internal.files.ui.actions;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableContext;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.rse.core.RSECorePlugin;
import org.eclipse.rse.core.events.ISystemRemoteChangeEvents;
import org.eclipse.rse.core.events.ISystemResourceChangeEvents;
import org.eclipse.rse.core.events.SystemResourceChangeEvent;
import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.ISystemRegistry;
import org.eclipse.rse.core.subsystems.ISystemDragDropAdapter;
import org.eclipse.rse.files.ui.dialogs.AddToArchiveDialog;
import org.eclipse.rse.internal.files.ui.FileResources;
import org.eclipse.rse.services.clientserver.archiveutils.ArchiveHandlerManager;
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem;
import org.eclipse.rse.subsystems.files.core.subsystems.IVirtualRemoteFile;
import org.eclipse.rse.ui.ISystemMessages;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.actions.SystemBaseAction;
import org.eclipse.rse.ui.messages.SystemMessageDialog;
import org.eclipse.swt.widgets.Shell;
/**
* @author mjberger
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class SystemAddToArchiveAction extends SystemBaseAction
{
protected List _selected;
protected Shell _parent;
public SystemAddToArchiveAction(Shell parent)
{
super(FileResources.ACTION_ADDTOARCHIVE_LABEL, parent);
setToolTipText(FileResources.ACTION_ADDTOARCHIVE_TOOLTIP);
_selected = new ArrayList();
_parent = parent;
allowOnMultipleSelection(true);
setHelp(RSEUIPlugin.HELPPREFIX + "actn0122"); //$NON-NLS-1$
}
public SystemAddToArchiveAction(Shell parent, String label, String tooltip)
{
super(label, tooltip, parent);
_selected = new ArrayList();
_parent = parent;
allowOnMultipleSelection(true);
setHelp(RSEUIPlugin.HELPPREFIX + "actn0122"); //$NON-NLS-1$
}
public void run()
{
boolean repeat = true;
while (repeat)
{
IRemoteFile firstSelection = (IRemoteFile) _selected.get(0);
String title = FileResources.RESID_ADDTOARCHIVE_TITLE;
String[] relativePaths = getRelativePaths();
AddToArchiveDialog dialog = new AddToArchiveDialog(getShell(), title, relativePaths);
dialog.setNeedsProgressMonitor(false);
dialog.setMessage(FileResources.RESID_ADDTOARCHIVE_PROMPT);
dialog.setShowNewConnectionPrompt(true);
dialog.setShowPropertySheet(true, false);
dialog.setPreSelection(firstSelection);
dialog.setBlockOnOpen(true);
dialog.setShowLocationPrompt(true);
dialog.setLocationPrompt(FileResources.RESID_ADDTOARCHIVE_LOCATION);
dialog.setNameAndTypePrompt(FileResources.RESID_ADDTOARCHIVE_NAMEANDTYPE);
//dialog.setSelectionValidator(this);
dialog.open();
// if (rc != 0) NOT RELIABLE!
boolean cancelled = false;
if (dialog.wasCancelled()) cancelled = true;
IRemoteFile destinationArchive = null;
IRemoteFileSubSystem destSS = null;
boolean saveFullPathInfo;
String relativeTo = ""; //$NON-NLS-1$
if (!cancelled)
{
destinationArchive = (IRemoteFile) dialog.getOutputObject();
saveFullPathInfo = dialog.getSaveFullPathInfo();
if (saveFullPathInfo) relativeTo = dialog.getRelativePath();
destSS = destinationArchive.getParentRemoteFileSubSystem();
}
else
{
return;
}
if (ArchiveHandlerManager.isVirtual(destinationArchive.getAbsolutePath()))
{
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_ADDTO_VIRTUAL_DEST);
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
dlg.open();
continue;
}
if (destinationInSource(destinationArchive))
{
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_DEST_NOT_IN_SOURCE);
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
dlg.open();
continue;
}
try
{
if (!destinationArchive.exists()) destSS.createFile(destinationArchive, new NullProgressMonitor());
}
catch (SystemMessageException e)
{
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
dlg.open();
continue;
}
for (int i = 0; i < _selected.size(); i++)
{
IRemoteFile selection = (IRemoteFile) _selected.get(i);
addToArchive(selection, destinationArchive, saveFullPathInfo, relativeTo);
}
ISystemRegistry registry = RSECorePlugin.getTheSystemRegistry();
registry.fireRemoteResourceChangeEvent(ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_CREATED, destinationArchive, destinationArchive.getParentPath(), destSS, null);
registry.fireEvent(new SystemResourceChangeEvent(destinationArchive, ISystemResourceChangeEvents.EVENT_REFRESH, destinationArchive.getParentPath()));
repeat = false;
}
return;
}
public void addToArchive(IRemoteFile source, IRemoteFile destinationArchive, boolean saveFullPathInfo, String relativeTo)
{
IProgressMonitor monitor = new NullProgressMonitor();
IRemoteFile destination = null;
if (destinationArchive == null)
{
return;
}
if (!destinationArchive.getParentRemoteFileSubSystem().getParentRemoteFileSubSystemConfiguration().supportsArchiveManagement())
{
return;
}
if (ArchiveHandlerManager.isVirtual(destinationArchive.getAbsolutePath()))
{
return;
}
if (destinationInSource(destinationArchive))
{
return;
}
if (!destinationArchive.isArchive())
{
return;
}
try
{
if (!destinationArchive.exists()) destinationArchive.getParentRemoteFileSubSystem().createFile(destinationArchive, monitor);
}
catch (SystemMessageException e)
{
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
dlg.open();
return;
}
if (saveFullPathInfo)
{
String selectionPath = source.getAbsolutePath();
String destinationVirtualDirectory = selectionPath.substring(relativeTo.length());
int lastSlash = destinationVirtualDirectory.lastIndexOf(source.getSeparatorChar());
if (lastSlash != -1)
{
destinationVirtualDirectory = destinationVirtualDirectory.substring(0, lastSlash);
destinationVirtualDirectory = ArchiveHandlerManager.cleanUpVirtualPath(destinationVirtualDirectory);
String newDestinationPath = destinationArchive.getAbsolutePath() + ArchiveHandlerManager.VIRTUAL_SEPARATOR + destinationVirtualDirectory;
try
{
destination = destinationArchive.getParentRemoteFileSubSystem().getRemoteFileObject(newDestinationPath, monitor);
if (!destination.exists())
{
destinationArchive.getParentRemoteFileSubSystem().createFolders(destination, monitor);
}
}
catch (SystemMessageException e)
{
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
dlg.open();
return;
}
}
}
IRunnableContext runnableContext = getRunnableContext(_parent);
CopyRunnable runnable = new CopyRunnable(source, destination);
try
{
// currently we don't run this in a thread because
// in some cases dialogs are launched in the operation
// (widgets can only be legally used on the main thread)
runnableContext.run(false, true, runnable); // inthread, cancellable, IRunnableWithProgress
}
catch (java.lang.reflect.InvocationTargetException exc)
{
}
catch (java.lang.InterruptedException e)
{
}
}
protected class CopyRunnable implements IRunnableWithProgress
{
private IRemoteFileSubSystem destSS;
private IRemoteFileSubSystem sourceSS;
private IRemoteFile selection;
private IRemoteFile destination;
public CopyRunnable(IRemoteFile source, IRemoteFile dest)
{
destSS = dest.getParentRemoteFileSubSystem();
sourceSS = source.getParentRemoteFileSubSystem();
selection = source;
destination = dest;
}
public void run(IProgressMonitor monitor)
{
try
{
ISystemDragDropAdapter srcAdapter = (ISystemDragDropAdapter) ((IAdaptable) selection).getAdapter(ISystemDragDropAdapter.class);
boolean sameSysType = sourceSS.getClass().equals(destSS.getClass());
srcAdapter.doDrag(selection, sameSysType, monitor);
boolean sameSys = (sourceSS == destSS);
srcAdapter.doDrop(selection, destination, sameSysType, sameSys, 0, monitor);
}
catch (Exception e)
{
System.out.println(e.getMessage());
System.out.println("SystemAddToArchiveAction: Could not drag and drop " + selection.getAbsolutePath()); //$NON-NLS-1$
}
}
}
/**
* Called when the selection changes in the systems view. This determines
* the input object for the command and whether to enable or disable
* the action.
*
* @param selection the current seleciton
* @return whether to enable or disable the action
*/
public boolean updateSelection(IStructuredSelection selection)
{
_selected.clear();
boolean enable = false;
Iterator e = selection.iterator();
while (e.hasNext())
{
Object selected = e.next();
if (selected != null && selected instanceof IRemoteFile)
{
IRemoteFile file = (IRemoteFile) selected;
_selected.add(file);
enable = true;
}
else
{
return false;
}
}
return enable;
}
protected IRunnableContext getRunnableContext(Shell shell)
{
IRunnableContext irc = RSEUIPlugin.getTheSystemRegistryUI().getRunnableContext();
if (irc != null)
{
return irc;
}
return new ProgressMonitorDialog(shell);
}
protected boolean destinationInSource(IRemoteFile destination)
{
boolean insource = false;
for (int i = 0; i < _selected.size(); i++)
{
if (isAncestorOf((IRemoteFile)_selected.get(i), destination))
{
insource = true;
break;
}
}
return insource;
}
protected boolean isAncestorOf(IRemoteFile ancestor, IRemoteFile descendant)
{
return ancestor.isAncestorOf(descendant);
}
protected String[] getRelativePaths()
{
IRemoteFile file = (IRemoteFile) _selected.get(0);
if (file instanceof IVirtualRemoteFile) return null;
IHost con = file.getSystemConnection();
String host = con.getHostName();
String root = file.getRoot();
String lowestCommonPath = file.getAbsolutePath();
boolean caseSensitive = file.getParentRemoteFileSubSystem().isCaseSensitive();
char separator = file.getSeparatorChar();
for (int i = 1; i < _selected.size(); i++)
{
file = (IRemoteFile) _selected.get(i);
if (file instanceof IVirtualRemoteFile) return null;
IHost nextCon = file.getSystemConnection();
String nextHost = nextCon.getHostName();
String nextRoot = file.getRoot();
String nextPath = file.getAbsolutePath();
if (nextHost.equals(host) && nextRoot.equals(root))
{
lowestCommonPath = getLowestCommonPath(lowestCommonPath, nextPath, caseSensitive);
}
else
{
return null;
}
}
return getRelativePaths(lowestCommonPath, separator);
}
protected String[] getRelativePaths(String lcp, char separator)
{
Vector relpaths = new Vector();
for (int i = lcp.length() - 1; i >= 0; i--)
{
if (lcp.charAt(i) == separator)
{
relpaths.add(lcp.substring(0, i+1));
}
}
String[] results = new String[relpaths.size()];
for (int i = 0; i < relpaths.size(); i++)
{
results[i] = (String) relpaths.get(i);
}
return results;
}
protected String getLowestCommonPath(String str1, String str2, boolean caseSensitive)
{
int maxLength = Math.min(str1.length(), str2.length());
for (int i = maxLength; i >= 0; i--)
{
if (str1.regionMatches(!caseSensitive, 0, str2, 0, i))
{
return str1.substring(0, i);
}
}
return ""; //$NON-NLS-1$
}
}

View file

@ -1,173 +0,0 @@
/********************************************************************************
* Copyright (c) 2003, 2007 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
********************************************************************************/
package org.eclipse.rse.internal.files.ui.actions;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.operation.IRunnableContext;
import org.eclipse.rse.core.RSECorePlugin;
import org.eclipse.rse.core.events.ISystemRemoteChangeEvents;
import org.eclipse.rse.core.events.ISystemResourceChangeEvents;
import org.eclipse.rse.core.events.SystemResourceChangeEvent;
import org.eclipse.rse.core.model.ISystemRegistry;
import org.eclipse.rse.files.ui.dialogs.CombineDialog;
import org.eclipse.rse.internal.files.ui.FileResources;
import org.eclipse.rse.services.clientserver.archiveutils.ArchiveHandlerManager;
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem;
import org.eclipse.rse.ui.ISystemIconConstants;
import org.eclipse.rse.ui.ISystemMessages;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.messages.SystemMessageDialog;
import org.eclipse.swt.widgets.Shell;
/**
* @author mjberger
*
* To change the template for this generated type comment go to
* Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
*/
public class SystemCombineAction extends SystemExtractToAction {
public SystemCombineAction(Shell parent)
{
super(parent, FileResources.ACTION_COMBINE_LABEL, FileResources.ACTION_COMBINE_TOOLTIP);
setHelp(RSEUIPlugin.HELPPREFIX + "actn0120"); //$NON-NLS-1$
setImageDescriptor(RSEUIPlugin.getDefault().getImageDescriptor(ISystemIconConstants.ICON_SYSTEM_COMBINE_ID));
}
public void run()
{
boolean repeat = true;
while (repeat)
{
IRemoteFile firstSelection = (IRemoteFile) _selected.get(0);
String title = FileResources.RESID_COMBINE_TITLE;
CombineDialog dialog = new CombineDialog(getShell(), title);
dialog.setNeedsProgressMonitor(false);
dialog.setMessage(FileResources.RESID_COMBINE_PROMPT);
dialog.setShowNewConnectionPrompt(true);
dialog.setShowPropertySheet(true, false);
dialog.setSystemTypes(getValidSystemTypes());
dialog.setPreSelection(firstSelection);
dialog.setBlockOnOpen(true);
dialog.open();
// if (rc != 0) NOT RELIABLE!
boolean cancelled = false;
if (dialog.wasCancelled()) cancelled = true;
IRemoteFile destination = null;
IRemoteFileSubSystem destSS = null;
if (!cancelled)
{
destination = (IRemoteFile) dialog.getOutputObject();
destSS = destination.getParentRemoteFileSubSystem();
}
else
{
return;
}
if (ArchiveHandlerManager.isVirtual(destination.getAbsolutePath()))
{
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_COMBINETO_VIRTUAL_DEST);
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
dlg.open();
continue;
}
if (destinationInSource(destination))
{
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_DEST_NOT_IN_SOURCE);
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
dlg.open();
continue;
}
try
{
if (!destination.exists()) destSS.createFile(destination, new NullProgressMonitor());
}
catch (SystemMessageException e)
{
SystemMessageDialog.displayMessage(e);
}
IProgressMonitor monitor = new NullProgressMonitor();
for (int i = 0; i < _selected.size(); i++)
{
IRemoteFile selection = (IRemoteFile) _selected.get(i);
IRunnableContext runnableContext = getRunnableContext(_parent);
String nextName = selection.getName();
int j = nextName.lastIndexOf("."); //$NON-NLS-1$
if (j != -1)
{
nextName = nextName.substring(0, j);
}
String nextDest = destination.getAbsolutePath() + ArchiveHandlerManager.VIRTUAL_SEPARATOR + nextName;
IRemoteFile nextDestination = null;
try
{
while (destSS.getRemoteFileObject(nextDest, monitor).exists())
{
nextDest = nextDest + "1"; //$NON-NLS-1$
}
nextDestination = destSS.getRemoteFileObject(nextDest, monitor);
destSS.createFolder(nextDestination, monitor);
}
catch (SystemMessageException e)
{
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
dlg.open();
return;
}
ExtractRunnable runnable = new ExtractRunnable(selection, nextDestination);
try
{
// currently we don't run this in a thread because
// in some cases dialogs are launched in the operation
// (widgets can only be legally used on the main thread)
runnableContext.run(false, true, runnable); // inthread, cancellable, IRunnableWithProgress
}
catch (java.lang.reflect.InvocationTargetException exc)
{
}
catch (java.lang.InterruptedException e)
{
}
}
ISystemRegistry registry = RSECorePlugin.getTheSystemRegistry();
registry.fireRemoteResourceChangeEvent(ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_CREATED, destination, destination.getParentPath(), destSS, null);
registry.fireEvent(new SystemResourceChangeEvent(destination, ISystemResourceChangeEvents.EVENT_REFRESH, destination.getParentPath()));
repeat = false;
}
return;
}
}

View file

@ -1,179 +0,0 @@
/********************************************************************************
* Copyright (c) 2003, 2007 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
********************************************************************************/
package org.eclipse.rse.internal.files.ui.actions;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.operation.IRunnableContext;
import org.eclipse.rse.core.RSECorePlugin;
import org.eclipse.rse.core.events.ISystemRemoteChangeEvents;
import org.eclipse.rse.core.events.ISystemResourceChangeEvents;
import org.eclipse.rse.core.events.SystemResourceChangeEvent;
import org.eclipse.rse.core.model.ISystemRegistry;
import org.eclipse.rse.files.ui.dialogs.CombineDialog;
import org.eclipse.rse.internal.files.ui.FileResources;
import org.eclipse.rse.services.clientserver.archiveutils.ArchiveHandlerManager;
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem;
import org.eclipse.rse.ui.ISystemIconConstants;
import org.eclipse.rse.ui.ISystemMessages;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.messages.SystemMessageDialog;
import org.eclipse.swt.widgets.Shell;
/**
* @author mjberger
*
* To change the template for this generated type comment go to
* Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
*/
public class SystemConvertAction extends SystemExtractToAction {
public SystemConvertAction(Shell parent)
{
super(parent, FileResources.ACTION_CONVERT_LABEL, FileResources.ACTION_CONVERT_TOOLTIP);
setHelp(RSEUIPlugin.HELPPREFIX + "actn0121"); //$NON-NLS-1$
setImageDescriptor(RSEUIPlugin.getDefault().getImageDescriptor(ISystemIconConstants.ICON_SYSTEM_CONVERT_ID));
}
public void run()
{
for (int i = 0; i < _selected.size(); i++)
{
IRemoteFile selection = (IRemoteFile) _selected.get(i);
String title = FileResources.RESID_CONVERT_TITLE;
CombineDialog dialog = new CombineDialog(getShell(), title, true);
dialog.setNeedsProgressMonitor(false);
String message = SystemMessage.sub(FileResources.RESID_CONVERT_PROMPT, "&1", selection.getAbsolutePath()); //$NON-NLS-1$
dialog.setMessage(message);
dialog.setShowNewConnectionPrompt(true);
dialog.setShowPropertySheet(true, false);
dialog.setSystemTypes(getValidSystemTypes());
dialog.setPreSelection(selection);
dialog.setBlockOnOpen(true);
dialog.setHelp(RSEUIPlugin.HELPPREFIX + "cnvd0000"); //$NON-NLS-1$
dialog.setShowLocationPrompt(true);
dialog.setLocationPrompt(FileResources.RESID_CONVERT_LOCATION);
dialog.setNameAndTypePrompt(FileResources.RESID_CONVERT_NAMEANDTYPE);
dialog.setSelectionValidator(this);
dialog.open();
// if (rc != 0) NOT RELIABLE!
boolean cancelled = false;
if (dialog.wasCancelled()) cancelled = true;
IRemoteFile destination = null;
IRemoteFileSubSystem destSS = null;
if (!cancelled)
{
destination = (IRemoteFile) dialog.getOutputObject();
destSS = destination.getParentRemoteFileSubSystem();
}
else
{
return;
}
if (ArchiveHandlerManager.isVirtual(destination.getAbsolutePath()))
{
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_CONVERTTO_VIRTUAL_DEST);
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
dlg.open();
i--;
continue;
}
if (!destination.canWrite())
{
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_DEST_TARGET_READONLY);
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
dlg.open();
i--;
continue;
}
if (selection.isAncestorOf(destination))
{
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_DEST_NOT_IN_SOURCE);
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
dlg.open();
i--;
continue;
}
try
{
if (destination.exists())
{
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_UPLOAD_FILE_EXISTS);
msg.makeSubstitution(destination.getName());
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
boolean ok = dlg.openQuestionNoException();
if (ok)
{
if (destination.getAbsolutePath().equals(selection.getAbsolutePath()))
{
continue;
}
destSS.delete(destination, null);
}
else
{
i--;
continue;
}
}
destSS.createFile(destination, new NullProgressMonitor());
}
catch (SystemMessageException e)
{
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
dlg.open();
continue;
}
IRunnableContext runnableContext = getRunnableContext(_parent);
ExtractRunnable runnable = new ExtractRunnable(selection, destination);
try
{
// currently we don't run this in a thread because
// in some cases dialogs are launched in the operation
// (widgets can only be legally used on the main thread)
runnableContext.run(false, true, runnable); // inthread, cancellable, IRunnableWithProgress
}
catch (java.lang.reflect.InvocationTargetException exc)
{
}
catch (java.lang.InterruptedException e)
{
}
ISystemRegistry registry = RSECorePlugin.getTheSystemRegistry();
registry.fireRemoteResourceChangeEvent(ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_CREATED, destination, destination.getParentPath(), destSS, null);
registry.fireEvent(new SystemResourceChangeEvent(destination, ISystemResourceChangeEvents.EVENT_REFRESH, destination.getParentPath()));
}
}
}

View file

@ -1,272 +0,0 @@
/********************************************************************************
* Copyright (c) 2003, 2007 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
********************************************************************************/
package org.eclipse.rse.internal.files.ui.actions;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableContext;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.rse.core.RSECorePlugin;
import org.eclipse.rse.core.events.ISystemRemoteChangeEvents;
import org.eclipse.rse.core.events.ISystemResourceChangeEvents;
import org.eclipse.rse.core.events.SystemResourceChangeEvent;
import org.eclipse.rse.core.model.ISystemRegistry;
import org.eclipse.rse.core.subsystems.ISystemDragDropAdapter;
import org.eclipse.rse.internal.files.ui.FileResources;
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem;
import org.eclipse.rse.ui.ISystemIconConstants;
import org.eclipse.rse.ui.ISystemMessages;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.actions.SystemBaseAction;
import org.eclipse.rse.ui.messages.SystemMessageDialog;
import org.eclipse.swt.widgets.Shell;
/**
* @author mjberger
*
* To change the template for this generated type comment go to
* Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
*/
public class SystemExtractAction extends SystemBaseAction
{
protected List _selected;
protected Shell _parent;
protected String _label;
public SystemExtractAction(Shell parent)
{
super(FileResources.ACTION_EXTRACT_LABEL, parent);
_label = FileResources.ACTION_EXTRACT_LABEL;
setToolTipText(FileResources.ACTION_EXTRACT_TOOLTIP);
_selected = new ArrayList();
_parent = parent;
allowOnMultipleSelection(true);
setHelp(RSEUIPlugin.HELPPREFIX + "actn0118"); //$NON-NLS-1$
setImageDescriptor(RSEUIPlugin.getDefault().getImageDescriptor(ISystemIconConstants.ICON_SYSTEM_EXTRACT_ID));
}
public SystemExtractAction(Shell parent, String label, String tooltip)
{
super(label, tooltip, parent);
_label = label;
setToolTipText(tooltip);
_selected = new ArrayList();
_parent = parent;
allowOnMultipleSelection(true);
setHelp(RSEUIPlugin.HELPPREFIX + "actn0118"); //$NON-NLS-1$
setImageDescriptor(RSEUIPlugin.getDefault().getImageDescriptor(ISystemIconConstants.ICON_SYSTEM_EXTRACT_ID));
}
public void run()
{
IProgressMonitor monitor = new NullProgressMonitor();
for (int i = 0; i < _selected.size(); i++)
{
IRemoteFile selection = (IRemoteFile) _selected.get(i);
IRemoteFile destinationParent = selection.getParentRemoteFile();
IRemoteFileSubSystem ss = selection.getParentRemoteFileSubSystem();
String newName = getExtractedName(selection);
IRemoteFile destination = null;
try
{
destination = ss.getRemoteFileObject(destinationParent.getAbsolutePath() + destinationParent.getSeparator() + newName, monitor);
ss.createFolder(destination, monitor);
}
catch (SystemMessageException e)
{
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
dlg.open();
continue;
}
IRunnableContext runnableContext = getRunnableContext(_parent);
ExtractRunnable runnable = new ExtractRunnable(selection, destination);
try
{
// currently we don't run this in a thread because
// in some cases dialogs are launched in the operation
// (widgets can only be legally used on the main thread)
runnableContext.run(false, true, runnable); // inthread, cancellable, IRunnableWithProgress
}
catch (java.lang.reflect.InvocationTargetException exc)
{
}
catch (java.lang.InterruptedException e)
{
}
// always refresh
ISystemRegistry registry = RSECorePlugin.getTheSystemRegistry();
registry.fireRemoteResourceChangeEvent(ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_CREATED, destination, destinationParent, ss, null);
registry.fireEvent(new SystemResourceChangeEvent(destination, ISystemResourceChangeEvents.EVENT_REFRESH, destinationParent));
}
}
protected class ExtractRunnable implements IRunnableWithProgress
{
private IRemoteFileSubSystem destSS;
private IRemoteFileSubSystem sourceSS;
private IRemoteFile selection;
private IRemoteFile destination;
public ExtractRunnable(IRemoteFile source, IRemoteFile dest)
{
destSS = dest.getParentRemoteFileSubSystem();
sourceSS = source.getParentRemoteFileSubSystem();
selection = source;
destination = dest;
}
public void run(IProgressMonitor monitor)
{
try
{
IRemoteFile[] sources = sourceSS.listFoldersAndFiles(selection, monitor);
for (int j = 0; j < sources.length && !monitor.isCanceled(); j++)
{
try
{
ISystemDragDropAdapter srcAdapter = (ISystemDragDropAdapter) ((IAdaptable) selection).getAdapter(ISystemDragDropAdapter.class);
boolean sameSysType = sourceSS.getClass().equals(destSS.getClass());
boolean sameSys = (sourceSS == destSS);
if (!sameSys)
{
Object source = srcAdapter.doDrag(sources[j], sameSysType, monitor);
srcAdapter.doDrop(source, destination, sameSysType, sameSys, 0, monitor);
}
else
{
srcAdapter.doDrop(sources[j], destination, sameSysType, sameSys, 0, monitor);
}
}
catch (Exception e)
{
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_OPERATION_FAILED);
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
dlg.open();
//System.out.println(e.getMessage());
//System.out.println("Could not extract " + sources[j].getAbsolutePath()); //$NON-NLS-1$
}
}
}
catch (SystemMessageException e)
{
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
dlg.open();
}
}
}
/**
* Called when the selection changes in the systems view. This determines
* the input object for the command and whether to enable or disable
* the action.
*
* @param selection the current seleciton
* @return whether to enable or disable the action
*/
public boolean updateSelection(IStructuredSelection selection)
{
_selected.clear();
boolean enable = false;
Iterator e = selection.iterator();
while (e.hasNext())
{
Object selected = e.next();
if (selected != null && selected instanceof IRemoteFile)
{
IRemoteFile file = (IRemoteFile) selected;
if (file.isArchive() && file.getParentRemoteFileSubSystem().getParentRemoteFileSubSystemConfiguration().supportsArchiveManagement())
{
_selected.add(file);
enable = true;
}
}
else
{
return false;
}
}
if (_selected.size() == 1)
{
this.setText(getActionLabelForSingleSelection());
}
else
{
this.setText(_label);
}
return enable;
}
/**
* Extending classes must override this method, otherwise
* when there is one selection, the action label will be
* "Extract to xxxx", where xxxx is a dynamically created directory
* name. Note: you can also eliminate this behaviour by overriding
* the updateSelection method.
* @return Set this to return the normal action label if you don't want
* the name dynamically created.
*/
protected String getActionLabelForSingleSelection()
{
String msg = FileResources.ACTION_EXTRACT_SUB_LABEL;
return SystemMessage.sub(msg, "%1", getExtractedName((IRemoteFile)_selected.get(0))); //$NON-NLS-1$
}
protected String getExtractedName(IRemoteFile selection)
{
String newName = selection.getName();
int k = newName.lastIndexOf("."); //$NON-NLS-1$
if (k == -1)
{
newName = newName + "_contents"; //$NON-NLS-1$
}
else
{
newName = newName.substring(0, k);
}
return newName;
}
protected IRunnableContext getRunnableContext(Shell shell)
{
IRunnableContext irc = RSEUIPlugin.getTheSystemRegistryUI().getRunnableContext();
if (irc != null)
{
return irc;
}
return new ProgressMonitorDialog(shell);
}
}

View file

@ -1,209 +0,0 @@
/********************************************************************************
* Copyright (c) 2003, 2007 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
********************************************************************************/
package org.eclipse.rse.internal.files.ui.actions;
import org.eclipse.jface.operation.IRunnableContext;
import org.eclipse.rse.core.IRSESystemType;
import org.eclipse.rse.core.RSECorePlugin;
import org.eclipse.rse.core.events.ISystemRemoteChangeEvents;
import org.eclipse.rse.core.events.ISystemResourceChangeEvents;
import org.eclipse.rse.core.events.SystemResourceChangeEvent;
import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.ISystemRegistry;
import org.eclipse.rse.files.ui.dialogs.ExtractToDialog;
import org.eclipse.rse.internal.files.ui.FileResources;
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem;
import org.eclipse.rse.ui.ISystemIconConstants;
import org.eclipse.rse.ui.ISystemMessages;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.SystemWidgetHelpers;
import org.eclipse.rse.ui.messages.SystemMessageDialog;
import org.eclipse.rse.ui.validators.IValidatorRemoteSelection;
import org.eclipse.rse.ui.view.ISystemRemoteElementAdapter;
import org.eclipse.swt.widgets.Shell;
/**
* @author mjberger
*
* To change the template for this generated type comment go to
* Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
*/
public class SystemExtractToAction extends SystemExtractAction implements IValidatorRemoteSelection
{
private static final String[] validSystemTypesIds = {
IRSESystemType.SYSTEMTYPE_LOCAL_ID,
IRSESystemType.SYSTEMTYPE_WINDOWS_ID,
IRSESystemType.SYSTEMTYPE_LINUX_ID,
IRSESystemType.SYSTEMTYPE_POWER_LINUX_ID,
IRSESystemType.SYSTEMTYPE_UNIX_ID,
IRSESystemType.SYSTEMTYPE_AIX_ID,
IRSESystemType.SYSTEMTYPE_ISERIES_ID
};
private static IRSESystemType[] validSystemTypes = null;
protected SystemMessage targetDescendsFromSrcMsg = null;
protected int currentlyProcessingSelection = 0;
public SystemExtractToAction(Shell parent)
{
super(parent,FileResources.ACTION_EXTRACT_TO_LABEL, FileResources.ACTION_EXTRACT_TO_TOOLTIP);
setHelp(RSEUIPlugin.HELPPREFIX + "actn0119"); //$NON-NLS-1$
setImageDescriptor(RSEUIPlugin.getDefault().getImageDescriptor(ISystemIconConstants.ICON_SYSTEM_EXTRACTTO_ID));
}
public SystemExtractToAction(Shell parent, String label, String tooltip)
{
super(parent, label, tooltip);
setHelp(RSEUIPlugin.HELPPREFIX + "actn0119"); //$NON-NLS-1$
setImageDescriptor(RSEUIPlugin.getDefault().getImageDescriptor(ISystemIconConstants.ICON_SYSTEM_EXTRACTTO_ID));
}
protected IRSESystemType[] getValidSystemTypes() {
if (validSystemTypes==null) {
validSystemTypes = SystemWidgetHelpers.getValidSystemTypes(validSystemTypesIds);
}
return validSystemTypes;
}
public void run()
{
for (int i = 0; i < _selected.size(); i++)
{
currentlyProcessingSelection = i;
IRemoteFile selection = (IRemoteFile) _selected.get(i);
//IRemoteFileSubSystem sourceSS = selection.getParentRemoteFileSubSystem();
String title = FileResources.RESID_EXTRACTTO_TITLE;
ExtractToDialog dialog = new ExtractToDialog(getShell(), title);
dialog.setNeedsProgressMonitor(true);
String message = SystemMessage.sub(FileResources.RESID_EXTRACTTO_PROMPT, "&1", selection.getAbsolutePath()); //$NON-NLS-1$
dialog.setMessage(message);
dialog.setShowNewConnectionPrompt(true);
dialog.setShowPropertySheet(true, false);
dialog.setSystemTypes(getValidSystemTypes());
dialog.setPreSelection(selection);
dialog.setBlockOnOpen(true);
dialog.setSelectionValidator(this);
/*if (dlgHelpId!=null)
{
dialog.setHelp(dlgHelpId);
}*/
dialog.open();
// if (rc != 0) NOT RELIABLE!
boolean cancelled = false;
if (dialog.wasCancelled()) cancelled = true;
IRemoteFile destination = null;
IRemoteFileSubSystem destSS = null;
if (!cancelled)
{
destination = (IRemoteFile) dialog.getOutputObject();
destSS = destination.getParentRemoteFileSubSystem();
}
else
{
return;
}
if (selection.isAncestorOf(destination))
{
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_DEST_NOT_IN_SOURCE);
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
dlg.open();
i--;
continue;
}
if (!destination.canWrite())
{
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_DEST_TARGET_READONLY);
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
dlg.open();
i--;
continue;
}
IRunnableContext runnableContext = getRunnableContext(_parent);
ExtractRunnable runnable = new ExtractRunnable(selection, destination);
try
{
// currently we don't run this in a thread because
// in some cases dialogs are launched in the operation
// (widgets can only be legally used on the main thread)
runnableContext.run(false, true, runnable); // inthread, cancellable, IRunnableWithProgress
}
catch (java.lang.reflect.InvocationTargetException exc)
{
}
catch (java.lang.InterruptedException e)
{
}
// always refresh
ISystemRegistry registry = RSECorePlugin.getTheSystemRegistry();
registry.fireRemoteResourceChangeEvent(ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_CREATED, destination, destination.getParentPath(), destSS, null);
registry.fireEvent(new SystemResourceChangeEvent(destination, ISystemResourceChangeEvents.EVENT_REFRESH, destination.getParentPath()));
}
}
protected boolean destinationInSource(IRemoteFile destination)
{
boolean insource = false;
for (int i = 0; i < _selected.size(); i++)
{
if (destination.isDescendantOf((IRemoteFile) _selected.get(i)))
{
insource = true;
break;
}
}
return insource;
}
protected String getActionLabelForSingleSelection()
{
return _label;
}
public SystemMessage isValid(IHost selectedConnection, Object[] selectedObjects, ISystemRemoteElementAdapter[] remoteAdaptersForSelectedObjects)
{
//if (selectedConnection != sourceConnection) {} // someday, but can't happen today.
Object selectedObject = selectedObjects[0];
IRemoteFile currentSelection = (IRemoteFile) _selected.get(currentlyProcessingSelection);
if (!(selectedObject instanceof IRemoteFile))
return null;
IRemoteFile selectedFolder = (IRemoteFile)selectedObject;
if (selectedFolder.isDescendantOf(currentSelection))
{
if (targetDescendsFromSrcMsg == null)
targetDescendsFromSrcMsg = RSEUIPlugin.getPluginMessage(ISystemMessages.FILEMSG_MOVE_TARGET_DESCENDS_FROM_SOUCE);
return targetDescendsFromSrcMsg;
}
else
return null;
}
}

View file

@ -69,13 +69,9 @@ import org.eclipse.rse.core.subsystems.SubSystem;
import org.eclipse.rse.files.ui.resources.SystemEditableRemoteFile;
import org.eclipse.rse.files.ui.resources.UniversalFileTransferUtility;
import org.eclipse.rse.internal.files.ui.FileResources;
import org.eclipse.rse.internal.files.ui.actions.SystemAddToArchiveAction;
import org.eclipse.rse.internal.files.ui.actions.SystemCompareFilesAction;
import org.eclipse.rse.internal.files.ui.actions.SystemCompareWithEditionAction;
import org.eclipse.rse.internal.files.ui.actions.SystemConvertAction;
import org.eclipse.rse.internal.files.ui.actions.SystemEditFilesAction;
import org.eclipse.rse.internal.files.ui.actions.SystemExtractAction;
import org.eclipse.rse.internal.files.ui.actions.SystemExtractToAction;
import org.eclipse.rse.internal.files.ui.actions.SystemMoveRemoteFileAction;
import org.eclipse.rse.internal.files.ui.actions.SystemNewFileAction;
import org.eclipse.rse.internal.files.ui.actions.SystemNewFileFilterFromFolderAction;
@ -178,10 +174,7 @@ public class SystemViewRemoteFileAdapter
//private SystemCommandAction commandAction, shellAction;
private SystemSearchAction searchAction;
private SystemExtractAction extractAction;
private SystemExtractToAction extractToAction;
private SystemConvertAction convertAction;
private SystemAddToArchiveAction addToArchiveAction;
private IEditorRegistry registry;
private SystemRemoteFileOpenWithMenu openWithMenu;
@ -371,31 +364,6 @@ public class SystemViewRemoteFileAdapter
}
}
if (extractAction == null)
{
extractAction = new SystemExtractAction(shell);
}
if (extractToAction == null)
{
extractToAction = new SystemExtractToAction(shell);
}
if (convertAction == null)
{
convertAction = new SystemConvertAction(shell);
}
if (addToArchiveAction == null)
{
addToArchiveAction = new SystemAddToArchiveAction(shell);
}
if (allHaveContents && canEdit && !isVirtual)
{
/*
menu.add(ISystemContextMenuConstants.GROUP_IMPORTEXPORT, extractAction);
menu.add(ISystemContextMenuConstants.GROUP_IMPORTEXPORT, extractToAction);
menu.add(ISystemContextMenuConstants.GROUP_IMPORTEXPORT, convertAction);
*/
}
// add import and export actions for single selection of folder
/* if ((elementType == 1 && selection.size() == 1) && canEdit)