/** * Aptana Studio * Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the GNU Public License (GPL) v3 (with exceptions). * Please see the license.html included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package com.aptana.ide.syncing.ui.internal; import java.text.SimpleDateFormat; import java.util.Date; import org.eclipse.core.filesystem.IFileInfo; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IAdaptable; import com.aptana.ide.ui.io.Utils; /** * @author Max Stepanov */ public final class SyncPresentationUtils { /** * */ private SyncPresentationUtils() { } /** * @param element * @return */ public static String getFileSize(Object element) { long rawSize = -1; if (element instanceof IAdaptable) { IResource resource = (IResource) ((IAdaptable) element).getAdapter(IResource.class); if (resource != null) { rawSize = resource.getLocation().toFile().length(); } else { IFileInfo fileInfo = Utils.getDetailedFileInfo((IAdaptable) element); if (fileInfo != null) { rawSize = fileInfo.getLength(); } } } if (rawSize >= 0) { long leftover = 0; String string = Long.toString(rawSize) + " B"; //$NON-NLS-1$ if (rawSize > 1024) { rawSize = rawSize / 1024; leftover = rawSize % 1024; long num = rawSize; if (leftover >= 512) { num++; } string = num + " KB"; //$NON-NLS-1$ } if (rawSize > 1024) { rawSize = rawSize / 1024; leftover = rawSize % 1024; long num = rawSize; if (leftover >= 512) { num++; } string = num + " MB"; //$NON-NLS-1$ } if (rawSize > 1024) { rawSize = rawSize / 1024; leftover = rawSize % 1024; long num = rawSize; if (leftover >= 512) { num++; } string = num + " GB"; //$NON-NLS-1$ } if (rawSize > 1024) { rawSize = rawSize / 1024; leftover = rawSize % 1024; long num = rawSize; if (leftover >= 512) { num++; } string = num + " TB"; //$NON-NLS-1$ } return string; } return ""; //$NON-NLS-1$ } /** * @param element * @return */ public static String getLastModified(Object element) { long timestamp = -1; if (element instanceof IAdaptable) { IResource resource = (IResource) ((IAdaptable) element).getAdapter(IResource.class); if (resource != null) { timestamp = resource.getLocalTimeStamp(); } else { IFileInfo fileInfo = Utils.getDetailedFileInfo((IAdaptable) element); if (fileInfo != null) { timestamp = fileInfo.getLastModified(); } } } if (timestamp >= 0) { SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm a"); //$NON-NLS-1$ return formatter.format(new Date(timestamp)); } return ""; //$NON-NLS-1$ } }