--- a/diff/src/org/netbeans/modules/diff/DiffAction.java Mon Dec 23 14:01:56 2013 +0400
+++ a/diff/src/org/netbeans/modules/diff/DiffAction.java Mon Dec 23 17:11:55 2013 +0400
@@ -72,6 +72,7 @@
import org.netbeans.modules.diff.builtin.DefaultDiff;
import org.netbeans.modules.diff.builtin.SingleDiffPanel;
import org.netbeans.modules.diff.options.AccessibleJFileChooser;
+import org.netbeans.spi.diff.FileChooserProvider;
import org.openide.DialogDisplayer;
import org.openide.ErrorManager;
import org.openide.util.lookup.ProxyLookup;
@@ -199,7 +200,7 @@
private FileObject promptForFileobject(FileObject peer) {
String path = DiffModuleConfig.getDefault().getPreferences().get("diffToLatestFolder", peer.getParent().getPath());
File latestPath = FileUtil.normalizeFile(new File(path));
- JFileChooser fileChooser = new AccessibleJFileChooser(NbBundle.getMessage(DiffAction.class, "ACSD_BrowseDiffToFile"), latestPath); // NOI18N
+ JFileChooser fileChooser = FileChooserProvider.createFileChooser(NbBundle.getMessage(DiffAction.class, "ACSD_BrowseDiffToFile"), peer.getParent()); // NOI18N
fileChooser.setDialogTitle(NbBundle.getMessage(DiffAction.class, "DiffTo_BrowseFile_Title", peer.getName())); // NOI18N
fileChooser.setMultiSelectionEnabled(false);
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ a97a4c508134 Mon Dec 23 17:11:55 2013 +0400
@@ -0,0 +1,72 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ * Other names may be trademarks of their respective owners.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License. When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2013 Sun Microsystems, Inc.
+ */
+
+package org.netbeans.spi.diff;
+
+import java.io.File;
+import javax.swing.JFileChooser;
+import org.netbeans.modules.diff.DiffModuleConfig;
+import org.netbeans.modules.diff.options.AccessibleJFileChooser;
+import org.openide.filesystems.FileObject;
+import org.openide.filesystems.FileUtil;
+import org.openide.util.Lookup;
+
+/**
+ *
+ * @author vkvashin
+ */
+public abstract class FileChooserProvider {
+
+ public static JFileChooser createFileChooser(String acsd, FileObject currentDirectory) {
+ for (FileChooserProvider provider : Lookup.getDefault().lookupAll(FileChooserProvider.class)) {
+ JFileChooser chooser = provider.createFileChooserImpl(acsd, currentDirectory);
+ if (chooser != null) {
+ return chooser;
+ }
+ }
+// String path = DiffModuleConfig.getDefault().getPreferences().get("diffToLatestFolder", currentDirectory.getPath());
+// File latestPath = FileUtil.normalizeFile(new File(path));
+ return new AccessibleJFileChooser(acsd, FileUtil.toFile(currentDirectory));
+ }
+
+ protected abstract JFileChooser createFileChooserImpl(String acsd, FileObject currentDirectory);
+}
--- a/dlight.remote/nbproject/project.xml Mon Dec 23 14:01:56 2013 +0400
+++ a/dlight.remote/nbproject/project.xml Mon Dec 23 17:11:55 2013 +0400
@@ -15,6 +15,15 @@
+ org.netbeans.modules.diff
+
+
+
+ 1
+ 1.45
+
+
+
org.netbeans.modules.dlight.libs.common
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ a97a4c508134 Mon Dec 23 17:11:55 2013 +0400
@@ -0,0 +1,71 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ * Other names may be trademarks of their respective owners.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License. When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2013 Sun Microsystems, Inc.
+ */
+
+package org.netbeans.modules.remote.support;
+
+import javax.swing.JFileChooser;
+import org.netbeans.modules.nativeexecution.api.ExecutionEnvironment;
+import org.netbeans.modules.remote.api.ui.FileChooserBuilder;
+import org.netbeans.modules.remote.spi.FileSystemProvider;
+import org.netbeans.spi.diff.FileChooserProvider;
+import org.openide.filesystems.FileObject;
+import org.openide.util.lookup.ServiceProvider;
+
+/**
+ *
+ * @author vkvashin
+ */
+@ServiceProvider(service = FileChooserProvider.class)
+public class FileChooserProviderImpl extends FileChooserProvider {
+
+ @Override
+ protected JFileChooser createFileChooserImpl(String acsd, FileObject currentDirectory) {
+ ExecutionEnvironment env = FileSystemProvider.getExecutionEnvironment(currentDirectory);
+ if (env != null && env.isRemote()) {
+ FileChooserBuilder fcb = new FileChooserBuilder(env);
+ FileChooserBuilder.JFileChooserEx chooser = fcb.createFileChooser(currentDirectory.getPath());
+ return chooser;
+ }
+ return null;
+ }
+
+}