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"/>