]>
git.argeo.org Git - gpl/argeo-slc.git/blob - eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/providers/ArtifactLabelProvider.java
1 package org
.argeo
.slc
.client
.ui
.dist
.providers
;
3 import java
.text
.DateFormat
;
4 import java
.text
.SimpleDateFormat
;
7 import javax
.jcr
.Property
;
8 import javax
.jcr
.PropertyType
;
9 import javax
.jcr
.RepositoryException
;
10 import javax
.jcr
.Value
;
12 import org
.argeo
.ArgeoException
;
13 import org
.argeo
.jcr
.JcrUtils
;
14 import org
.argeo
.slc
.client
.ui
.dist
.DistConstants
;
15 import org
.eclipse
.jface
.viewers
.ColumnLabelProvider
;
16 import org
.eclipse
.jface
.viewers
.ViewerCell
;
18 public class ArtifactLabelProvider
extends ColumnLabelProvider
implements
21 // To be able to change column order easily
22 public static final int COLUMN_TREE
= 0;
23 public static final int COLUMN_DATE
= 1;
24 public static final int COLUMN_SIZE
= 2;
27 protected DateFormat timeFormatter
= new SimpleDateFormat(DATE_TIME_FORMAT
);
29 public void update(ViewerCell cell
) {
30 Object element
= cell
.getElement();
31 cell
.setText(getColumnText(element
, cell
.getColumnIndex()));
32 // Image image = getImage(element);
33 // cell.setImage(image);
34 // cell.setBackground(getBackground(element));
35 // cell.setForeground(getForeground(element));
36 // cell.setFont(getFont(element));
39 public String
getColumnText(Object element
, int columnIndex
) {
41 if (element
instanceof Node
) {
42 Node node
= (Node
) element
;
43 switch (columnIndex
) {
45 return node
.getName();
47 long size
= JcrUtils
.getNodeApproxSize(node
) / 1024;
49 return size
/ 1024 + " MB";
53 if (node
.hasProperty(Property
.JCR_CREATED
))
54 return timeFormatter
.format(node
55 .getProperty(Property
.JCR_CREATED
).getDate()
61 } catch (RepositoryException re
) {
62 throw new ArgeoException(
63 "Unexepected error while getting property values", re
);
68 private String
formatValueAsString(Value value
) {
69 // TODO enhance this method
73 if (value
.getType() == PropertyType
.BINARY
)
74 strValue
= "<binary>";
75 else if (value
.getType() == PropertyType
.DATE
)
76 strValue
= timeFormatter
.format(value
.getDate().getTime());
78 strValue
= value
.getString();
80 } catch (RepositoryException e
) {
81 throw new ArgeoException("unexpected error while formatting value",