upload tizen2.0 alpha installmanager source
[sdk/installer/install-manager.git] / InstallManager_java / src / org / tizen / installmanager / ui / model / ItemLabelProvider.java
1 /*
2 *  InstallManager
3 *
4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5 *
6 * Contact: 
7 * Wooyoung Cho <wooyoung1.cho@samsung.com>
8 * Shihyun Kim <shihyun.kim@samsung.com>
9 * Taeyoung Son <taeyoung2.son@samsung.com>
10 * Yongsung kim <yongsung1.kim@samsung.com>
11
12  * Licensed under the Apache License, Version 2.0 (the "License");
13 * you may not use this file except in compliance with the License.
14 * You may obtain a copy of the License at
15 *
16 * http://www.apache.org/licenses/LICENSE-2.0
17 *
18 * Unless required by applicable law or agreed to in writing, software
19 * distributed under the License is distributed on an "AS IS" BASIS,
20 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 * See the License for the specific language governing permissions and
22 * limitations under the License.
23 *
24 * Contributors:
25 * - S-Core Co., Ltd
26 *
27 */
28
29 package org.tizen.installmanager.ui.model;
30
31
32 import org.eclipse.jface.viewers.ColumnLabelProvider;
33 import org.eclipse.jface.viewers.ILabelProviderListener;
34 import org.eclipse.jface.viewers.ViewerCell;
35 import org.eclipse.swt.SWT;
36 import org.eclipse.swt.graphics.Point;
37 import org.eclipse.swt.widgets.Display;
38 import org.tizen.installmanager.ui.model.Item.CheckState;
39 import org.tizen.installmanager.ui.model.Item.InstallState;
40 import org.tizen.installmanager.ui.page.PackageListPage;
41
42
43 /**
44  * This class provide the text and/or image for each column of a given element. Used by PackageListPage.
45  * @see PackageListPage
46  * @author Taeyoung Son <taeyoung2.son@samsung.com>
47  */
48 public class ItemLabelProvider extends ColumnLabelProvider {
49
50         @Override
51         public void addListener(ILabelProviderListener listener) {
52         }
53
54         @Override
55         public void dispose() {
56         }
57
58         @Override
59         public boolean isLabelProperty(Object element, String property) {
60                 return false;
61         }
62
63         @Override
64         public void removeListener(ILabelProviderListener listener) {
65         }
66
67 //      public String getToolTipText(Object element) {
68 //              String description = "Tooltip (" + element + ")";
69 //              if (element instanceof Item && viewController != null) {
70 //                      String pkgName = ((Item) element).getPackageName();
71 //                      description = viewController.getDescription(pkgName);
72 //              }
73 //
74 //              return description;
75 //      }
76         
77         public Point getToolTipShift(Object object) {
78                 return new Point(5, 5);
79         }
80         
81         public int getToolTipTimeDisplyed(Object object) {
82                 return 5000;
83         }
84         
85         public void update(ViewerCell cell) {
86                 int columnIndex = cell.getColumnIndex();
87                 Object element = cell.getElement();
88                 String result = null;
89                 switch (columnIndex) {
90                 case 0:
91                         if (element instanceof Item) {
92                                 result = ((Item) element).getDisplayName();
93                         }
94                         break;
95                 case 1:
96                         if (element instanceof Item) {                          
97                                 result = ((Item) element).getStateToString();
98                         }
99                         break;
100                 case 2:
101                         if (element instanceof Item) {
102                                 result = displaySize(element);
103                         }
104                         break;
105                 case 3:
106                         if (element instanceof Item) {
107                                 result = ((Item) element).getInstalledVersion();
108                         }
109                         break;
110                 }
111
112                 if (result != null) {
113                         cell.setText(result);
114                 }
115                 
116                 if (element instanceof Item) {
117                         InstallState state = ((Item)element).getInstallState();
118                         if (state == InstallState.UPDATE || state == InstallState.UNINSTALL) {
119                                 cell.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));
120                         }
121                 }
122         }
123         
124         private String displaySize(Object element) {
125                 Item item = (Item) element;
126
127                 if (item.getCheckState() == CheckState.UNCHECKED) {
128                         return "";
129                 } else {
130                         return sizeToKB(item.getSize());
131                 }
132         }
133
134         private String sizeToKB(Long size) {
135                 if (size <= 0) {
136                         return "";
137                 }
138                 
139                 double sizeB = (double)size;
140                 double sizeK = sizeB / 1024.0;
141                 double sizeM = sizeK / 1024.0;
142
143                 String retSize = String.format("%.1f", sizeM) + "M";
144                 if (retSize.equals("0.0M")) {
145                         retSize = String.format("%.1f", sizeK) + "K";
146                 }
147
148                 return retSize;
149         }
150 }