+ /**
+ * Convert server date to local time according to browser timezone
+ * and format it according to localized pattern.
+ * Time is always formatted to 24hr format.
+ * NB: This assumes that server runs in UTC timezone. Otherwise
+ * we would need to adjust for server time offset as well.
+ *
+ * @param date
+ * @return String
+ */
+ public static String formatLocalDateTime(Date date) {
+ Date convertedDate = new Date(date.getTime() - date.getTimezoneOffset());
+ final DateTimeFormat dateFormatter = DateTimeFormat.getShortDateFormat();
+ final DateTimeFormat timeFormatter = DateTimeFormat.getFormat("HH:mm");
+ String datePart = dateFormatter.format(convertedDate);
+ String timePart = timeFormatter.format(convertedDate);
+ return datePart + " " + timePart;
+ }
+
+ /**
+ * History support for folder navigation
+ * adds a new browser history entry
+ *
+ * @param key
+ */
+ public void updateHistory(String key){
+// Replace any whitespace of the initial string to "+"
+// String result = key.replaceAll("\\s","+");
+// Add a new browser history entry.
+// History.newItem(result);
+ History.newItem(key);
+ }
+
+ /**
+ * This method examines the token input and add a "/" at the end in case it's omitted.
+ * This happens only in Files/trash/, Files/shared/, Files/others.
+ *
+ * @param tokenInput
+ * @return the formated token with a "/" at the end or the same tokenInput parameter
+ */
+
+ private String handleSpecialFolderNames(String tokenInput){
+ List<String> pathsToCheck = Arrays.asList("Files/trash", "Files/shared", "Files/others");
+ if(pathsToCheck.contains(tokenInput))
+ return tokenInput + "/";
+ return tokenInput;
+
+ }
+
+ /**
+ * Reject illegal resource names, like '.' or '..' or slashes '/'.
+ */
+ static boolean isValidResourceName(String name) {
+ if (".".equals(name) || "..".equals(name) || name.contains("/"))
+ return false;
+ return true;
+ }
+
+ public void putUserToMap(String _userName, String _userFullName){
+ userFullNameMap.put(_userName, _userFullName);
+ }
+
+ public String findUserFullName(String _userName){
+ return userFullNameMap.get(_userName);
+ }
+ public String getUserFullName(String _userName) {
+
+ if (GSS.get().findUserFullName(_userName) == null)
+ //if there is no userFullName found then the map fills with the given _userName,
+ //so userFullName = _userName
+ GSS.get().putUserToMap(_userName, _userName);
+ else if(GSS.get().findUserFullName(_userName).indexOf('@') != -1){
+ //if the userFullName = _userName the GetUserCommand updates the userFullName in the map
+ GetUserCommand guc = new GetUserCommand(_userName);
+ guc.execute();
+ }
+ return GSS.get().findUserFullName(_userName);
+ }
+ /**
+ * Retrieve the treeView.
+ *
+ * @return the treeView
+ */
+ public CellTreeView getTreeView() {
+ return treeView;
+ }
+
+ public void onResourceUpdate(RestResource resource){
+ if(resource instanceof RestResourceWrapper){
+ if(getTreeView().getSelection()!=null&&getTreeView().getSelection().getUri().equals(resource.getUri()))
+ showFileList(resource,true);
+ }
+
+ }
+
+