KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > compiere > apps > AboutBox


1 /******************************************************************************
2  * The contents of this file are subject to the Compiere License Version 1.1
3  * ("License"); You may not use this file except in compliance with the License
4  * You may obtain a copy of the License at http://www.compiere.org/license.html
5  * Software distributed under the License is distributed on an "AS IS" basis,
6  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
7  * the specific language governing rights and limitations under the License.
8  * The Original Code is Compiere ERP & CRM Business Solution
9  * The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
10  * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts
11  * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
12  * Contributor(s): ______________________________________.
13  *****************************************************************************/

14 package org.compiere.apps;
15
16 import java.awt.BorderLayout JavaDoc;
17 import java.awt.Color JavaDoc;
18 import java.awt.Dimension JavaDoc;
19 import java.awt.GridLayout JavaDoc;
20 import java.awt.event.ActionEvent JavaDoc;
21 import java.awt.event.ActionListener JavaDoc;
22 import java.util.Iterator JavaDoc;
23 import java.util.jar.Attributes JavaDoc;
24 import java.util.jar.Manifest JavaDoc;
25
26 import javax.swing.JDialog JavaDoc;
27 import javax.swing.JFrame JavaDoc;
28 import javax.swing.JLabel JavaDoc;
29 import javax.swing.SwingConstants JavaDoc;
30
31 import org.compiere.Compiere;
32 import org.compiere.db.CConnection;
33 import org.compiere.plaf.CompiereColor;
34 import org.compiere.swing.CPanel;
35 import org.compiere.swing.CText;
36 import org.compiere.util.DB;
37 import org.compiere.util.Env;
38 import org.compiere.util.Msg;
39 import org.compiere.util.ZipUtil;
40
41 /**
42  * About Dialog
43  *
44  * @author Jorg Janke
45  * @version $Id: AboutBox.java,v 1.13 2003/10/03 04:06:36 jjanke Exp $
46  */

47 public final class AboutBox extends JDialog JavaDoc implements ActionListener JavaDoc
48 {
49     /**
50      * Constructor for modal about dialog
51      * @param parent parent
52      */

53     public AboutBox(JFrame JavaDoc parent)
54     {
55         super(parent, true);
56         setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
57         try
58         {
59             jbInit();
60         }
61         catch(Exception JavaDoc e)
62         {
63             System.out.println("AboutBox - " + e.getMessage());
64         }
65         //
66
labelVersion.setText(Compiere.MAIN_VERSION + " @ " + Compiere.DATE_VERSION);
67         labelCopyright.setText(Compiere.COPYRIGHT);
68         infoArea.setText(getInfo());
69         // create 5 pt border
70
Dimension JavaDoc d = imageControl.getPreferredSize();
71         imageControl.setPreferredSize(new Dimension JavaDoc(d.width+10, d.height+10));
72         //
73
AEnv.positionCenterWindow(parent, this);
74     } // AWindow_AboutBox
75

76     private CPanel panel = new CPanel();
77     private CPanel mainPanel = new CPanel();
78     private JLabel JavaDoc imageControl = new JLabel JavaDoc();
79     private JLabel JavaDoc labelHeading = new JLabel JavaDoc();
80     private JLabel JavaDoc labelVersion = new JLabel JavaDoc();
81     private JLabel JavaDoc labelCopyright = new JLabel JavaDoc();
82     private JLabel JavaDoc labelDescription = new JLabel JavaDoc();
83     private BorderLayout JavaDoc panelLayout = new BorderLayout JavaDoc();
84     private BorderLayout JavaDoc mainLayout = new BorderLayout JavaDoc();
85     private CPanel northPanel = new CPanel();
86     private CPanel headerPanel = new CPanel();
87     private GridLayout JavaDoc headerLayout = new GridLayout JavaDoc();
88     private CText infoArea = new CText();
89     private BorderLayout JavaDoc northLayout = new BorderLayout JavaDoc();
90     private ConfirmPanel confirmPanel = new ConfirmPanel(false);
91
92     /**
93      * Init
94      * @throws Exception
95      */

96     private void jbInit() throws Exception JavaDoc
97     {
98         this.setTitle(getMsg("About"));
99         CompiereColor.setBackground(this);
100         //
101
setResizable(false);
102         labelHeading.setFont(new java.awt.Font JavaDoc("Dialog", 1, 14));
103         labelHeading.setHorizontalAlignment(SwingConstants.CENTER);
104         labelHeading.setHorizontalTextPosition(SwingConstants.CENTER);
105         labelHeading.setText(" Smart ERP & CRM Business Solution ");
106         labelVersion.setHorizontalAlignment(SwingConstants.CENTER);
107         labelVersion.setHorizontalTextPosition(SwingConstants.CENTER);
108         labelVersion.setText(".");
109         labelCopyright.setHorizontalAlignment(SwingConstants.CENTER);
110         labelCopyright.setHorizontalTextPosition(SwingConstants.CENTER);
111         labelCopyright.setText(".");
112         labelDescription.setForeground(Color.blue);
113         labelDescription.setHorizontalAlignment(SwingConstants.CENTER);
114         labelDescription.setHorizontalTextPosition(SwingConstants.CENTER);
115         labelDescription.setText(Compiere.getURL());
116         //
117
imageControl.setFont(new java.awt.Font JavaDoc("Serif", 2, 10));
118         imageControl.setForeground(Color.blue);
119         imageControl.setAlignmentX((float) 0.5);
120         imageControl.setHorizontalAlignment(SwingConstants.CENTER);
121         imageControl.setHorizontalTextPosition(SwingConstants.CENTER);
122         imageControl.setIcon(Compiere.getImageIconLogo());
123         imageControl.setText(Compiere.getSubtitle());
124         imageControl.setVerticalTextPosition(SwingConstants.BOTTOM);
125         //
126
mainPanel.setLayout(mainLayout);
127         mainLayout.setHgap(10);
128         mainLayout.setVgap(10);
129         northPanel.setLayout(northLayout);
130         northLayout.setHgap(10);
131         northLayout.setVgap(10);
132         panel.setLayout(panelLayout);
133         panelLayout.setHgap(10);
134         panelLayout.setVgap(10);
135         headerPanel.setLayout(headerLayout);
136         headerLayout.setColumns(1);
137         headerLayout.setRows(4);
138         //
139
infoArea.setReadWrite(false);
140
141         this.getContentPane().add(panel, null);
142         panel.add(northPanel, BorderLayout.NORTH);
143         northPanel.add(imageControl, BorderLayout.WEST);
144         northPanel.add(headerPanel, BorderLayout.CENTER);
145         headerPanel.add(labelHeading, null);
146         headerPanel.add(labelCopyright, null);
147         headerPanel.add(labelVersion, null);
148         headerPanel.add(labelDescription, null);
149         panel.add(mainPanel, BorderLayout.CENTER);
150         mainPanel.add(infoArea, BorderLayout.CENTER);
151         mainPanel.add(confirmPanel, BorderLayout.SOUTH);
152         confirmPanel.addActionListener(this);
153     } // jbInit
154

155     /**
156      * Get Compiere Info
157      * @return Info as multiple Line String
158      */

159     public static String JavaDoc getInfo()
160     {
161         StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
162         final String JavaDoc eq = " = ";
163         final String JavaDoc nl = "\n";
164         sb.append(getMsg("Host")).append(eq) .append(getServerInfo()).append(nl);
165         sb.append(getMsg("Database")).append(eq) .append(getDatabaseInfo()).append(nl);
166         sb.append(getMsg("Schema")).append(eq) .append(CConnection.get().getDbUid()).append(nl);
167         //
168
sb.append(getMsg("AD_User_ID")).append(eq) .append(Env.getContext(Env.getCtx(), "#AD_User_Name")).append(nl);
169         sb.append(getMsg("AD_Role_ID")).append(eq) .append(Env.getContext(Env.getCtx(), "#AD_Role_Name")).append(nl);
170         //
171
sb.append(getMsg("AD_Client_ID")).append(eq).append(Env.getContext(Env.getCtx(), "#AD_Client_Name")).append(nl);
172         sb.append(getMsg("AD_Org_ID")).append(eq) .append(Env.getContext(Env.getCtx(), "#AD_Org_Name")).append(nl);
173         //
174
sb.append(getMsg("Date")).append(eq) .append(Env.getContext(Env.getCtx(), "#Date")).append(nl);
175         sb.append(getMsg("Printer")).append(eq) .append(Env.getContext(Env.getCtx(), "#Printer")).append(nl);
176         //
177
Manifest JavaDoc mf = ZipUtil.getManifest("CClient.jar");
178         if (mf == null)
179             mf = ZipUtil.getManifest("CTools.jar");
180         if (mf != null)
181         {
182             Attributes JavaDoc atts = mf.getMainAttributes();
183             if (atts != null)
184             {
185                 Iterator JavaDoc it = atts.keySet().iterator();
186                 while (it.hasNext())
187                 {
188                     Object JavaDoc key = it.next();
189                     if (key.toString().startsWith("Impl") || key.toString().startsWith("Spec"))
190                         sb.append(key).append(eq).append(atts.get(key)).append(nl);
191                 }
192             }
193         }
194         sb.append("CompiereHome = ") .append(Compiere.getCompiereHome()).append(nl);
195         sb.append(Compiere.getJavaInfo()).append(nl);
196         sb.append(Compiere.getOSInfo()).append(nl);
197         //
198
sb.deleteCharAt(sb.length()-1); // remove last nl
199
return sb.toString();
200     } // getInfo
201

202     /**
203      * Get translated Message, if DB connection exists
204      * @param msg AD_Message
205      * @return translated msg if connected
206      */

207     private static String JavaDoc getMsg (String JavaDoc msg)
208     {
209         if (DB.isConnected())
210             return Msg.translate(Env.getCtx(), msg);
211         return msg;
212     } // getMsg
213

214     /**
215      * Get Server Info.
216      * @return host : port (NotActive) via CMhost : port
217      */

218     private static String JavaDoc getServerInfo()
219     {
220         StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
221         // Host
222
sb.append(CConnection.get().getAppsHost()).append(" : ")
223             .append(CConnection.get().getAppsPort())
224             .append(" (");
225
226         // Server
227
if (AEnv.isServerActive())
228             sb.append(AEnv.getServerVersion ());
229         else
230             sb.append(getMsg("NotActive"));
231
232         sb.append(") ");
233
234         // Connection Manager
235
if (CConnection.get().isViaFirewall())
236             sb.append(getMsg("via")).append(" ")
237                 .append(CConnection.get().getFwHost()).append(" : ")
238                 .append(CConnection.get().getFwPort());
239
240         return sb.toString();
241     } // getServerInfo
242

243     /**
244      * Get Database Info
245      * @return host : port : sid
246      */

247     private static String JavaDoc getDatabaseInfo()
248     {
249         StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
250         sb.append(CConnection.get().getDbHost()).append(" : ")
251             .append(CConnection.get().getDbPort()).append(" : ")
252             .append(CConnection.get().getDbName());
253         return sb.toString();
254     } // getDatabaseInfo
255

256     /**
257      * ActionListener
258      * @param e event
259      */

260     public void actionPerformed(ActionEvent JavaDoc e)
261     {
262         if(e.getActionCommand().equals(ConfirmPanel.A_OK))
263             dispose();
264     } // actionPerformed
265
} // AboutBox
266
Popular Tags