import gr.ebs.gss.client.rest.resource.UserResource;\r
\r
import com.google.gwt.core.client.GWT;\r
+import com.google.gwt.i18n.client.DateTimeFormat;\r
import com.google.gwt.resources.client.ClientBundle;\r
import com.google.gwt.resources.client.ImageResource;\r
import com.google.gwt.user.client.DeferredCommand;\r
private HTML fileSizeLabel = new HTML("");\r
private HTML quotaIcon = new HTML("");\r
private HTML quotaLabel = new HTML("");\r
+ private HTML lastLoginLabel = new HTML("");\r
private HTML currentlyShowingLabel = new HTML("");\r
\r
/**\r
\r
@Source("gr/ebs/gss/resources/yellowled.png")\r
ImageResource yellowSize();\r
+\r
+ @Source("gr/ebs/gss/resources/xclock.png")\r
+ ImageResource lastLogin();\r
}\r
\r
private final Images images;\r
\r
HorizontalPanel left = new HorizontalPanel();\r
left.setSpacing(8);\r
+ HorizontalPanel middle = new HorizontalPanel();\r
+ middle.setSpacing(8);\r
HorizontalPanel right = new HorizontalPanel();\r
right.setSpacing(8);\r
outer.add(left);\r
+ outer.add(middle);\r
outer.add(right);\r
left.add(new HTML("<b>Totals:</b> "));\r
left.add(AbstractImagePrototype.create(images.totalFiles()).createImage());\r
quotaIcon.setHTML(AbstractImagePrototype.create(images.greenSize()).getHTML());\r
left.add(quotaIcon);\r
left.add(quotaLabel);\r
+ middle.add(AbstractImagePrototype.create(images.lastLogin()).createImage());\r
+ middle.add(new HTML("<b>Last login:</b> "));\r
+ middle.add(lastLoginLabel);\r
right.add(currentlyShowingLabel);\r
outer.setStyleName("statusbar-inner");\r
left.setStyleName("statusbar-inner");\r
+ middle.setStyleName("statusbar-inner");\r
right.setStyleName("statusbar-inner");\r
outer.setCellHorizontalAlignment(right, HasHorizontalAlignment.ALIGN_RIGHT);\r
\r
UserResource user = app.getCurrentUserResource();\r
if (user == null || app.getFolders().getRootItem() == null)\r
return !DONE;\r
- displayStats(user.getQuota());\r
+ displayStats(user);\r
return DONE;\r
}\r
});\r
/**\r
* Refresh the widget with the provided statistics.\r
*/\r
- private void displayStats(QuotaHolder stats) {\r
+ private void displayStats(UserResource user) {\r
+ QuotaHolder stats = user.getQuota();\r
if (stats.getFileCount() == 1)\r
fileCountLabel.setHTML("1 file");\r
else\r
quotaIcon.setHTML(AbstractImagePrototype.create(images.greenSize()).getHTML());\r
quotaLabel.setHTML(stats.getQuotaLeftAsString() +" free");\r
}\r
+ final DateTimeFormat formatter = DateTimeFormat.getFormat("d/M/yyyy h:mm a");\r
+ lastLoginLabel.setHTML(formatter.format(user.getLastLogin()));\r
}\r
\r
/**\r
GetCommand<UserResource> uc = new GetCommand<UserResource>(UserResource.class, user.getUri(), null){\r
@Override\r
public void onComplete() {\r
- displayStats(getResult().getQuota());\r
+ displayStats(getResult());\r
}\r
\r
@Override\r
private String announcement;
+ private Date lastLogin;
+
/**
* Retrieve the name.
*
return announcement;
}
-
/**
* Modify the announcement.
*
announcement = anAnnouncement;
}
+ /**
+ * Retrieve the lastLogin.
+ *
+ * @return the lastLogin
+ */
+ public Date getLastLogin() {
+ return lastLogin;
+ }
+
@Override
public void createFromJSON(String text) {
JSONObject json = (JSONObject) JSONParser.parse(text);
tagsPath = unmarshallString(json, "tags");
trashPath = unmarshallString(json, "trash");
announcement = unmarshallString(json, "announcement");
+ if (json.get("lastLogin") != null)
+ lastLogin = new Date(new Long(json.get("lastLogin").toString()));
if (json.get("creationDate") != null)
creationDate = new Date(new Long(json.get("creationDate").toString()));
if (json.get("modificationDate") != null)
put("shared", parentUrl + PATH_SHARED).put("others", parentUrl + PATH_OTHERS).
put("quota", statistics).put("tags", parentUrl + PATH_TAGS);
String announcement = getConfiguration().getString("announcement");
- if(announcement != null && !announcement.isEmpty())
+ if (announcement != null && !announcement.isEmpty())
json.put("announcement", announcement);
+ if (owner.getLastLogin() != null)
+ json.put("lastLogin", owner.getLastLogin().getTime());
} catch (JSONException e) {
logger.error("", e);
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);