1 14 package org.compiere.apps; 15 16 import java.awt.BorderLayout ; 17 import java.awt.Color ; 18 import java.awt.Dimension ; 19 import java.awt.GridLayout ; 20 import java.awt.event.ActionEvent ; 21 import java.awt.event.ActionListener ; 22 import java.util.Iterator ; 23 import java.util.jar.Attributes ; 24 import java.util.jar.Manifest ; 25 26 import javax.swing.JDialog ; 27 import javax.swing.JFrame ; 28 import javax.swing.JLabel ; 29 import javax.swing.SwingConstants ; 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 47 public final class AboutBox extends JDialog implements ActionListener 48 { 49 53 public AboutBox(JFrame parent) 54 { 55 super(parent, true); 56 setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); 57 try 58 { 59 jbInit(); 60 } 61 catch(Exception e) 62 { 63 System.out.println("AboutBox - " + e.getMessage()); 64 } 65 labelVersion.setText(Compiere.MAIN_VERSION + " @ " + Compiere.DATE_VERSION); 67 labelCopyright.setText(Compiere.COPYRIGHT); 68 infoArea.setText(getInfo()); 69 Dimension d = imageControl.getPreferredSize(); 71 imageControl.setPreferredSize(new Dimension (d.width+10, d.height+10)); 72 AEnv.positionCenterWindow(parent, this); 74 } 76 private CPanel panel = new CPanel(); 77 private CPanel mainPanel = new CPanel(); 78 private JLabel imageControl = new JLabel (); 79 private JLabel labelHeading = new JLabel (); 80 private JLabel labelVersion = new JLabel (); 81 private JLabel labelCopyright = new JLabel (); 82 private JLabel labelDescription = new JLabel (); 83 private BorderLayout panelLayout = new BorderLayout (); 84 private BorderLayout mainLayout = new BorderLayout (); 85 private CPanel northPanel = new CPanel(); 86 private CPanel headerPanel = new CPanel(); 87 private GridLayout headerLayout = new GridLayout (); 88 private CText infoArea = new CText(); 89 private BorderLayout northLayout = new BorderLayout (); 90 private ConfirmPanel confirmPanel = new ConfirmPanel(false); 91 92 96 private void jbInit() throws Exception 97 { 98 this.setTitle(getMsg("About")); 99 CompiereColor.setBackground(this); 100 setResizable(false); 102 labelHeading.setFont(new java.awt.Font ("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 imageControl.setFont(new java.awt.Font ("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 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 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 } 155 159 public static String getInfo() 160 { 161 StringBuffer sb = new StringBuffer (); 162 final String eq = " = "; 163 final String 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 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 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 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 Manifest mf = ZipUtil.getManifest("CClient.jar"); 178 if (mf == null) 179 mf = ZipUtil.getManifest("CTools.jar"); 180 if (mf != null) 181 { 182 Attributes atts = mf.getMainAttributes(); 183 if (atts != null) 184 { 185 Iterator it = atts.keySet().iterator(); 186 while (it.hasNext()) 187 { 188 Object 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 sb.deleteCharAt(sb.length()-1); return sb.toString(); 200 } 202 207 private static String getMsg (String msg) 208 { 209 if (DB.isConnected()) 210 return Msg.translate(Env.getCtx(), msg); 211 return msg; 212 } 214 218 private static String getServerInfo() 219 { 220 StringBuffer sb = new StringBuffer (); 221 sb.append(CConnection.get().getAppsHost()).append(" : ") 223 .append(CConnection.get().getAppsPort()) 224 .append(" ("); 225 226 if (AEnv.isServerActive()) 228 sb.append(AEnv.getServerVersion ()); 229 else 230 sb.append(getMsg("NotActive")); 231 232 sb.append(") "); 233 234 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 } 243 247 private static String getDatabaseInfo() 248 { 249 StringBuffer sb = new StringBuffer (); 250 sb.append(CConnection.get().getDbHost()).append(" : ") 251 .append(CConnection.get().getDbPort()).append(" : ") 252 .append(CConnection.get().getDbName()); 253 return sb.toString(); 254 } 256 260 public void actionPerformed(ActionEvent e) 261 { 262 if(e.getActionCommand().equals(ConfirmPanel.A_OK)) 263 dispose(); 264 } } | Popular Tags |