Author: rwhitcomb
Date: Thu Mar 13 00:30:10 2014
New Revision: 1577012

URL: http://svn.apache.org/r1577012
Log:
PIVOT-937: Add display of the remote host name on the VFS Browser sheet
so that remote host context can be plainly seen in the case we are looking
at files on a different machine.

Note: the translation of "Host name" in the JSON files is not guaranteed
(yet) for several languages -- was just done with Google Translate.

Modified:
    
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.java
    
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.json
    
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_cs.json
    
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_de.json
    
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_es.json
    
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_fr.json
    
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_it.json
    
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_pl.json
    
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_ru.json
    
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_zh.json
    
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/terra_vfs_browser_sheet_skin.bxml

Modified: 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.java
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.java?rev=1577012&r1=1577011&r2=1577012&view=diff
==============================================================================
--- 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.java
 (original)
+++ 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.java
 Thu Mar 13 00:30:10 2014
@@ -17,9 +17,12 @@
 package org.apache.pivot.wtk.skin.terra;
 
 import java.io.IOException;
+import java.util.regex.Pattern;
+import java.util.regex.Matcher;
 
 import org.apache.commons.vfs2.FileName;
 import org.apache.commons.vfs2.FileObject;
+import org.apache.commons.vfs2.FileSystem;
 import org.apache.commons.vfs2.FileSystemException;
 import org.apache.commons.vfs2.FileSystemManager;
 import org.apache.commons.vfs2.FileType;
@@ -37,6 +40,7 @@ import org.apache.pivot.wtk.Component;
 import org.apache.pivot.wtk.ComponentMouseButtonListener;
 import org.apache.pivot.wtk.Container;
 import org.apache.pivot.wtk.Form;
+import org.apache.pivot.wtk.Label;
 import org.apache.pivot.wtk.Mouse;
 import org.apache.pivot.wtk.PushButton;
 import org.apache.pivot.wtk.Sheet;
@@ -70,6 +74,10 @@ public class TerraVFSBrowserSheetSkin ex
     @BXML
     private TablePane tablePane = null;
     @BXML
+    private BoxPane hostNameBoxPane = null;
+    @BXML
+    private Label hostNameLabel = null;
+    @BXML
     private BoxPane saveAsBoxPane = null;
     @BXML
     private TextInput saveAsTextInput = null;
@@ -80,8 +88,36 @@ public class TerraVFSBrowserSheetSkin ex
     @BXML
     private PushButton cancelButton = null;
 
+    private FileSystem fileSystem = null;
     private boolean updatingSelection = false;
     private int selectedDirectoryCount = 0;
+    private static final Pattern HOST_PATTERN = 
Pattern.compile("[a-zA-Z]+://([a-zA-Z0-9\\-_\\.]+)(\\\\[a-zA-Z0-9\\-\\.]+)?:\\d+/.*");
+
+
+    private void setHostLabel(FileObject rootDir) {
+        try {
+            if (rootDir != null) {
+                hostNameBoxPane.setVisible(true);
+                FileSystem localFileSystem = rootDir.getFileSystem();
+                if (!localFileSystem.equals(fileSystem)) {
+                    fileSystem = localFileSystem;
+                    FileObject root = fileSystem.getRoot();
+                    String rootURL = root.getURL().toString();
+                    // Parse out the host name with some special considerations
+                    Matcher m = HOST_PATTERN.matcher(rootURL);
+                    if (m.matches())
+                        hostNameLabel.setText(m.group(1));
+                    else
+                        hostNameLabel.setText(rootURL);
+                }
+            } else {
+                hostNameBoxPane.setVisible(false);
+            }
+        }
+        catch (FileSystemException ex) {
+            throw new RuntimeException(ex);
+        }
+    }
 
     public TerraVFSBrowserSheetSkin() {
         setResizable(true);
@@ -114,7 +150,9 @@ public class TerraVFSBrowserSheetSkin ex
 
         // set the same rootDirectory as the component
         try {
-            fileBrowser.setRootDirectory(fileBrowserSheet.getRootDirectory());
+            FileObject rootDirectory = fileBrowserSheet.getRootDirectory();
+            fileBrowser.setRootDirectory(rootDirectory);
+            setHostLabel(rootDirectory);
         } catch (FileSystemException fse) {
             throw new RuntimeException(fse);
         }
@@ -141,7 +179,9 @@ public class TerraVFSBrowserSheetSkin ex
                 updatingSelection = true;
 
                 try {
-                    
fileBrowserSheet.setRootDirectory(fileBrowserArgument.getRootDirectory());
+                    FileObject rootDirectory = 
fileBrowserArgument.getRootDirectory();
+                    fileBrowserSheet.setRootDirectory(rootDirectory);
+                    setHostLabel(rootDirectory);
                 } catch (FileSystemException fse) {
                     throw new RuntimeException(fse);
                 }
@@ -365,6 +405,7 @@ public class TerraVFSBrowserSheetSkin ex
                                                        */selectedFile;
                                     fileBrowserSheet.setRootDirectory(root);
                                     fileBrowser.setRootDirectory(root);
+                                    setHostLabel(root);
                                     saveAsTextInput.setText("");
                                 } catch (IOException ioe) {
                                     Form.setFlag(saveAsBoxPane, new 
Form.Flag());
@@ -379,6 +420,7 @@ public class TerraVFSBrowserSheetSkin ex
                                         // TODO: canonical file again
                                         // 
fileBrowserSheet.setRootDirectory(root.getCanonicalFile());
                                         
fileBrowserSheet.setRootDirectory(root);
+                                        setHostLabel(root);
                                         selectedFile = 
manager.resolveFile(selectedFile.getName().getURI());
                                     } catch (IOException ioe) {
                                         Form.setFlag(saveAsBoxPane, new 
Form.Flag());
@@ -465,7 +507,9 @@ public class TerraVFSBrowserSheetSkin ex
         FileObject previousRootDirectory) {
         if (!updatingSelection) {
             try {
-                
fileBrowser.setRootDirectory(fileBrowserSheet.getRootDirectory());
+                FileObject rootDirectory = fileBrowserSheet.getRootDirectory();
+                fileBrowser.setRootDirectory(rootDirectory);
+                setHostLabel(rootDirectory);
             } catch (FileSystemException fse) {
                 throw new RuntimeException(fse);
             }

Modified: 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.json
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.json?rev=1577012&r1=1577011&r2=1577012&view=diff
==============================================================================
--- 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.json
 (original)
+++ 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.json
 Thu Mar 13 00:30:10 2014
@@ -14,7 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-{   saveAs: "Save as:",
+{   hostName: "Host name:",
+    saveAs: "Save as:",
     ok: "OK",
     cancel: "Cancel"
 }

Modified: 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_cs.json
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_cs.json?rev=1577012&r1=1577011&r2=1577012&view=diff
==============================================================================
--- 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_cs.json
 (original)
+++ 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_cs.json
 Thu Mar 13 00:30:10 2014
@@ -14,7 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-{   saveAs: "Uložit jako:",
+{   hostName: "Název hostitele:", /* Check translation? */
+    saveAs: "Uložit jako:",
     ok: "OK",
     cancel: "Zrušit"
 }

Modified: 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_de.json
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_de.json?rev=1577012&r1=1577011&r2=1577012&view=diff
==============================================================================
--- 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_de.json
 (original)
+++ 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_de.json
 Thu Mar 13 00:30:10 2014
@@ -14,7 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-{   saveAs: "Speichern als:",
+{   hostName: "Hostname:",
+    saveAs: "Speichern als:",
     ok: "OK",
     cancel: "Abbruch"
 }

Modified: 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_es.json
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_es.json?rev=1577012&r1=1577011&r2=1577012&view=diff
==============================================================================
--- 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_es.json
 (original)
+++ 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_es.json
 Thu Mar 13 00:30:10 2014
@@ -14,7 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-{   saveAs: "Guardar como:",
+{   hostName: "Nombre del host:",
+    saveAs: "Guardar como:",
     ok: "Aceptar",
     cancel: "Cancelar"
 }

Modified: 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_fr.json
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_fr.json?rev=1577012&r1=1577011&r2=1577012&view=diff
==============================================================================
--- 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_fr.json
 (original)
+++ 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_fr.json
 Thu Mar 13 00:30:10 2014
@@ -14,7 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-{   saveAs: "Sauvegarder sous:",
+{   hostName: "Nom de l'hôte:", /* Check translation? */
+    saveAs: "Sauvegarder sous:",
     ok: "OK",
     cancel: "Annuler"
 }

Modified: 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_it.json
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_it.json?rev=1577012&r1=1577011&r2=1577012&view=diff
==============================================================================
--- 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_it.json
 (original)
+++ 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_it.json
 Thu Mar 13 00:30:10 2014
@@ -14,7 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-{   saveAs: "Salva come:",
+{   hostName: "Nome macchina:",
+    saveAs: "Salva come:",
     ok: "OK",
     cancel: "Annulla"
 }

Modified: 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_pl.json
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_pl.json?rev=1577012&r1=1577011&r2=1577012&view=diff
==============================================================================
--- 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_pl.json
 (original)
+++ 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_pl.json
 Thu Mar 13 00:30:10 2014
@@ -14,7 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-{   saveAs: "Zapisz jako:",
+{   hostName: "Nazwę hosta:", /* Check translation? */
+    saveAs: "Zapisz jako:",
     ok: "OK",
     cancel: "Anuluj"
 }

Modified: 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_ru.json
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_ru.json?rev=1577012&r1=1577011&r2=1577012&view=diff
==============================================================================
--- 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_ru.json
 (original)
+++ 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_ru.json
 Thu Mar 13 00:30:10 2014
@@ -14,7 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-{   saveAs: "Сохранить как:",
+{   hostName: "Имя хоста:", /* Check translation? */
+    saveAs: "Сохранить как:",
     ok: "OK",
     cancel: "Отмена"
 }

Modified: 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_zh.json
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_zh.json?rev=1577012&r1=1577011&r2=1577012&view=diff
==============================================================================
--- 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_zh.json
 (original)
+++ 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin_zh.json
 Thu Mar 13 00:30:10 2014
@@ -14,7 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-{   saveAs: "保存为:",
+{   hostName: "主机名:", /* Check translation? */
+    saveAs: "保存为:",
     ok: "确定",
     cancel: "取消"
 }

Modified: 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/terra_vfs_browser_sheet_skin.bxml
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/terra_vfs_browser_sheet_skin.bxml?rev=1577012&r1=1577011&r2=1577012&view=diff
==============================================================================
--- 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/terra_vfs_browser_sheet_skin.bxml
 (original)
+++ 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/terra_vfs_browser_sheet_skin.bxml
 Thu Mar 13 00:30:10 2014
@@ -27,6 +27,14 @@ limitations under the License.
         <TablePane.Row height="-1">
             <Form>
                 <Form.Section>
+                    <BoxPane bxml:id="hostNameBoxPane" orientation="vertical" 
styles="{fill:true}">
+                        <BoxPane styles="{verticalAlignment:'center'}">
+                            <Label text="%hostName"/>
+                            <Label bxml:id="hostNameLabel" 
styles="{font:{bold:true}}"/>
+                        </BoxPane>
+                    </BoxPane>
+                </Form.Section>
+                <Form.Section>
                     <BoxPane bxml:id="saveAsBoxPane" orientation="vertical" 
styles="{fill:true}">
                         <BoxPane styles="{verticalAlignment:'center'}">
                             <Label text="%saveAs"/>


Reply via email to