OSDN Git Service

1ac7d1f1d77eb1c0775e8f54b246685b656d44d1
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / dialog / AccountDialog.java
1 /*\r
2  * This file is part of NeverNote \r
3  * Copyright 2009 Randy Baumgarte\r
4  * \r
5  * This file may be licensed under the terms of of the\r
6  * GNU General Public License Version 2 (the ``GPL'').\r
7  *\r
8  * Software distributed under the License is distributed\r
9  * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either\r
10  * express or implied. See the GPL for the specific language\r
11  * governing rights and limitations.\r
12  *\r
13  * You should have received a copy of the GPL along with this\r
14  * program. If not, go to http://www.gnu.org/licenses/gpl.html\r
15  * or write to the Free Software Foundation, Inc.,\r
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\r
17  *\r
18 */\r
19 \r
20 package cx.fbn.nevernote.dialog;\r
21 \r
22 \r
23 import java.text.SimpleDateFormat;\r
24 \r
25 import com.evernote.edam.type.UserAttributes;\r
26 import com.trolltech.qt.gui.QDialog;\r
27 import com.trolltech.qt.gui.QGridLayout;\r
28 import com.trolltech.qt.gui.QGroupBox;\r
29 import com.trolltech.qt.gui.QHBoxLayout;\r
30 import com.trolltech.qt.gui.QIcon;\r
31 import com.trolltech.qt.gui.QLabel;\r
32 import com.trolltech.qt.gui.QPushButton;\r
33 \r
34 import cx.fbn.nevernote.Global;\r
35 \r
36 public class AccountDialog extends QDialog {\r
37     String iconPath = new String("classpath:cx/fbn/nevernote/icons/");\r
38         private final QPushButton ok;\r
39         \r
40         // Constructor\r
41         public AccountDialog() {\r
42                 setWindowTitle(tr("Account Information"));\r
43                 setWindowIcon(new QIcon(new QIcon(iconPath+"account.png")));\r
44                 QGridLayout grid = new QGridLayout();\r
45                 setLayout(grid);\r
46                 QLabel premium;\r
47                 if (Global.isPremium())\r
48                         premium = new QLabel("Premium");\r
49                 else\r
50                         premium = new QLabel("Free");\r
51                 \r
52                 Long uploadAmt = Global.getUploadAmount();\r
53                 Long uploadLimit = Global.getUploadLimit();\r
54                 Long uploadLimitEnd = Global.getUploadLimitEnd();\r
55                 Long pct;\r
56                 if (uploadLimit > 0)\r
57                         pct = uploadAmt*100 / uploadLimit;\r
58                 else\r
59                         pct = new Long(0);\r
60                 String unit = " Bytes";\r
61                 \r
62                 if (uploadAmt > 0) {\r
63                         uploadAmt = uploadAmt/1024;\r
64                         unit = " KB";\r
65                 }\r
66                 if (uploadAmt >= 1024) {\r
67                         uploadAmt = uploadAmt / 1024;\r
68                         unit = " MB";\r
69                 }\r
70                 if (uploadLimit > 0)\r
71                         uploadLimit = uploadLimit/1024/1024;\r
72         \r
73                 \r
74                 String fmt = Global.getDateFormat() + " " + Global.getTimeFormat();\r
75                 String dateTimeFormat = new String(fmt);\r
76                 SimpleDateFormat simple = new SimpleDateFormat(dateTimeFormat);\r
77                 StringBuilder endDate = new StringBuilder(simple.format(uploadLimitEnd));\r
78                 \r
79                 QGridLayout textGrid = new QGridLayout();\r
80                 QGroupBox limitGroup = new QGroupBox(tr("Account:"));\r
81                 textGrid.addWidget(new QLabel("Account Type:"), 1,1);\r
82                 textGrid.addWidget(premium, 1, 2);\r
83                 textGrid.addWidget(new QLabel("Limit:"), 2,1);\r
84                 textGrid.addWidget(new QLabel(uploadLimit.toString() +" MB"),2,2);\r
85                 textGrid.addWidget(new QLabel("Uploaded In This Period:"), 3,1);\r
86                 textGrid.addWidget(new QLabel(uploadAmt.toString()+unit +" ("+pct+"%)"),3,2);\r
87                 textGrid.addWidget(new QLabel("Current Cycle Ends:"), 4,1);\r
88                 textGrid.addWidget(new QLabel(endDate.toString()),4,2);\r
89                 limitGroup.setLayout(textGrid);\r
90 \r
91                 grid.addWidget(limitGroup, 1, 1);\r
92 \r
93                 UserAttributes attrib = Global.getUserAttributes();\r
94                 QGridLayout attribGrid = new QGridLayout();\r
95                 QGroupBox attribGroup = new QGroupBox(tr("User Attributes"));\r
96                 attribGrid.addWidget(new QLabel(tr("Incoming Email:")), 1,1);\r
97                 String server = Global.getServer();\r
98                 if (server.startsWith("www."))\r
99                         server = server.substring(4);\r
100                 attribGrid.addWidget(new QLabel(attrib.getIncomingEmailAddress()+"@"+Global.getServer()), 1,2);\r
101                 attribGroup.setLayout(attribGrid);\r
102                 grid.addWidget(attribGroup, 2,1);\r
103 \r
104                 \r
105                 QHBoxLayout buttonLayout = new QHBoxLayout();\r
106                 ok = new QPushButton("OK");\r
107                 ok.clicked.connect(this, "okPushed()");\r
108                 buttonLayout.addStretch();\r
109                 buttonLayout.addWidget(ok);\r
110                 buttonLayout.addStretch();\r
111                 grid.addLayout(buttonLayout,3,1);\r
112         }\r
113         \r
114         @SuppressWarnings("unused")\r
115         private void okPushed() {\r
116                 this.close();\r
117         }\r
118         \r
119 \r
120         public QPushButton getOkButton() {\r
121                 return ok;\r
122         }\r
123 }\r