/*******************************************************************************
* Copyright (c) 2009, 2010 Progress Software 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
******************************************************************************/
package org.fusesource.tools.core.ui.url.urlchooser.filesystemchooser;
import java.net.URL;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.Transfer;
import org.fusesource.tools.core.ui.url.urlchooser.URLChooserFilter;
/**
*/
public abstract class AbstractFileSystemProvider implements FileSystemProvider {
protected static URLOpener opener = null;
protected URLChooserFilter filter;
protected boolean isSingleSelection;
private URL[] selection;
public void setSelectionType(boolean isSingleOrMulti) {
this.isSingleSelection = isSingleOrMulti;
}
public void setFilters(URLChooserFilter filter) {
this.filter = filter;
}
public URLChooserFilter getFilters() {
return filter;
}
public URL[] acceptDroppedData(DropTargetEvent event) {
return null;
}
public Object[] acceptDrop(DropTargetEvent event) {
return acceptDroppedData(event);
}
public boolean supportsDnd() {
return false;
}
public Transfer[] getTransferTypes() {
return new Transfer[0];
}
public void open(URL selectedURL) {
if (validate(selectedURL)) {
if (opener != null) {
opener.open(selectedURL, this);
}
}
}
protected boolean isSingleSelection() {
return isSingleSelection;
}
public static void setURLOpener(URLOpener o) {
opener = o;
}
public static interface URLOpener {
void open(URL url, FileSystemProvider provider);
}
public URL convertToURL(String path) {
return null;
}
public void run(Object[] initParams) {
selection = browse((initParams != null && initParams.length > 0 && initParams[0] != null) ? initParams[0]
.toString() : null);
}
public Object[] getSelection() {
return selection;
}
public boolean isSelectionSupported() {
return true;
}
}